From b51f11cde8d1455f6dc1a75a147306fcf86c730f Mon Sep 17 00:00:00 2001 From: Danny Baumann Date: Wed, 27 Jun 2018 15:53:56 +0200 Subject: Re-add call statistics. Author: Danny Baumann Date: Mon Nov 11 15:36:21 2019 +0100 Fix crash in call stats. We fed color resources into LinearColorBar now. Change-Id: Ica6870fb6af8b982bc2710e7b63092c513fa4755 Author: Danny Baumann Date: Mon Dec 2 09:34:22 2019 +0100 Beautify call stats details category headers. Make them consistent with how pref category headers are displayed. Change-Id: I4ee8bb2dae11970051552d14df2d58d7ab6a3fdf Change-Id: I9f2b6e912ca69a5aa7a1790bed06304ee953e752 --- .../dialer/app/calllog/CallLogActivity.java | 33 ++++++++++++++++++---- .../ExpirableCacheHeadlessFragment.java | 4 +-- .../com/android/dialer/app/res/values/cm_attrs.xml | 26 +++++++++++++++++ .../android/dialer/app/res/values/cm_strings.xml | 2 ++ 4 files changed, 57 insertions(+), 8 deletions(-) create mode 100644 java/com/android/dialer/app/res/values/cm_attrs.xml (limited to 'java/com/android/dialer/app') diff --git a/java/com/android/dialer/app/calllog/CallLogActivity.java b/java/com/android/dialer/app/calllog/CallLogActivity.java index f28aa0fc7..ff3ff558a 100644 --- a/java/com/android/dialer/app/calllog/CallLogActivity.java +++ b/java/com/android/dialer/app/calllog/CallLogActivity.java @@ -33,6 +33,8 @@ import android.view.ViewGroup; import com.android.contacts.common.list.ViewPagerTabs; import com.android.dialer.app.R; import com.android.dialer.calldetails.OldCallDetailsActivity; +import com.android.dialer.callstats.CallStatsFragment; +import com.android.dialer.callstats.DoubleDatePickerDialog; import com.android.dialer.common.Assert; import com.android.dialer.constants.ActivityRequestCodes; import com.android.dialer.database.CallLogQueryHandler; @@ -45,17 +47,19 @@ import com.android.dialer.util.TransactionSafeActivity; import com.android.dialer.util.ViewUtil; /** Activity for viewing call history. */ -public class CallLogActivity extends TransactionSafeActivity - implements ViewPager.OnPageChangeListener { +public class CallLogActivity extends TransactionSafeActivity implements + ViewPager.OnPageChangeListener, DoubleDatePickerDialog.OnDateSetListener { @VisibleForTesting static final int TAB_INDEX_ALL = 0; @VisibleForTesting static final int TAB_INDEX_MISSED = 1; - private static final int TAB_INDEX_COUNT = 2; + private static final int TAB_INDEX_STATS = 2; + private static final int TAB_INDEX_COUNT = 3; private ViewPager viewPager; private ViewPagerTabs viewPagerTabs; private ViewPagerAdapter viewPagerAdapter; private CallLogFragment allCallsFragment; private CallLogFragment missedCallsFragment; + private CallStatsFragment statsFragment; private String[] tabTitles; private boolean isResumed; private int selectedPageIndex; @@ -86,6 +90,7 @@ public class CallLogActivity extends TransactionSafeActivity tabTitles = new String[TAB_INDEX_COUNT]; tabTitles[0] = getString(R.string.call_log_all_title); tabTitles[1] = getString(R.string.call_log_missed_title); + tabTitles[2] = getString(R.string.call_log_stats_title); viewPager = (ViewPager) findViewById(R.id.call_log_pager); @@ -187,6 +192,15 @@ public class CallLogActivity extends TransactionSafeActivity viewPagerTabs.onPageScrollStateChanged(state); } + @Override + public void onDateSet(long from, long to) { + switch (viewPager.getCurrentItem()) { + case TAB_INDEX_STATS: + statsFragment.onDateSet(from, to); + break; + } + } + private void sendScreenViewForChildFragment() { Logger.get(this).logScreenView(ScreenEvent.Type.CALL_LOG_FILTER, this); } @@ -213,6 +227,8 @@ public class CallLogActivity extends TransactionSafeActivity missedCallsFragment.markMissedCallsAsReadAndRemoveNotifications(); } break; + case TAB_INDEX_STATS: + break; default: throw Assert.createIllegalStateFailException("Invalid position: " + position); } @@ -244,6 +260,8 @@ public class CallLogActivity extends TransactionSafeActivity CallLogQueryHandler.CALL_TYPE_ALL, true /* isCallLogActivity */); case TAB_INDEX_MISSED: return new CallLogFragment(Calls.MISSED_TYPE, true /* isCallLogActivity */); + case TAB_INDEX_STATS: + return new CallStatsFragment(); default: throw new IllegalStateException("No fragment at position " + position); } @@ -251,13 +269,16 @@ public class CallLogActivity extends TransactionSafeActivity @Override public Object instantiateItem(ViewGroup container, int position) { - final CallLogFragment fragment = (CallLogFragment) super.instantiateItem(container, position); + final Object fragment = super.instantiateItem(container, position); switch (getRtlPosition(position)) { case TAB_INDEX_ALL: - allCallsFragment = fragment; + allCallsFragment = (CallLogFragment) fragment; break; case TAB_INDEX_MISSED: - missedCallsFragment = fragment; + missedCallsFragment = (CallLogFragment) fragment; + break; + case TAB_INDEX_STATS: + statsFragment = (CallStatsFragment) fragment; break; default: throw Assert.createIllegalStateFailException("Invalid position: " + position); diff --git a/java/com/android/dialer/app/contactinfo/ExpirableCacheHeadlessFragment.java b/java/com/android/dialer/app/contactinfo/ExpirableCacheHeadlessFragment.java index aed51b507..267dc6250 100644 --- a/java/com/android/dialer/app/contactinfo/ExpirableCacheHeadlessFragment.java +++ b/java/com/android/dialer/app/contactinfo/ExpirableCacheHeadlessFragment.java @@ -34,7 +34,8 @@ public class ExpirableCacheHeadlessFragment extends Fragment { private static final String FRAGMENT_TAG = "ExpirableCacheHeadlessFragment"; private static final int CONTACT_INFO_CACHE_SIZE = 100; - private ExpirableCache retainedCache; + private ExpirableCache retainedCache = + ExpirableCache.create(CONTACT_INFO_CACHE_SIZE); @NonNull public static ExpirableCacheHeadlessFragment attach(@NonNull AppCompatActivity parentActivity) { @@ -57,7 +58,6 @@ public class ExpirableCacheHeadlessFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - retainedCache = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE); setRetainInstance(true); } diff --git a/java/com/android/dialer/app/res/values/cm_attrs.xml b/java/com/android/dialer/app/res/values/cm_attrs.xml new file mode 100644 index 000000000..3155845c5 --- /dev/null +++ b/java/com/android/dialer/app/res/values/cm_attrs.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/java/com/android/dialer/app/res/values/cm_strings.xml b/java/com/android/dialer/app/res/values/cm_strings.xml index 1e872c4a0..1dcdb2b81 100644 --- a/java/com/android/dialer/app/res/values/cm_strings.xml +++ b/java/com/android/dialer/app/res/values/cm_strings.xml @@ -41,4 +41,6 @@ Call via Call via\u2026 + + Statistics -- cgit v1.2.3