From f1a36648ca099d7ffa8a19e403673820d4b8417a Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Sat, 12 Oct 2013 17:50:42 -0400 Subject: [PATCH] Implement new SYSTEM_UI_FLAG_IMMERSIVE_STICKY. Migrate transient bar mode to IMMERSIVE_STICKY, and introduce new behavior for IMMERSIVE: namely the opaque bars are revealed by clearing the flags on swipe. Remove low-profile optimization that confuses api demos and other apps using low-profile as a signal. TransientNavigationConfirmation renamed to ImmersiveModeConfirmation, and its associated resources, since the confirmation is now shown when the nav bar is shown in either of the two immersive modes. Remove unused Toast.makeBar and associated hidden framework bits now that the confirmation uses a cling instead. Bug:11062108 Change-Id: Iae49d31973940b9bee9f5b1827756db5eaa76aa3 --- core/java/android/provider/Settings.java | 2 +- core/java/android/widget/Toast.java | 69 +--------------- core/res/res/anim/toast_bar_enter.xml | 27 ------ core/res/res/anim/toast_bar_exit.xml | 26 ------ core/res/res/drawable-hdpi/toast_bar_bg.9.png | Bin 599 -> 0 bytes core/res/res/drawable-mdpi/toast_bar_bg.9.png | Bin 374 -> 0 bytes .../res/res/drawable-xhdpi/toast_bar_bg.9.png | Bin 814 -> 0 bytes ...ion_cling.xml => immersive_mode_cling.xml} | 2 +- core/res/res/layout/toast_bar.xml | 70 ---------------- core/res/res/values-land/dimens.xml | 2 +- core/res/res/values-sw600dp/dimens.xml | 2 +- core/res/res/values/config.xml | 4 +- core/res/res/values/dimens.xml | 2 +- core/res/res/values/strings.xml | 4 +- core/res/res/values/styles.xml | 6 -- core/res/res/values/symbols.xml | 7 +- ...on.java => ImmersiveModeConfirmation.java} | 39 +++++---- .../policy/impl/PhoneWindowManager.java | 78 +++++++++++------- .../server/NotificationManagerService.java | 8 +- 19 files changed, 81 insertions(+), 267 deletions(-) delete mode 100644 core/res/res/anim/toast_bar_enter.xml delete mode 100644 core/res/res/anim/toast_bar_exit.xml delete mode 100644 core/res/res/drawable-hdpi/toast_bar_bg.9.png delete mode 100644 core/res/res/drawable-mdpi/toast_bar_bg.9.png delete mode 100644 core/res/res/drawable-xhdpi/toast_bar_bg.9.png rename core/res/res/layout/{transient_navigation_cling.xml => immersive_mode_cling.xml} (96%) delete mode 100644 core/res/res/layout/toast_bar.xml rename policy/src/com/android/internal/policy/impl/{TransientNavigationConfirmation.java => ImmersiveModeConfirmation.java} (90%) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 6f1c6baf48ca4..7f245394d2462 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -4379,7 +4379,7 @@ public final class Settings { public static final String BAR_SERVICE_COMPONENT = "bar_service_component"; /** @hide */ - public static final String TRANSIENT_NAV_CONFIRMATIONS = "transient_nav_confirmations"; + public static final String IMMERSIVE_MODE_CONFIRMATIONS = "immersive_mode_confirmations"; /** * This is the query URI for finding a print service to install. diff --git a/core/java/android/widget/Toast.java b/core/java/android/widget/Toast.java index 4b71e36db2a00..e38dfa74d2418 100644 --- a/core/java/android/widget/Toast.java +++ b/core/java/android/widget/Toast.java @@ -75,9 +75,6 @@ public class Toast { */ public static final int LENGTH_LONG = 1; - /** @hide */ - public static final int LENGTH_INFINITE = 2; - final Context mContext; final TN mTN; int mDuration; @@ -294,61 +291,6 @@ public class Toast { tv.setText(s); } - /** @hide */ - public static Toast makeBar(Context context, int resId, int duration) { - return makeBar(context, context.getResources().getText(resId), duration); - } - - /** @hide */ - public static Toast makeBar(Context context, CharSequence text, int duration) { - Toast result = new Toast(context); - - LayoutInflater inflate = (LayoutInflater) - context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View v = inflate.inflate(com.android.internal.R.layout.toast_bar, null); - ((TextView)v.findViewById(android.R.id.message)).setText(text); - v.findViewById(android.R.id.button1).setVisibility(View.GONE); - - result.mNextView = v; - result.mDuration = duration; - result.mTN.mParams.alpha = 0.9f; - result.mTN.mParams.windowAnimations = com.android.internal.R.style.Animation_ToastBar; - - return result; - } - - /** @hide */ - public Toast setAction(int resId, Runnable action) { - return setAction(mContext.getResources().getText(resId), action); - } - - /** @hide */ - public Toast setAction(CharSequence actionText, final Runnable action) { - if (mNextView != null) { - TextView text1 = (TextView)mNextView.findViewById(android.R.id.text1); - View button1 = mNextView.findViewById(android.R.id.button1); - if (text1 != null && button1 != null) { - text1.setText(actionText); - button1.setVisibility(View.VISIBLE); - button1.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (action != null) { - action.run(); - } - }}); - return setInteractive(true); - } - } - throw new RuntimeException("This Toast was not created with Toast.makeBar()"); - } - - /** @hide */ - public Toast setInteractive(boolean interactive) { - mTN.setInteractive(interactive); - return this; - } - // ======================================================================================= // All the gunk below is the interaction with the Notification Service, which handles // the proper ordering of these system-wide. @@ -405,16 +347,9 @@ public class Toast { params.windowAnimations = com.android.internal.R.style.Animation_Toast; params.type = WindowManager.LayoutParams.TYPE_TOAST; params.setTitle("Toast"); - setInteractive(false); - } - - private void setInteractive(boolean interactive) { - mParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE - | (interactive - ? (WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL - | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH) - : WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); + | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; } /** diff --git a/core/res/res/anim/toast_bar_enter.xml b/core/res/res/anim/toast_bar_enter.xml deleted file mode 100644 index 5c0dfcf099128..0000000000000 --- a/core/res/res/anim/toast_bar_enter.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - diff --git a/core/res/res/anim/toast_bar_exit.xml b/core/res/res/anim/toast_bar_exit.xml deleted file mode 100644 index 4e3b7dac86cb7..0000000000000 --- a/core/res/res/anim/toast_bar_exit.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - diff --git a/core/res/res/drawable-hdpi/toast_bar_bg.9.png b/core/res/res/drawable-hdpi/toast_bar_bg.9.png deleted file mode 100644 index 2396b2631973db6ae84cb5ba5a4406bde7606423..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 599 zcmV-d0;v6oP)cWL!ZJoeH9H7`u>9UVkaNSLxq>9p~u;+f8sC=#p8a#ip5P!6BEp0OrZ7v zEQA{pw=_;9v?JJTHd!u#?2sUa*^*&@q3in80jV{d#hJ*K;Udfy|K8_BZZsNwI3>ne zoQdoRTuiYrKE^bm(#;D8#TJ~2>?mAJF$pUrLzG<*D;&VmSTzr#1vo57xTq@F<;CV^O_hgo)imsUCguF9&@8O z7!2l4$Z-Z|{j^aOw${B~?~NWoWWU^$2Sb)z^mZ!Ss`jfhtP=!VnRIH zWP(~cYS)mJL$-0?HAfIr7{hV>5)bg()QLNyjbe6aqgEZYE66fh1QJ|?VK!B8V-8b% zg^yFivbKYUT4mJEAxmhgU_lDAX11X)wP}2mSuE#*P4cLfL2bpV4Ye({*|?J&Y}`qf ljk`U={Z{9mv2vIlu`hP3JnJySy*=wk}GtRWnxwh$zB^8p*YL3`?4(CAu-u2jy%sFth0`5 ze|m>uc$KEnBd`JrT!RhRI9> zntNAt=?QDrjPrfLCyV%g6Gvk1UD7rG@quE+d_HQxAF&Ss9lnnI4(S7SOw8xp7xi4v Uf~KxjD*ylh07*qoM6N<$g6-F%)&Kwi diff --git a/core/res/res/drawable-xhdpi/toast_bar_bg.9.png b/core/res/res/drawable-xhdpi/toast_bar_bg.9.png deleted file mode 100644 index 1dc49279290b897ad80cef4bc21445f051744404..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 814 zcmV+}1JV46P)^`eRg!3|`lmO~H&w1u+kGrT+O8I6~ zPs${$WsI|pAPztQI;uU4ngBouVZ*u!XapnxP(TLgwY9YeMNvG`THgb1PFRscYwhR3 zVDM^lbMuV@u`!TRN@5W0dOrj5_4W1VMNvE@0W-$D+}PN70T`eTVU$v$8`Q{vVr6CJ zeku?Ed7eLBU0r<$6h2zQ-@^|cA_r!=-R?6Ivreb;1ekF?hU1nzP{W5+0nBQx@1_Ql zW!W8I)`e9KXgB4bs>rM>NtuY`i;Ii5oR3+khz=lh7+NH1#+aFCoTw&6v;)ag1rd=v zf>5y{1mh%G5NmA=(l~2{gFaQ$K^Y4&i7m*#gjVd|i7`U_W1`l$flWDt{yN?+v#C~* z7NiAfL0XXMg7_PgtDuN#Ln|eaX*}L+6=^|QkQU^>1(8b$GH$6j4MeQ9gOt`75kW-k z!NI{%tVRqXVJXY79sdwYBDh_Y6( zBK`~i2eZAs{b_%H|7}%O$`~`1Os$Auj8Rop>0Yn*ers#%15w7x`>sU9r`!tuq!O+J zbHF?>zqGWpys)sa-05^~XIa*rBuHJ?M`c-l>-BmccXoC@0*AnN;0N#vsDJ@bhfnQ% zI^i17bue?TeFNw?*pa8;7c`~%5FY@gbNa{u9J=-~(02++9-W{L4$gznv+f|DmzV^I z_oZ?mKLZtfcn#w{4-OuV59jo81TixO5aS##oj+kXjSToEMM5Y2$&MXFKH<07*qoM6N<$f;{_pM*si- diff --git a/core/res/res/layout/transient_navigation_cling.xml b/core/res/res/layout/immersive_mode_cling.xml similarity index 96% rename from core/res/res/layout/transient_navigation_cling.xml rename to core/res/res/layout/immersive_mode_cling.xml index d33d96569d867..f97225eaeb9e2 100644 --- a/core/res/res/layout/transient_navigation_cling.xml +++ b/core/res/res/layout/immersive_mode_cling.xml @@ -44,7 +44,7 @@ diff --git a/core/res/res/layout/toast_bar.xml b/core/res/res/layout/toast_bar.xml deleted file mode 100644 index a31d7cb14760a..0000000000000 --- a/core/res/res/layout/toast_bar.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml index 81b4c09a8ece5..dc59f61f29e38 100644 --- a/core/res/res/values-land/dimens.xml +++ b/core/res/res/values-land/dimens.xml @@ -61,6 +61,6 @@ Landscape's layout allows this to be smaller than for portrait. --> 400dp - + 380dp diff --git a/core/res/res/values-sw600dp/dimens.xml b/core/res/res/values-sw600dp/dimens.xml index 6b5c5051c51f9..d21f9b789d542 100644 --- a/core/res/res/values-sw600dp/dimens.xml +++ b/core/res/res/values-sw600dp/dimens.xml @@ -113,6 +113,6 @@ 12dp - + 380dp diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 2bcd82068a7f7..196be743da152 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1259,8 +1259,8 @@ - 5000 + immersive mode confirmation prompt.--> + 5000 -1 diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index f43581eb853e9..aad62520e3098 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -356,6 +356,6 @@ 2dp - + -1px diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 92a6e52b46230..e82ad1ec24d41 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -4486,7 +4486,7 @@ Try again later - - Swipe down from the top to exit full screen. + + Swipe down from the top to exit full screen. diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml index c5dab3be66c09..cb2fd6d0e951e 100644 --- a/core/res/res/values/styles.xml +++ b/core/res/res/values/styles.xml @@ -138,12 +138,6 @@ please see styles_device_defaults.xml. @anim/submenu_exit - - -