diff options
author | calderwoodra <calderwoodra@google.com> | 2018-01-31 17:05:48 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-31 20:29:23 -0800 |
commit | f1c6988bddc52f9b37b2359d1668faf8681953b0 (patch) | |
tree | c3fb1dbdb86a0c451c99721160b246f87a020f46 /java/com/android/dialer/app/calllog/CallLogAdapter.java | |
parent | ef5b8668e881cb29b8b386e5d1ea93527e3a9a52 (diff) | |
download | android_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.java | 16 |
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); |