summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/app/calllog/CallLogAdapter.java
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2018-01-31 17:05:48 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-31 20:29:23 -0800
commitf1c6988bddc52f9b37b2359d1668faf8681953b0 (patch)
treec3fb1dbdb86a0c451c99721160b246f87a020f46 /java/com/android/dialer/app/calllog/CallLogAdapter.java
parentef5b8668e881cb29b8b386e5d1ea93527e3a9a52 (diff)
downloadandroid_packages_apps_Dialer-f1c6988bddc52f9b37b2359d1668faf8681953b0.tar.gz
android_packages_apps_Dialer-f1c6988bddc52f9b37b2359d1668faf8681953b0.tar.bz2
android_packages_apps_Dialer-f1c6988bddc52f9b37b2359d1668faf8681953b0.zip
Implemented missed call/voicemail notifications in NUI.
This CL shows and updates the missed call/voicemail count in the bottom nav. It also clears the call log notifications when the user either leaves the call log fragment or closes the activity after 3 seconds of browsing the call log. Bug: 72525595 Test: tba PiperOrigin-RevId: 184071058 Change-Id: I540c9e3d815e022b5e311cb02a3995e241b8a984
Diffstat (limited to 'java/com/android/dialer/app/calllog/CallLogAdapter.java')
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 9e1d4a7b9..b8ec168f6 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -54,8 +54,8 @@ import android.view.ViewGroup;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.contacts.common.preference.ContactsPreferences;
-import com.android.dialer.app.DialtactsActivity;
import com.android.dialer.app.R;
+import com.android.dialer.app.calllog.CallLogFragment.CallLogFragmentListener;
import com.android.dialer.app.calllog.CallLogGroupBuilder.GroupCreator;
import com.android.dialer.app.calllog.calllogcache.CallLogCache;
import com.android.dialer.app.contactinfo.ContactInfoCache;
@@ -68,6 +68,7 @@ import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction;
import com.android.dialer.calllogutils.PhoneCallDetails;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.FragmentUtils.FragmentUtilListener;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.AsyncTaskExecutor;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
@@ -379,7 +380,18 @@ public class CallLogAdapter extends GroupingListAdapter
if (viewHolder.callType == CallLog.Calls.MISSED_TYPE) {
CallLogAsyncTaskUtil.markCallAsRead(activity, viewHolder.callIds);
if (activityType == ACTIVITY_TYPE_DIALTACTS) {
- ((DialtactsActivity) v.getContext()).updateTabUnreadCounts();
+ if (v.getContext() instanceof CallLogFragmentListener) {
+ ((CallLogFragmentListener) v.getContext()).updateTabUnreadCounts();
+ } else if (v.getContext() instanceof FragmentUtilListener) {
+ // This is really bad, but we must do this to prevent a dependency cycle, enforce
+ // best practices in new code, and avoid refactoring DialtactsActivity.
+ ((FragmentUtilListener) v.getContext())
+ .getImpl(CallLogFragmentListener.class)
+ .updateTabUnreadCounts();
+ } else {
+ throw Assert.createIllegalStateFailException(
+ "View parent does not implement CallLogFragmentListener");
+ }
}
}
expandViewHolderActions(viewHolder);