From fe5978cde17e57ea085b2448f8ac96eba6d7ea68 Mon Sep 17 00:00:00 2001 From: SongFerng Wang Date: Fri, 13 Jan 2023 04:18:34 +0000 Subject: [PATCH 1/7] Revert "[MEP] psim->esim, don't skip carrierConfigChanged with subId -1" This reverts commit 078ecbd765abca3a2a78c5af16b80796b82d3a90. Reason for revert: The in-market device have error by some unknown reasons at b/264371574. To revert it, then the settings wait the 25s, it can protect the system has enough time for enabling esim. Change-Id: Ic17380f549c764306851ad5cba6360f68df9b9b5 --- .../network/CarrierConfigChangedReceiver.java | 16 ++-------------- .../android/settings/network/UiccSlotUtil.java | 11 ++++------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/com/android/settings/network/CarrierConfigChangedReceiver.java b/src/com/android/settings/network/CarrierConfigChangedReceiver.java index d9ff03efb6a..8a6d47d96fc 100644 --- a/src/com/android/settings/network/CarrierConfigChangedReceiver.java +++ b/src/com/android/settings/network/CarrierConfigChangedReceiver.java @@ -32,20 +32,9 @@ public class CarrierConfigChangedReceiver extends BroadcastReceiver { CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED; private final CountDownLatch mLatch; - private final boolean mIsWaitingForValidSubId; - /** - * This is the CarrierConfigChanged receiver. If it receives the carrier config changed, then it - * call the CountDownLatch.countDown(). - * If the "isWaitingForValidSubId" is true, then the receiver skip the carrier config changed - * with the subId = -1. The receiver executes the countDown when the CarrierConfigChanged - * with valid subId. - * If the "isWaitingForValidSubId" is false, then the receiver executes the countDown when - * receiving any CarrierConfigChanged. - */ - public CarrierConfigChangedReceiver(CountDownLatch latch, boolean isWaitingForValidSubId) { + public CarrierConfigChangedReceiver(CountDownLatch latch) { mLatch = latch; - mIsWaitingForValidSubId = isWaitingForValidSubId; } public void registerOn(Context context) { @@ -64,8 +53,7 @@ public class CarrierConfigChangedReceiver extends BroadcastReceiver { } private void checkSubscriptionIndex(Intent intent) { - if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX) - || !mIsWaitingForValidSubId) { + if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)) { int subId = intent.getIntExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, -1); Log.i(TAG, "subId from config changed: " + subId); mLatch.countDown(); diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java index 7d8295b7822..7ba2e0f8ed0 100644 --- a/src/com/android/settings/network/UiccSlotUtil.java +++ b/src/com/android/settings/network/UiccSlotUtil.java @@ -141,8 +141,7 @@ public class UiccSlotUtil { inactiveRemovableSlot, /*removable sim's port Id*/ TelephonyManager.DEFAULT_PORT_INDEX, excludedLogicalSlotIndex), - context, - /*isWaitingForValidSubId=*/ true); + context); } /** @@ -180,8 +179,7 @@ public class UiccSlotUtil { performSwitchToSlot(telMgr, prepareUiccSlotMappings(uiccSlotMappings, /*slot is not psim*/ false, physicalSlotId, port, excludedLogicalSlotIndex), - context, - /*isWaitingForValidSubId=*/ false); + context); } /** @@ -233,8 +231,7 @@ public class UiccSlotUtil { } private static void performSwitchToSlot(TelephonyManager telMgr, - Collection uiccSlotMappings, Context context, - boolean isWaitingForValidSubId) + Collection uiccSlotMappings, Context context) throws UiccSlotsException { CarrierConfigChangedReceiver receiver = null; long waitingTimeMillis = @@ -244,7 +241,7 @@ public class UiccSlotUtil { DEFAULT_WAIT_AFTER_SWITCH_TIMEOUT_MILLIS); try { CountDownLatch latch = new CountDownLatch(1); - receiver = new CarrierConfigChangedReceiver(latch, isWaitingForValidSubId); + receiver = new CarrierConfigChangedReceiver(latch); receiver.registerOn(context); telMgr.setSimSlotMapping(uiccSlotMappings); latch.await(waitingTimeMillis, TimeUnit.MILLISECONDS); From 7bad1241a45b5305b3a5d22dd9e33b97824370fc Mon Sep 17 00:00:00 2001 From: Ankita Vyas Date: Thu, 12 Jan 2023 08:38:44 +0000 Subject: [PATCH 2/7] AppClone: Add animation and description text in Cloned Apps page. Bug: 265251138 Test: manual and robo Change-Id: I623c01fc74c1ac162917fce8b2fda9754b0a2b4b --- .../preference_app_header_animation.xml | 61 +++++++++++++++++++ res/raw/app_cloning.json | 1 + res/values/strings.xml | 3 + .../ApplicationViewHolder.java | 21 +++++++ .../ManageApplications.java | 5 +- 5 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 res/layout/preference_app_header_animation.xml create mode 100644 res/raw/app_cloning.json diff --git a/res/layout/preference_app_header_animation.xml b/res/layout/preference_app_header_animation.xml new file mode 100644 index 00000000000..330d118c4e2 --- /dev/null +++ b/res/layout/preference_app_header_animation.xml @@ -0,0 +1,61 @@ + + + + + + + + + + \ No newline at end of file diff --git a/res/raw/app_cloning.json b/res/raw/app_cloning.json new file mode 100644 index 00000000000..1df485a23d5 --- /dev/null +++ b/res/raw/app_cloning.json @@ -0,0 +1 @@ +{"v":"5.9.0","fr":60,"ip":0,"op":420,"w":412,"h":300,"nm":"App_Cloning","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":10,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":90,"s":[170,170,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":98,"s":[170,170,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":150,"s":[90,90,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":304,"s":[90,90,100]},{"t":364,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":11400,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".yellow400","cl":"yellow400","parent":3,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-5.179,0],"ix":2,"l":2},"a":{"a":0,"k":[316.566,79.078,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.312,-3.725],[4.929,0],[1.542,-4.424],[0,5.325],[-11.649,0],[-0.07,-11.649]],"o":[[-1.409,-4.552],[-4.884,0],[-3.254,-3.711],[0,-11.649],[11.579,0],[0,5.378]],"v":[[15.746,13.994],[-0.07,7.193],[-15.847,13.884],[-21.088,0],[0,-21.088],[21.088,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[13.263,0],[0,-13.263],[-13.228,0],[-0.07,13.228]],"o":[[-13.263,0],[0,13.263],[13.158,0],[0,-13.263]],"v":[[0,-24],[-24,0],[0,24],[24,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[316.566,79.078],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4,0],[0,-4],[-4.105,0],[0,4]],"o":[[-4,0],[-0.07,4],[4.035,0],[0,-4]],"v":[[0.001,-7.263],[-7.263,0],[0.001,7.263],[7.264,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[316.566,73.218],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":190,"op":11590,"st":190,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".yellow400","cl":"yellow400","parent":7,"sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2.222,-72.507,0],"ix":2,"l":2},"a":{"a":0,"k":[2.222,48.236,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":207,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":217,"s":[110,110,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":227,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":304,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":314,"s":[110,110,100]},{"t":324,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,22.434],[24.701,0],[0,-24.701],[-21.537,-3.221],[0,0],[-0.916,1.831],[0,0]],"o":[[0,-24.701],[-24.701,0],[0,22.434],[0,0],[0.916,1.831],[0,0],[21.537,-3.221]],"v":[[44.725,-4.885],[0,-49.61],[-44.725,-4.885],[-6.669,39.342],[-2.222,48.236],[2.222,48.236],[6.67,39.342]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235294819,0.78823530674,0.203921571374,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":190,"op":11590,"st":190,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".green400","cl":"green400","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-5.179,0],"ix":2,"l":2},"a":{"a":0,"k":[95.434,79.078,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.312,-3.725],[4.929,0],[1.542,-4.424],[0,5.325],[-11.649,0],[-0.07,-11.649]],"o":[[-1.409,-4.552],[-4.884,0],[-3.254,-3.711],[0,-11.649],[11.579,0],[0,5.378]],"v":[[15.746,13.994],[-0.07,7.193],[-15.847,13.884],[-21.088,0],[0,-21.088],[21.088,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[13.263,0],[0,-13.263],[-13.228,0],[-0.07,13.228]],"o":[[-13.263,0],[0,13.263],[13.158,0],[0,-13.263]],"v":[[0,-24],[-24,0],[0,24],[24,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.434,79.078],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4,0],[0,-4],[-4.105,0],[0,4]],"o":[[-4,0],[-0.07,4],[4.035,0],[0,-4]],"v":[[0.001,-7.263],[-7.263,0],[0.001,7.263],[7.264,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[95.433,73.218],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":190,"op":11590,"st":190,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".green400","cl":"green400","parent":7,"sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-220.566,-72.507,0],"ix":2,"l":2},"a":{"a":0,"k":[0.566,48.236,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":202,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":212,"s":[110,110,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":222,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":309,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":319,"s":[110,110,100]},{"t":329,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,22.434],[24.701,0],[0,-24.701],[-21.537,-3.221],[0,0],[-0.916,1.831],[0,0]],"o":[[0,-24.701],[-24.701,0],[0,22.434],[0,0],[0.916,1.831],[0,0],[21.537,-3.221]],"v":[[44.725,-4.885],[0,-49.61],[-44.725,-4.885],[-6.669,39.342],[-2.222,48.236],[2.222,48.236],[6.67,39.342]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.35686275363,0.72549021244,0.454901963472,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":190,"op":11590,"st":190,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":389,"s":[100]},{"t":419,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[34.444,34.444,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":146,"s":[0,0,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":156,"s":[110,110,100]},{"t":166,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-11.046],[11.046,0],[0,11.046],[-11.046,0]],"o":[[0,11.046],[-11.046,0],[0,-11.046],[11.046,0]],"v":[[20,0],[0,20],[-20,0],[0,-20]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":11394,"st":-6,"bm":0},{"ddd":0,"ind":7,"ty":3,"nm":"Apps_Blue400","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":98,"s":[100]},{"t":150,"s":[40]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":98,"s":[0.566,0,0],"to":[18.333,0,0],"ti":[-18.333,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":150,"s":[110.566,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[110.566,0,0],"to":[0,9.167,0],"ti":[0,-9.167,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":227,"s":[110.566,55,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":304,"s":[110.566,55,0],"to":[-23.083,-14.104,0],"ti":[23.083,14.104,0]},{"t":364,"s":[-27.934,-29.625,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":304,"s":[100,100,100]},{"t":364,"s":[25,25,100]}],"ix":6,"l":2}},"ao":0,"ip":98,"op":11394,"st":-6,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":111,"s":[100]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":150,"s":[40]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":389,"s":[40]},{"t":419,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":98,"s":[0.5,0,0],"to":[18.333,0,0],"ti":[-18.333,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":150,"s":[110.5,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[110.5,0,0],"to":[0,9.167,0],"ti":[0,-9.167,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":227,"s":[110.5,55,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":304,"s":[110.5,55,0],"to":[-23.083,-14.083,0],"ti":[23.083,14.083,0]},{"t":364,"s":[-28,-29.5,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":304,"s":[100,100,100]},{"t":364,"s":[25,25,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.566,0.2],"y":[1,1]},"o":{"x":[0.8,0.8],"y":[0,0]},"t":98,"s":[84,84]},{"i":{"x":[0,0.2],"y":[1,1]},"o":{"x":[0,0.8],"y":[0,0]},"t":125,"s":[132,84]},{"t":150,"s":[84,84]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":98,"s":[42]},{"t":150,"s":[42]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":11377,"st":-23,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".blue400","cl":"blue400","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":122,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":156,"s":[20]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":389,"s":[20]},{"t":419,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":122,"s":[55,55,100]},{"t":156,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-33.137],[33.137,0],[0,33.137],[-33.137,0]],"o":[[0,33.137],[-33.137,0],[0,-33.137],[33.137,0]],"v":[[60,0],[0,60],[-60,0],[0,-60]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":98,"op":11394,"st":-6,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":10,"s":[-83.125,-29.625,0],"to":[13.854,4.938,0],"ti":[-13.854,-4.938,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.167,"y":0.167},"t":90,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":98,"s":[0,0,0],"to":[-18.333,0,0],"ti":[18.333,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":150,"s":[-110,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[-110,0,0],"to":[0,9.167,0],"ti":[0,-9.167,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.8,"y":0.8},"t":227,"s":[-110,55,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":304,"s":[-110,55,0],"to":[4.479,-14.104,0],"ti":[-4.479,14.104,0]},{"t":364,"s":[-83.125,-29.625,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":10,"s":[25,25,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":90,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":304,"s":[100,100,100]},{"t":364,"s":[25,25,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-23.196],[23.196,0],[0,23.196],[-23.196,0]],"o":[[0,23.196],[-23.196,0],[0,-23.196],[23.196,0]],"v":[[42,0],[0,42],[-42,0],[0,-42]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11091,"st":-309,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".blue400","cl":"blue400","parent":10,"sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":10,"s":[55,55,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":90,"s":[100,100,100]},{"i":{"x":[0.2,0.2,0.833],"y":[1,1,1]},"o":{"x":[0.7,0.7,0.167],"y":[0,0,0]},"t":389,"s":[100,100,100]},{"t":419,"s":[55,55,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-33.137],[33.137,0],[0,33.137],[-33.137,0]],"o":[[0,33.137],[-33.137,0],[0,-33.137],[33.137,0]],"v":[[60,0],[0,60],[-60,0],[0,-60]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":11091,"st":-309,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".grey800","cl":"grey800","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":10,"s":[100]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":314,"s":[0]},{"t":364,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.5,289.443,0],"ix":2,"l":2},"a":{"a":0,"k":[206,192.736,0],"ix":1,"l":2},"s":{"a":0,"k":[400,400,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.311],[8.311,0],[0,8.311],[-8.311,0]],"o":[[0,8.311],[-8.311,0],[0,-8.311],[8.311,0]],"v":[[15.048,0],[0,15.048],[-15.048,0],[0,-15.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.73,169.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.311],[8.311,0],[0,8.311],[-8.311,0]],"o":[[0,8.311],[-8.311,0],[0,-8.311],[8.311,0]],"v":[[15.048,0],[0,15.048],[-15.048,0],[0,-15.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.27,169.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.311],[8.311,0],[0,8.311],[-8.311,0]],"o":[[0,8.311],[-8.311,0],[0,-8.311],[8.311,0]],"v":[[15.048,0],[0,15.048],[-15.048,0],[0,-15.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[122.809,169.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.311],[8.311,0],[0,8.311],[-8.311,0]],"o":[[0,8.311],[-8.311,0],[0,-8.311],[8.311,0]],"v":[[15.048,0],[0,15.048],[-15.048,0],[0,-15.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[289.191,169.585],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[206,169.585],"ix":2},"a":{"a":0,"k":[206,169.585],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ScreenContent_Grey801","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.179,0],[0,0],[0,6.179],[0,0],[-6.179,0],[0,0],[0,-6.179],[0,0]],"o":[[0,0],[-6.179,0],[0,0],[0,-6.179],[0,0],[6.179,0],[0,0],[0,6.179]],"v":[[87.005,13.608],[-87.005,13.608],[-98.239,2.373],[-98.239,-2.373],[-87.005,-13.608],[87.005,-13.608],[98.239,-2.373],[98.239,2.373]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[206,217.327],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ScreenContent_Grey800","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9706,"st":-1694,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".grey600","cl":"grey600","parent":10,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":10,"s":[100]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":314,"s":[0]},{"t":364,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.5,23.679,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[400,400,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.588,0],[0,0],[0,9.59],[0,0],[0,0],[0,0],[-11.986,0],[0,0],[0,11.987],[0,0],[0,2.401],[0,0],[0,0]],"o":[[0,9.59],[0,0],[-9.588,0],[0,0],[0,0],[0,0],[0,11.987],[0,0],[11.986,0],[0,0],[2.401,0],[0,0],[0,0],[0,0]],"v":[[115.211,104.344],[97.822,121.736],[-102.169,121.736],[-119.559,104.344],[-119.559,-126.084],[-123.907,-126.084],[-123.907,104.344],[-102.169,126.084],[97.822,126.084],[119.56,104.344],[119.56,-108.688],[123.907,-113.036],[123.907,-126.084],[115.211,-126.084]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9706,"st":-1694,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[203.826,124.121,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-9.588,0],[0,0],[0,9.59],[0,0],[0,0],[0,0]],"o":[[0,0],[9.588,0],[0,0],[0,0],[0,0],[0,9.59]],"v":[[-99.996,123.91],[99.995,123.91],[117.385,106.518],[117.385,-123.91],[-117.385,-123.91],[-117.385,106.518]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9706,"st":-1694,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.291,0],[0,0],[0,15.652],[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0],[15.185,0],[0,0],[0,15.544]],"v":[[178.179,150],[-178.179,150],[-206,121.522],[-206,-121.522],[-178.179,-150],[178.286,-150],[206,-121.522],[206,121.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":9706,"st":-1694,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 7466b143c90..0494e0458fd 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -6577,6 +6577,9 @@ Cloned Apps Create a second instance of an app so that you can use two accounts at the same time. + + Apps that can be cloned. + %1$s cloned, %2$d available to clone Delete all App clones diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java index 744ac713914..58232ea4f85 100644 --- a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java +++ b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java @@ -46,6 +46,9 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; +import com.android.settingslib.widget.LottieColorUtils; + +import com.airbnb.lottie.LottieAnimationView; public class ApplicationViewHolder extends RecyclerView.ViewHolder { @@ -113,6 +116,24 @@ public class ApplicationViewHolder extends RecyclerView.ViewHolder { return view; } + static View newHeaderWithAnimation(Context context, ViewGroup parent, int resIntroText, + int resAnimation, int resAppListText) { + ViewGroup view = (ViewGroup) LayoutInflater.from(parent.getContext()) + .inflate(R.layout.preference_app_header_animation, parent, false); + TextView introText = view.findViewById(R.id.apps_top_intro_text); + introText.setText(resIntroText); + + LottieAnimationView illustrationLottie = view.findViewById(R.id.illustration_lottie); + illustrationLottie.setAnimation(resAnimation); + illustrationLottie.setVisibility(View.VISIBLE); + LottieColorUtils.applyDynamicColors(context, illustrationLottie); + + TextView appListText = view.findViewById(R.id.app_list_text); + appListText.setText(resAppListText); + + return view; + } + void setSummary(CharSequence summary) { mSummary.setText(summary); updateSummaryVisibility(); diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index 8030ebe8184..44fbd83d054 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -1376,8 +1376,9 @@ public class ManageApplications extends InstrumentedFragment LIST_TYPE_NOTIFICATION); } else if (mManageApplications.mListType == LIST_TYPE_CLONED_APPS && viewType == VIEW_TYPE_APP_HEADER) { - view = ApplicationViewHolder.newHeader(parent, - R.string.desc_cloned_apps_intro_text); + view = ApplicationViewHolder.newHeaderWithAnimation(mContext, parent, + R.string.desc_cloned_apps_intro_text, R.raw.app_cloning, + R.string.desc_cloneable_app_list_text); } else if (mManageApplications.mListType == LIST_TYPE_CLONED_APPS && viewType == VIEW_TYPE_TWO_TARGET) { view = ApplicationViewHolder.newView( From 7627a0e575fd3822f3b58de5dd4fa7902bf441cc Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Fri, 13 Jan 2023 20:32:04 +0800 Subject: [PATCH 3/7] Fix b/265409044: The battery usage page auto goes up when coming back from app details page. screen record after fix: https://drive.google.com/file/d/1a2vvMIYLSalXfM8-004drKBWK2LcK_F9/view?resourcekey=0-A586Sk0yx-OnErHkd5EgjQ Bug: 265409044 Fix: 265409044 Test: manual Change-Id: I7a58c9081250936de27a4970d0a9708168138fb9 --- .../batteryusage/BatteryUsageBreakdownController.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java index b95920e04b7..587fd6448f5 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java @@ -217,13 +217,16 @@ public class BatteryUsageBreakdownController extends BasePreferenceController } private void showSpinnerAndAppList() { - removeAndCacheAllPreferences(); if (mBatteryDiffData == null) { + mHandler.post(() -> { + removeAndCacheAllPreferences(); + }); return; } mSpinnerPreference.setVisible(true); mAppListPreferenceGroup.setVisible(true); mHandler.post(() -> { + removeAndCacheAllPreferences(); addAllPreferences(); }); } From 56409144209be887537e2601ba93affc69745089 Mon Sep 17 00:00:00 2001 From: Angela Wang Date: Thu, 22 Dec 2022 06:39:35 +0000 Subject: [PATCH 4/7] Hearing Aid Compatibility toggle functionality in Settings FCC has clarified that all smart phone must have a feature to enable Hearing Aid Compatibility (HAC) mode in system setting menu. Currently the HAC settings is located in Dialer app's accessibility settings page. We move this settings to Settings > Accessibility > Hearing Aids page to compliance the rule. Bug: 233976673 Test: make RunSettingsRoboTests ROBOTEST_FILTER=HearingAidCompatibilityPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityHearingAidsFragmentTest Change-Id: Iba773456fd96b40ab3487a335c163079d083d505 --- res/xml/accessibility_hearing_aids.xml | 5 +- ...gAidCompatibilityPreferenceController.java | 78 +++++++++++ .../AccessibilityHearingAidsFragmentTest.java | 16 +++ ...CompatibilityPreferenceControllerTest.java | 130 ++++++++++++++++++ 4 files changed, 226 insertions(+), 3 deletions(-) create mode 100644 src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java create mode 100644 tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java diff --git a/res/xml/accessibility_hearing_aids.xml b/res/xml/accessibility_hearing_aids.xml index d5d8df6c3b7..f5e65aef155 100644 --- a/res/xml/accessibility_hearing_aids.xml +++ b/res/xml/accessibility_hearing_aids.xml @@ -30,13 +30,12 @@ - - + settings:searchable="true" + settings:controller="com.android.settings.accessibility.HearingAidCompatibilityPreferenceController"/> Date: Mon, 16 Jan 2023 11:27:16 +0800 Subject: [PATCH 5/7] Add latest battery usage data when exporting battery usage data to EBS and Settings -> Apps Test: manual Bug: 265130434 Change-Id: I1c6c1a831416d596b5bd71c6499f4c4672dbcdea --- .../settings/fuelgauge/batteryusage/DataProcessor.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 3b04f907cc6..b61b755404a 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -137,6 +137,16 @@ public final class DataProcessor { // Wrap and processed history map into easy-to-use format for UI rendering. final BatteryLevelData batteryLevelData = getLevelDataThroughProcessedHistoryMap(context, processedBatteryHistoryMap); + // Loads the current battery usage data from the battery stats service. + final Map currentBatteryHistoryMap = + getCurrentBatteryHistoryMapFromStatsService(context); + // Replaces the placeholder in processedBatteryHistoryMap. + for (Map.Entry> mapEntry + : processedBatteryHistoryMap.entrySet()) { + if (mapEntry.getValue().containsKey(CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) { + mapEntry.setValue(currentBatteryHistoryMap); + } + } return batteryLevelData == null ? null : getBatteryUsageMap( From 96aee4896b6b5ae0ba5f39ba1592a61d1dc1a5ab Mon Sep 17 00:00:00 2001 From: Kuan Wang Date: Mon, 16 Jan 2023 12:07:07 +0800 Subject: [PATCH 6/7] Not show time information in battery optimization page when opened from Settings -> Apps Test: make RunSettingsRoboTests + manual Bug: 265130434 Change-Id: Ie7ae6a97041f490e81adbe8e0c530799e09a7c66 --- .../appinfo/AppBatteryPreferenceController.java | 4 ++-- .../fuelgauge/AdvancedPowerUsageDetail.java | 14 +++++++++----- .../spa/app/appinfo/AppBatteryPreference.kt | 1 + .../spa/app/appinfo/AppBatteryPreferenceTest.kt | 1 + 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java index 2834983bdf7..212a61903f9 100644 --- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java @@ -121,11 +121,11 @@ public class AppBatteryPreferenceController extends BasePreferenceController Log.i(TAG, "handlePreferenceTreeClick():\n" + mBatteryDiffEntry); AdvancedPowerUsageDetail.startBatteryDetailPage( mParent.getActivity(), - mParent, + mParent.getMetricsCategory(), mBatteryDiffEntry, Utils.formatPercentage( mBatteryDiffEntry.getPercentOfTotal(), /* round */ true), - /*slotInformation=*/ null); + /*slotInformation=*/ null, /*showTimeInformation=*/ false); return true; } diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index e9818fbceba..f3c64b78893 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -139,13 +139,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements Activity caller, InstrumentedPreferenceFragment fragment, BatteryDiffEntry diffEntry, String usagePercent, String slotInformation) { startBatteryDetailPage( - caller, fragment.getMetricsCategory(), diffEntry, usagePercent, slotInformation); + caller, fragment.getMetricsCategory(), diffEntry, usagePercent, slotInformation, + /*showTimeInformation=*/ true); } /** Launches battery details page for an individual battery consumer fragment. */ public static void startBatteryDetailPage( Context context, int sourceMetricsCategory, - BatteryDiffEntry diffEntry, String usagePercent, String slotInformation) { + BatteryDiffEntry diffEntry, String usagePercent, String slotInformation, + boolean showTimeInformation) { final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry; final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs(); // configure the launch argument. @@ -156,9 +158,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements launchArgs.mUid = (int) histEntry.mUid; launchArgs.mIconId = diffEntry.getAppIconId(); launchArgs.mConsumedPower = (int) diffEntry.mConsumePower; - launchArgs.mForegroundTimeMs = diffEntry.mForegroundUsageTimeInMs; - launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs; - launchArgs.mScreenOnTimeMs = diffEntry.mScreenOnTimeInMs; + if (showTimeInformation) { + launchArgs.mForegroundTimeMs = diffEntry.mForegroundUsageTimeInMs; + launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs; + launchArgs.mScreenOnTimeMs = diffEntry.mScreenOnTimeInMs; + } launchArgs.mIsUserEntry = histEntry.isUserEntry(); startBatteryDetailPage(context, sourceMetricsCategory, launchArgs); } diff --git a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt index 2766dfef360..720422f6faf 100644 --- a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt +++ b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt @@ -126,6 +126,7 @@ private class AppBatteryPresenter(private val context: Context, private val app: this, Utils.formatPercentage(percentOfTotal, true), null, + false, ) } diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt index 01113ccb279..fd286caf2d9 100644 --- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt +++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt @@ -162,6 +162,7 @@ class AppBatteryPreferenceTest { batteryDiffEntry, "10%", null, + false, ) } } From 00bfd7e2996b1a15de3cc473fd9b65dbaeda4301 Mon Sep 17 00:00:00 2001 From: tom hsu Date: Mon, 16 Jan 2023 15:45:57 +0800 Subject: [PATCH 7/7] Remove the unit test which has problem. Bug: b/265613591 Test: atest passed Change-Id: I0df58e76171fdc49f405cb88d20469b0693f0041 --- .../NumberingPreferencesFragmentTest.java | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java index eeb65f2ef2a..92cfb69b449 100644 --- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java +++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingPreferencesFragmentTest.java @@ -26,13 +26,9 @@ import android.os.Looper; import androidx.test.annotation.UiThreadTest; import androidx.test.core.app.ApplicationProvider; -import com.android.settings.testutils.ResourcesUtils; - import org.junit.Before; import org.junit.Test; -import java.util.Locale; - public class NumberingPreferencesFragmentTest { private Context mApplicationContext; private NumberingPreferencesFragment mFragment; @@ -47,37 +43,6 @@ public class NumberingPreferencesFragmentTest { mFragment = new NumberingPreferencesFragment(); } - @Test - @UiThreadTest - public void initTitle_optionIsLanguageSelection_titleIsNumbers() { - Bundle bundle = new Bundle(); - bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, - NumberingSystemItemController.ARG_VALUE_LANGUAGE_SELECT); - mFragment.setArguments(bundle); - - String result = mFragment.initTitle(); - - assertEquals(ResourcesUtils.getResourcesString( - mApplicationContext, "numbers_preferences_title"), result); - } - - @Test - @UiThreadTest - public void initTitle_optionIsNumberingSystemSelection_titleIsLocaleDisplayName() { - Locale expectedLocale = Locale.forLanguageTag("en-US"); - Bundle bundle = new Bundle(); - bundle.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, - NumberingSystemItemController.ARG_VALUE_NUMBERING_SYSTEM_SELECT); - bundle.putString( - NumberingSystemItemController.KEY_SELECTED_LANGUAGE, - expectedLocale.toLanguageTag()); - mFragment.setArguments(bundle); - - String result = mFragment.initTitle(); - - assertEquals(expectedLocale.getDisplayName(expectedLocale), result); - } - @Test @UiThreadTest public void getMetricsCategory_optionIsLanguageSelection_resultIsLanguageSelection() {