From 39009b4ad73d5017295b30fb18a77224195f06af Mon Sep 17 00:00:00 2001 From: zachh Date: Mon, 12 Feb 2018 16:49:00 -0800 Subject: Mark calls as read in new call log. Playing with the existing app, the missed call becomes unbolded when: 1) Expanding the row. The closest analog of this is in the new UI is opening the bottom sheet, I've done that. 2) Swiping away from the call history tab. This can't be done in NewCallLogFragment because it doesn't know if the user is selected a new tab or pressed Home. So, I implemented this in NewMainActivityPeer. 3) After viewing the call log for 3(ish) seconds and leaving the activity pressing Home/Back. This is best done in NewCallLogFragment#onResume since MainActivity doesn't always know when the fragment is being displayed (it could be done after the user comes back to the app after pressing Home for example). Note that the notification is also removed in all of these cases. Also note that dismissing the notification makes the call unbolded (but this case already appears to be handled via the system call log content observer). Also, as part of writing tests for this, I made TestCallLogProvider more realistic. Bug: 70989622 Test: manual PiperOrigin-RevId: 185457438 Change-Id: Ib360d3bc73083bd1a018ed98e2b7d9a69fb7fafb --- .../simulator/impl/SimulatorSimCallManager.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'java/com/android/dialer/simulator') diff --git a/java/com/android/dialer/simulator/impl/SimulatorSimCallManager.java b/java/com/android/dialer/simulator/impl/SimulatorSimCallManager.java index 00899fd69..f28393c0c 100644 --- a/java/com/android/dialer/simulator/impl/SimulatorSimCallManager.java +++ b/java/com/android/dialer/simulator/impl/SimulatorSimCallManager.java @@ -29,6 +29,7 @@ import android.telecom.TelecomManager; import android.telephony.TelephonyManager; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.strictmode.StrictModeUtils; import java.util.Arrays; import java.util.List; import java.util.Random; @@ -53,17 +54,23 @@ public class SimulatorSimCallManager { static void register(@NonNull Context context) { LogUtil.enterBlock("SimulatorSimCallManager.register"); Assert.isNotNull(context); - TelecomManager telecomManager = context.getSystemService(TelecomManager.class); - telecomManager.registerPhoneAccount(buildSimCallManagerAccount(context)); - telecomManager.registerPhoneAccount(buildVideoProviderAccount(context)); + StrictModeUtils.bypass( + () -> { + TelecomManager telecomManager = context.getSystemService(TelecomManager.class); + telecomManager.registerPhoneAccount(buildSimCallManagerAccount(context)); + telecomManager.registerPhoneAccount(buildVideoProviderAccount(context)); + }); } static void unregister(@NonNull Context context) { LogUtil.enterBlock("SimulatorSimCallManager.unregister"); Assert.isNotNull(context); - TelecomManager telecomManager = context.getSystemService(TelecomManager.class); - telecomManager.unregisterPhoneAccount(getSimCallManagerHandle(context)); - telecomManager.unregisterPhoneAccount(getVideoProviderHandle(context)); + StrictModeUtils.bypass( + () -> { + TelecomManager telecomManager = context.getSystemService(TelecomManager.class); + telecomManager.unregisterPhoneAccount(getSimCallManagerHandle(context)); + telecomManager.unregisterPhoneAccount(getVideoProviderHandle(context)); + }); } @NonNull -- cgit v1.2.3