summaryrefslogtreecommitdiffstats
path: root/src/com/android/dialer/calllog/CallLogActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogActivity.java')
-rwxr-xr-xsrc/com/android/dialer/calllog/CallLogActivity.java230
1 files changed, 30 insertions, 200 deletions
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 10a77e10d..fe79ea6c0 100755
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -22,12 +22,7 @@ import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.Intent;
-import android.database.Cursor;
import android.os.Bundle;
-import android.os.Handler;
-import android.provider.CallLog;
-import android.provider.CallLog.Calls;
-import android.telephony.TelephonyManager;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.TextUtils;
@@ -41,80 +36,49 @@ import android.view.MotionEvent;
import android.widget.SearchView;
import android.widget.SearchView.OnCloseListener;
import android.widget.SearchView.OnQueryTextListener;
-import android.util.Log;
import com.android.contacts.common.interactions.TouchPointManager;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
-import com.android.dialer.voicemail.VoicemailStatusHelper;
-import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
import com.android.dialerbind.analytics.AnalyticsActivity;
-import com.android.dialer.calllog.CallLogFragment;
import com.android.dialer.callstats.CallStatsFragment;
import com.android.dialer.widget.DoubleDatePickerDialog;
-public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHandler.Listener,
+public class CallLogActivity extends AnalyticsActivity implements
DoubleDatePickerDialog.OnDateSetListener {
- private Handler mHandler;
private ViewPager mViewPager;
private ViewPagerTabs mViewPagerTabs;
private FragmentPagerAdapter mViewPagerAdapter;
- private CallLogFragment mAllCallsFragment;
- private CallLogFragment mMissedCallsFragment;
private CallStatsFragment mStatsFragment;
- private CallLogFragment mVoicemailFragment;
- private VoicemailStatusHelper mVoicemailStatusHelper;
-
- private static final int WAIT_FOR_VOICEMAIL_PROVIDER_TIMEOUT_MS = 300;
- private boolean mSwitchToVoicemailTab;
private MSimCallLogFragment mMSimCallsFragment;
private CallLogSearchFragment mSearchFragment;
private SearchView mSearchView;
private boolean mInSearchUi;
- private String[] mTabTitles;
-
- private static final int TAB_INDEX_ALL = 0;
- private static final int TAB_INDEX_MISSED = 1;
- private static final int TAB_INDEX_STATS = 2;
- private static final int TAB_INDEX_VOICEMAIL = 3;
-
- private static final int TAB_INDEX_COUNT_DEFAULT = 3;
- private static final int TAB_INDEX_COUNT_WITH_VOICEMAIL = 4;
-
- private boolean mHasActiveVoicemailProvider;
-
- private final Runnable mWaitForVoicemailTimeoutRunnable = new Runnable() {
- @Override
- public void run() {
- mViewPagerTabs.setViewPager(mViewPager);
- mViewPager.setCurrentItem(TAB_INDEX_ALL);
- mSwitchToVoicemailTab = false;
- }
- };
private static final int TAB_INDEX_MSIM = 0;
- private static final int TAB_INDEX_COUNT_MSIM = 1;
+ private static final int TAB_INDEX_MSIM_STATS = 1;
+ private static final int TAB_INDEX_COUNT_MSIM = 2;
- public class ViewPagerAdapter extends FragmentPagerAdapter {
- public ViewPagerAdapter(FragmentManager fm) {
+ public class MSimViewPagerAdapter extends FragmentPagerAdapter {
+ private String[] mTabTitles;
+
+ public MSimViewPagerAdapter(FragmentManager fm) {
super(fm);
+
+ mTabTitles = new String[TAB_INDEX_COUNT_MSIM];
+ mTabTitles[0] = getString(R.string.call_log_all_title);
+ mTabTitles[1] = getString(R.string.call_log_stats_title);
}
@Override
public Fragment getItem(int position) {
switch (position) {
- case TAB_INDEX_ALL:
- mAllCallsFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL);
- return mAllCallsFragment;
- case TAB_INDEX_MISSED:
- mMissedCallsFragment = new CallLogFragment(Calls.MISSED_TYPE);
- return mMissedCallsFragment;
- case TAB_INDEX_VOICEMAIL:
- mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
- return mVoicemailFragment;
- case TAB_INDEX_STATS:
+ case TAB_INDEX_MSIM:
+ mMSimCallsFragment = new MSimCallLogFragment();
+ return mMSimCallsFragment;
+ case TAB_INDEX_MSIM_STATS:
mStatsFragment = new CallStatsFragment();
return mStatsFragment;
}
@@ -128,28 +92,6 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
@Override
public int getCount() {
- return mHasActiveVoicemailProvider ? TAB_INDEX_COUNT_WITH_VOICEMAIL :
- TAB_INDEX_COUNT_DEFAULT;
- }
- }
-
- public class MSimViewPagerAdapter extends FragmentPagerAdapter {
- public MSimViewPagerAdapter(FragmentManager fm) {
- super(fm);
- }
-
- @Override
- public Fragment getItem(int position) {
- switch (position) {
- case TAB_INDEX_MSIM:
- mMSimCallsFragment = new MSimCallLogFragment();
- return mMSimCallsFragment;
- }
- throw new IllegalStateException("No fragment at position " + position);
- }
-
- @Override
- public int getCount() {
return TAB_INDEX_COUNT_MSIM;
}
}
@@ -166,14 +108,6 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (getTelephonyManager().isMultiSimEnabled()) {
- initMSimCallLog();
- addSearchFragment();
- return;
- }
-
- mHandler = new Handler();
-
setContentView(R.layout.call_log_activity);
getWindow().setBackgroundDrawable(null);
@@ -183,57 +117,15 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setElevation(0);
- int startingTab = TAB_INDEX_ALL;
- final Intent intent = getIntent();
- if (intent != null) {
- final int callType = intent.getIntExtra(CallLog.Calls.EXTRA_CALL_TYPE_FILTER, -1);
- if (callType == CallLog.Calls.MISSED_TYPE) {
- startingTab = TAB_INDEX_MISSED;
- } else if (callType == CallLog.Calls.VOICEMAIL_TYPE) {
- startingTab = TAB_INDEX_VOICEMAIL;
- }
- }
-
- mTabTitles = new String[TAB_INDEX_COUNT_WITH_VOICEMAIL];
- mTabTitles[0] = getString(R.string.call_log_all_title);
- mTabTitles[1] = getString(R.string.call_log_missed_title);
- mTabTitles[2] = getString(R.string.call_log_stats_title);
- mTabTitles[3] = getString(R.string.call_log_voicemail_title);
-
mViewPager = (ViewPager) findViewById(R.id.call_log_pager);
- mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager());
+ mViewPagerAdapter = new MSimViewPagerAdapter(getFragmentManager());
mViewPager.setAdapter(mViewPagerAdapter);
- mViewPager.setOffscreenPageLimit(2);
mViewPagerTabs = (ViewPagerTabs) findViewById(R.id.viewpager_header);
mViewPager.setOnPageChangeListener(mViewPagerTabs);
-
- if (startingTab == TAB_INDEX_VOICEMAIL) {
- // The addition of the voicemail tab is an asynchronous process, so wait till the tab
- // is added, before attempting to switch to it. If the querying of CP2 for voicemail
- // providers takes too long, give up and show the first tab instead.
- mSwitchToVoicemailTab = true;
- mHandler.postDelayed(mWaitForVoicemailTimeoutRunnable,
- WAIT_FOR_VOICEMAIL_PROVIDER_TIMEOUT_MS);
- } else {
- mViewPagerTabs.setViewPager(mViewPager);
- mViewPager.setCurrentItem(startingTab);
- }
+ mViewPagerTabs.setViewPager(mViewPager);
addSearchFragment();
- mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
- }
-
- @Override
- protected void onResume() {
- super.onResume();
-
- if (getTelephonyManager().isMultiSimEnabled())
- return;
-
- CallLogQueryHandler callLogQueryHandler =
- new CallLogQueryHandler(this.getContentResolver(), this);
- callLogQueryHandler.fetchVoicemailStatus();
}
@Override
@@ -243,25 +135,6 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
}
}
- private TelephonyManager getTelephonyManager() {
- return (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- }
-
- private void initMSimCallLog() {
- setContentView(R.layout.msim_call_log_activity);
- getWindow().setBackgroundDrawable(null);
-
- final ActionBar actionBar = getActionBar();
- actionBar.setDisplayShowHomeEnabled(true);
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setDisplayShowTitleEnabled(true);
-
- mViewPager = (ViewPager) findViewById(R.id.call_log_pager);
-
- mViewPagerAdapter = new MSimViewPagerAdapter(getFragmentManager());
- mViewPager.setAdapter(mViewPagerAdapter);
- }
-
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater inflater = getMenuInflater();
@@ -286,16 +159,12 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
itemSearchCallLog.setVisible(adapter != null
&& !adapter.isEmpty());
}
- // If onPrepareOptionsMenu is called before fragments loaded. Don't do anything.
- if (mAllCallsFragment != null && itemDeleteAll != null) {
- final CallLogAdapter adapter = mAllCallsFragment.getAdapter();
- itemDeleteAll.setVisible(adapter != null && !adapter.isEmpty());
- }
- if (mMSimCallsFragment != null && itemDeleteAll != null) {
- final CallLogAdapter adapter = mMSimCallsFragment.getAdapter();
- itemDeleteAll.setVisible(adapter != null && !adapter.isEmpty());
- }
+ // If onPrepareOptionsMenu is called before fragments loaded. Don't do anything.
+ if (mMSimCallsFragment != null && itemDeleteAll != null) {
+ final CallLogAdapter adapter = mMSimCallsFragment.getAdapter();
+ itemDeleteAll.setVisible(adapter != null && !adapter.isEmpty());
+ }
}
return true;
}
@@ -325,35 +194,6 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
startActivity(intent);
}
- @Override
- public void onVoicemailStatusFetched(Cursor statusCursor) {
- if (this.isFinishing()) {
- return;
- }
-
- mHandler.removeCallbacks(mWaitForVoicemailTimeoutRunnable);
- // Update mHasActiveVoicemailProvider, which controls the number of tabs displayed.
- int activeSources = mVoicemailStatusHelper.getNumberActivityVoicemailSources(statusCursor);
- if (activeSources > 0 != mHasActiveVoicemailProvider) {
- mHasActiveVoicemailProvider = activeSources > 0;
- mViewPagerAdapter.notifyDataSetChanged();
- mViewPagerTabs.setViewPager(mViewPager);
- if (mSwitchToVoicemailTab) {
- mViewPager.setCurrentItem(TAB_INDEX_VOICEMAIL, false);
- }
- } else if (mSwitchToVoicemailTab) {
- // The voicemail tab was requested, but it does not exist because there are no
- // voicemail sources. Just fallback to the first item instead.
- mViewPagerTabs.setViewPager(mViewPager);
- }
- }
-
- @Override
- public boolean onCallsFetched(Cursor statusCursor) {
- // Return false; did not take ownership of cursor
- return false;
- }
-
private void enterSearchUi() {
if (mSearchFragment == null) {
return;
@@ -379,9 +219,8 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
transaction.commitAllowingStateLoss();
getFragmentManager().executePendingTransactions();
mViewPager.setVisibility(View.GONE);
- if (!getTelephonyManager().isMultiSimEnabled()) {
- mViewPagerTabs.setVisibility(View.GONE);
- }
+ mViewPagerTabs.setVisibility(View.GONE);
+
// We need to call this and onActionViewCollapsed() manually, since we
// are using a custom
// layout instead of asking the search menu item to take care of
@@ -391,7 +230,7 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
}
private void updateFragmentVisibility(int position, boolean visibility) {
- if (position >= TAB_INDEX_ALL) {
+ if (position >= TAB_INDEX_MSIM) {
final Fragment fragment = getFragmentAt(position);
if (fragment != null) {
fragment.setMenuVisibility(visibility);
@@ -402,17 +241,9 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
private Fragment getFragmentAt(int position) {
switch (position) {
- case TAB_INDEX_ALL:
- if (getTelephonyManager().isMultiSimEnabled()) {
- return mMSimCallsFragment;
- } else {
- return mAllCallsFragment;
- }
- case TAB_INDEX_MISSED:
- return mMissedCallsFragment;
- case TAB_INDEX_VOICEMAIL:
- return mVoicemailFragment;
- case TAB_INDEX_STATS:
+ case TAB_INDEX_MSIM:
+ return mMSimCallsFragment;
+ case TAB_INDEX_MSIM_STATS:
return mStatsFragment;
default:
throw new IllegalStateException("Unknown fragment index: "
@@ -548,9 +379,8 @@ public class CallLogActivity extends AnalyticsActivity implements CallLogQueryHa
}
mViewPager.setVisibility(View.VISIBLE);
- if (!getTelephonyManager().isMultiSimEnabled()) {
- mViewPagerTabs.setVisibility(View.VISIBLE);
- }
+ mViewPagerTabs.setVisibility(View.VISIBLE);
+
hideInputMethod(getCurrentFocus());
// Request to update option menu.