From 749c133680f4ddc67141a52e208352e947961bb2 Mon Sep 17 00:00:00 2001 From: Anthony Hugh Date: Tue, 5 Jun 2018 16:00:34 -0700 Subject: [PATCH 1/8] Fix toast for wearables Update margins, colors, etc. to ensure toast on wearables looks correct. BUG: 71634382 Change-Id: I8180e5080e0a6860b40dbb2faa791f0ede926ca7 --- core/res/res/drawable-watch/toast_frame.xml | 24 ++++++++++++ .../layout-watch/transient_notification.xml | 37 +++++++++++++++++++ .../res/values-w210dp-round-watch/dimens.xml | 18 +++++++++ core/res/res/values-watch/config.xml | 3 ++ core/res/res/values-watch/dimens.xml | 3 ++ core/res/res/values-watch/styles.xml | 22 +++++++++++ 6 files changed, 107 insertions(+) create mode 100644 core/res/res/drawable-watch/toast_frame.xml create mode 100644 core/res/res/layout-watch/transient_notification.xml create mode 100644 core/res/res/values-w210dp-round-watch/dimens.xml create mode 100644 core/res/res/values-watch/styles.xml diff --git a/core/res/res/drawable-watch/toast_frame.xml b/core/res/res/drawable-watch/toast_frame.xml new file mode 100644 index 0000000000000..60129a2086fd0 --- /dev/null +++ b/core/res/res/drawable-watch/toast_frame.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/core/res/res/layout-watch/transient_notification.xml b/core/res/res/layout-watch/transient_notification.xml new file mode 100644 index 0000000000000..aeae699eaa7da --- /dev/null +++ b/core/res/res/layout-watch/transient_notification.xml @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/core/res/res/values-w210dp-round-watch/dimens.xml b/core/res/res/values-w210dp-round-watch/dimens.xml new file mode 100644 index 0000000000000..8e3545d844217 --- /dev/null +++ b/core/res/res/values-w210dp-round-watch/dimens.xml @@ -0,0 +1,18 @@ + + + + 15sp + diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml index e12f04af773b6..8e824791ef15c 100644 --- a/core/res/res/values-watch/config.xml +++ b/core/res/res/values-watch/config.xml @@ -68,4 +68,7 @@ true true false + + + 0x00000011 diff --git a/core/res/res/values-watch/dimens.xml b/core/res/res/values-watch/dimens.xml index 4c8b39ca92a7b..63999ac405819 100644 --- a/core/res/res/values-watch/dimens.xml +++ b/core/res/res/values-watch/dimens.xml @@ -18,4 +18,7 @@ 0dp 0dp + + 0dip + 13sp diff --git a/core/res/res/values-watch/styles.xml b/core/res/res/values-watch/styles.xml new file mode 100644 index 0000000000000..14a7dee8c3707 --- /dev/null +++ b/core/res/res/values-watch/styles.xml @@ -0,0 +1,22 @@ + + + + + + \ No newline at end of file From fddae047945dfb6811972d88786236b46b5fb913 Mon Sep 17 00:00:00 2001 From: Andrew Zeng Date: Wed, 6 Jun 2018 17:13:39 -0700 Subject: [PATCH 2/8] DO NOT MERGE Update battery stats buffer on wear branch. Bug: 77325007 Change-Id: I9b78dfc01cb2f224645cddab7902123f374cc9a0 --- .../java/com/android/internal/os/BatteryStatsImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 4cc91ec3ae727..6a0cd62b20f2d 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -158,11 +158,11 @@ public class BatteryStatsImpl extends BatteryStats { static { if (ActivityManager.isLowRamDeviceStatic()) { - MAX_HISTORY_ITEMS = 800; - MAX_MAX_HISTORY_ITEMS = 1200; - MAX_WAKELOCKS_PER_UID = 40; - MAX_HISTORY_BUFFER = 96*1024; // 96KB - MAX_MAX_HISTORY_BUFFER = 128*1024; // 128KB + MAX_HISTORY_ITEMS = 2000; + MAX_MAX_HISTORY_ITEMS = 3000; + MAX_WAKELOCKS_PER_UID = 100; + MAX_HISTORY_BUFFER = 256*1024; // 256KB + MAX_MAX_HISTORY_BUFFER = 320*1024; // 320KB } else { MAX_HISTORY_ITEMS = 4000; MAX_MAX_HISTORY_ITEMS = 6000; From 2cc2a3b9d414cf3c7d74128fbceb37cb6e1cba22 Mon Sep 17 00:00:00 2001 From: Andrew Zeng Date: Tue, 12 Sep 2017 15:34:10 -0700 Subject: [PATCH 3/8] DO NOT MERGE Allow windows to show when input restricted. Allows non-activity windows to show instead of being hidden (e.g IME) when lock screen is not showing. This is a difference from current behavior in G when: 1. The device is not interactive (either of AoD-on/-off). 2. The device is interactive and isInputRestricted is true. This allows for consistency w/ activity manager on allowing IME to be visible whenever an activity is allowed to be visible (w/o special flags). Bug: 72027687 Change-Id: I082babcdd4e2ca1c3188da9d43589b1d34fb70c8 (cherry picked from commit 13331922827edd3a0135a1a1be8ac505716f106a) --- .../java/com/android/server/policy/PhoneWindowManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 03e34d3070ab9..9b206987a5500 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3055,7 +3055,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { || (attrs.privateFlags & PRIVATE_FLAG_SYSTEM_ERROR) != 0; } - boolean keyguardLocked = isKeyguardLocked(); + boolean keyguardLocked = + mKeyguardDelegate != null && (mKeyguardDelegate.isShowing() || mKeyguardOccluded); boolean hideDockDivider = attrs.type == TYPE_DOCK_DIVIDER && !mWindowManagerInternal.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY); return (keyguardLocked && !allowWhenLocked && win.getDisplayId() == DEFAULT_DISPLAY) From f1bb25063a1e26a924b541463992f0e7c1465cfe Mon Sep 17 00:00:00 2001 From: Andrew Zeng Date: Fri, 13 Oct 2017 15:49:53 -0700 Subject: [PATCH 4/8] DO NOT MERGE Don't hide IME when keyguard is just occluded. Occluded can be true even when keyguard isn't showing, so an IME might be hidden if it's attempted to be shown while keyguard isn't up. Because of changes made in ag/3022559, when keyguard is occluded and it's in use, it will now actually report as "showing" rather than not showing in order to match the phone behavior, so this shouldn't have any side effects. Bug: 72027687 Change-Id: Ie570b9574c9b22452649a9b044853609476bfa91 --- .../core/java/com/android/server/policy/PhoneWindowManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 9b206987a5500..27cda1f5ded8d 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3056,7 +3056,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } boolean keyguardLocked = - mKeyguardDelegate != null && (mKeyguardDelegate.isShowing() || mKeyguardOccluded); + mKeyguardDelegate != null && mKeyguardDelegate.isShowing(); boolean hideDockDivider = attrs.type == TYPE_DOCK_DIVIDER && !mWindowManagerInternal.isStackVisible(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY); return (keyguardLocked && !allowWhenLocked && win.getDisplayId() == DEFAULT_DISPLAY) From ae1bc34e9994880c3e3a27e2a57cbac8d1656d72 Mon Sep 17 00:00:00 2001 From: Anthony Hugh Date: Thu, 7 Jun 2018 11:40:10 -0700 Subject: [PATCH 5/8] Change roboto-->sans-serif-regular BUG: 71634382 Change-Id: Ifb32031b511771e9261c1307f7e73f1e94851648 --- core/res/res/values-watch/styles.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/res/res/values-watch/styles.xml b/core/res/res/values-watch/styles.xml index 14a7dee8c3707..22257f38c4149 100644 --- a/core/res/res/values-watch/styles.xml +++ b/core/res/res/values-watch/styles.xml @@ -16,7 +16,7 @@ - \ No newline at end of file + From 05238c77436ee575f4dd6fa5b1f385726f52734f Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 9 Jun 2018 22:13:39 -0700 Subject: [PATCH 6/8] Import translations. DO NOT MERGE Change-Id: I1a91a7546288d359f218d7464c56941a60d67715 Auto-generated-cl: translation import --- packages/Keyguard/res/values-el/strings.xml | 2 +- packages/Keyguard/res/values-mr-rIN/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/Keyguard/res/values-el/strings.xml b/packages/Keyguard/res/values-el/strings.xml index d9692667ba0f1..3b0f4bf5e56f7 100644 --- a/packages/Keyguard/res/values-el/strings.xml +++ b/packages/Keyguard/res/values-el/strings.xml @@ -42,7 +42,7 @@ "Τοποθετήστε μια κάρτα SIM." "Η κάρτα SIM δεν υπάρχει ή δεν είναι δυνατή η ανάγνωσή της. Τοποθετήστε μια κάρτα SIM." "Η κάρτα SIM δεν μπορεί να χρησιμοποιηθεί." - "Η κάρτα SIM έχει απενεργοποιηθεί οριστικά.\n Επικοινωνήστε με τον παροχέα υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM." + "Η κάρτα SIM έχει απενεργοποιηθεί οριστικά.\n Επικοινωνήστε με τον πάροχο υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM." "Η κάρτα SIM είναι κλειδωμένη." "Η κάρτα SIM είναι κλειδωμένη με κωδικό PUK." "Ξεκλείδωμα κάρτας SIM…" diff --git a/packages/Keyguard/res/values-mr-rIN/strings.xml b/packages/Keyguard/res/values-mr-rIN/strings.xml index 86e1b8fed6d3b..3ea448a3fc684 100644 --- a/packages/Keyguard/res/values-mr-rIN/strings.xml +++ b/packages/Keyguard/res/values-mr-rIN/strings.xml @@ -87,8 +87,8 @@ "तुम्ही फोन अनलॉक करण्याचा %1$d वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. आणखी %2$d अयशस्वी प्रयत्नांनंतर, कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल." "तुम्ही टॅबलेट अनलॉक करण्याचा %d वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल." "तुम्ही फोन अनलॉक करण्याचा %d वेळा चुकीच्या पद्धतीने प्रयत्न केला आहे. कार्य प्रोफाईल काढले जाईल, जे सर्व प्रोफाईल डेटा हटवेल." - "तुम्ही आपला अनलॉक पॅटर्न %1$d वेळा अयोग्यपणे काढला आहे. आणखी %2$d अयशस्वी प्रयत्नांनंतर, तुमच्याला ईमेल खाते वापरून आपला टॅब्लेट अनलॉक करण्यास सांगितले जाईल.\n\n %3$d सेकंदांमध्ये पुन्हा प्रयत्न करा." - "तुम्ही आपला अनलॉक पॅटर्न %1$d वेळा अयोग्यपणे काढला आहे. आणखी %2$d अयशस्वी प्रयत्नांनंतर, तुमच्याला ईमेल खाते वापरून आपला फोन अनलॉक करण्यास सांगितले जाईल.\n\n %3$d सेकंदांमध्ये पुन्हा प्रयत्न करा." + "तुम्ही आपला अनलॉक पॅटर्न %1$d वेळा अयोग्यपणे काढला आहे. आणखी %2$d अयशस्वी प्रयत्नांनंतर, तुम्हाला ईमेल खाते वापरून आपला टॅब्लेट अनलॉक करण्यास सांगितले जाईल.\n\n %3$d सेकंदांमध्ये पुन्हा प्रयत्न करा." + "तुम्ही आपला अनलॉक पॅटर्न %1$d वेळा अयोग्यपणे काढला आहे. आणखी %2$d अयशस्वी प्रयत्नांनंतर, तुम्हाला ईमेल खाते वापरून आपला फोन अनलॉक करण्यास सांगितले जाईल.\n\n %3$d सेकंदांमध्ये पुन्हा प्रयत्न करा." "सिम पिन कोड चुकीचा आहे तुम्ही आता तुमचे डिव्हाइस अनलॉक करण्‍यासाठी तुमच्या वाहकाशी संपर्क साधावा." चुकीचा सिम पिन कोड, तुमच्याकडे %d प्रयत्न शिल्लक आहे. From 0a8ab83382d6f6969f20644c9f601525ef6cf90b Mon Sep 17 00:00:00 2001 From: Damien Bargiacchi Date: Wed, 30 May 2018 13:19:41 -0700 Subject: [PATCH 7/8] Add a setting for the User Absent, Touch Off feature in Wear This is an extension of the User Absent power feature on Wear aka "for small batteries". Turning the sensor off is one of the aspects of power saving we want to take advantage of when the user is absent. Bug: 77293569 Test: make -j80 Test: Device boots Change-Id: I25a3577d8eb2d157c20ed344056138bc32e8d158 --- core/java/android/provider/Settings.java | 9 +++++++++ core/proto/android/providers/settings/global.proto | 13 ++++++++----- .../src/android/provider/SettingsBackupTest.java | 3 ++- .../providers/settings/SettingsProtoDumpUtil.java | 9 ++++++--- 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 05104182f2ec6..f610610085a58 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -11013,6 +11013,15 @@ public final class Settings { public static final String USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED = "user_absent_radios_off_for_small_battery_enabled"; + /** + * Whether or not to enable the User Absent, Touch Off feature on small battery devices. + * Type: int (0 for false, 1 for true) + * Default: 0 + * @hide + */ + public static final String USER_ABSENT_TOUCH_OFF_FOR_SMALL_BATTERY_ENABLED + = "user_absent_touch_off_for_small_battery_enabled"; + /** * Whether or not to turn on Wifi when proxy is disconnected. * Type: int (0 for false, 1 for true) diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index 99f3034310559..04e5658be5a00 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -600,14 +600,17 @@ message GlobalSettingsProto { } optional Ntp ntp = 84; - // Details about the User Absent, Radios Off feature. - message UserAbsentRadiosOff { + // Details about the User Absent For Small Battery feature. + message UserAbsentSmallBattery { option (android.msg_privacy).dest = DEST_EXPLICIT; - // Whether or not to enable the User Absent, Radios Off feature on small battery devices. - optional SettingProto enabled_for_small_battery = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; + // Whether or not to enable the User Absent, Radios Off feature + optional SettingProto radios_off_enabled = 1 [ (android.privacy).dest = DEST_AUTOMATIC ]; + + // Whether or not to enable the User Absent, Touch Off feature + optional SettingProto touch_off_enabled = 2 [ (android.privacy).dest = DEST_AUTOMATIC ]; } - optional UserAbsentRadiosOff user_absent_radios_off = 85; + optional UserAbsentSmallBattery user_absent_small_battery = 85; // Whether to disable the automatic scheduling of system updates. optional SettingProto ota_disable_automatic_update = 86 [ (android.privacy).dest = DEST_AUTOMATIC ]; diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index fc00f1b93955a..f9e8cbf70ceef 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -341,7 +341,6 @@ public class SettingsBackupTest { Settings.Global.NTP_SERVER, Settings.Global.NTP_TIMEOUT, Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, - Settings.Global.USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED, Settings.Global.OVERLAY_DISPLAY_DEVICES, Settings.Global.PAC_CHANGE_DELAY, Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE, @@ -436,6 +435,8 @@ public class SettingsBackupTest { Settings.Global.UNGAZE_SLEEP_ENABLED, Settings.Global.UNLOCK_SOUND, Settings.Global.USE_GOOGLE_MAIL, + Settings.Global.USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED, + Settings.Global.USER_ABSENT_TOUCH_OFF_FOR_SMALL_BATTERY_ENABLED, Settings.Global.VT_IMS_ENABLED, Settings.Global.WAIT_FOR_DEBUGGER, Settings.Global.ENABLE_GPU_DEBUG_LAYERS, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index d5efcb549e648..77eb6c472e4ad 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -963,11 +963,14 @@ class SettingsProtoDumpUtil { GlobalSettingsProto.Ntp.TIMEOUT_MS); p.end(ntpToken); - final long uaroToken = p.start(GlobalSettingsProto.USER_ABSENT_RADIOS_OFF); + final long uasbToken = p.start(GlobalSettingsProto.USER_ABSENT_SMALL_BATTERY); dumpSetting(s, p, Settings.Global.USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED, - GlobalSettingsProto.UserAbsentRadiosOff.ENABLED_FOR_SMALL_BATTERY); - p.end(uaroToken); + GlobalSettingsProto.UserAbsentSmallBattery.RADIOS_OFF_ENABLED); + dumpSetting(s, p, + Settings.Global.USER_ABSENT_TOUCH_OFF_FOR_SMALL_BATTERY_ENABLED, + GlobalSettingsProto.UserAbsentSmallBattery.TOUCH_OFF_ENABLED); + p.end(uasbToken); dumpSetting(s, p, Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE, From 4ce799a459e69e8331952fa137e4184590ab41cc Mon Sep 17 00:00:00 2001 From: Damien Bargiacchi Date: Wed, 30 May 2018 13:28:15 -0700 Subject: [PATCH 8/8] Start the WearPowerService with the other Wear system services The WearPowerService is in charge of coordinating and keeping track of devices and state concerned with power. Bug: 77293569 Change-Id: Ia40ad44a53ef6872dd7ebefd58e17179126dde92 --- services/java/com/android/server/SystemServer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 1880e9fa362c6..b4613bfc88933 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -203,6 +203,8 @@ public final class SystemServer { "com.google.android.clockwork.WearConfigManagerService"; private static final String WEAR_CONNECTIVITY_SERVICE_CLASS = "com.android.clockwork.connectivity.WearConnectivityService"; + private static final String WEAR_POWER_SERVICE_CLASS = + "com.android.clockwork.power.WearPowerService"; private static final String WEAR_SIDEKICK_SERVICE_CLASS = "com.google.android.clockwork.sidekick.SidekickService"; private static final String WEAR_DISPLAY_SERVICE_CLASS = @@ -1555,12 +1557,20 @@ public final class SystemServer { mSystemServiceManager.startService(WEAR_CONFIG_SERVICE_CLASS); traceEnd(); + // Must be started before services that depend it, e.g. WearConnectivityService + traceBeginAndSlog("StartWearPowerService"); + mSystemServiceManager.startService(WEAR_POWER_SERVICE_CLASS); + traceEnd(); + traceBeginAndSlog("StartWearConnectivityService"); mSystemServiceManager.startService(WEAR_CONNECTIVITY_SERVICE_CLASS); traceEnd(); - traceBeginAndSlog("StartWearTimeService"); + traceBeginAndSlog("StartWearDisplayService"); mSystemServiceManager.startService(WEAR_DISPLAY_SERVICE_CLASS); + traceEnd(); + + traceBeginAndSlog("StartWearTimeService"); mSystemServiceManager.startService(WEAR_TIME_SERVICE_CLASS); traceEnd();