From 51c2619c7706575a171cf29819db14e91b815a62 Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Tue, 20 Oct 2015 16:01:27 -0700 Subject: [PATCH] Delay hiding the cast icon for 3 seconds. DO NOT MERGE Ensure that the user has had a chance to see it for a few seconds after screen recording has ended. (cherry picked from commit 8fd25bf7711aabffe73213ba1f9056f285270695) Bug: 19121797 Change-Id: I7a5c12b371b735c756ca5a3e8716c385fb3fbfe9 --- .../statusbar/phone/PhoneStatusBarPolicy.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java index 5c254a26558d5..025a0f981a979 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java @@ -106,6 +106,14 @@ public class PhoneStatusBarPolicy { } }; + private Runnable mRemoveCastIconRunnable = new Runnable() { + @Override + public void run() { + if (DEBUG) Log.v(TAG, "updateCast: hiding icon NOW"); + mService.setIconVisibility(SLOT_CAST, false); + } + }; + public PhoneStatusBarPolicy(Context context, CastController cast, HotspotController hotspot) { mContext = context; mCast = cast; @@ -304,11 +312,17 @@ public class PhoneStatusBarPolicy { } } if (DEBUG) Log.v(TAG, "updateCast: isCasting: " + isCasting); + mHandler.removeCallbacks(mRemoveCastIconRunnable); if (isCasting) { mService.setIcon(SLOT_CAST, R.drawable.stat_sys_cast, 0, mContext.getString(R.string.accessibility_casting)); + mService.setIconVisibility(SLOT_CAST, true); + } else { + // don't turn off the screen-record icon for a few seconds, just to make sure the user + // has seen it + if (DEBUG) Log.v(TAG, "updateCast: hiding icon in 3 sec..."); + mHandler.postDelayed(mRemoveCastIconRunnable, 3000); } - mService.setIconVisibility(SLOT_CAST, isCasting); } private final HotspotController.Callback mHotspotCallback = new HotspotController.Callback() {