summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/list/ListsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/list/ListsFragment.java')
-rw-r--r--java/com/android/dialer/app/list/ListsFragment.java59
1 files changed, 52 insertions, 7 deletions
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 8dd52a9d4..32501d556 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -31,19 +31,23 @@ import android.os.Handler;
import android.os.Trace;
import android.preference.PreferenceManager;
import android.provider.VoicemailContract;
-import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.CallLogFragment;
import com.android.dialer.app.calllog.CallLogNotificationsService;
+import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.CallLogQueryHandler;
+import com.android.dialer.database.CallLogQueryHandler.Listener;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
@@ -61,24 +65,28 @@ import java.util.ArrayList;
* containing the lists up above the search bar and pin it against the top of the screen.
*/
public class ListsFragment extends Fragment
- implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener {
+ implements OnPageChangeListener, Listener, OnClickListener {
private static final String TAG = "ListsFragment";
- private ViewPager mViewPager;
+ private DialerViewPager mViewPager;
private ViewPagerTabs mViewPagerTabs;
private DialtactsPagerAdapter mAdapter;
private RemoveView mRemoveView;
private View mRemoveViewContent;
+ private View mMultiSelectSelectAllViewContent;
+ private TextView mSelectUnselectAllViewText;
+ private ImageView mSelectUnselectAllIcon;
private Fragment mCurrentPage;
private SharedPreferences mPrefs;
private boolean mHasFetchedVoicemailStatus;
+ private boolean selectAllMode;
private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched;
private VoicemailStatusHelper mVoicemailStatusHelper;
private final ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<>();
/** The position of the currently selected tab. */
private int mTabIndex = TAB_INDEX_SPEED_DIAL;
- private boolean mPaused;
+ private boolean mPaused;
private CallLogQueryHandler mCallLogQueryHandler;
private final ContentObserver mVoicemailStatusObserver =
@@ -163,7 +171,7 @@ public class ListsFragment extends Fragment
tabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.quantum_ic_people_white_24;
tabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.quantum_ic_voicemail_white_24;
- mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
+ mViewPager = (DialerViewPager) parentView.findViewById(R.id.lists_pager);
mAdapter =
new DialtactsPagerAdapter(
getContext(),
@@ -180,9 +188,15 @@ public class ListsFragment extends Fragment
mViewPagerTabs.configureTabIcons(tabIcons);
mViewPagerTabs.setViewPager(mViewPager);
addOnPageChangeListener(mViewPagerTabs);
-
mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
+ mMultiSelectSelectAllViewContent =
+ parentView.findViewById(R.id.multi_select_select_all_view_content);
+ mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text);
+ mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon);
+ mMultiSelectSelectAllViewContent.setOnClickListener(null);
+ mSelectUnselectAllIcon.setOnClickListener(this);
+ mSelectUnselectAllViewText.setOnClickListener(this);
if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
&& PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
@@ -191,7 +205,7 @@ public class ListsFragment extends Fragment
.registerContentObserver(
VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
} else {
- LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+ LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions");
}
Trace.endSection();
@@ -385,6 +399,13 @@ public class ListsFragment extends Fragment
mRemoveView.animate().alpha(show ? 1 : 0).start();
}
+ public void showMultiSelectRemoveView(boolean show) {
+ mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
+ mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1);
+ mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
+ mViewPager.setEnableSwipingPages(!show);
+ }
+
public boolean hasFrequents() {
Fragment page = mAdapter.getItem(mAdapter.getRtlPosition(TAB_INDEX_SPEED_DIAL));
return page instanceof OldSpeedDialFragment
@@ -424,4 +445,28 @@ public class ListsFragment extends Fragment
}
Logger.get(getActivity()).logScreenView(screenType, getActivity());
}
+
+ @Override
+ public void onClick(View v) {
+ updateSelectAllIcon();
+ selectAllMode = !selectAllMode;
+ }
+
+ public void setSelectAllModeToFalse() {
+ selectAllMode = false;
+ mSelectUnselectAllIcon.setImageDrawable(
+ getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
+ }
+
+ private void updateSelectAllIcon() {
+ if (selectAllMode) {
+ mSelectUnselectAllIcon.setImageDrawable(
+ getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
+ ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllDeselected();
+ } else {
+ mSelectUnselectAllIcon.setImageDrawable(
+ getContext().getDrawable(R.drawable.ic_check_mark_blue_24dp));
+ ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllSelected();
+ }
+ }
}