From 3edf1abd74ee1aaeaee7d152b7658922916a4201 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Wed, 9 Aug 2017 12:45:45 -0700 Subject: Post call prompt now only shows if the user pressed the disconnect button. In addition, this also fixes an issue where if a user upgrade their calls to duo video calls quickly, they would see the post call prompt. Bug: 62689536,64113693 Test: PostCallIntegrationTest PiperOrigin-RevId: 164758520 Change-Id: I5f91c40e78ce1ff82521a38b0ce5898095849134 --- java/com/android/dialer/postcall/PostCall.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'java/com/android/dialer') diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java index c4922cd02..011fbc985 100644 --- a/java/com/android/dialer/postcall/PostCall.java +++ b/java/com/android/dialer/postcall/PostCall.java @@ -46,6 +46,7 @@ public class PostCall { private static final String KEY_POST_CALL_CALL_CONNECT_TIME = "post_call_call_connect_time"; private static final String KEY_POST_CALL_CALL_NUMBER = "post_call_call_number"; private static final String KEY_POST_CALL_MESSAGE_SENT = "post_call_message_sent"; + private static final String KEY_POST_CALL_DISCONNECT_PRESSED = "post_call_disconnect_pressed"; private static Snackbar activeSnackbar; @@ -146,6 +147,13 @@ public class PostCall { .apply(); } + public static void onDisconnectPressed(Context context) { + DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context) + .edit() + .putBoolean(KEY_POST_CALL_DISCONNECT_PRESSED, true) + .apply(); + } + public static void onCallDisconnected(Context context, String number, long callConnectedMillis) { DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context) .edit() @@ -185,6 +193,7 @@ public class PostCall { .remove(KEY_POST_CALL_CALL_NUMBER) .remove(KEY_POST_CALL_MESSAGE_SENT) .remove(KEY_POST_CALL_CALL_CONNECT_TIME) + .remove(KEY_POST_CALL_DISCONNECT_PRESSED) .apply(); } @@ -197,6 +206,8 @@ public class PostCall { long timeSinceDisconnect = System.currentTimeMillis() - disconnectTimeMillis; long callDurationMillis = disconnectTimeMillis - connectTimeMillis; + boolean callDisconnectedByUser = manager.getBoolean(KEY_POST_CALL_DISCONNECT_PRESSED, false); + ConfigProvider binding = ConfigProviderBindings.get(context); return disconnectTimeMillis != -1 && connectTimeMillis != -1 @@ -204,7 +215,8 @@ public class PostCall { && binding.getLong("postcall_last_call_threshold", 30_000) > timeSinceDisconnect && (connectTimeMillis == 0 || binding.getLong("postcall_call_duration_threshold", 35_000) > callDurationMillis) - && getPhoneNumber(context) != null; + && getPhoneNumber(context) != null + && callDisconnectedByUser; } private static boolean shouldPromptUserToViewSentMessage(Context context) { -- cgit v1.2.3