Merge "Refactor CaptionAppearanceFragment to improve maintainability (5/n)"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 2ff62cc..1735a51 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,6 +16,7 @@
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
+ <uses-permission android:name="android.permission.CONTROL_UI_TRACING" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
diff --git a/res/layout/choose_lock_pattern_common.xml b/res/layout/choose_lock_pattern_common.xml
index 761a724..2dd8cd5 100644
--- a/res/layout/choose_lock_pattern_common.xml
+++ b/res/layout/choose_lock_pattern_common.xml
@@ -37,16 +37,6 @@
android:paddingRight="0dp">
<TextView
- android:id="@+id/sud_layout_description"
- android:text="@string/lockpassword_choose_your_pattern_description"
- style="@style/SudDescription.Glif"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minLines="4"
- android:paddingStart="?attr/sudMarginStart"
- android:paddingEnd="?attr/sudMarginEnd"/>
-
- <TextView
android:id="@+id/headerText"
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
diff --git a/res/raw/lottie_power_menu.json b/res/raw/lottie_long_press_power_for_assistant.json
similarity index 100%
rename from res/raw/lottie_power_menu.json
rename to res/raw/lottie_long_press_power_for_assistant.json
diff --git a/res/raw/lottie_long_press_power_for_power_menu.json b/res/raw/lottie_long_press_power_for_power_menu.json
new file mode 100644
index 0000000..09e2f0a
--- /dev/null
+++ b/res/raw/lottie_long_press_power_for_power_menu.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":241,"w":412,"h":300,"nm":"Home Button_Digital Assistant_LPP","ddd":0,"assets":[{"id":"comp_0","nm":"Power menu","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".grey200","cl":"grey200","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[24,24,0],"ix":2,"l":2},"a":{"a":0,"k":[24,24,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":[[1.293,1.1],[0,0],[0,-1.46],[2.58,0],[0,2.58],[-1.047,0.853],[0,0],[0,-1.826],[-3.313,0],[0,3.314]],"o":[[0,0],[1.054,0.846],[0,2.58],[-2.58,0],[0,-1.46],[0,0],[-1.294,1.1],[0,3.314],[3.314,0],[0,-1.826]],"v":[[3.887,-4.553],[2.94,-3.606],[4.667,0],[0,4.667],[-4.666,0],[-2.946,-3.613],[-3.886,-4.553],[-6,0],[0,6],[6,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":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[0.667,-6],[-0.666,-6],[-0.666,0.667],[0.667,0.667]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803921569,0.917647058824,0.929411764706,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":[24,24],"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":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[24,24,0],"ix":2,"l":2},"a":{"a":0,"k":[24,24,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.941,0],[0,-9.941],[9.941,0],[0,9.941]],"o":[[9.941,0],[0,9.941],[-9.941,0],[0,-9.941]],"v":[[0,-18],[18,0],[0,18],[-18,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[24,24],"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 5","np":4,"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":[[-9.941,0],[0,-9.941],[9.941,0],[0,9.941]],"o":[[9.941,0],[0,9.941],[-9.941,0],[0,-9.941]],"v":[[0,-18],[18,0],[0,18],[-18,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[24,68],"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":4,"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":[[-9.941,0],[0,-9.941],[9.941,0],[0,9.941]],"o":[[9.941,0],[0,9.941],[-9.941,0],[0,-9.941]],"v":[[0,-18],[18,0],[0,18],[-18,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[68,24],"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":4,"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":[[-9.941,0],[0,-9.941],[9.941,0],[0,9.941]],"o":[[9.941,0],[0,9.941],[-9.941,0],[0,-9.941]],"v":[[0,-18],[18,0],[0,18],[-18,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,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":[68,68],"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":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey900","cl":"grey900","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[46,46,0],"ix":2,"l":2},"a":{"a":0,"k":[46,46,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":[[-6.627,0],[0,0],[0,-6.627],[0,0],[6.627,0],[0,0],[0,6.627],[0,0]],"o":[[0,0],[6.627,0],[0,0],[0,6.627],[0,0],[-6.627,0],[0,0],[0,-6.627]],"v":[[-34,-46],[34,-46],[46,-34],[46,34],[34,46],[-34,46],[-46,34],[-46,-34]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.125490196078,0.129411764706,0.141176470588,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":[46,46],"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 6","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":8,"ty":3,"nm":"Null 7","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,264.875,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[10,10,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":1500,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"Power menu","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":89,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":120,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[100]},{"t":210,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":80,"s":[206,175,0],"to":[0,-4.167,0],"ti":[0,4.167,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.167,"y":0.167},"t":120,"s":[206,150,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.999,"y":1},"o":{"x":0.3,"y":0},"t":190,"s":[206,150,0],"to":[0,4.167,0],"ti":[0,-4.167,0]},{"t":230,"s":[206,175,0]}],"ix":2,"l":2},"a":{"a":0,"k":[46,46,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":92,"h":92,"ip":80,"op":980,"st":80,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":".grey300","cl":"grey300","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":[[0,0],[5.243,0],[0,0],[0,5.244],[0,0],[-5.243,0],[0,0],[0,-5.244]],"o":[[0,5.244],[0,0],[-5.243,0],[0,0],[0,-5.244],[0,0],[5.243,0],[0,0]],"v":[[64.188,114.112],[54.679,123.622],[-54.679,123.622],[-64.188,114.112],[-64.188,-114.112],[-54.679,-123.622],[54.679,-123.622],[64.188,-114.112]],"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":[[0,0],[6.554,0],[0,0],[0,-6.555],[0,0],[-6.554,0],[0,0],[0,6.555],[0,0],[0,1.313],[0,0],[1.313,0]],"o":[[0,-6.555],[0,0],[-6.554,0],[0,0],[0,6.555],[0,0],[6.554,0],[0,0],[1.313,0],[0,0],[0,-1.313],[0,0]],"v":[[66.566,-114.112],[54.679,-126],[-54.679,-126],[-66.566,-114.112],[-66.566,114.112],[-54.679,126],[54.679,126],[66.566,114.112],[66.566,-2.378],[68.943,-4.755],[68.943,-28.528],[66.566,-30.906]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901969433,0.86274510622,0.878431379795,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 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1500,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":".grey300","cl":"grey300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.605],"y":[0.583]},"o":{"x":[0.36],"y":[0]},"t":40,"s":[206]},{"i":{"x":[0.635],"y":[0.851]},"o":{"x":[0.314],"y":[3.484]},"t":60,"s":[205.339]},{"i":{"x":[0.456],"y":[1]},"o":{"x":[0.665],"y":[-0.02]},"t":119.92,"s":[205.15]},{"t":139.919921875,"s":[206]}],"ix":3},"y":{"a":0,"k":150,"ix":4}},"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":[[0,1.313],[0,0],[1.313,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,-1.313],[0,0],[0,0],[0,0],[1.313,0]],"v":[[68.943,-52.302],[68.943,-61.811],[66.566,-64.188],[65.456,-64.188],[65.55,-49.906],[66.566,-49.924]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901969433,0.86274510622,0.878431379795,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":1500,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":".grey400","cl":"grey400","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":[[0,0],[5.243,0],[0,0],[0,5.244],[0,0],[-5.243,0],[0,0],[0,-5.244]],"o":[[0,5.244],[0,0],[-5.243,0],[0,0],[0,-5.244],[0,0],[5.243,0],[0,0]],"v":[[64.188,114.112],[54.679,123.622],[-54.679,123.622],[-64.188,114.112],[-64.188,-114.112],[-54.679,-123.622],[54.679,-123.622],[64.188,-114.112]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741176486015,0.75686275959,0.776470601559,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":1500,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Gesture Tap","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[273.205,92.869,0],"ix":2,"l":2},"a":{"a":0,"k":[273.205,92.869,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":[[0,-5.226],[-5.226,0],[0,5.226],[5.226,0]],"o":[[0,5.226],[5.226,0],[0,-5.226],[-5.226,0]],"v":[[-9.463,0],[0,9.463],[9.463,0],[0,-9.463]],"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":[273.205,92.869],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.239,0.239],"y":[0.604,0.604]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":35,"s":[13,13]},{"i":{"x":[0.596,0.596],"y":[1,1]},"o":{"x":[0.182,0.182],"y":[0.996,0.996]},"t":55,"s":[100,100]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.793,0.793],"y":[0,0]},"t":124.92,"s":[129,129]},{"t":139.919921875,"s":[13,13]}],"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":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.26],[-8.26,0],[0,8.26],[8.26,0]],"o":[[0,8.26],[8.26,0],[0,-8.26],[-8.26,0]],"v":[[-14.957,0],[0,14.957],[14.957,0],[0,-14.957]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.68235296011,0.796078443527,0.980392158031,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":[273.205,92.869],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.304,0.304],"y":[0.758,0.758]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":30,"s":[13,13]},{"i":{"x":[0.709,0.709],"y":[0.99,0.99]},"o":{"x":[0.196,0.196],"y":[1.618,1.618]},"t":50,"s":[100,100]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.609,0.609],"y":[-0.001,-0.001]},"t":125,"s":[113.775,113.775]},{"t":140,"s":[8,8]}],"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":0,"op":1500,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index d78547b..c88a1f4 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -413,7 +413,7 @@
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Vereis altyd bevestigingstap as Gesigslot in programme gebruik word"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Vee gesigmodel uit"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Stel Gesigslot op"</string>
- <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Gebruik jou gesig om jou foon te ontsluit of vir stawing in programme, soos wanneer jy aanmeld of \'n aankoop goedkeur.\n\nHou in gedagte:\nJy kan slegs een gesig op \'n slag gestel hê. Om nog \'n gesig by te voeg, moet jy die huidige een uitvee.\n\nAs jy na die foon kyk, kan dit ontsluit word wanneer jy nie bedoel om dit te doen nie.\n\nIemand anders kan jou foon ontsluit as dit voor jou gesig gehou word.\n\nIemand ander wat baie soos jy lyk, soos \'n identiese broer of suster, kan jou foon ontsluit."</string>
+ <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Gebruik jou gesig om jou foon te ontsluit of vir stawing in programme, soos wanneer jy aanmeld of \'n aankoop goedkeur.\n\nHou in gedagte:\nJy kan slegs een gesig op \'n slag gestel hê. Om nog \'n gesig by te voeg, moet jy die huidige een uitvee.\n\nAs jy na die foon kyk, kan dit ontsluit word wanneer jy nie bedoel om dit te doen nie.\n\nIemand anders kan jou foon ontsluit as dit voor jou gesig gehou word.\n\nIemand anders wat baie soos jy lyk, soos \'n identiese broer of suster, kan jou foon ontsluit."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Gebruik jou gesig om jou foon te ontsluit of vir stawing in programme, soos wanneer jy aanmeld of \'n aankoop goedkeur.\n\nHou in gedagte:\nJy kan slegs een gesig op \'n slag gestel hê. Om nog \'n gesig by te voeg, moet jy die huidige een uitvee.\n\nAs jy na die foon kyk, kan dit ontsluit word wanneer jy nie bedoel om dit te doen nie.\n\nIemand anders kan jou foon ontsluit as dit voor jou gesig gehou word, selfs as jou oë toe is.\n\nIemand ander wat baie soos jy lyk, soos \'n identiese broer of suster, kan jou foon ontsluit."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Vee gesigmodel uit?"</string>
<string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Jou gesigmodel sal permanent en veilig uitgevee word. \n\nNadat dit uitgevee is, sal jy jou PIN, patroon of wagwoord nodig hê om jou foon te ontsluit of vir stawing in programme."</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Stel \'n PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Stel \'n werk-PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Stel \'n patroon"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Stel \'n werkpatroon"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Stel wagwoord vir vingerafdruk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Stel patroon vir vingerafdruk"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Geen gebruik sedert dit laas volgelaai is nie"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nie in afgelope 24 uur gebruik nie"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Ander gebruikers"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Skatting van oorblywende batterytyd word op jou toestelgebruik gegrond"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Geskatte tyd oor"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Tot battery volgelaai is"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Alle \"<xliff:g id="APP_NAME">%1$s</xliff:g>\"-kennisgewings"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Alle <xliff:g id="APP_NAME">%1$s</xliff:g>-kennisgewings"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Aanpasbare kennisgewings"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> kennisgewings per dag</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> kennisgewing per dag</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> kennisgewings per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> kennisgewing per week</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nooit"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Toestel- en programkennisgewings"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Beheer watter programme en toestelle kennisgewings kan lees"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index b991d95..d6a4292 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ፒን ያቀናብሩ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"የሥራ ፒን ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ስርዓተ-ጥለት ያቀናብሩ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"የሥራ ስርዓተ-ጥለት ያቀናብሩ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"የጣት አሻራን ለመጠቀም የይለፍ ቃል ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"የጣት አሻራን ለመጠቀም፣ ሥርዓተ ጥለትን ያቀናብሩ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ካለፈው ሙሉ ኃይል ሙሌት በኋላ ጥቅም ላይ አልዋለም"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ላለፉት 24 ሰዓታት ጥቅም ላይ አልዋለም"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ሌሎች ተጠቃሚዎች"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"የቀረው የባትሪ ዕድሜ ግምት በእርስዎ የመሣሪያ አጠቃቀም ላይ የተመረኮዘ ነው"</string>
<string name="estimated_time_left" msgid="948717045180211777">"የተገመተው ቀሪ ጊዜ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ኃይሉ ሙሉ እስኪሞላ ድረስ"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ሁሉም «<xliff:g id="APP_NAME">%1$s</xliff:g>» ማሳወቂያዎች"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"ሁሉም የ<xliff:g id="APP_NAME">%1$s</xliff:g> ማሳወቂያዎች"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"እንደሁኔታው ተስማሚ ማሳወቂያዎች"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> ማሳወቂያዎች በቀን</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ማሳወቂያዎች በቀን</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> ማሳወቂያዎች በሳምንት</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ማሳወቂያዎች በሳምንት</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"በጭራሽ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"መሣሪያ እና የመተግበሪያ ማሳወቂያዎች"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"የትኛዎቹ መተግበሪያዎች እና መሣሪያዎች ማሳወቂያዎችን ማንበብ እንደሚችሉ ይቆጣጠሩ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 2112eaf..09b0626 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -2031,6 +2031,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ضبط رقم تعريف شخصي"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ضبط رقم تعريف لملف العمل"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ضبط نقش"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ضبط نقش للملف الشخصي للعمل"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"لاستخدام بصمة الإصبع، يُرجى إعداد كلمة مرور"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"لاستخدام بصمة الإصبع، يُرجى رسم نقش من ابتكارك"</string>
@@ -3076,8 +3078,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"لم يتم استخدام البطارية منذ آخر عملية شحن كاملة."</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"لم يتم استخدام البطارية في آخر 24 ساعة."</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"مستخدمون آخرون"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"يستند تقدير شحن البطارية المتبقي على استخدام الجهاز"</string>
<string name="estimated_time_left" msgid="948717045180211777">"الوقت التقديري المتبقي"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"إلى أن يتم الشحن بالكامل"</string>
@@ -4182,22 +4183,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"جميع إشعارات \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"جميع إشعارات \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="default_notification_assistant" msgid="243718059890346442">"الإشعارات التكيّفية"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="zero"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعار تقريبًا في اليوم</item>
- <item quantity="two">إشعاران (<xliff:g id="NUMBER_1">%,d</xliff:g>) تقريبًا في اليوم</item>
- <item quantity="few"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعارات تقريبًا في اليوم</item>
- <item quantity="many"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعارًا تقريبًا في اليوم</item>
- <item quantity="other"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعار تقريبًا في اليوم</item>
- <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> إشعار تقريبًا في اليوم</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="zero"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعار تقريبًا في الأسبوع</item>
- <item quantity="two">إشعاران (<xliff:g id="NUMBER_1">%,d</xliff:g>) تقريبًا في الأسبوع</item>
- <item quantity="few"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعارات تقريبًا في الأسبوع</item>
- <item quantity="many"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعارًا تقريبًا في الأسبوع</item>
- <item quantity="other"><xliff:g id="NUMBER_1">%,d</xliff:g> إشعار تقريبًا في الأسبوع</item>
- <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> إشعار تقريبًا في الأسبوع</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"أبدًا"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"إشعارات التطبيقات والأجهزة"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"تحديد التطبيقات والأجهزة التي يمكنها قراءة الإشعارات"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 2c68cd0..77bd1ec 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"এটা পিন ছেট কৰক"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"কৰ্মস্থানৰ বাবে এটা পিন ছেট কৰক"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"এটা আৰ্হি ছেট কৰক"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"কৰ্মস্থানৰ বাবে এটা আৰ্হি ছেট কৰক"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰিবলৈ পাছৱৰ্ড ছেট কৰক"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰিবলৈ আৰ্হি দিয়ক"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"শেষবাৰ সম্পূৰ্ণ চাৰ্জ হোৱাৰ পৰা ব্যৱহাৰ কৰা নাই"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"যোৱা ২৪ ঘণ্টাত ব্যৱহাৰ কৰা নাই"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"অন্য ব্যৱহাৰকাৰী"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"আপোনাৰ ডিভাইচৰ ব্যৱহাৰৰ ভিত্তিত বাকী থকা বেটাৰিৰ পৰিমাণ নিৰ্ণয় হয়"</string>
<string name="estimated_time_left" msgid="948717045180211777">"বাকী থকা মোটামুটি সময়"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"সম্পূৰ্ণৰূপে চ্চাৰ্জ নোহোৱা পৰ্যন্ত"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\"ৰ আটাইবোৰ জাননী"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ আটাইবোৰ জাননী"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"অভিযোজিত জাননী"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~প্ৰতিদিনে <xliff:g id="NUMBER_1">%,d</xliff:g>টা জাননী</item>
- <item quantity="other">~প্ৰতিদিনে <xliff:g id="NUMBER_1">%,d</xliff:g>টা জাননী</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~প্ৰতি সপ্তাহে <xliff:g id="NUMBER_1">%,d</xliff:g>টা জাননী</item>
- <item quantity="other">~প্ৰতি সপ্তাহে <xliff:g id="NUMBER_1">%,d</xliff:g>টা জাননী</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"কেতিয়াও পঠোৱা নহয়"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ডিভাইচ আৰু এপৰ জাননী"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"কোনসমূহ এপ আৰু ডিভাইচে জাননী পঢ়িব পাৰে সেইয়া নিয়ন্ত্ৰণ কৰক"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index d599205..e79ca3e 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN ayarlayın"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"İş PIN kodu ayarlayın"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Model ayarlayın"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Əlavə təhlükəsizlik məqsədilə cihazı kiliddən çıxarmaq üçün model təyin edin"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"İş modeli ayarlayın"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Barmaq izi üçün parol seçin"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Qrafik açar hazırlayın"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Bütün \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" bildirişləri"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Bütün <xliff:g id="APP_NAME">%1$s</xliff:g> bildirişləri"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptiv bildirişlər"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Gün ərzində ~<xliff:g id="NUMBER_1">%,d</xliff:g> bildiriş</item>
- <item quantity="one">Gün ərzində ~<xliff:g id="NUMBER_0">%d</xliff:g> bildiriş</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">Gündə təqribən <xliff:g id="NUMBER_1">%,d</xliff:g> bildiriş</item>
+ <item quantity="one">Gündə təqribən <xliff:g id="NUMBER_0">%d</xliff:g> bildiriş</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Həftə ərzində ~<xliff:g id="NUMBER_1">%,d</xliff:g> bildiriş</item>
- <item quantity="one">Həftə ərzində ~<xliff:g id="NUMBER_0">%d</xliff:g> bildiriş</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">Həftədə təqribən <xliff:g id="NUMBER_1">%,d</xliff:g> bildiriş</item>
+ <item quantity="one">Həftədə təqribən <xliff:g id="NUMBER_0">%d</xliff:g> bildiriş</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Heç vaxt"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Cihaz və tətbiq bildirişləri"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index dbc3dc2..64ed0bd 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1965,6 +1965,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Podesite PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Podesite PIN za poslovni profil"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Podesite šablon"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Podesite šablon za poslovni profil"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Podesite lozinku da biste koristili otisak"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Da biste koristili otisak prsta, podesite šablon"</string>
@@ -4049,16 +4051,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Sva obaveštenja aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Sva obaveštenja aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Prilagodljiva obaveštenja"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenje dnevno</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenja dnevno</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenja dnevno</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenje nedeljno</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenja nedeljno</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obaveštenja nedeljno</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikad"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Obaveštenja na uređajima i u aplikacijama"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrolišite koje aplikacije i uređaji mogu da čitaju obaveštenja"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index e455b56..1b247db 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1989,6 +1989,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Задайце PIN-код"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Задайце PIN-код для працоўнага профілю"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Задайце ўзор разблакіроўкі"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Задайце ўзор разблакіроўкі для працы"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Задайце пароль для выкарыстання адбітка"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Спачатку задайце ўзор"</string>
@@ -3002,8 +3004,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Не выкарыстоўваўся з моманту апошняй поўнай зарадкі"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Не выкарыстоўваўся ў апошнія 24 гадз"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Іншыя карыстальнікі"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ацэнка стану акумулятара заснавана на выкарыстанні прылады"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Прыблзіны час, які застаўся"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Да поўнай зарадкі"</string>
@@ -4096,18 +4097,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Усе апавяшчэнні праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Усе апавяшчэнні праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Адаптыўныя апавяшчэнні"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнне ў дзень</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнні ў дзень</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнняў у дзень</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэння ў дзень</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнне ў тыдзень</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнні ў тыдзень</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэнняў у тыдзень</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> апавяшчэння ў тыдзень</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Ніколі"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Апавяшчэнні прылад і праграм"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Вызначыце праграмы і прылады, якія змогуць мець доступ да апавяшчэнняў"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 8f0323c..b6eee04 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Задаване на ПИН код"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Задаване на служебен ПИН код"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Задаване на фигура"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Задаване на служебна фигура"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Задайте парола, за да ползвате отпечатък"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Задайте фигура, за да ползвате отпечатък"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Батерията не е използвана след последното пълно зареждане"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Батерията не е използвана през последните 24 ч"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Други потребители"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Прогнозата за оставащата батерия е въз основа на използването на устройството ви"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Приблизително оставащо време"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"До пълно зареждане"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Всички известия от: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Всички известия от: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Адаптивни известия"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> известия на ден</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> известие на ден</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> известия на седмица</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> известие на седмица</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Никога"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Известия в приложенията и на устройствата"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Управление на приложенията и устройствата, които могат да четат известията"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index eb85825..8f0595b 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"একটি পিন সেট করুন"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"একটি অফিস প্রোফাইল পিন সেট করুন"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"একটি প্যাটার্ন সেট করুন"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"একটি অফিস প্রোফাইল প্যাটার্ন সেট করুন"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"আঙ্গুলের ছাপ ব্যবহার করার জন্য পাসওয়ার্ড সেট করুন"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"আঙ্গুলের ছাপ ব্যবহার করার জন্য প্যাটার্ন সেট করুন"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"শেষ বার সম্পূর্ণ চার্জ করার পরে আর ব্যাটারি ব্যবহার করা হয়নি"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"গত ২৪ ঘন্টায় ব্যাটারি আর ব্যবহার করা হয়নি"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"অন্যান্য ব্যবহারকারী"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"আপনার ডিভাইসের ব্যবহারের উপর ভিত্তি করে ব্যাটারি কতক্ষণ চলবে তার আনুমানিক হিসাব"</string>
<string name="estimated_time_left" msgid="948717045180211777">"আনুমানিক কতক্ষণ বাকি"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"সম্পূর্ণ চার্জ না হওয়া পর্যন্ত"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"সমস্ত \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" বিজ্ঞপ্তি"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"সমস্ত <xliff:g id="APP_NAME">%1$s</xliff:g> সংক্রান্ত বিজ্ঞপ্তি"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"অ্যাডাপটিভ বিজ্ঞপ্তি"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g>টি বিজ্ঞপ্তি প্রতিদিন</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g>টি বিজ্ঞপ্তি প্রতিদিন</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">প্রতি সপ্তাহে ~<xliff:g id="NUMBER_1">%,d</xliff:g>টি বিজ্ঞপ্তি</item>
- <item quantity="other">প্রতি সপ্তাহে ~<xliff:g id="NUMBER_1">%,d</xliff:g>টি বিজ্ঞপ্তি</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"কখনও না"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ডিভাইস এবং অ্যাপ বিজ্ঞপ্তি"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"কোন অ্যাপ ও ডিভাইস বিজ্ঞপ্তি পড়তে পারবে তা নিয়ন্ত্রণ করুন"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 1efb6a6..2e1f895 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1965,6 +1965,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Postavite PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Postavite PIN radnog profila"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Postavite uzorak"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Postavite uzorak radnog profila"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Da koristite otisak prsta, postavite lozinku"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Da koristite otisak prsta, postavite uzorak"</string>
@@ -4049,16 +4051,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Sva obavještenja aplikacije \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Sva obavještenja aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Prilagodljiva obavještenja"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenje dnevno</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenja dnevno</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenja dnevno</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenje sedmično</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenja sedmično</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavještenja sedmično</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikada"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Obavještenja uređaja i aplikacija"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrolirajte koje aplikacije i uređaji mogu čitati obavještenja"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 75d99fb..afadefd 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Defineix un PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Defineix un PIN de treball"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Defineix un patró"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Defineix un patró de treball"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Per utilitzar l\'empremta, defineix una contrasenya"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Per utilitzar l\'empremta, defineix un patró"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Sense ús des de la darrera càrrega completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Sense ús durant les 24 darreres hores"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Altres usuaris"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"L\'estimació de la bateria restant es basa en l\'ús del teu dispositiu"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Temps estimat restant"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Fins a completar la càrrega"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Totes les notificacions de: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Totes les notificacions de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificacions adaptatives"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificacions al dia</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificació al dia</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificacions a la setmana</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificació a la setmana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Mai"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificacions del dispositiu i d\'aplicacions"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controla quines aplicacions i quins dispositius poden llegir notificacions"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f4683f6..e765cb7 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1987,6 +1987,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Nastavte kód PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Nastavte pracovní PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Nastavte gesto"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Nastavte pracovní gesto"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Otisk vyžaduje nastavení hesla"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Otisk vyžaduje nastavení gesta"</string>
@@ -2016,7 +2018,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zapomněli jste heslo?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zapomněli jste gesto?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zapomněli jste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Chcete-li pokračovat, zadejte gesto zařízení."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jestliže chcete pokračovat, zadejte gesto zařízení"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Chcete-li pokračovat, zadejte PIN zařízení."</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Chcete-li pokračovat, zadejte heslo zařízení."</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Chcete-li pokračovat, zadejte pracovní gesto."</string>
@@ -3000,8 +3002,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Od posledního nabití žádné využití"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Za posledních 24 hodin žádné využití"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Další uživatelé"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Odhad zbývající výdrže baterie vychází z vašeho používání zařízení"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Odhadovaný zbývající čas"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Do úplného nabití"</string>
@@ -4094,18 +4095,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"<xliff:g id="APP_NAME">%1$s</xliff:g>: všechna oznámení"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Všechna oznámení aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptivní oznámení"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za den</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za den</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za den</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> oznámení za den</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za týden</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za týden</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> oznámení za týden</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> oznámení za týden</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikdy"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Oznámení v zařízeních a aplikacích"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Ovládat, které aplikace a zařízení mohou číst oznámení"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 0db0ad4..4dbf3da 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -77,7 +77,7 @@
<string name="bluetooth_disconnect_all_profiles" product="device" msgid="6944790936166852428">"Enheden afbryder forbindelsen fra <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_disconnect_dialog_ok" msgid="4173740094381092185">"Afbryd"</string>
<string name="bluetooth_empty_list_user_restricted" msgid="909734990821975673">"Du har ikke tilladelse til at ændre Bluetooth-indstillinger."</string>
- <string name="bluetooth_pairing_pref_title" msgid="3497193027590444598">"Par ny enhed"</string>
+ <string name="bluetooth_pairing_pref_title" msgid="3497193027590444598">"Par en ny enhed"</string>
<string name="keywords_add_bt_device" msgid="4533191164203174011">"bluetooth"</string>
<string name="bluetooth_pair_other_ear_dialog_title" msgid="3814943511999984012">"Par det andet høreapparat"</string>
<string name="bluetooth_pair_other_ear_dialog_left_ear_message" msgid="7936892941892347102">"Dit venstre høreapparat er tilsluttet.\n\nDu kan parre det højre ved at sørge for, at det er tændt og klar til at blive parret."</string>
@@ -137,7 +137,7 @@
<string name="bluetooth_device_name_summary" msgid="8678342689845439583">"Vises som \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\" på andre enheder"</string>
<string name="bluetooth_off_footer" msgid="76578735660216295">"Aktivér Bluetooth for at oprette forbindelse til andre enheder."</string>
<string name="bluetooth_paired_device_title" msgid="3240639218362342026">"Dine enheder"</string>
- <string name="bluetooth_pairing_page_title" msgid="3403981358823707692">"Par ny enhed"</string>
+ <string name="bluetooth_pairing_page_title" msgid="3403981358823707692">"Par en ny enhed"</string>
<string name="bluetooth_pref_summary" product="tablet" msgid="3506962706611366830">"Tillad, at din tablet kommunikerer med Bluetooth-enheder i nærheden"</string>
<string name="bluetooth_pref_summary" product="device" msgid="2192027516577675587">"Tillad, at enheden kommunikerer med Bluetooth-enheder i nærheden"</string>
<string name="bluetooth_pref_summary" product="default" msgid="768958961865499804">"Tillad, at telefonen kommunikerer med Bluetooth-enheder i nærheden"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Angiv en pinkode"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Angiv en pinkode til arbejdsprofilen"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Indstil et mønster"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Indstil et mønster til arbejdsprofilen"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Angiv adgangskode for at bruge fingeraftryk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Angiv mønster for at bruge fingeraftryk"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Ikke brugt i baggrunden siden sidste fulde opladning"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Ikke brugt i løbet af de seneste 24 timer"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Andre brugere"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Den resterende batteritid er et skøn, der baseres på din brug af enheden"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Estimeret resterende tid"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Indtil den er fuldt opladet"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Alle notifikationer fra \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Alle notifikationer for <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Automatiske notifikationer"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikation om dagen</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikationer om dagen</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikation om ugen</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikationer om ugen</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Aldrig"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Enheds- og appnotifikationer"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Styr, hvilke apps og enheder der må læse notifikationer"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 64a115e..65f284e 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -413,7 +413,7 @@
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Bei Gesichtsentsperrung in Apps immer Bestätigung anfordern"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Gesichtsmodell löschen"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Gesichtsentsperrung einrichten"</string>
- <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Du kannst die Entsperrung per Gesichtserkennung zum Entsperren deines Smartphones oder zur Authentifizierung in Apps verwenden, beispielsweise um dich anzumelden oder um Käufe zu autorisieren.\n\nHinweis:\nEs kann immer nur jeweils ein Gesicht eingerichtet sein. Wenn du ein anderes hinzufügen möchtest, lösche zuerst das aktuelle.\n\nEs kann passieren, dass das Smartphone unbeabsichtigt entsperrt wird, wenn du auf das Gerät blickst.\n\nEine andere Person kann dein Smartphone dadurch entsperren, dass sie es vor dein Gesicht hält.\n\nDein Smartphone kann eventuell auch von jemandem entsperrt werden, der dir sehr ähnlich sieht, beispielsweise von einem eineiigen Zwilling."</string>
+ <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Du kannst die Entsperrung per Gesichtserkennung zum Entsperren deines Smartphones oder zur Authentifizierung in Apps verwenden, beispielsweise um dich anzumelden oder um Käufe zu autorisieren.\n\nHinweis:\nEs kann immer nur jeweils ein Gesicht eingerichtet sein. Wenn du ein anderes hinzufügen möchtest, lösche zuerst das aktuelle.\n\nEs kann passieren, dass das Smartphone unbeabsichtigt entsperrt wird, wenn du auf das Gerät blickst.\n\nEine andere Person kann dein Smartphone entsperren, indem sie es vor dein Gesicht hält.\n\nDein Smartphone kann eventuell auch von jemandem entsperrt werden, der dir sehr ähnlich sieht, beispielsweise von einem eineiigen Zwilling."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Du kannst die Entsperrung per Gesichtserkennung zum Entsperren deines Smartphones oder zur Authentifizierung in Apps verwenden, beispielsweise um dich anzumelden oder um Käufe zu autorisieren.\n\nHinweis:\nEs kann immer nur jeweils ein Gesicht eingerichtet sein. Wenn du ein anderes hinzufügen möchtest, lösche zuerst das aktuelle.\n\nEs kann passieren, dass das Smartphone unbeabsichtigt entsperrt wird, wenn du auf das Gerät blickst.\n\nEine andere Person kann dein Smartphone dadurch entsperren, dass sie es vor dein Gesicht hält, auch wenn deine Augen geschlossen sind.\n\nDein Smartphone kann eventuell auch von jemandem entsperrt werden, der dir sehr ähnlich sieht, beispielsweise von einem eineiigen Zwilling."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Gesichtsmodell löschen?"</string>
<string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Dein Gesichtsmodell wird dauerhaft und sicher gelöscht.\n\nNach dem Löschen benötigst du deine PIN, dein Muster oder dein Passwort, um dein Smartphone zu entsperren und dich in Apps zu authentifizieren."</string>
@@ -1946,6 +1946,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN festlegen"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"PIN für Arbeitsprofil festlegen"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Muster festlegen"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Muster für Arbeitsprofil festlegen"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Für Fingerabdruck Passwort festlegen"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Für Fingerabdruck Muster festlegen"</string>
@@ -2927,8 +2929,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Keine Nutzung seit der letzten vollständigen Aufladung"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Keine Nutzung in den letzten 24 Stunden"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Andere Nutzer"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Die verbleibende Akkulaufzeit wird anhand der Gerätenutzung geschätzt"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Geschätzte verbleibende Akkulaufzeit"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Bis zur vollständigen Aufladung"</string>
@@ -4009,14 +4010,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Alle Benachrichtigungen von „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Alle Benachrichtigungen von <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive Benachrichtigungen"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Ungefähr <xliff:g id="NUMBER_1">%,d</xliff:g> Benachrichtigungen pro Tag</item>
- <item quantity="one">Ungefähr <xliff:g id="NUMBER_0">%d</xliff:g> Benachrichtigung pro Tag</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Ungefähr <xliff:g id="NUMBER_1">%,d</xliff:g> Benachrichtigungen pro Woche</item>
- <item quantity="one">Ungefähr <xliff:g id="NUMBER_0">%d</xliff:g> Benachrichtigung pro Woche</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nie"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Geräte- und App-Benachrichtigungen"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Festlegen, welche Apps und Geräte Benachrichtigungen lesen dürfen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 3618a2f..9e4a615 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Ορίστε ένα PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ορίστε ένα PIN εργασίας"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Ορίστε ένα μοτίβο"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ορίστε ένα μοτίβο εργασίας"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Για χρήση δακτ. αποτ. ορίστε κωδ. πρόσβ."</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Για χρήση δακτ. αποτ. ορίστε μοτίβο"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Καμία χρήση από την τελευταία πλήρη φόρτιση"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Καμία χρήση τις τελευταίες 24 ώρες"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Άλλοι χρήστες"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Η εκτίμηση της μπαταρίας που απομένει βασίζεται στη χρήση της συσκευής σας"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Εκτιμώμενος υπολειπόμενος χρόνος"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Μέχρι την πλήρη φόρτιση"</string>
@@ -4006,13 +4007,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Όλες οι ειδοποιήσεις \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Όλες οι ειδοποιήσεις <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Προσαρμοστικές ειδοποιήσεις"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ειδοποιήσεις ανά ημέρα</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ειδοποίηση ανά ημέρα</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">Περίπου <xliff:g id="NUMBER_1">%,d</xliff:g> ειδοποιήσεις την ημέρα</item>
+ <item quantity="one">Περίπου <xliff:g id="NUMBER_0">%d</xliff:g> ειδοποίηση την ημέρα</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ειδοποιήσεις ανά εβδομάδα</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ειδοποίηση ανά εβδομάδα</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">Περίπου <xliff:g id="NUMBER_1">%,d</xliff:g> ειδοποιήσεις την εβδομάδα</item>
+ <item quantity="one">Περίπου <xliff:g id="NUMBER_0">%d</xliff:g> ειδοποίηση την εβδομάδα</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Ποτέ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Ειδοποιήσεις συσκευής και εφαρμογών"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 2b4621e..73cd908 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Set a PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Set a work PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Set a pattern"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"For added security, set a pattern to unlock the device"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Set a work pattern"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"To use fingerprint, set password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"To use fingerprint, set pattern"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"All \'<xliff:g id="APP_NAME">%1$s</xliff:g>\' notifications"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"All <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive notifications"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Never"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Device & app notifications"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 25a5f9d..5887049 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Set a PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Set a work PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Set a pattern"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"For added security, set a pattern to unlock the device"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Set a work pattern"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"To use fingerprint, set password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"To use fingerprint, set pattern"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"All \'<xliff:g id="APP_NAME">%1$s</xliff:g>\' notifications"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"All <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive notifications"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Never"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Device & app notifications"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 5e2458d..54f832e 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Set a PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Set a work PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Set a pattern"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"For added security, set a pattern to unlock the device"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Set a work pattern"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"To use fingerprint, set password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"To use fingerprint, set pattern"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"All \'<xliff:g id="APP_NAME">%1$s</xliff:g>\' notifications"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"All <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive notifications"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Never"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Device & app notifications"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index bd0db03..2006646 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Set a PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Set a work PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Set a pattern"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"For added security, set a pattern to unlock the device"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Set a work pattern"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"To use fingerprint, set password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"To use fingerprint, set pattern"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"All \'<xliff:g id="APP_NAME">%1$s</xliff:g>\' notifications"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"All <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive notifications"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Never"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Device & app notifications"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 0620de0..ea36cd8 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Set a PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Set a work PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Set a pattern"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"For added security, set a pattern to unlock the device"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Set a work pattern"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"To use fingerprint, set password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"To use fingerprint, set pattern"</string>
@@ -4005,13 +4006,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"All \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" notifications"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"All <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptive Notifications"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per day</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="one">About <xliff:g id="NUMBER_0">%d</xliff:g> notification per week</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Never"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Device & app notifications"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ffe680d..79cd30e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Establecer un PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Establecer un PIN de trabajo"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Establecer un patrón"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Establecer un patrón de trabajo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Configura la contraseña de respaldo"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Para usar tu huella, configura un patrón"</string>
@@ -4007,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas las notificaciones de \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas las notificaciones de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificaciones adaptables"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Aproximadamente <xliff:g id="NUMBER_1">%,d</xliff:g> notificaciones por día</item>
- <item quantity="one">Aproximadamente <xliff:g id="NUMBER_0">%d</xliff:g> notificación por día</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Aproximadamente <xliff:g id="NUMBER_1">%,d</xliff:g> notificaciones por semana</item>
- <item quantity="one">Aproximadamente <xliff:g id="NUMBER_0">%d</xliff:g> notificación por semana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificaciones de la app y del dispositivo"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controla qué apps y dispositivos pueden leer notificaciones"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index f727329..9620bcd 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -44,7 +44,7 @@
<string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
<string name="radioInfo_unknown" msgid="2892562356748600367">"Desconocido"</string>
<string name="sdcard_unmount" product="nosdcard" msgid="1816306320988638382">"Desconectar USB"</string>
- <string name="sdcard_unmount" product="default" msgid="8078570285871053815">"Desconectar tarjeta SD"</string>
+ <string name="sdcard_unmount" product="default" msgid="8078570285871053815">"Desmontar tarjeta SD"</string>
<string name="sdcard_format" product="nosdcard" msgid="3248760426252305366">"Borrar almacenamiento USB"</string>
<string name="sdcard_format" product="default" msgid="3676635435136326182">"Borrar tarjeta SD"</string>
<string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
@@ -1527,7 +1527,7 @@
<string name="storage_settings_for_app" msgid="229425418984637483">"Almacenamiento y caché"</string>
<string name="storage_usb_settings" msgid="7058142934214211583">"Almacenamiento"</string>
<string name="storage_settings_title" msgid="486118156723194815">"Ajustes de almacenamiento"</string>
- <string name="storage_settings_summary" product="nosdcard" msgid="3858049818577638926">"Desconectar almacenamiento USB, ver almacenamiento disponible"</string>
+ <string name="storage_settings_summary" product="nosdcard" msgid="3858049818577638926">"Desmontar almacenamiento USB, ver almacenamiento disponible"</string>
<string name="storage_settings_summary" product="default" msgid="267557695753980969">"Desconectar tarjeta SD, ver almacenamiento disponible."</string>
<string name="imei_multi_sim" msgid="71477088017585479">"IMEI (ranura SIM %1$d)"</string>
<string name="view_saved_network" msgid="1232387673095080910">"Para verla, selecciona una red guardada"</string>
@@ -1578,9 +1578,9 @@
<string name="memory_music_usage" msgid="8100634000114206429">"Audio (música, tonos, etc.)"</string>
<string name="memory_media_misc_usage" msgid="7066851245178533269">"Otros archivos"</string>
<string name="memory_media_cache_usage" msgid="780808666853685824">"Datos almacenados en caché"</string>
- <string name="sd_eject" product="nosdcard" msgid="6136102589751843304">"Desconectar almacenamiento compartido"</string>
- <string name="sd_eject" product="default" msgid="8062832622096296251">"Desconectar tarjeta SD"</string>
- <string name="sd_eject_summary" product="nosdcard" msgid="6859940774161708871">"Desconectar almacenamiento USB interno"</string>
+ <string name="sd_eject" product="nosdcard" msgid="6136102589751843304">"Desmontar almacenamiento compartido"</string>
+ <string name="sd_eject" product="default" msgid="8062832622096296251">"Desmontar tarjeta SD"</string>
+ <string name="sd_eject_summary" product="nosdcard" msgid="6859940774161708871">"Desmontar almacenamiento USB interno"</string>
<string name="sd_eject_summary" product="default" msgid="5151243312587186226">"Desconectar la tarjeta SD para extraerla de forma segura"</string>
<string name="sd_insert_summary" product="nosdcard" msgid="9164545135649775664">"Inserta USB para activar almacenamiento"</string>
<string name="sd_insert_summary" product="default" msgid="5949168259622002192">"Insertar una tarjeta SD para el montaje"</string>
@@ -1593,14 +1593,14 @@
<string name="sd_format_summary" product="nosdcard" msgid="6179784504937189658">"Borrar todos los datos del almacenamiento USB del teléfono, como la música y las fotos"</string>
<string name="sd_format_summary" product="default" msgid="60583152211068164">"Borrar todos los datos de la tarjeta SD, como la música y las fotos"</string>
<string name="mtp_ptp_mode_summary" msgid="7969656567437639239">"La función MTP o PTP está activa."</string>
- <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="7694112411895701320">"¿Desconectar almacenamiento USB?"</string>
- <string name="dlg_confirm_unmount_title" product="default" msgid="8251329019960361646">"¿Desconectar tarjeta SD?"</string>
- <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="1212025106709645023">"Si desconectas el almacenamiento USB, se detendrán algunas aplicaciones que estás usando y no estarán disponibles hasta que vuelvas a activarlo."</string>
- <string name="dlg_confirm_unmount_text" product="default" msgid="3887768438615563697">"Si desconectas la tarjeta SD, se detendrán algunas aplicaciones en ejecución y no estarán disponibles hasta que la vuelvas a activar."</string>
+ <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="7694112411895701320">"¿Desmontar almacenamiento USB?"</string>
+ <string name="dlg_confirm_unmount_title" product="default" msgid="8251329019960361646">"¿Desmontar tarjeta SD?"</string>
+ <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="1212025106709645023">"Si desmontas el almacenamiento USB, se detendrán algunas aplicaciones que estás usando y no estarán disponibles hasta que vuelvas a activarlo."</string>
+ <string name="dlg_confirm_unmount_text" product="default" msgid="3887768438615563697">"Si desmontas la tarjeta SD, se detendrán algunas aplicaciones en ejecución y no estarán disponibles hasta que la vuelvas a activar."</string>
<string name="dlg_error_unmount_title" product="nosdcard" msgid="2205587942165199845"></string>
<string name="dlg_error_unmount_title" product="default" msgid="2205587942165199845"></string>
- <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"No se ha podido desconectar el almacenamiento USB. Inténtalo de nuevo más tarde."</string>
- <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"No se ha podido desconectar la tarjeta SD. Inténtalo de nuevo más tarde."</string>
+ <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"No se ha podido desmontar el almacenamiento USB. Inténtalo de nuevo más tarde."</string>
+ <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"No se ha podido desmontar la tarjeta SD. Inténtalo de nuevo más tarde."</string>
<string name="unmount_inform_text" product="nosdcard" msgid="5932607205977999175">"Se desactivará el almacenamiento USB."</string>
<string name="unmount_inform_text" product="default" msgid="716578785262713312">"Se desactivará la tarjeta SD."</string>
<string name="sd_ejecting_title" msgid="1641122369013595273">"Desactivando"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Establece un PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Define un PIN para el trabajo"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Crea un patrón"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Crea un patrón de trabajo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Para usar una huella, establece un patrón"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Para usar una huella, establece un patrón"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Sin uso desde la última carga completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Sin uso durante las últimas 24 horas"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Otros usuarios"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"La estimación de la batería restante se basa en el uso de tu dispositivo"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tiempo restante estimado"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Hasta completar la carga"</string>
@@ -3925,7 +3926,7 @@
<string name="notification_pulse_title" msgid="8013178454646671529">"Luz parpadeante"</string>
<string name="lock_screen_notifications_title" msgid="2876323153692406203">"Privacidad"</string>
<string name="lockscreen_bypass_title" msgid="6519964196744088573">"Saltar pantalla de bloqueo"</string>
- <string name="lockscreen_bypass_summary" msgid="464277506200346748">"Después de desbloquear, ir a la última pantalla usada"</string>
+ <string name="lockscreen_bypass_summary" msgid="464277506200346748">"Después de desbloquear, ir a la última pantalla usada."</string>
<string name="keywords_lockscreen_bypass" msgid="41035425468915498">"Pantalla de bloqueo, pantalla bloqueo, saltar, evitar"</string>
<string name="locked_work_profile_notification_title" msgid="279367321791301499">"Con el perfil de trabajo bloqueado"</string>
<string name="lock_screen_notifs_title" msgid="3412042692317304449">"Notificaciones en pantalla de bloqueo"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas las notificaciones de \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas las notificaciones de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificaciones adaptativas"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Aproximadamente <xliff:g id="NUMBER_1">%,d</xliff:g> notificaciones al día</item>
- <item quantity="one">Aproximadamente <xliff:g id="NUMBER_0">%d</xliff:g> notificación al día</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Aproximadamente <xliff:g id="NUMBER_1">%,d</xliff:g> notificaciones a la semana</item>
- <item quantity="one">Aproximadamente <xliff:g id="NUMBER_0">%d</xliff:g> notificación a la semana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificaciones del dispositivo y de aplicaciones"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controla qué aplicaciones y dispositivos pueden leer notificaciones"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 020cdb8..7da5533 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Määrake PIN-kood"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Määrake tööprofiili PIN-kood"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Määrake muster"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Määrake tööprofiili muster"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Sõrmejälje kasutamiseks määrake parool"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Sõrmejälje kasutamiseks määrake muster"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Pole alates viimasest täislaadimisest kasutatud"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Pole viimase 24 tunni jooksul kasutatud"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Teised kasutajad"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Aku järelejäänud tööaja prognoos põhineb seadme kasutusel"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Hinnanguline järelejäänud aeg"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Täislaadimiseni"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Kõik tüüpi „<xliff:g id="APP_NAME">%1$s</xliff:g>” märguanded"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Kõik rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> märguanded"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Kohanduvad märguanded"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> märguannet päevas</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> märguanne päevas</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> märguannet nädalas</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> märguanne nädalas</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Mitte kunagi"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Seadmete ja rakenduste märguanded"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Hallake, millised rakendused ja seadmed saavad märguandeid lugeda"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 6c605b0..2dbcf90 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Ezarri PIN bat"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ezarri laneko PIN bat"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Ezarri eredu bat"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ezarri laneko eredu bat"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Hatz-marka erabiltzeko, ezarri pasahitza"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Hatz-marka erabiltzeko, ezarri eredu bat"</string>
@@ -2878,7 +2880,7 @@
<string name="battery_desc_flashlight" msgid="6694895513133361404">"Linternak erabilitako bateria"</string>
<string name="battery_desc_camera" msgid="6152712271731518018">"Kamerak erabilitako bateria"</string>
<string name="battery_desc_display" msgid="7175017688954602685">"Pantailak eta hondoko argiak erabilitako bateria"</string>
- <string name="battery_sugg_display" msgid="3102137296547788111">"Murriztu pantailaren distira edota pantailaren denbora-muga"</string>
+ <string name="battery_sugg_display" msgid="3102137296547788111">"Murriztu pantailaren distira eta/edo pantailaren denbora-muga"</string>
<string name="battery_desc_wifi" msgid="5276669172548928768">"Wi-Fiak erabilitako energia"</string>
<string name="battery_sugg_wifi" msgid="359757575108350109">"Desaktibatu Wi‑Fi konexioa erabiltzen ari ez denean edo erabilgarri ez dagoenean."</string>
<string name="battery_desc_bluetooth" msgid="2237947137783306282">"Bluetooth bidezko konexioak erabilitako bateria"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Erabilerarik ez bateria guztiz kargatu zenetik"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Erabilerarik ez azken 24 orduetan"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Beste erabiltzaileak"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Gailuaren erabileran oinarritzen da gelditzen den bateriaren aurreikuspena"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Geratzen den denbora, gutxi gorabehera"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"guztiz kargatu arte"</string>
@@ -3994,7 +3995,7 @@
<string name="notification_silence_title" msgid="4085829874452944989">"Isila"</string>
<string name="notification_alert_title" msgid="1632401211722199217">"Lehenetsia"</string>
<string name="allow_interruption" msgid="5237201780159482716">"Baimendu etenaldiak"</string>
- <string name="allow_interruption_summary" msgid="9044131663518112543">"Utzi aplikazioari soinuak edo dardara egiten, edota pantailan jakinarazpenak erakusten"</string>
+ <string name="allow_interruption_summary" msgid="9044131663518112543">"Utzi aplikazioari soinuak edo dardara egiten, eta/edo pantailan jakinarazpenak erakusten"</string>
<string name="notification_priority_title" msgid="5554834239080425229">"Lehentasunezkoa"</string>
<string name="notification_channel_summary_priority" msgid="7225362351439076913">"Burbuila gisa agertzen da elkarrizketen atalaren goialdean, eta profileko argazkia bistaratzen du pantaila blokeatuta dagoenean"</string>
<string name="convo_not_supported_summary" msgid="4285471045268268048">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioak ez ditu onartzen elkarrizketetarako eginbide gehienak. Ezin dituzu ezarri elkarrizketak lehentasunezko gisa, eta ez dira agertuko burbuila gainerakor gisa elkarrizketen atalaren goialdean."</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" aplikazioaren jakinarazpen guztiak"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioaren jakinarazpen guztiak"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Jakinarazpen egokituak"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other"><xliff:g id="NUMBER_1">%,d</xliff:g> jakinarazpen inguru eguneko</item>
- <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> jakinarazpen inguru eguneko</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other"><xliff:g id="NUMBER_1">%,d</xliff:g> jakinarazpen inguru asteko</item>
- <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> jakinarazpen inguru asteko</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Inoiz ez"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Gailu eta aplikazioen jakinarazpenak"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrolatu jakinarazpenak irakur ditzaketen aplikazioak eta gailuak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 3106e91..d6328f0 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"تنظیم پین"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"تنظیم پین کاری"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"تنظیم الگو"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"تنظیم الگوی کاری"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"تنظیم گذرواژه برای استفاده از اثر انگشت"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"تنظیم الگو برای استفاده از اثر انگشت"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"از آخرین شارژ کامل استفاده نشده است"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"در ۲۴ ساعت گذشته استفاده نشده است"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"کاربران دیگر"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"شارژ باتری باقیمانده براساس مصرف دستگاه تخمین زده میشود"</string>
<string name="estimated_time_left" msgid="948717045180211777">"زمان باقیمانده تخمینی"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"مانده تا شارژ کامل"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"همه اعلانهای «<xliff:g id="APP_NAME">%1$s</xliff:g>»"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"همه اعلانهای <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"اعلانهای تطبیقی"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> اعلان در روز</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> اعلان در روز</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> اعلان در هفته</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> اعلان در هفته</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"هرگز"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"اعلانهای دستگاه و برنامه"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"کنترل برنامهها و دستگاههایی که میتوانند اعلانها را بخوانند"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index b9dc8ae..4621ddf 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Valitse PIN-koodi"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Valitse työ-PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Valitse kuvio"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Valitse työkuvio"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Sormenjälki: aseta salasana"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Sormenjälki: aseta kuvio"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Ei käyttöä viimeisimmän täyteen lataamisen jälkeen"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Ei käyttöä 24 viime tunnin aikana"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Muut käyttäjät"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Arvio akun kestosta perustuu aiempaan laitteen käyttöön."</string>
<string name="estimated_time_left" msgid="948717045180211777">"Arvioitu jäljellä oleva aika"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Täyteen lataukseen"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Kaikki ilmoitukset: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Kaikki ilmoitukset: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Mukautuvat ilmoitukset"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ilmoitusta päivässä</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ilmoitus päivässä</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ilmoitusta viikossa</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ilmoitus viikossa</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Ei koskaan"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Laite- ja sovellusilmoitukset"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Valitse, mitkä sovellukset ja laitteet voivat lukea ilmoituksia"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 37eda41..56748c8 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Définir un NIP"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Définir un NIP professionnel"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Définir un schéma"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Définir un mot de schéma professionnel"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Pour util. empr. digit., config. m. de passe"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Pour utiliser empreinte digitale, configurer un schéma"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Aucune utilisation depuis la dernière recharge complète"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Aucune utilisation au cours des dernières 24 heures"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Autres utilisateurs"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"L\'estimation de l\'autonomie restante est basée sur l\'utilisation de l\'appareil"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Temps restant estimé"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Jusqu\'à la charge complète"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Toutes les notifications de « <xliff:g id="APP_NAME">%1$s</xliff:g> »"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Toutes les notifications de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notifications adaptatives"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notification par jour</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications par jour</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notification par semaine</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications par semaine</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Jamais"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notifications de l\'appareil et des applications"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Contrôler quelles applications et quels appareils peuvent lire les notifications"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c6743e7..0179264 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1944,6 +1944,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Définissez un code"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Définir un code professionnel"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Définissez un schéma"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Définir un schéma professionnel"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Définissez un mot de passe"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Définissez un schéma"</string>
@@ -2925,8 +2927,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Pas d\'utilisation depuis la dernière charge complète"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Pas d\'utilisation au cours des dernières 24 h"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Autres utilisateurs"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"L\'estimation de l\'autonomie restante est basée sur l\'utilisation de l\'appareil"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Temps restant estimé"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Jusqu\'à la charge complète"</string>
@@ -4007,14 +4008,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Toutes les notifications de \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Toutes les notifications de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notifications intelligentes"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">Environ <xliff:g id="NUMBER_1">%,d</xliff:g> notification par jour</item>
- <item quantity="other">Environ <xliff:g id="NUMBER_1">%,d</xliff:g> notifications par jour</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">Environ <xliff:g id="NUMBER_1">%,d</xliff:g> notification par semaine</item>
- <item quantity="other">Environ <xliff:g id="NUMBER_1">%,d</xliff:g> notifications par semaine</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Jamais"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notifications de l\'appareil et des applis"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Contrôler les applis et les appareils qui peuvent lire les notifications"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 889769b..f4540e8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1202,7 +1202,7 @@
<string name="wifi_hotspot_name_summary_connected" msgid="6935457127884928249">"Outros dispositivos poden conectarse á zona wifi <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
<string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Contrasinal da zona wifi"</string>
<string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda do punto de acceso"</string>
- <string name="wifi_hotspot_footer_info_regular" msgid="6620216295510397461">"Utiliza a zona wifi para crear unha rede wifi para os teus outros dispositivos. A zona wifi ofrece acceso a Internet a través da túa conexión de datos móbiles. É posible que se apliquen cargos de datos móbiles adicionais."</string>
+ <string name="wifi_hotspot_footer_info_regular" msgid="6620216295510397461">"Utiliza a zona wifi para crear unha rede wifi para os teus outros dispositivos. A zona wifi ofrece acceso a Internet a través da túa conexión de datos móbiles. É posible que se apliquen cargos adicionais polo uso de datos móbiles."</string>
<string name="wifi_hotspot_footer_info_local_only" msgid="3813311942370920903">"As aplicacións poden crear unha zona wifi para compartir contido cos dispositivos que están cerca."</string>
<string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desactivar a zona wifi automaticamente"</string>
<string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Se non hai ningún dispositivo conectado"</string>
@@ -1497,7 +1497,7 @@
<string name="sim_multi_sims_summary" msgid="1711012455679332238">"Selecciona a SIM que prefiras usar para os datos móbiles."</string>
<string name="sim_change_data_title" msgid="4663239438584588847">"Usar <xliff:g id="CARRIER">%1$s</xliff:g> para os datos móbiles?"</string>
<string name="sim_change_data_message" msgid="3046178883369645132">"Estás utilizando <xliff:g id="CARRIER2_0">%2$s</xliff:g> para os datos móbiles. Se cambias a <xliff:g id="CARRIER1">%1$s</xliff:g>, deixarase de utilizar <xliff:g id="CARRIER2_1">%2$s</xliff:g> para os datos móbiles."</string>
- <string name="sim_change_data_ok" msgid="4922114750417276560">"Utilizar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+ <string name="sim_change_data_ok" msgid="4922114750417276560">"Usar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
<string name="sim_preferred_title" msgid="7182406911552216373">"Actualizar a SIM preferida?"</string>
<string name="sim_preferred_message" msgid="6004009449266648351">"A única SIM do dispositivo é: <xliff:g id="NEW_SIM">%1$s</xliff:g>. Queres usar esta SIM para os datos móbiles, as chamadas e as mensaxes SMS?"</string>
<string name="wrong_pin_code_pukked" msgid="3414172752791445033">"Código PIN da SIM incorrecto. Agora debes contactar co operador para desbloquear o dispositivo."</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Define un PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Define un PIN para o traballo"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Define un padrón"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Define un padrón para o traballo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Impresión dixital: contrasinal"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Define un padrón para a impresión dixital"</string>
@@ -2482,7 +2484,7 @@
<string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibración do ton"</string>
<string name="accessibility_notification_vibration_title" msgid="6205679908785776478">"Vibración das notificacións"</string>
<string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Reacción aos toques"</string>
- <string name="accessibility_service_primary_switch_title" msgid="437610853412159406">"Utilizar <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
+ <string name="accessibility_service_primary_switch_title" msgid="437610853412159406">"Usar <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
<string name="accessibility_service_primary_open_title" msgid="8655108684769091154">"Abrir <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
<string name="accessibility_service_auto_added_qs_tooltip_content" msgid="2941824314912928072">"Engadiuse <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> ao menú Configuración rápida. Pasa o dedo cara abaixo para activar ou desactivar a función cando queiras."</string>
<string name="accessibility_service_qs_tooltip_content" msgid="6002493441414967868">"Tamén podes engadir <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> ao menú Configuración rápida desde a parte superior da pantalla"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Sen uso da batería desde a última carga completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Sen uso da batería nas últimas 24 horas"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Outros usuarios"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"A estimación do nivel de batería baséase no uso do dispositivo"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Para completar a carga"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas as notificacións de \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas as notificacións de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificacións intelixentes"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificacións ao día</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificación ao día</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other"><xliff:g id="NUMBER_1">%,d</xliff:g> notificacións á semana aproximadamente</item>
- <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> notificación á semana aproximadamente</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificacións de aplicacións e dispositivos"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controla cales das túas aplicacións e dispositivos poden ler as notificacións"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 572eb86..b624890 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"પિન સેટ કરો"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ઑફિસની પ્રોફાઇલ માટે પિન સેટ કરો"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"પૅટર્ન સેટ કરો"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ઑફિસની પ્રોફાઇલ માટે પૅટર્ન સેટ કરો"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ફિંગરપ્રિન્ટ વાપરવા પાસવર્ડ સેટ કરો"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ફિંગરપ્રિન્ટ વાપરવા પૅટર્ન સેટ કરો"</string>
@@ -1951,7 +1953,7 @@
<string name="lockpassword_confirm_your_password_header" msgid="6132312814563023990">"તમારો પાસવર્ડ ફરી દાખલ કરો"</string>
<string name="lockpassword_reenter_your_profile_password_header" msgid="3812040127714827685">"ઑફિસની પ્રોફાઇલનો પાસવર્ડ ફરી દાખલ કરો"</string>
<string name="lockpassword_confirm_your_work_password_header" msgid="4647071231702288305">"તમારા કાર્યાલયનો પાસવર્ડ દાખલ કરો"</string>
- <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"તમારી પૅટર્નની પુષ્ટિ કરો"</string>
+ <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"તમારી પૅટર્ન કન્ફર્મ કરો"</string>
<string name="lockpassword_confirm_your_work_pattern_header" msgid="2668883108969165844">"કાર્યાલયની પૅટર્ન દાખલ કરો"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="2241722970567131308">"તમારો પિન ફરી દાખલ કરો"</string>
<string name="lockpassword_reenter_your_profile_pin_header" msgid="2890233614560435538">"ઑફિસની પ્રોફાઇલનો પિન ફરી દાખલ કરો"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"છેલ્લે પૂર્ણ ચાર્જ કરાયા પછી બિલકુલ વપરાશ થયો નથી"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"છેલ્લા 24 કલાકમાં બિલકુલ વપરાશ થયો નથી"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"અન્ય વપરાશકર્તાઓ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"બાકી રહેલી બૅટરીનો અંદાજ ડિવાઇસના તમારા ઉપયોગ પર આધારિત છે"</string>
<string name="estimated_time_left" msgid="948717045180211777">"અંદાજિત બાકી સમય"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"સંપૂર્ણપણે ચાર્જ થવામાં"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\"ના તમામ નોટિફિકેશન"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g>ના બધા નોટિફિકેશન"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"સુવિધાજનક નોટિફિકેશન"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> નોટિફિકેશન પ્રતિ દિવસ</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> નોટિફિકેશન પ્રતિ દિવસ</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> નોટિફિકેશન પ્રતિ સપ્તાહ</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> નોટિફિકેશન પ્રતિ સપ્તાહ</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ક્યારેય નહીં"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ડિવાઇસ અને ઍપના નોટિફિકેશન"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"કઈ ઍપ અને ડિવાઇસ નોટિફિકેશન વાંચી શકશે તેનું નિયંત્રણ કરો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index c41ee6e..fafce7c 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -342,13 +342,13 @@
<string name="security_settings_face_preference_summary_none" msgid="5952752252122581846">"फ़ेस अनलॉक की सुविधा सेट अप करने के लिए टैप करें"</string>
<string name="security_settings_face_preference_title" msgid="2126625155005348417">"फ़ेस अनलॉक"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"वर्क प्रोफ़ाइल के लिए फ़ेस अनलॉक"</string>
- <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"फ़ेस अनलॉक की सुविधा सेट अप करने का तरीका"</string>
+ <string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"फ़ेस अनलॉक की सुविधा सेटअप करने का तरीका"</string>
<string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"फे़स अनलॉक की सुविधा सेट अप करें"</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"चेहरे का इस्तेमाल कर पुष्टि करें"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_message_accessibility" msgid="1986648712195281391"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"शुरू करें"</string>
- <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"अगर सुलभता सुविधा में फ़ेस अनलॉक की सुविधा बंद है, तो हो सकता है कि सेटअप के कुछ चरण, टॉकबैक के साथ ठीक से काम न करें."</string>
+ <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"अगर सुलभता सुविधा में फ़ेस अनलॉक की सुविधा बंद है, तो हो सकता है कि सेटअप के कुछ चरण, TalkBack के साथ ठीक से काम न करें."</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_negative" msgid="7872647360361245461">"वापस जाएं"</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_positive" msgid="3148077647572203458">"सेट अप जारी रखें"</string>
<string name="security_settings_face_enroll_introduction_accessibility" msgid="5748221179069430975">"सुलभता सेटअप का इस्तेमाल करें"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"पिन सेट करें"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"वर्क प्रोफ़ाइल का पिन सेट करें"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"पैटर्न सेट करें"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"वर्क प्रोफाइल का पैटर्न सेट करें"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"फ़िंगरप्रिंट का इस्तेमाल करने के लिए, पासवर्ड सेट करें"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"फ़िंगरप्रिंट का इस्तेमाल करने के लिए, पैटर्न सेट करें"</string>
@@ -2306,7 +2308,7 @@
<string name="user_installed_services_category_title" msgid="2639470729311439731">"डाउनलोड किए गए ऐप्लिकेशन"</string>
<string name="experimental_category_title" msgid="898904396646344152">"प्रयोग के लिए"</string>
<string name="feature_flags_dashboard_title" msgid="348990373716658289">"सुविधाएं दिखाने वाले फ़्लैग"</string>
- <string name="talkback_title" msgid="8756080454514251327">"टॉकबैक"</string>
+ <string name="talkback_title" msgid="8756080454514251327">"TalkBack"</string>
<string name="talkback_summary" msgid="5820927220378864281">"स्क्रीन रीडर खास तौर पर दृष्टिहीन और कमज़ोर नज़र वाले लोगों के लिए है"</string>
<string name="select_to_speak_summary" msgid="1995285446766920925">"अपनी स्क्रीन पर दिए गए आइटम तेज़ आवाज़ में सुनने के लिए उन पर टैप करें"</string>
<string name="accessibility_captioning_title" msgid="4561871958958925225">"कैप्शन की सेटिंग"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"पिछली बार पूरी चार्ज होने के बाद, बैटरी का इस्तेमाल नहीं हुआ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"पिछले 24 घंटे में, बैटरी का इस्तेमाल नहीं हुआ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"अन्य उपयोगकर्ता"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"डिवाइस के इस्तेमाल के हिसाब से अनुमान लगाया गया है कि फ़ोन की बैटरी और कितनी देर चलेगी"</string>
<string name="estimated_time_left" msgid="948717045180211777">"अनुमानित बचा हुआ समय"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"पूरी तरह चार्ज होने तक"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" की सभी सूचनाएं"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> की सभी सूचनाएं"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ज़रूरत के हिसाब से सूचनाएं"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">रोज़~<xliff:g id="NUMBER_1">%,d</xliff:g> सूचना</item>
- <item quantity="other">रोज़ ~<xliff:g id="NUMBER_1">%,d</xliff:g> सूचनाएं</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">हर हफ़्ते ~<xliff:g id="NUMBER_1">%,d</xliff:g> सूचना</item>
- <item quantity="other">हर हफ़्ते ~<xliff:g id="NUMBER_1">%,d</xliff:g> सूचनाएं</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"कभी नहीं"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"डिवाइस और ऐप्लिकेशन की सूचनाएं"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"यह कंट्रोल करें कि कौनसे ऐप्लिकेशन और डिवाइस आपको मिलने वाली सूचनाएं पढ़ सकते हैं"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c4c777a..e59f981 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1967,6 +1967,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Postavite PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Postavite PIN poslovnog profila"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Postavite uzorak"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Postavite uzorak poslovnog profila"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Otisak prsta zahtijeva zaporku"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Otisak prsta zahtijeva uzorak"</string>
@@ -4051,16 +4053,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Sve obavijesti aplikacije \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Sve obavijesti aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Prilagodljive obavijesti"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijest dnevno</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijesti dnevno</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijesti dnevno</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijest tjedno</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijesti tjedno</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> obavijesti tjedno</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikada"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Obavijesti na uređaju i u aplikacijama"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Odredite koje aplikacije i uređaji mogu čitati obavijesti"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ca15057..48bbca5 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN-kód beállítása"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Munkahelyi PIN-kód beállítása"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Minta beállítása"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Munkahelyi minta beállítása"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Jelszó az ujjlenyomathoz"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Minta az ujjlenyomathoz"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Nincs használat az utolsó teljes feltöltés óta"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nem volt használatban az elmúlt 24 órában"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Egyéb felhasználók"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Az akkumulátor becsült töltöttsége az eszközhasználaton alapszik"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Becsült hátralévő idő"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"A teljes feltöltésig"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"A(z) „<xliff:g id="APP_NAME">%1$s</xliff:g>” összes értesítése"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Az összes <xliff:g id="APP_NAME">%1$s</xliff:g>-értesítés"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Alkalmazkodó értesítések"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> értesítés naponta</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> értesítés naponta</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> értesítés hetente</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> értesítés hetente</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Soha"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Eszköz- és alkalmazásértesítések"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Vezérelheti, hogy mely alkalmazások és eszközök olvashatják az értesítéseket"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0ec1130..d250eff 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Սահմանեք PIN կոդ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Սահմանեք աշխատանքային պրոֆիլի PIN կոդ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Սահմանեք նախշ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Սահմանեք աշխատանքային պրոֆիլի նախշ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Մատնահետքն օգտագործելու համար գաղտնաբառ մտածեք"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Մատնահետքն օգտագործելու համար ստեղծեք նախշ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Մարտկոցը չի օգտագործվել վերջին լրիվ լիցքավորումից հետո"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Մարտկոցը չի օգտագործվել վերջին 24 ժամվա ընթացքում"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Այլ օգտատերեր"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Մարտկոցի աշխատանքի տևողությունը մոտավոր է և կախված է սարքի օգտագործումից"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Մոտավոր մնացած ժամանակը"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Մինչև լրիվ լիցքավորումը"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"«<xliff:g id="APP_NAME">%1$s</xliff:g>» պիտակով բոլոր ծանուցումները"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի բոլոր ծանուցումները"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Հարմարվող ծանուցումներ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">Օրական ~<xliff:g id="NUMBER_1">%d</xliff:g> ծանուցում</item>
- <item quantity="other">Օրական ~<xliff:g id="NUMBER_1">%d</xliff:g> ծանուցում</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">Շաբաթական ~<xliff:g id="NUMBER_1">%d</xliff:g> ծանուցում</item>
- <item quantity="other">Շաբաթական ~<xliff:g id="NUMBER_1">%d</xliff:g> ծանուցում</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Երբեք"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Սարքերի և հավելվածների ծանուցումներ"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Ընտրել հավելվածներն ու սարքերը, որոնք կարող են կարդալ ծանուցումները"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 93ef624..01f5a64 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Setel PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Setel PIN profil kerja"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Setel pola"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Setel pola profil kerja"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Untuk memakai sidik jari, setel sandi"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Untuk memakai sidik jari, setel pola"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Tidak ada penggunaan sejak terakhir kali baterai terisi penuh"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Tidak ada penggunaan selama 24 jam terakhir"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Pengguna lainnya"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Perkiraan sisa baterai berdasarkan pada penggunaan perangkat"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Perkiraan sisa waktu"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Sampai terisi penuh"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Semua notifikasi \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Semua notifikasi <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notifikasi Adaptif"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikasi per hari</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notifikasi per hari</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifikasi per minggu</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notifikasi per minggu</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Tidak pernah"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notifikasi perangkat & aplikasi"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Mengontrol aplikasi dan perangkat mana yang dapat membaca notifikasi"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 2e057a4..3b28fd8 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Stilltu PIN-númer"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Stilltu PIN-númer fyrir vinnu"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Stilltu mynstur"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Stilltu mynstur fyrir vinnu"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Veldu aðgangsorð til að nota fingrafar"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Veldu mynstur til að nota fingrafar"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Engin notkun frá síðustu fullu hleðslu"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Engin notkun síðasta sólarhringinn"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Aðrir notendur"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Áætluð rafhlöðuending er byggð á notkun þinni á tækinu"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Áætlaður tími eftir"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Þar til fullri hleðslu er náð"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Allar tilkynningar frá „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Allar tilkynningar frá <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Breytilegar tilkynningar"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> tilkynning á dag</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> tilkynningar á dag</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> tilkynning á viku</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> tilkynningar á viku</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Aldrei"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Tækja- og forritatilkynningar"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Stjórna því hvaða forrit og tæki geta lesið tilkynningar"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index d870a26..49d0786 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -271,8 +271,7 @@
<string name="date_and_time_settings_title_setup_wizard" msgid="1841717199409629742">"Imposta data e ora"</string>
<string name="date_and_time_settings_summary" msgid="334967758944498010">"Imposta data, ora, fuso orario e formati"</string>
<string name="date_time_auto" msgid="4239202185055225869">"Imposta automaticamente l\'orario"</string>
- <!-- no translation found for zone_auto_title (5141692422373097957) -->
- <skip />
+ <string name="zone_auto_title" msgid="5141692422373097957">"Imposta automaticamente"</string>
<string name="date_time_24hour_auto" msgid="6583078135067804252">"Usa impostazioni internazionali predefinite"</string>
<string name="date_time_24hour_title" msgid="1445056824481243600">"Formato 24 ore"</string>
<string name="date_time_24hour" msgid="286679379105653406">"Usa il formato 24 ore"</string>
@@ -414,8 +413,8 @@
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Chiedi sempre conferma se viene usato sblocco con il volto nelle app"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Elimina il modello del volto"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Configura lo sblocco con il volto"</string>
- <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Usa il tuo volto per sbloccare il telefono o per l\'autenticazione nelle app, ad esempio per accedere o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il telefono, potresti sbloccarlo anche senza volerlo.\n\nIl tuo telefono può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso.\n\nIl tuo telefono può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un fratello gemello."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Usa il tuo volto per sbloccare il telefono o per l\'autenticazione nelle app, ad esempio per accedere o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il telefono, potresti sbloccarlo anche senza volerlo.\n\nIl tuo telefono può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso, anche se hai gli occhi chiusi.\n\nIl tuo telefono può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un fratello gemello."</string>
+ <string name="security_settings_face_settings_footer" msgid="625696606490947189">"Usa il tuo volto per sbloccare il telefono o per l\'autenticazione nelle app, ad esempio per accedere o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il telefono, potresti sbloccarlo anche senza volerlo.\n\nIl tuo telefono può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso.\n\nIl tuo telefono può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un gemello o una gemella."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Usa il tuo volto per sbloccare il telefono o per l\'autenticazione nelle app, ad esempio per accedere o approvare un acquisto.\n\nTieni presente che:\nPuoi configurare un solo volto alla volta. Per aggiungere un altro volto devi eliminare quello attuale.\n\nSe guardi direttamente il telefono, potresti sbloccarlo anche senza volerlo.\n\nIl tuo telefono può essere sbloccato da un\'altra persona se viene rivolto verso il tuo viso, anche se hai gli occhi chiusi.\n\nIl tuo telefono può essere sbloccato da qualcuno che ti assomiglia molto, ad esempio un gemello o una gemella."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Eliminare il modello del volto?"</string>
<string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Il modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare il PIN, la sequenza o la password per sbloccare il telefono o eseguire l\'autenticazione nelle app."</string>
<string name="security_settings_face_settings_remove_dialog_details_convenience" msgid="475568135197468990">"Il modello del volto verrà eliminato definitivamente e in sicurezza.\n\nDopo l\'eliminazione dovrai usare il PIN, la sequenza o la password per sbloccare il telefono."</string>
@@ -1889,8 +1888,7 @@
<string name="location_services_preference_title" msgid="604317859531782159">"Servizi di geolocalizzazione"</string>
<string name="location_services_screen_title" msgid="5640002489976602476">"Servizi di geolocalizzazione"</string>
<string name="managed_profile_location_services" msgid="8172092734138341880">"Location services for work"</string>
- <!-- no translation found for location_time_zone_detection_toggle_title (6478751613645015287) -->
- <skip />
+ <string name="location_time_zone_detection_toggle_title" msgid="6478751613645015287">"Usa posizione"</string>
<string name="location_time_zone_detection_location_is_off_dialog_title" msgid="231698690198001146">"È necessario attivare la geolocalizzazione del dispositivo"</string>
<string name="location_time_zone_detection_location_is_off_dialog_message" msgid="5846316326139169523">"Per impostare il fuso orario usando la tua posizione, attiva la geolocalizzazione e aggiorna le impostazioni del fuso orario"</string>
<string name="location_time_zone_detection_location_is_off_dialog_ok_button" msgid="2685647335717750297">"Geolocalizzazione"</string>
@@ -1899,8 +1897,7 @@
<string name="location_time_zone_detection_not_applicable" msgid="6757964612836952714">"Il rilevamento del fuso orario in base alla posizione è disattivato"</string>
<string name="location_time_zone_detection_not_supported" msgid="3251181656388306501">"Il rilevamento del fuso orario in base alla posizione non è supportato"</string>
<string name="location_time_zone_detection_not_allowed" msgid="8264525161514617051">"Non sono consentite modifiche relative al rilevamento del fuso orario in base alla posizione"</string>
- <!-- no translation found for location_time_zone_detection_auto_is_on (8797434659844659323) -->
- <skip />
+ <string name="location_time_zone_detection_auto_is_on" msgid="8797434659844659323">"Potrebbe essere utilizzata la posizione per impostare il fuso orario"</string>
<string name="location_network_based" msgid="5247042890080021887">"Posizione Wi‑Fi e rete mobile"</string>
<string name="location_neighborhood_level" msgid="3668890550358558267">"Consenti alle app di usare geolocalizzazione Google per stabilire la posizione. Saranno raccolti e inviati a Google dati anonimi."</string>
<string name="location_neighborhood_level_wifi" msgid="6227393490651891977">"Posizione determinata da Wi‑Fi"</string>
@@ -1946,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Imposta un PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Imposta un PIN per profilo lavoro"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Imposta una sequenza"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Imposta una sequenza per profilo lavoro"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Per usare l\'impronta, imposta una password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Per usare l\'impronta, imposta una sequenza"</string>
@@ -1975,7 +1974,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Hai dimenticato la password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Hai dimenticato la sequenza?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Hai dimenticato il PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Per continuare devi utilizzare la sequenza del dispositivo"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Inserisci la sequenza del dispositivo per continuare"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Per continuare devi inserire il PIN del dispositivo"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Per continuare devi inserire la password del dispositivo"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Per continuare devi utilizzare la sequenza del tuo profilo di lavoro"</string>
@@ -2927,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Nessun utilizzo dall\'ultima ricarica completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nessun utilizzo nelle ultime 24 ore"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Altri utenti"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"La stima della batteria residua si basa sul tuo utilizzo del dispositivo"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tempo residuo stimato"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Tempo rimanente alla carica completa"</string>
@@ -3018,12 +3016,9 @@
<string name="voice_interactor_preference_summary" msgid="3942881638813452880">"Interazione e hotword completa"</string>
<string name="voice_recognizer_preference_summary" msgid="9195427725367463336">"Semplice immissione vocale"</string>
<string name="voice_interaction_security_warning" msgid="7962884055885987671">"Questo servizio di input vocale potrà eseguire sempre il monitoraggio della voce e controllare le applicazioni vocali per tuo conto. Deriva dall\'applicazione <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Attivare l\'utilizzo del servizio?"</string>
- <!-- no translation found for on_device_recognition_settings (6503160369314598069) -->
- <skip />
- <!-- no translation found for on_device_recognition_settings_title (7137599722039096545) -->
- <skip />
- <!-- no translation found for on_device_recognition_settings_summary (3292736423223499348) -->
- <skip />
+ <string name="on_device_recognition_settings" msgid="6503160369314598069">"Impostazioni di riconoscimento sul dispositivo"</string>
+ <string name="on_device_recognition_settings_title" msgid="7137599722039096545">"Riconoscimento sul dispositivo"</string>
+ <string name="on_device_recognition_settings_summary" msgid="3292736423223499348">"Riconoscimento vocale sul dispositivo"</string>
<string name="tts_engine_preference_title" msgid="7808775764174571132">"Motore preferito"</string>
<string name="tts_engine_settings_title" msgid="1298093555056321577">"Impostazioni motore"</string>
<string name="tts_sliders_title" msgid="6901146958648426181">"Velocità voce e tono"</string>
@@ -3930,7 +3925,7 @@
<string name="silent_notifications_status_bar" msgid="6113307620588767516">"Nascondi le notifiche silenziose nella barra di stato"</string>
<string name="notification_pulse_title" msgid="8013178454646671529">"Luce lampeggiante"</string>
<string name="lock_screen_notifications_title" msgid="2876323153692406203">"Privacy"</string>
- <string name="lockscreen_bypass_title" msgid="6519964196744088573">"Ignorare la schermata di blocco"</string>
+ <string name="lockscreen_bypass_title" msgid="6519964196744088573">"Ignora schermata di blocco"</string>
<string name="lockscreen_bypass_summary" msgid="464277506200346748">"Dopo lo sblocco, vai direttamente all\'ultima schermata usata"</string>
<string name="keywords_lockscreen_bypass" msgid="41035425468915498">"Schermata di blocco, Schermata blocco, Salta, Ignora"</string>
<string name="locked_work_profile_notification_title" msgid="279367321791301499">"Con profilo di lavoro bloccato"</string>
@@ -4012,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Tutte le notifiche di \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Tutte le notifiche di <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notifiche adattative"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifiche al giorno</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notifica al giorno</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifiche alla settimana</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notifica alla settimana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Mai"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notifiche app e dispositivi"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controlla quali app e dispositivi possono leggere le notifiche"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4e48054..9467857 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1989,6 +1989,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"הגדרת קוד אימות"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"הגדרת קוד אימות לפרופיל העבודה"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"הגדרת קו ביטול נעילה"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"הגדרת קו ביטול נעילה לפרופיל עבודה"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"כדי להשתמש בטביעת אצבע, עליך להגדיר סיסמה"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"לשימוש בטביעת אצבע, נדרש קו ביטול נעילה"</string>
@@ -4095,17 +4097,17 @@
<string name="notification_switch_label" msgid="8029371325967501557">"כל ההתראות של \'<xliff:g id="APP_NAME">%1$s</xliff:g>\'"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"כל ההתראות של \'<xliff:g id="APP_NAME">%1$s</xliff:g>\'"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"התראות מותאמות"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="two">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ביום</item>
- <item quantity="many">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ביום</item>
- <item quantity="other">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ביום</item>
- <item quantity="one">כהתראה אחת (<xliff:g id="NUMBER_0">%d</xliff:g>) ביום</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="two">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ליום</item>
+ <item quantity="many">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ליום</item>
+ <item quantity="other">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות ליום</item>
+ <item quantity="one">כהתראה אחת (<xliff:g id="NUMBER_0">%d</xliff:g>) ליום</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="two">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות בשבוע</item>
- <item quantity="many">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות בשבוע</item>
- <item quantity="other">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות בשבוע</item>
- <item quantity="one">כהתראה אחת (<xliff:g id="NUMBER_0">%d</xliff:g>) בשבוע</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="two">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות לשבוע</item>
+ <item quantity="many">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות לשבוע</item>
+ <item quantity="other">כ-<xliff:g id="NUMBER_1">%,d</xliff:g> התראות לשבוע</item>
+ <item quantity="one">כהתראה אחת (<xliff:g id="NUMBER_0">%d</xliff:g>) לשבוע</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"אף פעם"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"התראות במכשירים ובאפליקציות"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 0e6497b..676fa9e 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN の設定"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"仕事用 PIN を設定してください"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"パターンを設定"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"仕事用パターンを設定してください"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"指紋認証にはパスワードが必要です"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"指紋認証にはパターンが必要です"</string>
@@ -1972,7 +1974,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"パスワードを忘れた場合"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"パターンを忘れた場合"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN を忘れた場合"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"続行するにはデバイスのパターンを使用してください"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"続行するにはデバイスのパターンを入力してください"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"続行するにはデバイスの PIN を入力してください"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"続行するにはデバイスのパスワードを入力してください"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"仕事用のパターンを使って続行します"</string>
@@ -4005,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」のすべての通知"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> のすべての通知"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"通知の自動調整"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">約 <xliff:g id="NUMBER_1">%,d</xliff:g> 件の通知 / 日</item>
- <item quantity="one">約 <xliff:g id="NUMBER_0">%d</xliff:g> 件の通知 / 日</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">週に約 <xliff:g id="NUMBER_1">%,d</xliff:g> 件の通知</item>
- <item quantity="one">週に約 <xliff:g id="NUMBER_0">%d</xliff:g> 件の通知</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"なし"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"デバイスとアプリの通知"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"通知を読み取れるアプリとデバイスの管理"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 2a41c58..848e54e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"დააყენეთ PIN-კოდი"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"დააყენეთ სამსახურის PIN-კოდი"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"დააყენეთ ნიმუში"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"დააყენეთ სამსახურის ნიმუში"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"თითის ანაბეჭდის გამოსაყენებლად დააყენეთ პაროლი"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"თითის ანაბეჭდისთვის დააყენეთ ნიმუში"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ბოლო სრული დატენვის შემდეგ მოხმარება არ ფიქსირდება"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ბოლო 24 საათში გამოყენება არ მომხდარა"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"სხვა მომხმარებლები"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ბატარეის მუშაობის დარჩენილი ხანგრძლივობის მიახლოებითი ვარაუდი თქვენი მოწყობილობის მოხმარებას ეყრდნობა"</string>
<string name="estimated_time_left" msgid="948717045180211777">"სავარაუდო დარჩენილი დრო"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"სრულ დატენვამდე"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“-ის ყველა შეტყობინება"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის ყველა შეტყობინება"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ადაპტაციური შეტყობინებები"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> შეტყობინება დღეში</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> შეტყობინება დღეში</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> შეტყობინება კვირაში</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> შეტყობინება კვირაში</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"არასოდეს"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"მოწყობილობისა და აპის შეტყობინებები"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"განსაზღვრეთ, რომელი აპებისა და მოწყობილობებისთვის გსურთ შეტყობინებების წაკითხვის ფუნქციის მინიჭება"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 0a34490..d995d28 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN кодын орнатыңыз"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Жұмыс PIN кодын орнатыңыз"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Өрнек орнатыңыз"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Жұмыс өрнегін орнатыңыз"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Саусақ ізін пайдалану үшін құпия сөз орнатыңыз"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Саусақ ізін пайдалану үшін өрнек орнатыңыз"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Соңғы толық зарядталғаннан бері пайдаланылмады."</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Соңғы 24 сағатта пайдаланылмады."</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Басқа пайдаланушылар"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Қалған батарея зарядының деңгейі құрылғының пайдаланылуы негізінде анықталады"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Қалған болжалды уақыт"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Толық зарядталғанға дейін"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Барлық \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" хабарландырулары"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Барлық <xliff:g id="APP_NAME">%1$s</xliff:g> хабарландырулары"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Бейімделетін хабарландырулар"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Күніне ~<xliff:g id="NUMBER_1">%,d</xliff:g> хабарландыру</item>
- <item quantity="one">Күніне ~<xliff:g id="NUMBER_0">%d</xliff:g> хабарландыру</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Аптасына ~<xliff:g id="NUMBER_1">%,d</xliff:g> хабарландыру</item>
- <item quantity="one">Аптасына ~<xliff:g id="NUMBER_0">%d</xliff:g> хабарландыру</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Ешқашан"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Құрылғы мен қолданба хабарландырулары"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Қолданбалар мен құрылғылардың қайсысы хабарландыруларды оқи алатынын басқару"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 770646c..ed6e28e 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"កំណត់កូដ PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"កំណត់កូដ PIN ការងារ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"កំណត់លំនាំ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"កំណត់លំនាំការងារ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ដើម្បីប្រើប្រាស់ស្នាមម្រាមដៃ សូមកំណត់ពាក្យសម្ងាត់"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ដើម្បីប្រើស្នាមម្រាមដៃ សូមកំណត់លំនាំ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"មិនមានការប្រើប្រាស់ទេតាំងពីសាកថ្មពេញលើកចុងក្រោយ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"មិនមានការប្រើប្រាស់ទេក្នុងរយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"អ្នកប្រើប្រាស់ផ្សេងទៀត"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ការប៉ាន់ស្មានអំពីកម្រិតថ្មដែលនៅសល់គឺផ្អែកលើការប្រើប្រាស់ឧបករណ៍របស់អ្នក"</string>
<string name="estimated_time_left" msgid="948717045180211777">"រយៈពេលនៅសល់ប៉ាន់ស្មាន"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ទៀតទើបសាកថ្មពេញ"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ការជូនដំណឹងទាំងអស់ពី \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"ការជូនដំណឹងទាំងអស់ពី<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ការជូនដំណឹងដែលមានភាពបត់បែន"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">ការជូនដំណឹង ~<xliff:g id="NUMBER_1">%,d</xliff:g> ក្នុងមួយថ្ងៃ</item>
- <item quantity="one">ការជូនដំណឹង ~<xliff:g id="NUMBER_0">%d</xliff:g> ក្នុងមួយថ្ងៃ</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">ការជូនដំណឹង ~<xliff:g id="NUMBER_1">%,d</xliff:g> ក្នុងមួយសប្ដាហ៍</item>
- <item quantity="one">ការជូនដំណឹង ~<xliff:g id="NUMBER_0">%d</xliff:g> ក្នុងមួយសប្ដាហ៍</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"កុំឱ្យសោះ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ការជូនដំណឹងឧបករណ៍ និងកម្មវិធី"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"គ្រប់គ្រងកម្មវិធី និងឧបករណ៍ដែលអាចអានការជូនដំណឹង"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 31fdf7d..0b755bc 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ಪಿನ್ ಸೆಟ್ ಮಾಡಿ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ಕೆಲಸದ ಪಿನ್ ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ಪ್ಯಾಟರ್ನ್ ಸೆಟ್ ಮಾಡಿ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ಕೆಲಸದ ಪ್ಯಾಟರ್ನ್ ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಬಳಸಲು, ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ಪಿಂಗರ್ಪ್ರಿಂಟ್ ಬಳಸಲು ಪ್ಯಾಟರ್ನ್ ಸೆಟ್ ಮಾಡಿ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ಪೂರ್ಣ ಚಾರ್ಜ್ ಮಾಡಿದಾಗಿನಿಂದ ಯಾವುದೇ ಬಳಕೆಯಾಗಿಲ್ಲ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ಕಳೆದ 24 ಗಂಟೆಗಳಲ್ಲಿ ಯಾವುದೇ ಬಳಕೆಯಾಗಿಲ್ಲ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ಇತರ ಬಳಕೆದಾರರು"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಎಷ್ಟು ಸಮಯದವರೆಗೆ ಬಳಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಆಧರಿಸಿ ಉಳಿದಿರುವ ಬ್ಯಾಟರಿಯನ್ನು ಅಂದಾಜು ಮಾಡಲಾಗುತ್ತದೆ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"ಅಂದಾಜಿಸಿದ ಸಮಯ ಮುಗಿದಿದೆ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ಸಂಪೂರ್ಣ ಚಾರ್ಜ್ ಆಗಲು"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ಎಲ್ಲಾ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"ಎಲ್ಲಾ <xliff:g id="APP_NAME">%1$s</xliff:g> ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ಅಡಾಪ್ಟಿವ್ ಅಧಿಸೂಚನೆಗಳು"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">ಪ್ರತಿ ದಿನಕ್ಕೆ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ಅಧಿಸೂಚನೆಗಳು</item>
- <item quantity="other">ಪ್ರತಿ ದಿನಕ್ಕೆ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ಅಧಿಸೂಚನೆಗಳು</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">ಪ್ರತಿ ವಾರಕ್ಕೆ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ಅಧಿಸೂಚನೆಗಳು</item>
- <item quantity="other">ಪ್ರತಿ ವಾರಕ್ಕೆ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ಅಧಿಸೂಚನೆಗಳು</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ಎಂದೂ ಇಲ್ಲ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ಸಾಧನದ & ಆ್ಯಪ್ ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ಯಾವ ಆ್ಯಪ್ಗಳು ಮತ್ತು ಸಾಧನಗಳು ಅಧಿಸೂಚನೆಗಳನ್ನು ಓದಬಹುದು ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 6c33836..88ffa44 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -348,7 +348,7 @@
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_message_accessibility" msgid="1986648712195281391"></string>
<string name="security_settings_face_enroll_education_start" msgid="8830924400907195590">"시작"</string>
- <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"접근성 얼굴 인식 잠금 해제가 사용 중지되면 음성 안내 지원 사용 시 일부 설정 단계가 제대로 작동하지 않을 수 있습니다."</string>
+ <string name="security_settings_face_enroll_education_accessibility_dialog_message" msgid="2965952386172202665">"접근성 얼굴 인식 잠금 해제가 사용 중지되면 TalkBack 사용 시 일부 설정 단계가 제대로 작동하지 않을 수 있습니다."</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_negative" msgid="7872647360361245461">"뒤로"</string>
<string name="security_settings_face_enroll_education_accessibility_dialog_positive" msgid="3148077647572203458">"설정 계속"</string>
<string name="security_settings_face_enroll_introduction_accessibility" msgid="5748221179069430975">"접근성 설정 사용"</string>
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN 설정"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"직장 PIN 설정"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"패턴 설정"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"직장 패턴 설정"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"비밀번호 설정 후 지문 사용"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"지문 사용을 위한 패턴 설정"</string>
@@ -2308,7 +2310,7 @@
<string name="user_installed_services_category_title" msgid="2639470729311439731">"다운로드한 앱"</string>
<string name="experimental_category_title" msgid="898904396646344152">"실험"</string>
<string name="feature_flags_dashboard_title" msgid="348990373716658289">"기능 플래그"</string>
- <string name="talkback_title" msgid="8756080454514251327">"음성 안내 지원"</string>
+ <string name="talkback_title" msgid="8756080454514251327">"TalkBack"</string>
<string name="talkback_summary" msgid="5820927220378864281">"주로 시각 장애가 있는 사용자를 위한 스크린 리더"</string>
<string name="select_to_speak_summary" msgid="1995285446766920925">"화면에서 항목을 탭하여 읽는 소리 듣기"</string>
<string name="accessibility_captioning_title" msgid="4561871958958925225">"자막 환경설정"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"마지막으로 완전히 충전한 이후 사용 안 함"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"지난 24시간 동안 사용 안 함"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"다른 사용자"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"예상 잔여 배터리 소모 시간은 기기 사용량을 기반으로 표시됩니다."</string>
<string name="estimated_time_left" msgid="948717045180211777">"남은 예상 시간"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"충전 완료까지 남은 시간"</string>
@@ -3927,7 +3928,7 @@
<string name="notification_pulse_title" msgid="8013178454646671529">"표시등 깜박임"</string>
<string name="lock_screen_notifications_title" msgid="2876323153692406203">"개인 정보 보호"</string>
<string name="lockscreen_bypass_title" msgid="6519964196744088573">"잠금 화면 건너뛰기"</string>
- <string name="lockscreen_bypass_summary" msgid="464277506200346748">"잠금 해제 후 최근 사용한 화면으로 바로 이동"</string>
+ <string name="lockscreen_bypass_summary" msgid="464277506200346748">"잠금 해제 후 최근 사용한 화면으로 바로 이동합니다."</string>
<string name="keywords_lockscreen_bypass" msgid="41035425468915498">"잠금 화면, 잠금화면, 건너뛰기, 우회"</string>
<string name="locked_work_profile_notification_title" msgid="279367321791301499">"직장 프로필이 잠긴 경우"</string>
<string name="lock_screen_notifs_title" msgid="3412042692317304449">"잠금 화면에 표시할 알림"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"모든 ‘<xliff:g id="APP_NAME">%1$s</xliff:g>’ 알림"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"모든 <xliff:g id="APP_NAME">%1$s</xliff:g> 알림"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"적응형 알림"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">하루에 약 <xliff:g id="NUMBER_1">%,d</xliff:g>개</item>
- <item quantity="one">하루에 약 <xliff:g id="NUMBER_0">%d</xliff:g>개</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">1주일에 약 <xliff:g id="NUMBER_1">%,d</xliff:g>개</item>
- <item quantity="one">1주일에 약 <xliff:g id="NUMBER_0">%d</xliff:g>개</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"전송하지 않음"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"기기 및 앱 알림"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"알림을 읽을 수 있는 앱과 기기 제어"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index f02db83..c9d2719 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -343,7 +343,7 @@
<string name="security_settings_face_preference_title" msgid="2126625155005348417">"Жүзүнөн таанып ачуу"</string>
<string name="security_settings_face_profile_preference_title" msgid="7519527436266375005">"Жумуш профили үчүн Жүзүнөн таанып ачуу функциясы"</string>
<string name="security_settings_face_enroll_education_title" msgid="6448806884597691208">"Жүзүнөн таанып ачуу функциясын кантип койсо болот"</string>
- <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Жүзүнөн таанып ачууну жөндөө"</string>
+ <string name="security_settings_face_enroll_education_title_accessibility" msgid="3701874093226957891">"Жүзүнөн таанып ачууну тууралоо"</string>
<string name="security_settings_face_enroll_education_title_unlock_disabled" msgid="8810954233979716906">"Жүзүңүз менен аныктыгыңызды текшертиңиз"</string>
<string name="security_settings_face_enroll_education_message" msgid="4308030157487176799"></string>
<string name="security_settings_face_enroll_education_message_accessibility" msgid="1986648712195281391"></string>
@@ -402,7 +402,7 @@
<string name="security_settings_face_enroll_should_re_enroll_subtitle" msgid="7055780282999744813">"Жүзүнөн таанып ачуу функциясын кайрадан жөндөңүз"</string>
<string name="security_settings_face_enroll_must_re_enroll_title" msgid="4421818770682557621">"Жүзүнөн таанып ачуу функциясын кайрадан жөндөңүз"</string>
<string name="security_settings_face_enroll_must_re_enroll_subtitle" msgid="3584740139535177961">"Коопсуздукту жана иштин майнаптуулугун жакшыртыңыз"</string>
- <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Жүзүнөн таанып ачууну жөндөө"</string>
+ <string name="security_settings_face_enroll_improve_face_alert_title" msgid="6194184776580066012">"Жүзүнөн таанып ачууну тууралоо"</string>
<string name="security_settings_face_enroll_improve_face_alert_body" msgid="2670118180411127323">"Жүзүнөн таанып ачуу функциясын кайра коюу үчүн жүзүңүздүн учурдагы үлгүсүн өчүрүңүз.\n\nЖүзүңүздүн үлгүсү биротоло өчүрүлөт.\n\nӨчүрүлгөндөн кийин телефонуңуздун кулпусун ачуу же колдонмолордо аутентификациядан өтүү үчүн PIN кодуңуз, графикалык ачкычыңыз же сырсөзүңүз керек болот."</string>
<string name="security_settings_face_enroll_improve_face_alert_body_fingerprint" msgid="2469599074650327489">"Жүзүнөн таанып ачуу функциясын кайра коюу үчүн жүзүңүздүн учурдагы үлгүсүн өчүрүңүз.\n\nЖүзүңүздүн үлгүсү биротоло өчүрүлөт.\n\nӨчүрүлгөндөн кийин телефонуңуздун кулпусун ачуу же колдонмолордо аутентификациядан өтүү үчүн манжаңыздын изи, PIN код, графикалык ачкыч же сырсөз керек болот."</string>
<string name="security_settings_face_settings_use_face_category" msgid="1638314154119800188">"Жүзүнөн таанып ачуу:"</string>
@@ -412,7 +412,7 @@
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Ар дайым ырастоо талап кылынсын"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Жүзүнөн таанып ачуу функциясы колдонулганда, ар дайым ырастоо талап кылынат"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Жүздүн үлгүсүн өчүрүү"</string>
- <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Жүзүнөн таанып ачууну жөндөө"</string>
+ <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Жүзүнөн таанып ачууну тууралоо"</string>
<string name="security_settings_face_settings_footer" msgid="625696606490947189">"Жүзүңүз менен телефонуңуздун кулпусун ачыңыз же өзүңүздү ырастаңыз (мисалы, колдонмолорго кирүү же кандайдыр бир нерсени сатып алуу үчүн).\n\nКөңүл буруңуз:\nБир убакта бир гана жүз кошо аласыз. Башка жүз кошуу үчүн учурдагыны өчүрүшүңүз керек.\n\nЭкранды карап койсоңуз эле, түзмөгүңүздүн кулпусу ачылып калышы мүмкүн.\n\nОшондой эле кимдир бирөө телефонуңузду жүзүңүзгө алып келип ачышы мүмкүн.\n\nТелефонуңуздун кулпусун сизге аябай окшош адам (мисалы, эгизиңиз) ачып алышы мүмкүн."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Жүзүңүз менен телефонуңуздун кулпусун ачыңыз же өзүңүздү ырастаңыз (мисалы, колдонмолорго кирүү же кандайдыр бир нерсени сатып алуу үчүн).\n\nКөңүл буруңуз:\nБир убакта бир гана жүз кошо аласыз. Башка жүз кошуу үчүн учурдагыны өчүрүшүңүз керек.\n\nЭкранды карап койсоңуз эле, түзмөгүңүздүн кулпусу ачылып калышы мүмкүн.\n\nОшондой эле кимдир бирөө көзүңүз жумулуп турганда да, телефонуңузду жүзүңүзгө жакын алып келип ачып алышы ыктымал.\n\nТелефонуңуздун кулпусун сизге аябай окшош адам (мисалы, эгизиңиз) ачып алышы мүмкүн."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Жүздүн үлгүсүн өчүрөсүзбү?"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN кодду коюңуз"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Жумуш профилинин PIN кодун коюңуз"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Графикалык ачкычты коюңуз"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Жумуш профилинин графикалык ачкычын коюңуз"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Сырсөздү коюңуз"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Графикалык ачкычты коюңуз"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Акыркы жолу толук кубатталгандан бери колдонулган жок"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Акыркы 24 сааттын ичинде колдонулган жок"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Башка колдонуучулар"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Калган убакыт түзмөктүн колдонулушуна жараша эсептелип көрсөтүлүүдө."</string>
<string name="estimated_time_left" msgid="948717045180211777">"Болжолдуу калган убакыт"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Батарея толгонго чейин калган убакыт"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" колдонмосундагы бардык билдирмелер"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосунун бардык билдирмелери"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Ыңгайлаштырылуучу билдирмелер"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Күнүнө болжол менен <xliff:g id="NUMBER_1">%,d</xliff:g> билдирме</item>
- <item quantity="one">Күнүнө болжол менен <xliff:g id="NUMBER_0">%d</xliff:g> билдирме</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Аптасына болжол менен <xliff:g id="NUMBER_1">%,d</xliff:g> билдирме</item>
- <item quantity="one">Аптасына болжол менен <xliff:g id="NUMBER_0">%d</xliff:g> билдирме</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Эч качан"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Түзмөктөгү жана колдонмодогу билдирмелер"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Билдирмелерди кайсы колдонмолор көрө аларын белгилеңиз"</string>
@@ -5545,7 +5540,7 @@
<string name="power_menu_power_volume_up_hint" msgid="1733051433583045623">"Кубат баскычы жана Шашылыш билдирүү менюсу:\nКубат менен Үндү катуулатуу баскычтарын чогуу басыңыз."</string>
<string name="power_menu_power_prevent_ringing_hint" msgid="5786494894009727654">"Шыңгыратуунун алдын алуу:\nЫкчам баскыч үндү катуулатуу менюсунда жеткиликтүү."</string>
<string name="power_menu_long_press_for_assist_sensitivity_title" msgid="1626808509158422185">"Коё бербей басып туруунун узактыгы"</string>
- <string name="power_menu_long_press_for_assist_sensitivity_summary" msgid="7550610071666801935">"Сезгичтигин тууралоо үчүн кубат баскычын канча убакытка чейин коё бербей басып туруу керектигин тандаңыз"</string>
+ <string name="power_menu_long_press_for_assist_sensitivity_summary" msgid="7550610071666801935">"Сезгичтигин тууралоо үчүн кубат баскычын канчага чейин коё бербей басып туруу керектигин тандаңыз"</string>
<string name="power_menu_long_press_for_assist_sensitivity_low_label" msgid="3430099983480845635">"Кыска"</string>
<string name="power_menu_long_press_for_assist_sensitivity_high_label" msgid="2059686170350829156">"Узун"</string>
<string name="lockscreen_privacy_wallet_setting_toggle" msgid="4188327143734192000">"Капчыкты көрсөтүү"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 83a8985..d062579 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ຕັ້ງ PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ຕັ້ງ PIN ບ່ອນເຮັດວຽກ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ຕັ້ງຮູບແບບ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ຕັ້ງຮູບແບບບ່ອນເຮັດວຽກ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງລະຫັດຜ່ານກ່ອນ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງຮູບແບບປົດລັອກກ່ອນ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ບໍ່ມີການນຳໃຊ້ຫຼັງຈາກສາກເຕັມຫຼ້າສຸດ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ບໍ່ມີການນຳໃຊ້ໃນຮອບ 24 ຊມ ທີ່ຜ່ານມາ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ຜູ້ໃຊ້ອື່ນໆ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ການປະເມີນໄລຍະເວລາແບັດເຕີຣີທີ່ເຫຼືອແມ່ນອ້າງອີງຈາກການນຳໃຊ້ອຸປະກອນຂອງທ່ານ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"ເວລາທີ່ເຫຼືອໂດຍປະມານ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ຈົນກວ່າຈະສາກເຕັມ"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ການແຈ້ງເຕືອນ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" ທັງໝົດ"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"ການແຈ້ງເຕືອນ <xliff:g id="APP_NAME">%1$s</xliff:g> ທັງໝົດ"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ການແຈ້ງເຕືອນແບບປັບປ່ຽນໄດ້ເອງ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ການແຈ້ງເຕືອນຕໍ່ມື້</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ການແຈ້ງເຕືອນຕໍ່ມື້</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ການແຈ້ງເຕືອນຕໍ່ອາທິດ</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ການແຈ້ງເຕືອນຕໍ່ອາທິດ</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ບໍ່ສົ່ງ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ການແຈ້ງເຕືອນອຸປະກອນ ແລະ ແອັບ"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ຄວບຄຸມວ່າແອັບ ແລະ ອຸປະກອນໃດສາມາດອ່ານການແຈ້ງເຕືອນໄດ້"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 5316107..e71d575 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1987,6 +1987,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN kodo nustatymas"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Darbo PIN kodo nustatymas"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Atrakinimo piešinio nustatymas"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Darbo atrakinimo piešinio nustatymas"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Nust. slapt., kad gal. naud. kont. kodą"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Nust. atrak. pieš., kad gal. naud. piršt. atsp."</string>
@@ -3000,8 +3002,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Nenaudota nuo pastarojo visiško įkrovimo"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nenaudota per pastarąsias 24 val."</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Kiti naudotojai"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Likęs akumuliatoriaus veikimo laikas numatytas pagal tai, kaip naudojate įrenginį"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Liko laiko (numatyta)"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Iki visiško įkrovimo"</string>
@@ -4094,18 +4095,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Visi „<xliff:g id="APP_NAME">%1$s</xliff:g>“ pranešimai"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Visi „<xliff:g id="APP_NAME">%1$s</xliff:g>“ pranešimai"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Prisitaikantys pranešimai"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimas per dieną</item>
- <item quantity="few">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimai per dieną</item>
- <item quantity="many">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimo per dieną</item>
- <item quantity="other">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimų per dieną</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimas per savaitę</item>
- <item quantity="few">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimai per savaitę</item>
- <item quantity="many">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimo per savaitę</item>
- <item quantity="other">~ <xliff:g id="NUMBER_1">%,d</xliff:g> pranešimų per savaitę</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Niekada"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Įrenginių ir programų pranešimai"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Valdykite, kurios programos ir įrenginiai gali nuskaityti pranešimus"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index ff317f4..4bc99ee 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1965,6 +1965,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN iestatīšana"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Darba PIN iestatīšana"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Kombinācijas iestatīšana"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Darba kombinācijas iestatīšana"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Parole pirksta nosp. lietošanai"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Kombinācijas iestatīšana"</string>
@@ -2962,8 +2964,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Nav lietots kopš pēdējās pilnās uzlādes"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nav lietots pēdējo 24 h laikā"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Citi lietotāji"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Akumulatora darbības laiks tiek aprēķināts, pamatojoties uz ierīces lietojuma datiem."</string>
<string name="estimated_time_left" msgid="948717045180211777">"Plānotais atlikušais laiks"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Līdz pilnai uzlādei"</string>
@@ -4050,16 +4051,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Visi lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> paziņojumi"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Visi lietotnes <xliff:g id="APP_NAME">%1$s</xliff:g> paziņojumi"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptīvie paziņojumi"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="zero">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumiem dienā</item>
- <item quantity="one">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumu dienā</item>
- <item quantity="other">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumiem dienā</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="zero">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumiem nedēļā</item>
- <item quantity="one">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumu nedēļā</item>
- <item quantity="other">Ap <xliff:g id="NUMBER_1">%,d</xliff:g> paziņojumiem nedēļā</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nekad"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Ierīču un lietotņu paziņojumi"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Pārvaldiet, kuras lietotnes un ierīces var lasīt paziņojumus."</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 83ccc83..74b5345 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -411,7 +411,7 @@
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"За да го отклучите телефонот, очите мора да ви бидат отворени"</string>
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Секогаш барај потврда"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"При користење „Отклучување со лик“ во апликации, секогаш барај потврда"</string>
- <string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Избриши го моделот на лице"</string>
+ <string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Избриши го моделот на лик"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Поставете „Отклучување со лик“"</string>
<string name="security_settings_face_settings_footer" msgid="625696606490947189">"Користете го вашето лице за да го отклучувате телефонот или за проверка во апликации, како на пр., кога се најавувате или одобрувате купување.\n\nИмајте предвид:\nможе да имате поставено само еден лик. За да додадете друг лик, избришете го моменталниот.\n\nПоглед кон телефонот може да го отклучи и кога немате таква намера.\n\nНекој друг може да го отклучи вашиот телефон ако го подигне до вашиот лик.\n\nТелефонот може да го отклучи некој што многу наликува на вас, на пример, идентичен близнак."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"Користете го вашето лице за да го отклучувате телефонот или за проверка во апликации, како на пр., кога се најавувате или одобрувате купување.\n\nИмајте предвид:\nможе да имате поставено само еден лик. За да додадете друг лик, избришете го моменталниот.\n\nПоглед кон телефонот може да го отклучи и кога немате таква намера.\n\nНекој друг може да го отклучи вашиот телефон ако го подигне до вашиот лик, дури и ако очите ви се затворени.\n\nТелефонот може да го отклучи некој што многу наликува на вас, на пример, идентичен близнак."</string>
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Поставете PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Поставете PIN за работен профил"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Поставете шема"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Поставете шема за работен профил"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"За отпечаток, поставете лозинка"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"За отпечаток, поставете шема"</string>
@@ -1974,7 +1976,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ја заборавивте лозинката?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ја заборавивте шемата?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Го заборавивте PIN-кодот?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Користете ја шемата на уредот за да продолжите"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Внесете ја шемата на уредот за да продолжите"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Внесете го PIN-кодот на уредот за да продолжите"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Внесете ја лозинката на уредот за да продолжите"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Користете ја шемата на работниот профил за да продолжите"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Не е користена од последното целосно полнење"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Не е користена во минатите 24 часа"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Други корисници"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Проценката за преостанатата батерија се базира врз користењето на уредот"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Проценето преостанато време"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"До целосно полнење"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Сите известувања од „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Сите известувања од <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Адаптивни известувања"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">околу <xliff:g id="NUMBER_1">%,d</xliff:g> известување дневно</item>
- <item quantity="other">околу <xliff:g id="NUMBER_1">%,d</xliff:g> известувања дневно</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">околу <xliff:g id="NUMBER_1">%,d</xliff:g> известување неделно</item>
- <item quantity="other">околу <xliff:g id="NUMBER_1">%,d</xliff:g> известувања неделно</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Никогаш"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Известувања во уреди и апликации"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Контролирајте кои апликации и уреди може да ги читаат известувањата"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 402050d..635b76a 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"പിൻ സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ഔദ്യോഗിക പിൻ സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"പാറ്റേൺ സജ്ജീകരിക്കുക"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ഔദ്യോഗിക പാറ്റേൺ സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാൻ, പാസ്വേഡ് സജ്ജമാക്കുക"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാൻ, പാറ്റേൺ സജ്ജമാക്കുക"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"അവസാനം പൂർണ്ണമായി ചാർജ് ആയതിന് ശേഷം ഉപയോഗിച്ചിട്ടില്ല"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെ ഉപയോഗിച്ചിട്ടില്ല"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"മറ്റ് ഉപയോക്താക്കൾ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"നിങ്ങളുടെ ഉപകരണ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ബാക്കിയുള്ള ബാറ്ററിയുടെ ഏകദേശക്കണക്ക്"</string>
<string name="estimated_time_left" msgid="948717045180211777">"അവശേഷിക്കുന്ന ഏകദേശ സമയം"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"പൂർണ്ണമായി ചാർജ്ജുചെയ്യുന്നത് വരെ"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"എല്ലാ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" അറിയിപ്പുകളും"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"എല്ലാ <xliff:g id="APP_NAME">%1$s</xliff:g> അറിയിപ്പുകളും"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"അഡാപ്റ്റീവ് അറിയിപ്പുകൾ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">പ്രതിദിനം ~<xliff:g id="NUMBER_1">%,d</xliff:g> അറിയിപ്പുകൾ</item>
- <item quantity="one">പ്രതിദിനം ~<xliff:g id="NUMBER_0">%d</xliff:g> അറിയിപ്പ്</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">പ്രതിവാരം ~<xliff:g id="NUMBER_1">%,d</xliff:g> അറിയിപ്പുകൾ</item>
- <item quantity="one">പ്രതിവാരം ~<xliff:g id="NUMBER_0">%d</xliff:g> അറിയിപ്പ്</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ഒരിക്കലും"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ഉപകരണ, ആപ്പ് അറിയിപ്പുകൾ"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ഏതൊക്കെ ആപ്പുകൾക്കും ഉപകരണങ്ങൾക്കും അറിയിപ്പുകൾ വായിക്കാൻ കഴിയുമെന്നത് നിയന്ത്രിക്കുക"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index dbe2ad4..7de1adb 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ПИН тохируулах"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ажлын ПИН тохируулах"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Хээ тохируулах"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ажлын хээ тохируулах"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Хурууны хээ ашиглахын тулд нууц үг тохируулах"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Хурууны хээ ашиглахын тулд хээ тохируулах"</string>
@@ -4005,13 +4007,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\"-н бүх мэдэгдэл"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н бүх мэдэгдэл"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Орчинтой тохирсон мэдэгдлүүд"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~Өдөрт <xliff:g id="NUMBER_1">%,d</xliff:g> мэдэгдэл</item>
- <item quantity="one">~Өдөрт <xliff:g id="NUMBER_0">%d</xliff:g> мэдэгдэл</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">Өдөрт ойролцоогоор <xliff:g id="NUMBER_1">%,d</xliff:g> мэдэгдэл</item>
+ <item quantity="one">Өдөрт ойролцоогоор <xliff:g id="NUMBER_0">%d</xliff:g> мэдэгдэл</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~Долоо хоногт <xliff:g id="NUMBER_1">%,d</xliff:g> мэдэгдэл</item>
- <item quantity="one">~Долоо хоногт <xliff:g id="NUMBER_0">%d</xliff:g> мэдэгдэл</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">Долоо хоногт ойролцоогоор <xliff:g id="NUMBER_1">%,d</xliff:g> мэдэгдэл</item>
+ <item quantity="one">Долоо хоногт ойролцоогоор <xliff:g id="NUMBER_0">%d</xliff:g> мэдэгдэл</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Хэзээ ч үгүй"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Төхөөрөмж, аппын мэдэгдлүүд"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 6595e77..65e0547 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1944,6 +1944,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"पिन सेट करा"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"कार्य प्रोफाईलसाठी पिन सेट करा"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"पॅटर्न सेट करा"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"कार्य प्रोफाईलसाठी पॅटर्न सेट करा"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"फिंगरप्रिंट वापरण्यासाठी पासवर्ड सेट करा"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"फिंगरप्रिंट वापरण्यासाठी पॅटर्न सेट करा"</string>
@@ -1952,7 +1954,7 @@
<string name="lockpassword_confirm_your_password_header" msgid="6132312814563023990">"तुमचा पासवर्ड पुन्हा टाका"</string>
<string name="lockpassword_reenter_your_profile_password_header" msgid="3812040127714827685">"तुमचा कार्य पासवर्ड पुन्हा एंटर करा"</string>
<string name="lockpassword_confirm_your_work_password_header" msgid="4647071231702288305">"तुमच्या ऑफिसचा पासवर्ड एंटर करा"</string>
- <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"आपल्या नमुन्याची पुष्टी करा"</string>
+ <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"तुमचा पॅटर्न कंफर्म करा"</string>
<string name="lockpassword_confirm_your_work_pattern_header" msgid="2668883108969165844">"तुमच्या ऑफिसचा पॅटर्न एंटर करा"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="2241722970567131308">"तुमचा पिन पुन्हा टाका"</string>
<string name="lockpassword_reenter_your_profile_pin_header" msgid="2890233614560435538">"तुमचा कार्य पिन पुन्हा एंटर करा"</string>
@@ -2925,8 +2927,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"शेवटची पूर्ण चार्ज केल्यानंतर बॅटरी वापरलेली नाही"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"मागील २४ तासांमध्ये बॅटरी वापरलेली नाही"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"इतर वापरकर्ते"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"अंदाजे शिल्लक बॅटरी ही तुमच्या डिव्हाइसच्या वापरावर अवलंबून असते"</string>
<string name="estimated_time_left" msgid="948717045180211777">"अंदाजे शिल्लक वेळ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"पूर्ण चार्ज होईपर्यंत"</string>
@@ -4007,14 +4008,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"सर्व \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" सूचना"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"सर्व <xliff:g id="APP_NAME">%1$s</xliff:g> वरील सूचना"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"अॅडॅप्टिव्ह सूचना"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~दर दिवसाला <xliff:g id="NUMBER_1">%,d</xliff:g> सूचना</item>
- <item quantity="one">~दर दिवसाला <xliff:g id="NUMBER_0">%d</xliff:g> सूचना</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~दर आठवड्याला <xliff:g id="NUMBER_1">%,d</xliff:g> सूचना</item>
- <item quantity="one">~दर आठवड्याला <xliff:g id="NUMBER_0">%d</xliff:g> सूचना</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"कधीही नाही"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"डिव्हाइस आणि ॲप सूचना"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"कोणती ॲप्स आणि डिव्हाइस सूचना वाचू शकतात हे नियंत्रित करा"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4da3eb8..5ad5d43 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Tetapkan PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Tetapkan PIN kerja"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Tetapkan corak"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Tetapkan corak kerja"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Buat kata laluan untuk guna cap jari"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Buat corak untuk guna cap jari"</string>
@@ -4005,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Semua pemberitahuan \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Semua pemberitahuan <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Pemberitahuan Boleh Suai"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> pemberitahuan sehari</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> pemberitahuan sehari</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> pemberitahuan seminggu</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> pemberitahuan seminggu</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Jangan sekali-kali"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Pemberitahuan peranti & apl"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kawal apl dan peranti yang boleh membaca pemberitahuan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 9beb425..63555f5 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1564,7 +1564,7 @@
<string name="status_serial_number" msgid="9060064164331466789">"စက်မှတ်ပုံတင်နံပါတ်"</string>
<string name="status_up_time" msgid="1274778533719495438">"ဖွင့်ထားသောအချိန်"</string>
<string name="status_awake_time" msgid="2573925324168081586">"ပြန်ပွင့်မည်အချိန်"</string>
- <string name="internal_memory" msgid="1869518160077033848">"စက်တွင်း သိုလှောင်ထားမှု"</string>
+ <string name="internal_memory" msgid="1869518160077033848">"စက်တွင်းသိုလှောင်ခန်း"</string>
<string name="sd_memory" product="nosdcard" msgid="5456718463397723781">"USBဖြင့် သိမ်းဆည်းခြင်း"</string>
<string name="sd_memory" product="default" msgid="3098344183202722455">"SD ကတ်"</string>
<string name="memory_available" msgid="712528795743654737">"နေရာလွတ်"</string>
@@ -1651,9 +1651,9 @@
<string name="storage_wizard_init_title" msgid="9036374223934708619">"သင့် <xliff:g id="NAME">^1</xliff:g> ကိုတပ်ဆင်မည်"</string>
<string name="storage_wizard_init_external_title" msgid="6540132491909241713">"ရွှေ့လျားနိုင်သည့် သိုလှောင်မှုအဖြစ် သုံးမည်"</string>
<string name="storage_wizard_init_external_summary" msgid="5807552934494462984">"စက်ပစ္စည်းများအကြား ပုံများနှင့် အခြားမီဒီယာများရွှေ့လျားရန်အတွက်။"</string>
- <string name="storage_wizard_init_internal_title" msgid="3256355049992147270">"အတွင်းသိုလှောင်မှုအဖြစ် အသုံးပြုမည်"</string>
+ <string name="storage_wizard_init_internal_title" msgid="3256355049992147270">"စက်တွင်းသိုလှောင်ခန်းအဖြစ် သုံးရန်"</string>
<string name="storage_wizard_init_internal_summary" msgid="2283798331883929674">"အပ်ဖ်များနှင့် ပုံများ အပါအဝင် ဤစက်ပစ္စည်းပေါ်တွင်သာ သိုလှောင်ရန်အတွက် ဖြစ်သည်။ ပုံစံချရန်လိုအပ်ပြီး ၎င်းသည်အခြားစက်ပစ္စည်းများနှင့် အလုပ်လုပ်ခြင်းမှ ကာကွယ်မည်ဖြစ်သည်။"</string>
- <string name="storage_wizard_format_confirm_title" msgid="4898014527956178762">"အတွင်းသိုလှောင်မှုအဖြစ် ပုံစံချမည်"</string>
+ <string name="storage_wizard_format_confirm_title" msgid="4898014527956178762">"စက်တွင်းသိုလှောင်ခန်းအဖြစ်"</string>
<string name="storage_wizard_format_confirm_body" msgid="5514665245241830772">"လုံခြုံစေရန်အတွက် ၎င်းတွင် <xliff:g id="NAME_0">^1</xliff:g> ကိုပုံစံချထားရန် လိုအပ်ပါသည်။\n\nပုံစီချပြီးနောက်၊ <xliff:g id="NAME_1">^1</xliff:g> သည်ဤစက်ပစ္စည်းတွင်သာ အလုပ်လုပ်ပါမည်။ \n\n"<b>"ပုံစံချခြင်းဖြင့်<xliff:g id="NAME_2">^1</xliff:g>တွင်လက်ရှိသိုလှောင်ထားသည့် ဒေတာများအားလုံးကို ဖျက်ပစ်မည်ဖြစ်သည်။"</b>" ဒေတာများ ဆုံးရှုံးခြင်းမှ ကာကွယ်ရန်၊ အရံကူးယူထားရန် စဉ်းစားပါ။"</string>
<string name="storage_wizard_format_confirm_public_title" msgid="649252654496577680">"သယ်နိုင်သောသိုလှောင်မှုပုံစံချပါ"</string>
<string name="storage_wizard_format_confirm_public_body" msgid="6219883780307218266">"<xliff:g id="NAME_0">^1</xliff:g> အား ပုံစံချရန် လိုအပ်သည်။ \n\n"<b>" ပုံစံချပါက <xliff:g id="NAME_1">^1</xliff:g> တွင် လတ်တလော သိမ်းထားသည်များအားလုံးအား ပျက်သွားမည်။ "</b>" ဒေတာများပျောက်ပျက်သွားခြင်းမှ ကာကွယ်လိုပါ၊ အရံသိမ်းဆည်းခြင်းပြုရန် စဉ်းစားပါ။"</string>
@@ -1661,7 +1661,7 @@
<string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"<xliff:g id="NAME">^1</xliff:g>ပုံစံချနေသည်…"</string>
<string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"ဖော်မက်လုပ်နေစဉ် <xliff:g id="NAME">^1</xliff:g> ကို မဖယ်ရှားပါနှင့်။"</string>
<string name="storage_wizard_migrate_title" msgid="3013711737005104623">"ဒေတာကို သိုလှောင်မှုအသစ်သို့ ရွှေ့မည်"</string>
- <string name="storage_wizard_migrate_body" msgid="1630853797296198275">"သင့်ပုံများ၊ ဖိုင်များနှင့် အချို့ အက်ပ်များကို ဤ<xliff:g id="NAME">^1</xliff:g> အသစ်ပေါ်သို့ ရွှေ့နိုင်သည်။ \n\nရွှေ့ခြင်းသည်<xliff:g id="TIME">^2</xliff:g> ခန့်ကြာမည်ဖြစ်ပြီး အတွင်းသိုလှောင်မှုတွင် <xliff:g id="SIZE">^3</xliff:g> ခန့်နေရာလွတ်သွားပါမည်။ ၎င်းပြုလုပ်နေစဉ် အချို့သော အက်ပ်များ အလုပ်လုပ်မည်မဟုတ်ပါ။"</string>
+ <string name="storage_wizard_migrate_body" msgid="1630853797296198275">"သင့်ပုံများ၊ ဖိုင်များနှင့် အချို့အက်ပ်များကို ဤ <xliff:g id="NAME">^1</xliff:g> အသစ်ပေါ်သို့ ရွှေ့နိုင်သည်။ \n\nရွှေ့ချိန် <xliff:g id="TIME">^2</xliff:g> ခန့်ကြာပြီး စက်တွင်းသိုလှောင်ခန်းတွင် <xliff:g id="SIZE">^3</xliff:g> နေရာလွတ်သွားပါမည်။ ၎င်းပြုလုပ်နေစဉ် အချို့သော အက်ပ်များ အလုပ်လုပ်မည်မဟုတ်ပါ။"</string>
<string name="storage_wizard_migrate_now" msgid="175023718337037181">"ယခုရွှေ့မည်"</string>
<string name="storage_wizard_migrate_later" msgid="6573789572520980112">"နောက်မှ ရွှေ့မည်"</string>
<string name="storage_wizard_migrate_confirm_title" msgid="255346780598924540">"ဒေတာများယခု ရွှေ့မည်"</string>
@@ -1777,7 +1777,7 @@
<string name="main_clear_title" msgid="277664302144837723">"ဒေတာအားလုံးဖျက်ရန် (စက်ရုံထုတ်ဆက်တင် သတ်မှတ်ရန်)"</string>
<string name="main_clear_short_title" msgid="4752094765533020696">"ဒေတာအားလုံးဖျက်ခြင်း (စက်ရုံထုတ်ဆက်တင် သတ်မှတ်ရန်)"</string>
<string name="main_clear_desc" product="tablet" msgid="1651178880680056849">"ဤသို့ပြုလုပ်ခြင်းက သင့်တက်ဘလက်၏ "<b>"စက်အတွင်းသိုလှောင်ခန်း"</b>" အပါအဝင် အောက်ပါဒေတာအားလုံးကို ဖျက်ပါမည်-\n\n"<li>"သင်၏ Google အကောင့်"</li>\n<li>"စနစ်နှင့် အက်ပ်ဒေတာ၊ ဆက်တင်များ၊"</li>\n<li>"ဒေါင်းလုဒ်လုပ်ထားသည့်အက်ပ်များ"</li></string>
- <string name="main_clear_desc" product="default" msgid="6984348811887162647">"ဤသို့ပြုလုပ်ခြင်းက သင့်ဖုန်း၏ "<b>"စက်အတွင်းသိုလှောင်ခန်း"</b>" အပါအဝင် အောက်ပါဒေတာအားလုံးကို ဖျက်ပါမည်- \n\n"<li>"သင်၏ Google အကောင့်"</li>\n<li>"စနစ်နှင့် အက်ပ်ဒေတာ၊ ဆက်တင်များ၊"</li>\n<li>"ဒေါင်းလုဒ်လုပ်ထားသည့်အက်ပ်များ"</li></string>
+ <string name="main_clear_desc" product="default" msgid="6984348811887162647">"ဤသို့ပြုလုပ်ခြင်းဖြင့် အောက်ပါတို့ အပါအဝင် သင့်ဖုန်း၏ "<b>"စက်တွင်းသိုလှောင်ခန်း"</b>" ရှိဒေတာအားလုံးကို ဖျက်ပါမည်- \n\n"<li>"သင်၏ Google Account"</li>\n<li>"စနစ်နှင့် အက်ပ်ဒေတာ၊ ဆက်တင်များ၊"</li>\n<li>"ဒေါင်းလုဒ်လုပ်ထားသည့်အက်ပ်များ"</li></string>
<string name="main_clear_accounts" product="default" msgid="7675859115108318537">\n\n"သင်သည် လက်ရှိတွင် အောက်ပါအကောင့်များကို ဝင်ရောက်ထားပါသည်\n"</string>
<string name="main_clear_other_users_present" product="default" msgid="2672976674798019077">\n\n"ဤစက်ပစ္စည်းပေါ်တွင် အခြားအသုံးပြုသူများလည်း ရှိသည်။\n"</string>
<string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"သီချင်း"</li>\n<li>"ဓာတ်ပုံများ"</li>\n<li>"အသုံးပြုသူ၏အခြားဒေတာ"</li></string>
@@ -1943,6 +1943,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ပင်နံပါတ် သတ်မှတ်ပါ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"အလုပ်သုံးပင်နံပါတ် သတ်မှတ်ပါ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ပုံစံ သတ်မှတ်ပါ"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"လုံခြုံရေး တိုးမြှင့်ရန်အတွက် စက်ကို လော့ခ်ဖွင့်ရန် ပုံစံ သတ်မှတ်ပါ"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"အလုပ်သုံးပုံစံ သတ်မှတ်ပါ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"လက်ဗွေသုံးရန် စကားဝှက်သတ်မှတ်ပါ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"လက်ဗွေသုံးရန် ပုံစံသတ်မှတ်ပါ"</string>
@@ -2108,7 +2109,7 @@
<string name="not_installed" msgid="5074606858798519449">"ဤအသုံးပြုသူအတွက် ထည့်သွင်းမထားပါ"</string>
<string name="installed" msgid="2837449358488825884">"ထည့်သွင်းထားသည်"</string>
<string name="no_applications" msgid="985069304755391640">"အက်ပ် မရှိပါ။"</string>
- <string name="internal_storage" msgid="999496851424448809">"စက်တွင်း သိုလှောင်ထားမှု"</string>
+ <string name="internal_storage" msgid="999496851424448809">"သိုလှောင်ခန်း"</string>
<string name="recompute_size" msgid="1098091228370999128">"အရွယ်အစားကို ပြန်လည်တွက်ချက်နေသည်"</string>
<string name="clear_data_dlg_title" msgid="180446967743732410">"အက်ပ်ဒေတာ ဖျက်မလား။"</string>
<string name="clear_data_dlg_text" msgid="3440011276559762619">"ဖိုင်နှင့် ဆက်တင်များအပါအဝင် ဤအက်ပ်၏ ဒေတာအားလုံးကို စက်မှ အပြီးဖျက်လိုက်ပါမည်"</string>
@@ -4005,14 +4006,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" အကြောင်းကြားချက်အားလုံး"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> အကြောင်းကြားချက် အားလုံး"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"အလိုက်သင့် အကြောင်းကြားချက်များ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">တစ်နေ့လျှင် အကြောင်းကြားချက်~<xliff:g id="NUMBER_1">%,d</xliff:g> ခု</item>
- <item quantity="one">တစ်နေ့လျှင် အကြောင်းကြားချက်~<xliff:g id="NUMBER_0">%d</xliff:g> ခု</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">တစ်ပတ်လျှင် အကြောင်းကြားချက်~<xliff:g id="NUMBER_1">%,d</xliff:g> ခု</item>
- <item quantity="one">တစ်ပတ်လျှင် အကြောင်းကြားချက်~<xliff:g id="NUMBER_0">%d</xliff:g> ခု</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ဘယ်တော့မှ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"စက်နှင့်အက်ပ် အကြောင်းကြားချက်များ"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"မည်သည့်အက်ပ်နှင့် စက်များက အကြောင်းကြားချက်များ ဖတ်နိုင်သည်ကို ထိန်းချုပ်နိုင်သည်"</string>
@@ -4375,7 +4370,7 @@
<string name="app_launch_supported_links_add" msgid="3271247750388016131">"ထည့်ရန်"</string>
<string name="app_launch_supported_links_subtext" msgid="4268004019469184113">"<xliff:g id="APP_LABEL">%s</xliff:g> တွင် ဖွင့်သည်"</string>
<string name="storage_summary_format" msgid="5721782272185284276">"<xliff:g id="STORAGE_TYPE">%2$s</xliff:g>ထဲတွင် <xliff:g id="SIZE">%1$s</xliff:g>သုံးထားသည်"</string>
- <string name="storage_type_internal" msgid="979243131665635278">"စက်အတွင်းသိမ်းဆည်းရန်နေရာ"</string>
+ <string name="storage_type_internal" msgid="979243131665635278">"စက်တွင်းသိုလှောင်ခန်း"</string>
<string name="storage_type_external" msgid="125078274000280821">"ပြင်ပသိုလှောင်ခန်း"</string>
<string name="data_summary_format" msgid="8802057788950096650">"<xliff:g id="DATE">%2$s</xliff:g> မှစ၍ <xliff:g id="SIZE">%1$s</xliff:g> အသုံးပြုခဲ့သည်။"</string>
<string name="storage_used" msgid="2591194906751432725">"အသုံးပြုပြီး သိုလှောင်ရုံ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6f0a665..6f68021 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Angi en PIN-kode"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Angi en jobb-PIN-kode"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Angi et mønster"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Angi et jobbmønster"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Angi passord for å bruke fingeravtrykk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Angi mønster for å bruke fingeravtrykk"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Ingen bruk siden sist batteriet var fulladet"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Ingen bruk de siste 24 timene"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Andre brukere"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Beregnet gjenværende batteritid er basert på måten du bruker enheten på"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Anslått tid som er igjen"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Til det er fulladet"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"«<xliff:g id="APP_NAME">%1$s</xliff:g>»: alle varsler"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g>: alle varsler"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Varsler som kan tilpasses"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> varsler per dag</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> varsel per dag</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">ca. <xliff:g id="NUMBER_1">%,d</xliff:g> varsler per uke</item>
- <item quantity="one">ca. <xliff:g id="NUMBER_0">%d</xliff:g> varsel per uke</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Aldri"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Enhets- og appvarsler"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrollér hvilke apper og enheter som kan lese varsler"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 3c055be..1d00a52 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"कार्य प्रोफाइलको PIN सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"प्याटर्न सेट गर्नुहोस्"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"कार्य प्रोफाइलको प्याटर्न सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"फिंगरप्रिन्ट प्रयोग गर्न पासवर्ड सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"फिंगरप्रिन्ट प्रयोग गर्न प्याटर्न सेट गर्नुहोस्"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"पछिल्लो पटक पूर्ण चार्ज भएदेखि ब्याट्री प्रयोग गरिएको छैन"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"पछिल्लो २४ घन्टामा ब्याट्री प्रयोग गरिएन"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"अन्य प्रयोगकर्ताहरू"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"बाँकी रहेको ब्याट्रीको प्रतिशतको अनुमान तपाईंको डिभाइसको प्रयोगमा आधारित हुन्छ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"अनुमानित बाँकी समय"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"पूर्ण चार्ज नभएसम्म"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" का सबै सूचनाहरू"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> सम्बन्धी सबै सूचनाहरू"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"अनुकूल पार्न मिल्ने सूचनाहरू"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">प्रति दिन लगभग <xliff:g id="NUMBER_1">%,d</xliff:g> सूचनाहरू</item>
- <item quantity="one">प्रति दिन लगभग <xliff:g id="NUMBER_0">%d</xliff:g> सूचना</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">प्रति हप्ता लगभग <xliff:g id="NUMBER_1">%,d</xliff:g> सूचनाहरू</item>
- <item quantity="one">प्रति हप्ता लगभग <xliff:g id="NUMBER_0">%d</xliff:g> सूचना</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"कहिल्यै होइन"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"डिभाइस तथा एपसम्बन्धी सूचनाहरू"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"कुन कुन एप र डिभाइसहरूले सूचना पढ्न पाउँछन् भन्ने कुरा नियन्त्रण गर्नुहोस्"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 3756c87..075fef6 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Stel een pincode in"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Een werkpincode instellen"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Stel een patroon in"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Een werkpatroon instellen"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Stel wachtwoord in voor gebruik van vingerafdruk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Stel patroon in voor gebruik van vingerafdruk"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Geen gebruik sinds laatste volledige lading"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Geen gebruik in de afgelopen 24 u"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Andere gebruikers"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Schatting van resterende batterijduur is gebaseerd op je apparaatgebruik"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Geschatte resterende tijd"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Tot volledige lading"</string>
@@ -2997,7 +2998,7 @@
<string name="menu_duration_6h" msgid="2843895006519153126">"6 uur"</string>
<string name="menu_duration_12h" msgid="9206922888181602565">"12 uur"</string>
<string name="menu_duration_1d" msgid="8538390358158862330">"1 dag"</string>
- <string name="menu_show_system" msgid="3780310384799907818">"Systeem tonen"</string>
+ <string name="menu_show_system" msgid="3780310384799907818">"Systeem-apps tonen"</string>
<string name="menu_hide_system" msgid="5197937451381420622">"Systeem verbergen"</string>
<string name="menu_show_percentage" msgid="6143205879027928330">"Percentages tonen"</string>
<string name="menu_use_uss" msgid="1663914348353623749">"USS gebruiken"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Alle meldingen van <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Alle meldingen van <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Aanpasbare meldingen"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> meldingen per dag</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> melding per dag</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> meldingen per week</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> melding per week</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nooit"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Apparaat- en app-meldingen"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Beheer welke apps en apparaten meldingen kunnen lezen"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 5c41ce5..d8d119d 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -1715,7 +1715,7 @@
<string name="battery_status_title" msgid="4661768220545945771">"ବ୍ୟାଟେରୀ ସ୍ଥିତି"</string>
<string name="battery_level_title" msgid="1371765298786083448">"ବ୍ୟାଟେରୀ ସ୍ତର"</string>
<string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
- <string name="apn_edit" msgid="2003683641840248741">"ଆକ୍ସେସ୍ ପଏଣ୍ଟକୁ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="apn_edit" msgid="2003683641840248741">"ଆକ୍ସେସ ପଏଣ୍ଟକୁ ଏଡିଟ କରନ୍ତୁ"</string>
<string name="apn_not_set" msgid="8246646433109750293">"ସେଟ୍ ହୋଇନାହିଁ"</string>
<string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ସେଟ୍ କରାଯାଇନାହିଁ"</string>
<string name="apn_name" msgid="6677695784108157953">"ନାମ"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ଏକ PIN ସେଟ୍ କରନ୍ତୁ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ଏକ ୱାର୍କ PIN ସେଟ୍ କରନ୍ତୁ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ଏକ ପାଟର୍ନ ସେଟ୍ କରନ୍ତୁ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ଏକ ୱାର୍କ ପାଟର୍ନ ସେଟ୍ କରନ୍ତୁ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ଟିପଚିହ୍ନ ବ୍ୟବହାର କରିବା ପାଇଁ ପାସ୍ୱାର୍ଡ ସେଟ୍ କରନ୍ତୁ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ଟିପଚିହ୍ନ ବ୍ୟବହାର କରିବା ପାଇଁ ପାଟର୍ନ ସେଟ୍ କରନ୍ତୁ"</string>
@@ -1951,7 +1953,7 @@
<string name="lockpassword_confirm_your_password_header" msgid="6132312814563023990">"ପାସୱାର୍ଡ ପୁଣି ଦିଅନ୍ତୁ"</string>
<string name="lockpassword_reenter_your_profile_password_header" msgid="3812040127714827685">"ଆପଣଙ୍କ ୱାର୍କ ପାସୱାର୍ଡ ପୁଣି-ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_work_password_header" msgid="4647071231702288305">"ଆପଣଙ୍କର କାର୍ଯ୍ୟସ୍ଥଳୀ ପାସୱାର୍ଡ ଲେଖନ୍ତୁ"</string>
- <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"ଆପଣଙ୍କ ପ୍ୟାଟର୍ନ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"ଆପଣଙ୍କ ପାଟର୍ନ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_work_pattern_header" msgid="2668883108969165844">"ଆପଣଙ୍କ କାର୍ଯ୍ୟସ୍ଥଳୀ ପାଟର୍ନ ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="2241722970567131308">"ଆପଣଙ୍କ PIN ପୁଣି ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_reenter_your_profile_pin_header" msgid="2890233614560435538">"ଆପଣଙ୍କ ୱାର୍କ PIN ପୁଣି-ଲେଖନ୍ତୁ"</string>
@@ -1972,7 +1974,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ଆପଣଙ୍କ ପାସୱାର୍ଡ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ପାଟର୍ନ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ଜାରି ରଖିବା ପାଇଁ ନିଜ ଡିଭାଇସ୍ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ଜାରି ରଖିବା ପାଇଁ ନିଜ ଡିଭାଇସ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ଡିଭାଇସ୍ର PIN ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ଜାରି ରଖିବାକୁ ନିଜ ଡିଭାଇସ୍ର ପାସ୍ୱର୍ଡ ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ଜାରି ରଖିବାକୁ ନିଜ କାର୍ଯ୍ୟ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -2252,8 +2254,8 @@
<string name="user_dict_settings_add_locale_option_name" msgid="2117468247460253346">"ଭାଷା:"</string>
<string name="user_dict_settings_add_word_hint" msgid="4560494723256242785">"ଏକ ଶବ୍ଦ ଟାଇପ୍ କରନ୍ତୁ"</string>
<string name="user_dict_settings_add_shortcut_hint" msgid="6209624157217434640">"ବିକଳ୍ପ ସର୍ଟକଟ୍"</string>
- <string name="user_dict_settings_edit_dialog_title" msgid="316493656442362284">"ଶବ୍ବ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
- <string name="user_dict_settings_context_menu_edit_title" msgid="4909198741914531509">"ସମ୍ପାଦନ"</string>
+ <string name="user_dict_settings_edit_dialog_title" msgid="316493656442362284">"ଶବ୍ବ ଏଡିଟ କରନ୍ତୁ"</string>
+ <string name="user_dict_settings_context_menu_edit_title" msgid="4909198741914531509">"ଏଡିଟ"</string>
<string name="user_dict_settings_context_menu_delete_title" msgid="651550824433043545">"ଡିଲିଟ୍ କରନ୍ତୁ"</string>
<string name="user_dict_settings_empty_text" msgid="86562873609647919">"ଉପଯୋଗକର୍ତ୍ତା ଶବ୍ଦକୋଷରେ ଆପଣ କୌଣସି ଶବ୍ଦ ଯୋଗ କରିନାହାଁନ୍ତି। ଶବ୍ଦ ଯୋଗ କରିବା ପାଇଁ \"ଯୋଗ(+)\" ବଟନ୍ରେ ଟାପ୍ କରନ୍ତୁ।"</string>
<string name="user_dict_settings_all_languages" msgid="8563387437755363526">"ସମସ୍ତ ଭାଷାଗୁଡିକ ପାଇଁ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ଗତଥର ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ ବ୍ୟବହାର କରାଯାଇନାହିଁ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ଗତ 24 ଘଣ୍ଟାରେ ବ୍ୟବହାର କରାଯାଇନାହିଁ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାମାନେ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ଆପଣଙ୍କ ଡିଭାଇସ୍ର ବ୍ୟବହାରକୁ ନେଇ ବଳକା ଥିବା ବ୍ୟାଟେରୀର ଅନୁମାନ କରାଯାଇଥାଏ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"ଆନୁମାନିକ ବଳକା ସମୟ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପାଇଁ"</string>
@@ -3301,7 +3302,7 @@
<string name="vpn_save" msgid="683868204634860888">"ସେଭ୍ କରନ୍ତୁ"</string>
<string name="vpn_connect" msgid="7102335248484045354">"ସଂଯୋଗ କରନ୍ତୁ"</string>
<string name="vpn_replace" msgid="1533147558671640341">"ପରିବର୍ତ୍ତନ"</string>
- <string name="vpn_edit" msgid="5862301148429324911">"VPN ପ୍ରୋଫାଇଲ୍ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="vpn_edit" msgid="5862301148429324911">"VPN ପ୍ରୋଫାଇଲ ଏଡିଟ କରନ୍ତୁ"</string>
<string name="vpn_forget" msgid="2913950864877236737">"ଭୁଲିଯାଆନ୍ତୁ"</string>
<string name="vpn_connect_to" msgid="216709261691085594">"<xliff:g id="PROFILE">%s</xliff:g> ସହ ସଂଯୋଗ କରନ୍ତୁ"</string>
<string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ଏହି VPNକୁ ବିଚ୍ଛିନ୍ନ କରିବେ?"</string>
@@ -3319,7 +3320,7 @@
<string name="vpn_cant_connect_message" msgid="2139148820719163694">"ସର୍ବଦା-ଅନ୍ VPNକୁ ଏହି ଆପ୍ ସପୋର୍ଟ କରୁନାହିଁ"</string>
<string name="vpn_title" msgid="3068868814145870274">"VPN"</string>
<string name="vpn_create" msgid="7546073242936894638">"VPN ପ୍ରୋଫାଇଲ୍ ଯୋଡ଼ନ୍ତୁ"</string>
- <string name="vpn_menu_edit" msgid="5100387853773792379">"ପ୍ରୋଫାଇଲ୍ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="vpn_menu_edit" msgid="5100387853773792379">"ପ୍ରୋଫାଇଲ ଏଡିଟ କରନ୍ତୁ"</string>
<string name="vpn_menu_delete" msgid="4455966182219039928">"ପ୍ରୋଫାଇଲ ଡିଲିଟ କରନ୍ତୁ"</string>
<string name="vpn_menu_lockdown" msgid="5284041663859541007">"ସର୍ବଦା-ଅନ୍ ଥିବା VPN"</string>
<string name="vpn_no_vpns_added" msgid="7387080769821533728">"କୌଣସି VPN ଯୋଗ କରାଯାଇନାହିଁ"</string>
@@ -3751,7 +3752,7 @@
<string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ସିଡୁଲ୍"</string>
<string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ସିଡୁଲ୍ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
<string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ଡିଲିଟ୍ କରନ୍ତୁ"</string>
- <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ଏଡିଟ"</string>
<string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ସିଡୁଲ୍"</string>
<string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ସିଡୁଲ୍"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ସିଡୁଲ୍"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ସମସ୍ତ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" ବିଜ୍ଞପ୍ତି"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବିଷୟରେ ସମସ୍ତ ବିଜ୍ଞପ୍ତି"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ଆଡେପ୍ଟିଭ୍ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">ପ୍ରତି ବିଜ୍ଞପ୍ତି ~<xliff:g id="NUMBER_1">%,d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି</item>
- <item quantity="one">ପ୍ରତି ଦିନ ~<xliff:g id="NUMBER_0">%d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">ପ୍ରତି ସପ୍ତାହ~<xliff:g id="NUMBER_1">%,d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି</item>
- <item quantity="one">ପ୍ରତି ସପ୍ତାହ~<xliff:g id="NUMBER_0">%d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ଆଦୌ ନୁହେଁ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ଡିଭାଇସ୍ ଓ ଆପ୍ ବିଜ୍ଞପ୍ତି"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"କେଉଁ ଆପ୍ ଏବଂ ଡିଭାଇସଗୁଡ଼ିକ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ପଢ଼ିପାରିବ ତାହା ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ"</string>
@@ -4613,7 +4608,7 @@
<string name="media_management_apps_title" msgid="8222942355578724582">"ମିଡିଆ ମ୍ୟାନେଜମେଣ୍ଟ ଆପଗୁଡ଼ିକ"</string>
<string name="media_management_apps_toggle_label" msgid="166724270857067456">"ମିଡିଆକୁ ପରିଚାଳନା କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="media_management_apps_description" msgid="8000565658455268524">"ଯଦି ଅନୁମତି ଦିଆଯାଏ, ତେବେ ଏହି ଆପ୍ ଆପଣଙ୍କୁ ନପଚାରି ଅନ୍ୟ ଆପଗୁଡ଼ିକ ସହ ତିଆରି କରାଯାଇଥିବା ମିଡିଆ ଫାଇଲଗୁଡ଼ିକୁ ପରିବର୍ତ୍ତନ କିମ୍ବା ଡିଲିଟ୍ କରିପାରିବ। ଫାଇଲ୍ ଏବଂ ମିଡିଆକୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଆପର ଅନୁମତି ରହିବା ଆବଶ୍ୟକ।"</string>
- <string name="keywords_media_management_apps" msgid="7499959607583088690">"ମିଡିଆ, ଫାଇଲ୍, ପରିଚାଳନା, ପରିଚାଳକ, ପରିଚାଳନା କରନ୍ତୁ, ଏଡିଟ୍ କରନ୍ତୁ, ଏଡିଟର୍, ଆପ୍, ଆପ୍ଲିକେସନ୍, ପ୍ରୋଗ୍ରାମ୍"</string>
+ <string name="keywords_media_management_apps" msgid="7499959607583088690">"ମିଡିଆ, ଫାଇଲ, ପରିଚାଳନା, ପରିଚାଳକ, ପରିଚାଳନା କରନ୍ତୁ, ଏଡିଟ କରନ୍ତୁ, ଏଡିଟର, ଆପ, ଆପ୍ଲିକେସନ, ପ୍ରୋଗ୍ରାମ"</string>
<string name="keywords_vr_listener" msgid="902737490270081131">"vr ଭର୍ଚୁଆଲ୍ ରିଅଲିଟୀ ଲିସ୍ନର୍ ଷ୍ଟେରିଓ ସାହାଯ୍ୟକାରୀ ସେବା"</string>
<string name="overlay_settings" msgid="2030836934139139469">"ଅନ୍ୟ ଆପ୍ଗୁଡ଼ିକ ଉପରେ ଦେଖାନ୍ତୁ"</string>
<string name="system_alert_window_summary" msgid="1435856750594492891">"<xliff:g id="COUNT_1">%2$d</xliff:g> ଟି ଆପ୍ରୁ <xliff:g id="COUNT_0">%1$d</xliff:g> ଅନ୍ୟ ଆପ୍ଗୁଡ଼ିକରେ ଡିସପ୍ଲେ କରିବାକୁ ଅନୁମୋଦିତ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index d521648..773e32d 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -1051,8 +1051,8 @@
<string name="wifi_ap_band_select_one" msgid="5221193733812493435">"ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਲਈ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਬੈਂਡ ਚੁਣੋ:"</string>
<string name="wifi_ip_settings" msgid="6420498748726599133">"IP ਸੈਟਿੰਗਾਂ"</string>
<string name="wifi_privacy_settings" msgid="3283946009000725698">"ਪਰਦੇਦਾਰੀ"</string>
- <string name="wifi_subscription" msgid="4432423938285430113">"ਗਾਹਕੀ"</string>
- <string name="wifi_subscription_summary" msgid="18802471063384598">"ਗਾਹਕੀ ਦੇਖੋ ਜਾਂ ਬਦਲੋ"</string>
+ <string name="wifi_subscription" msgid="4432423938285430113">"ਸਬਸਕ੍ਰਿਪਸ਼ਨ"</string>
+ <string name="wifi_subscription_summary" msgid="18802471063384598">"ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਦੇਖੋ ਜਾਂ ਬਦਲੋ"</string>
<string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"ਬੇਤਰਤੀਬਾ MAC"</string>
<string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"ਕੋਈ ਡੀਵਾਈਸ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"ਡੀਵਾਈਸ ਨੂੰ “<xliff:g id="SSID">%1$s</xliff:g>” ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ QR ਕੋਡ ਨੂੰ ਹੇਠਾਂ ਵਿਚਾਲੇ ਰੱਖੋ"</string>
@@ -1142,12 +1142,12 @@
<item quantity="other">%d ਨੈੱਟਵਰਕ</item>
</plurals>
<plurals name="wifi_saved_passpoint_access_points_summary" formatted="false" msgid="5802057518058840450">
- <item quantity="one">%d ਗਾਹਕੀ</item>
- <item quantity="other">%d ਗਾਹਕੀਆਂ</item>
+ <item quantity="one">%d ਸਬਸਕ੍ਰਿਪਸ਼ਨ</item>
+ <item quantity="other">%d ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ</item>
</plurals>
<plurals name="wifi_saved_all_access_points_summary" formatted="false" msgid="5125849180309374451">
- <item quantity="one">%d ਨੈੱਟਵਰਕ ਅਤੇ ਗਾਹਕੀ</item>
- <item quantity="other">%d ਨੈੱਟਵਰਕ ਅਤੇ ਗਾਹਕੀਆਂ</item>
+ <item quantity="one">%d ਨੈੱਟਵਰਕ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨ</item>
+ <item quantity="other">%d ਨੈੱਟਵਰਕ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ</item>
</plurals>
<string name="wifi_advanced_titlebar" msgid="1234150304285575798">"ਵਿਕਸਿਤ ਵਾਈ‑ਫਾਈ"</string>
<string name="wifi_advanced_ssid_title" msgid="1561437650193980185">"SSID"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ਕੰਮ ਸੰਬੰਧੀ ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ਕੰਮ ਸੰਬੰਧੀ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ ਕੋਈ ਵਰਤੋਂ ਨਹੀਂ"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ਪਿਛਲੇ 24 ਘੰਟਿਆਂ ਦੌਰਾਨ ਕੋਈ ਵਰਤੋਂ ਨਹੀਂ"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ਹੋਰ ਵਰਤੋਂਕਾਰ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ਬਾਕੀ ਬਚੀ ਬੈਟਰੀ ਦਾ ਅਨੁਮਾਨ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ \'ਤੇ ਆਧਾਰਿਤ ਹੈ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"ਅਨੁਮਾਨਿਤ ਬਾਕੀ ਸਮਾਂ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"ਪੂਰਾ ਚਾਰਜ ਹੋਣ ਲਈ"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"ਸਾਰੀਆਂ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" ਸੂਚਨਾਵਾਂ"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"ਸਾਰੀਆਂ <xliff:g id="APP_NAME">%1$s</xliff:g> ਸੂਚਨਾਵਾਂ"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">ਹਰ ਰੋਜ਼ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ਸੂਚਨਾ</item>
- <item quantity="other">ਹਰ ਰੋਜ਼ ~<xliff:g id="NUMBER_1">%,d</xliff:g> ਸੂਚਨਾਵਾਂ</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~ਹਰ ਹਫ਼ਤੇ <xliff:g id="NUMBER_1">%,d</xliff:g> ਸੂਚਨਾ</item>
- <item quantity="other">~ਹਰ ਹਫ਼ਤੇ <xliff:g id="NUMBER_1">%,d</xliff:g> ਸੂਚਨਾਵਾਂ</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"ਡੀਵਾਈਸ ਅਤੇ ਐਪ ਸੂਚਨਾਵਾਂ"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ਕੰਟਰੋਲ ਕਰੋ ਕਿ ਕਿਹੜੀਆਂ ਐਪਾਂ ਅਤੇ ਡੀਵਾਈਸਾਂ ਵੱਲੋਂ ਸੂਚਨਾਵਾਂ ਪੜ੍ਹੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ"</string>
@@ -5370,9 +5365,9 @@
<string name="cdma_system_select_dialogtitle" msgid="6143586810486936984">"ਸਿਸਟਮ ਵੱਲੋਂ ਚੁਣਿਆ"</string>
<string name="network_operator_category" msgid="5309383730335681395">"ਨੈੱਟਵਰਕ"</string>
<string name="network_select_title" msgid="4532395144000206685">"ਨੈੱਟਵਰਕ"</string>
- <string name="cdma_subscription_title" msgid="3107207913315872336">"CDMA ਗਾਹਕੀ"</string>
+ <string name="cdma_subscription_title" msgid="3107207913315872336">"CDMA ਸਬਸਕ੍ਰਿਪਸ਼ਨ"</string>
<string name="cdma_subscription_summary" msgid="7134032708555561334">"RUIM/SIM ਅਤੇ NV ਵਿਚਾਲੇ ਬਦਲੋ"</string>
- <string name="cdma_subscription_dialogtitle" msgid="555971296756231647">"ਗਾਹਕੀ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="555971296756231647">"ਸਬਸਕ੍ਰਿਪਸ਼ਨ"</string>
<string name="register_automatically" msgid="5208258089316657167">"ਸਵੈਚਲਿਤ ਰਜਿਸਟਰੇਸ਼ਨ…"</string>
<string name="roaming_alert_title" msgid="9052791521868787985">"ਕੀ ਡਾਟਾ ਰੋਮਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
<string name="roaming_check_price_warning" msgid="5876977438036791361">"ਕੀਮਤਾਂ ਜਾਣਨ ਲਈ ਆਪਣੇ ਨੈੱਟਵਰਕ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 4f243f6..e661a95 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1987,6 +1987,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Ustaw kod PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ustaw służbowy kod PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Ustaw wzór"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ustaw wzór służbowy"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Aby korzystać z odcisku palca, ustaw hasło"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Aby korzystać z odcisku palca, ustaw wzór"</string>
@@ -3000,8 +3002,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Brak użycia od ostatniego pełnego naładowania"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Brak wykorzystania w ciągu ostatnich 24 godzin"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Inni użytkownicy"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Pozostały czas pracy na baterii jest szacowany na podstawie wykorzystania urządzenia"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Szacowany pozostały czas"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Do pełnego naładowania"</string>
@@ -4094,18 +4095,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Wszystkie powiadomienia z aplikacji „<xliff:g id="APP_NAME">%1$s</xliff:g>”"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Wszystkie powiadomienia z aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Powiadomienia adaptacyjne"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomienia dziennie</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomień dziennie</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomienia dziennie</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> powiadomienie dziennie</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomienia tygodniowo</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomień tygodniowo</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> powiadomienia tygodniowo</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> powiadomienie tygodniowo</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nigdy"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Powiadomienia na urządzeniu i w aplikacjach"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Zarządzaj uprawnieniami aplikacji do czytania powiadomień"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 1766396..c4d523a 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Definir um PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Defina um PIN de trabalho"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Definir um padrão"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Definir um padrão de trabalho"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Para usar a impressão digital, defina uma senha"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Para usar a impressão digital, defina um padrão"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Sem uso desde a última carga completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Sem uso nas últimas 24h"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Outros usuários"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"A estimativa de carga da bateria restante é baseada no uso que você faz do dispositivo"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Até a carga completa"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas as notificações de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas as notificações do app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificações adaptáveis"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificação por dia</item>
- <item quantity="other">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificações por dia</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one"><xliff:g id="NUMBER_1">%,d</xliff:g> notificação por semana</item>
- <item quantity="other">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificações por semana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificações de apps e do dispositivo"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controlar quais apps e dispositivos podem ler as notificações"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 9ae9a4d..c4b8695 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Defina um PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Defina um PIN de trabalho"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Defina um padrão"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Defina um padrão de trabalho"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Defina palavra-passe para usar impressão digital"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Defina padrão para usar impressão digital"</string>
@@ -1951,7 +1953,7 @@
<string name="lockpassword_confirm_your_password_header" msgid="6132312814563023990">"Reintroduza a palavra-passe"</string>
<string name="lockpassword_reenter_your_profile_password_header" msgid="3812040127714827685">"Reintroduza a palavra-passe de trabalho"</string>
<string name="lockpassword_confirm_your_work_password_header" msgid="4647071231702288305">"Introduza a palavra-passe de trabalho"</string>
- <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"Confirmar o padrão"</string>
+ <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"Confirme o padrão"</string>
<string name="lockpassword_confirm_your_work_pattern_header" msgid="2668883108969165844">"Introduza o padrão de trabalho"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="2241722970567131308">"Reintroduza o PIN"</string>
<string name="lockpassword_reenter_your_profile_pin_header" msgid="2890233614560435538">"Reintroduza o PIN de trabalho"</string>
@@ -1972,7 +1974,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu-se da sua palavra-passe?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu-se do seu padrão?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu-se do seu PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utilize o padrão do dispositivo para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introduza o PIN do dispositivo para continuar"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduza a palavra-passe do dispositivo para continuar"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilize o padrão de trabalho para continuar"</string>
@@ -4005,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas as notificações da app \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas as notificações da app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificações adaptáveis"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificações por dia</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificação por dia</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificações por semana</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificação por semana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificações do dispositivo e de apps"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controle que apps e dispositivos podem ler notificações"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 1766396..c4d523a 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Definir um PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Defina um PIN de trabalho"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Definir um padrão"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Definir um padrão de trabalho"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Para usar a impressão digital, defina uma senha"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Para usar a impressão digital, defina um padrão"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Sem uso desde a última carga completa"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Sem uso nas últimas 24h"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Outros usuários"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"A estimativa de carga da bateria restante é baseada no uso que você faz do dispositivo"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Até a carga completa"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Todas as notificações de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Todas as notificações do app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificações adaptáveis"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificação por dia</item>
- <item quantity="other">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificações por dia</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one"><xliff:g id="NUMBER_1">%,d</xliff:g> notificação por semana</item>
- <item quantity="other">Cerca de <xliff:g id="NUMBER_1">%,d</xliff:g> notificações por semana</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nunca"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificações de apps e do dispositivo"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Controlar quais apps e dispositivos podem ler as notificações"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9577b00..6cfb004 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1967,6 +1967,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Setați un cod PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Setați un cod PIN de serviciu"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Setați un model"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Setați un model de serviciu"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Pentru a utiliza amprenta, setați parola"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Pentru a utiliza amprenta, setați modelul"</string>
@@ -4051,16 +4053,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Toate notificările din „<xliff:g id="APP_NAME">%1$s</xliff:g>”"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Toate notificările din <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Notificări adaptive"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificări pe zi</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> de notificări pe zi</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificare pe zi</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> notificări pe săptămână</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> de notificări pe săptămână</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> notificare pe săptămână</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Niciodată"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Notificări pe dispozitive și în aplicații"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Gestionați aplicațiile și dispozitivele care pot citi notificări"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 45f5cd2..683909e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1987,6 +1987,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Задайте PIN-код"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Задайте PIN-код для рабочего профиля"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Задайте графический ключ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Задайте граф. ключ для рабочего профиля"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Задайте пароль"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Задайте графический ключ"</string>
@@ -3000,8 +3002,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Батарея не использовалась с момента последней полной зарядки"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Батарея не использовалась за последние 24 часа"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Другие пользователи"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Оставшееся время работы рассчитано с учетом того, как используется устройство."</string>
<string name="estimated_time_left" msgid="948717045180211777">"Расчетное время работы без подзарядки"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"До полной зарядки"</string>
@@ -4094,18 +4095,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"<xliff:g id="APP_NAME">%1$s</xliff:g>: все уведомления"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Показывать все уведомления приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Адаптивные уведомления"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~ <xliff:g id="NUMBER_1">%,d</xliff:g> уведомление в день</item>
- <item quantity="few">~ <xliff:g id="NUMBER_1">%,d</xliff:g> уведомления в день</item>
- <item quantity="many">~ <xliff:g id="NUMBER_1">%,d</xliff:g> уведомлений в день</item>
- <item quantity="other">~ <xliff:g id="NUMBER_1">%,d</xliff:g> уведомления в день</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> уведомление в неделю</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> уведомления в неделю</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> уведомлений в неделю</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> уведомления в неделю</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Никогда"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Уведомления на устройствах и в приложениях"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Выбрать приложения и устройства, у которых есть доступ к уведомлениям"</string>
@@ -4805,7 +4796,7 @@
<string name="users_summary" msgid="8473589474976307510">"Вы вошли как <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="payment_summary" msgid="5513009140568552693">"По умолчанию: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="backup_disabled" msgid="4503062265560959320">"Резервное копирование отключено"</string>
- <string name="android_version_summary" msgid="7818952662015042768">"Обновлено до Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
+ <string name="android_version_summary" msgid="7818952662015042768">"Система обновлена до Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
<string name="android_version_pending_update_summary" msgid="5404532347171027730">"Доступно обновление"</string>
<string name="disabled_by_policy_title" msgid="3635622338687810583">"Заблокировано вашим администратором"</string>
<string name="disabled_by_policy_title_adjust_volume" msgid="1669689058213728099">"Невозможно изменить громкость"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 4407cfd..1facaa0 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN අංකයක් සකසන්න"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"කාර්යාල PIN එකක් සකසන්න"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"රටාවක් සකසන්න"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"කාර්යාල රටාවක් සකසන්න"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ඇඟිලි සලකුණ භාවිත කිරීමට, මුරපදයක් සකසන්න"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ඇඟිලි සලකුණ භාවිත කිරීමට, රටාවක් සකසන්න"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"අවසන් පූර්ණ ආරෝපණයේ සිට භාවිත කර නැත"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"පසුගිය පැය 24 සඳහා භාවිතයක් නැත"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"වෙනත් පරිශීලකයින්"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ඉතිරිව ඇති බැටරි ඇස්තමේන්තුව ඔබගේ උපාංග භාවිතය මත පදනම් වේ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"ඇස්තමේන්තුගත ඉතිරි කාලය"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"පූර්ණ ආරෝපණය වන තෙක්"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"සියලු \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" දැනුම් දීම්"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"සියලු <xliff:g id="APP_NAME">%1$s</xliff:g> දැනුම් දීම්"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"අනුවර්තී දැනුම්දීම්"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">දිනකට දැනුම්දීම් ~<xliff:g id="NUMBER_1">%,d</xliff:g> ක්</item>
- <item quantity="other">දිනකට දැනුම්දීම් ~<xliff:g id="NUMBER_1">%,d</xliff:g> ක්</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">සතියකට දැනුම්දීම් ~<xliff:g id="NUMBER_1">%,d</xliff:g> ක්</item>
- <item quantity="other">සතියකට දැනුම්දීම් ~<xliff:g id="NUMBER_1">%,d</xliff:g> ක්</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"කිසි විටක නැත"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"උපාංගය සහ යෙදුම් දැනුම්දීම්"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"දැනුම්දීම් කියවිය හැකි යෙදුම් සහ උපාංග පාලනය කරන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index a423387..03ce069 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1989,6 +1989,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Nastavte si PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Nastavenie pracovného kódu PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Nastavenie vzoru"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Nastavenie pracovného vzoru"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Ak chcete použiť odtlačok prsta, nastavte heslo"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Ak chcete použiť odtlačok prsta, nastavte vzor"</string>
@@ -4095,17 +4097,17 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Všetky upozornenia aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Všetky upozornenia aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Adaptívne upozornenia"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> upozornenia denne</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> upozornení denne</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> upozornenie denne</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="few">Približne <xliff:g id="NUMBER_1">%,d</xliff:g> upozornenia denne</item>
+ <item quantity="many">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per day</item>
+ <item quantity="other">Približne <xliff:g id="NUMBER_1">%,d</xliff:g> upozornení denne</item>
+ <item quantity="one">Približne <xliff:g id="NUMBER_0">%d</xliff:g> upozornenie denne</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> upozornenia týždenne</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> upozornení týždenne</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> upozornenie týždenne</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="few">Približne <xliff:g id="NUMBER_1">%,d</xliff:g> upozornenia týždenne</item>
+ <item quantity="many">About <xliff:g id="NUMBER_1">%,d</xliff:g> notifications per week</item>
+ <item quantity="other">Približne <xliff:g id="NUMBER_1">%,d</xliff:g> upozornení týždenne</item>
+ <item quantity="one">Približne <xliff:g id="NUMBER_0">%d</xliff:g> upozornenie týždenne</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikdy"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Upozornenia v zariadeniach a aplikáciách"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 3d68a6f..193f011 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1989,6 +1989,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Nastavite kodo PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Nastavitev kode PIN za službo"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Nastavite vzorec"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Nastavitev vzorca za službo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Nastavite geslo za prstni odtis"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Nastavite vzorec za prstni odtis"</string>
@@ -3002,8 +3004,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Ni bilo uporabe od zadnje polne napolnjenosti."</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Ni bilo uporabe v zadnjih 24 urah."</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Drugi uporabniki"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ocena preostalega časa delovanja na baterijsko napajanje temelji na načinu uporabe naprave."</string>
<string name="estimated_time_left" msgid="948717045180211777">"Približni preostali čas"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Do napolnjenosti"</string>
@@ -4096,18 +4097,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Vsa obvestila aplikacije »<xliff:g id="APP_NAME">%1$s</xliff:g>«"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Vsa obvestila aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Prilagodljiva obvestila"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestilo na dan</item>
- <item quantity="two">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestili na dan</item>
- <item quantity="few">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestila na dan</item>
- <item quantity="other">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestil na dan</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestilo na teden</item>
- <item quantity="two">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestili na teden</item>
- <item quantity="few">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestila na teden</item>
- <item quantity="other">~ <xliff:g id="NUMBER_1">%,d</xliff:g> obvestil na teden</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Nikoli"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Obvestila naprave in aplikacij"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Upravljajte, katere aplikacije in naprave lahko berejo obvestila."</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 735a31d..cbb1ce3 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Cakto një kod PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Cakto një kod PIN për punën"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Cakto një motiv"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Cakto një motiv për punën"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Për të përdorur gjurmën e gishtit, vendos fjalëkalimin"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Për të përdorur gjurmën e gishtit, vendos motivin"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Pa përdorim nga karikimi i fundit i plotë"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Nuk është përdorur për 24 orët e fundit"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Përdorues të tjerë"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Përllogaritja për baterinë e mbetur bazohet në përdorimin e pajisjes tënde"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Koha e vlerësuar e mbetur"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Deri në ngarkimin e plotë"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Të gjitha njoftimet e \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Të gjitha njoftimet e <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Njoftimet me përshtatje"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> njoftime në ditë</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> njoftim në ditë</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> njoftime në javë</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> njoftim në javë</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Asnjëherë"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Njoftimet e pajisjes dhe aplikacioneve"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrollo se cilat aplikacione dhe pajisje mund të lexojnë njoftime"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 1dfdec3..eb76507 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1965,6 +1965,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Подесите PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Подесите PIN за пословни профил"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Подесите шаблон"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Подесите шаблон за пословни профил"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Подесите лозинку да бисте користили отисак"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Да бисте користили отисак прста, подесите шаблон"</string>
@@ -4049,16 +4051,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Сва обавештења апликације <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Сва обавештења апликације <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Прилагодљива обавештења"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештење дневно</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештења дневно</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештења дневно</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештење недељно</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештења недељно</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> обавештења недељно</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Никад"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Обавештења на уређајима и у апликацијама"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Контролишите које апликације и уређаји могу да читају обавештења"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 8e6702c..6bbdb62 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Ange en pinkod"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ange en pinkod för jobbet"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Ange ett mönster"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ställ in ett mönster för jobbet"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Lösenord krävs för fingeravtryck"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Rita mönster för fingeravtryck"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Har inte använts sedan batteriet senast var fulladdat"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Har inte använts under de senaste 24 timmarna"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Andra användare"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Uppskattad återstående batteritid baseras på enhetsanvändningen"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Beräknad återstående tid"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Tills fulladdad"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Alla aviseringar från <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Alla aviseringar från <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Anpassade aviseringar"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">ca <xliff:g id="NUMBER_1">%,d</xliff:g> aviseringar om dagen</item>
- <item quantity="one">ca <xliff:g id="NUMBER_0">%d</xliff:g> avisering om dagen</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Ca <xliff:g id="NUMBER_1">%,d</xliff:g> aviseringar i veckan</item>
- <item quantity="one">Ca <xliff:g id="NUMBER_0">%d</xliff:g> avisering i veckan</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Aldrig"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Enhets- och appaviseringar"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Styr vilka appar och enheter som kan läsa aviseringar"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 670c6e5..ebe7e97 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Weka PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Weka PIN ya wasifu wa kazini"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Weka mchoro"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Weka mchoro wa wasifu wa kazini"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Weka nenosiri ili utumie alama ya kidole"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Weka mchoro ili utumie alama ya kidole"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Haijatumika tangu ilipojazwa chaji mara ya mwisho"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Haijatumika katika saa 24 zilizopita"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Watumiaji wengine"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Kadirio la chaji ya betri iliyosalia linategemea matumizi ya kifaa chako"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Kadirio la muda uliosalia"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Hadi chaji ijae"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Arifa zote za \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Arifa zote za <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Arifa Zinazojirekebisha"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Takriban arifa <xliff:g id="NUMBER_1">%,d</xliff:g> kwa siku</item>
- <item quantity="one">Takriban arifa <xliff:g id="NUMBER_0">%d</xliff:g> kwa siku</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Takriban arifa <xliff:g id="NUMBER_1">%,d</xliff:g> kwa wiki</item>
- <item quantity="one">Takriban arifa <xliff:g id="NUMBER_0">%d</xliff:g> kwa wiki</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Kamwe"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Arifa za programu na vifaa"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Dhibiti programu na vifaa vinavyoweza kusoma arifa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index f403968..d36be33 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"பின்னை அமையுங்கள்"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"பணிக்கான பின்னை அமையுங்கள்"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"பேட்டர்னை அமையுங்கள்"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"பணிக்கான பேட்டர்னை அமையுங்கள்"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"கடவுச்சொல்லை அமைக்கவும்"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"வடிவத்தை அமைக்கவும்"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"கடந்த முறை முழு சார்ஜ் ஆனதிலிருந்து எந்த உபயோகமும் இல்லை"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"கடந்த 24 மணிநேரத்தில் எந்த உபயோகமும் இல்லை"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"பிற பயனர்கள்"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"சாதனத்தை உபயோகிப்பதன் அடிப்படையில், மீதமுள்ள பேட்டரியின் தோராய அளவு கணக்கிடப்படுகிறது"</string>
<string name="estimated_time_left" msgid="948717045180211777">"கணக்கிடப்பட்ட மீதமுள்ள நேரம்"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"முழு சார்ஜ் ஆக"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"அனைத்து \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" அறிவிப்புகளும்"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"அனைத்து <xliff:g id="APP_NAME">%1$s</xliff:g> அறிவிப்புகளும்"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"சூழலுக்கேற்ற அறிவிப்புகள்"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> அறிவிப்புகள் / நாள்</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> அறிவிப்பு / நாள்</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> அறிவிப்புகள் / வாரம்</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> அறிவிப்பு / வாரம்</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ஒருபோதும் அனுப்பியதில்லை"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"சாதனம் & ஆப்ஸ் அறிவிப்புகள்"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"எந்தெந்த ஆப்ஸும் சாதனங்களும் அறிவிப்புகளைப் படிக்கலாம் என்பதைக் கட்டுப்படுத்தலாம்"</string>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 423e5d2..45b26a9 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -216,7 +216,7 @@
<string-array name="app_install_location_entries">
<item msgid="3771157789865587832">"అంతర్గత పరికర నిల్వ"</item>
<item msgid="5501345333507193420">"తీసివేయదగిన SD కార్డు"</item>
- <item msgid="2362840341195111674">"సిస్టమ్ నిర్ణయించుకునేలా అనుమతించు"</item>
+ <item msgid="2362840341195111674">"సిస్టమ్ నిర్ణయించుకునేలా అనుమతించండి"</item>
</string-array>
<string-array name="app_ops_categories">
<item msgid="528483497841471005">"లొకేషన్"</item>
@@ -447,7 +447,7 @@
<string-array name="security_settings_premium_sms_values">
<item msgid="3985605994234635072">"అడగండి"</item>
<item msgid="2358187544264718285">"ఎప్పటికీ అనుమతించవద్దు"</item>
- <item msgid="7043782324123900484">"ఎల్లప్పుడూ అనుమతించు"</item>
+ <item msgid="7043782324123900484">"ఎల్లప్పుడూ అనుమతించండి"</item>
</string-array>
<string-array name="ram_states">
<item msgid="335564863849202240">"సాధారణం"</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 9d1c4ca..c9250f2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -169,7 +169,7 @@
<string name="intent_sender_resource_label" msgid="5087385727740280207">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
<string name="intent_sender_account_label" msgid="36614006839665458">"ఖాతా:"</string>
<string name="proxy_settings_title" msgid="4201866858226087066">"ప్రాక్సీ"</string>
- <string name="proxy_clear_text" msgid="6529658759984031149">"క్లియర్ చేయి"</string>
+ <string name="proxy_clear_text" msgid="6529658759984031149">"క్లియర్ చేయండి"</string>
<string name="proxy_port_label" msgid="4647357286461712574">"ప్రాక్సీ పోర్ట్"</string>
<string name="proxy_exclusionlist_label" msgid="2598613986784917542">"దీని కోసం ప్రాక్సీని విస్మరించు"</string>
<string name="proxy_defaultView_text" msgid="6795150505379688451">"ఆటోమేటిక్ సెట్టింగ్లను రీస్టోర్ చేయండి"</string>
@@ -208,7 +208,7 @@
<string name="skip_label" msgid="6380034601349015895">"స్కిప్ చేయండి"</string>
<string name="next_label" msgid="1248293387735652187">"తర్వాత"</string>
<string name="language_picker_title" msgid="4271307478263345133">"భాషలు"</string>
- <string name="locale_remove_menu" msgid="3521546263421387474">"తీసివేయి"</string>
+ <string name="locale_remove_menu" msgid="3521546263421387474">"తీసివేయండి"</string>
<string name="add_a_language" msgid="2126220398077503271">"భాషను జోడించు"</string>
<string name="app_locale_preference_title" msgid="5513627099300360232">"భాష"</string>
<string name="locale_picker_category_title" msgid="6212064706962721255">"ప్రాధాన్యతనిచ్చే భాష"</string>
@@ -234,7 +234,7 @@
<string name="action_drag_label_move_down" msgid="9069518740553953426">"క్రిందికి తరలించు"</string>
<string name="action_drag_label_move_top" msgid="2430471023612171619">"ఎగువకు తరలించు"</string>
<string name="action_drag_label_move_bottom" msgid="6266165197792827003">"దిగువకు తరలించు"</string>
- <string name="action_drag_label_remove" msgid="1034900377796780568">"భాషను తీసివేయి"</string>
+ <string name="action_drag_label_remove" msgid="1034900377796780568">"భాషను తీసివేయండి"</string>
<string name="activity_picker_label" msgid="351250401590691126">"కార్యాచరణను ఎంచుకోండి"</string>
<string name="display_label" msgid="3056320781191343221">"స్క్రీన్"</string>
<string name="sd_card_settings_label" product="nosdcard" msgid="1850505156136467106">"USB నిల్వ"</string>
@@ -254,7 +254,7 @@
<string name="airplane_mode" msgid="3196085857882526817">"ఎయిర్ప్లేన్ మోడ్"</string>
<string name="wireless_networks_settings_title" msgid="8557542379234105369">"వైర్లెస్ & నెట్వర్క్లు"</string>
<string name="radio_controls_summary" msgid="9028430178697624501">"Wi‑Fi, బ్లూటూత్, ఎయిర్ప్లేన్ మోడ్, మొబైల్ నెట్వర్క్లు & VPNలను నిర్వహించు"</string>
- <string name="cellular_data_summary" msgid="6551434804367912367">"మొబైల్ నెట్వర్క్ ద్వారా డేటాని ఉపయోగించు"</string>
+ <string name="cellular_data_summary" msgid="6551434804367912367">"మొబైల్ నెట్వర్క్ ద్వారా డేటాను ఉపయోగించు"</string>
<string name="allow_data_usage_title" msgid="2645963379925196671">"రోమింగ్లో డేటా వినియో. అనుమతి"</string>
<string name="roaming" msgid="3055365654530847985">"రోమింగ్"</string>
<string name="roaming_enable" msgid="7845716016861535340">"రోమింగ్లో ఉన్నప్పుడు డేటా సర్వీసులకు కనెక్ట్ చేయండి"</string>
@@ -411,7 +411,7 @@
<string name="security_settings_face_settings_require_attention_details" msgid="2546230511769544074">"ఫోన్ను అన్లాక్ చేయడానికి, మీ కళ్లు తప్పనిసరిగా తెరిచి ఉంచాలి"</string>
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"ఎల్లప్పుడూ నిర్ధారణ కోసం అడగాలి"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"యాప్లలో ఫేస్ అన్లాక్ను ఉపయోగించేటప్పుడు, నిర్ధారణ దశ అవసరమవుతుంది"</string>
- <string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"ఫేస్ మోడల్ను తొలగించు"</string>
+ <string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"ఫేస్ మోడల్ను తొలగించండి"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"ఫేస్ అన్లాక్ను సెటప్ చేయండి"</string>
<string name="security_settings_face_settings_footer" msgid="625696606490947189">"మీ ఫోన్ను అన్లాక్ చేయడానికి గానీ లేదా యాప్లకు సైన్ ఇన్ చేసినప్పుడు లేదా కొనుగోలును ఆమోదించడం లాంటి ప్రామాణీకరణ కోసం గానీ మీ ముఖాన్ని ఉపయోగించండి.\n\nఅలాగే, దీనిని గుర్తుంచుకోండి:\nమీరు ఒకేసారి ఒక ముఖాన్ని మాత్రమే సెట్ చేయవచ్చు. మరొక ముఖాన్ని జోడించడానికి, ప్రస్తుతం ఉన్న దానిని తొలగించండి.\n\nమీరు అనుకోకుండా ఫోన్ వైపు చూసినా కూడా అన్లాక్ అయ్యే అవకాశం ఉంటుంది.\n\nమీ ముఖాన్ని స్క్రీన్ వైపు చూపితే, ఇతరులు కూడా మీ ఫోన్ను అన్లాక్ చేయగలుగుతారు.\n\nమీలాంటి రూపం ఉన్న వ్యక్తులు, ఉదాహరణకు, మీ కవల తోబుట్టువు మీ ఫోన్ను అన్లాక్ చేయగలిగే అవకాశం ఉంది."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"మీ ఫోన్ను అన్లాక్ చేయడానికి గానీ లేదా యాప్లకు సైన్ ఇన్ చేసినప్పుడు లేదా కొనుగోలును ఆమోదించడం లాంటి ప్రామాణీకరణ కోసం గానీ మీ ముఖాన్ని ఉపయోగించండి.\n\nఅలాగే, దీనిని గుర్తుంచుకోండి:\nమీరు ఒకేసారి ఒక ముఖాన్ని మాత్రమే సెట్ చేయవచ్చు. మరొక ముఖాన్ని జోడించడానికి, ప్రస్తుతం ఉన్న దానిని తొలగించండి.\n\nమీరు అనుకోకుండా ఫోన్ వైపు చూసినా కూడా అన్లాక్ అయ్యే అవకాశం ఉంటుంది.\n\nమీ కళ్లు మూసి ఉన్నా కూడా, మీ ముఖాన్ని స్క్రీన్ వైపు చూపితే, ఇతరులు కూడా మీ ఫోన్ను అన్లాక్ చేయగలుగుతారు.\n\nమీలాంటి రూపం ఉన్న వ్యక్తులు, ఉదాహరణకు, మీ కవల తోబుట్టువు మీ ఫోన్ను అన్లాక్ చేయగలిగే అవకాశం ఉంది."</string>
@@ -614,7 +614,7 @@
<string name="fingerprint_v2_delete_message" msgid="4136720729608391131">"ఇది మీ పరికరంలో స్టోర్ చేయబడిన \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'తో అనుబంధించబడిన వేలిముద్ర ఇమేజ్లను, మోడల్ను తొలగిస్తుంది"</string>
<string name="fingerprint_last_delete_message" msgid="7860374760549404410">"మీ ఫోన్ను అన్లాక్ చేయడానికి లేదా యాప్లలో ఉండేది మీరేనని వెరిఫై చేయడానికి మీరు మీ వేలిముద్రను ఉపయోగించలేరు."</string>
<string name="fingerprint_last_delete_message_profile_challenge" msgid="4104208067277655068">"మీ వర్క్ ప్రొఫైల్ను అన్లాక్ చేయడానికి, కొనుగోళ్లను ప్రమాణీకరించడానికి లేదా వర్క్ యాప్లకు సైన్ ఇన్ చేయడానికి మీరు మీ వేలిముద్రను ఉపయోగించలేరు."</string>
- <string name="fingerprint_last_delete_confirm" msgid="3294910995598819259">"అవును, తీసివేయి"</string>
+ <string name="fingerprint_last_delete_confirm" msgid="3294910995598819259">"అవును, తీసివేయండి"</string>
<string name="encryption_settings_title" msgid="2848716008695618360">"ఎన్క్రిప్షన్"</string>
<string name="encrypt_title" product="tablet" msgid="6518642273119816435">"టాబ్లెట్ను ఎన్క్రిప్ట్ చేయండి"</string>
<string name="encrypt_title" product="default" msgid="7337365190988321100">"ఫోన్ను ఎన్క్రిప్ట్ చేయండి"</string>
@@ -861,8 +861,8 @@
<string name="bluetooth_device_context_connect" msgid="4913860372216815855">"కనెక్ట్ చేయి"</string>
<string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"డిస్కనెక్ట్ చేయండి"</string>
<string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"పెయిర్ చేసి & కనెక్ట్ చేయి"</string>
- <string name="bluetooth_device_context_unpair" msgid="7525735305244087162">"జతను తీసివేయి"</string>
- <string name="bluetooth_device_context_disconnect_unpair" msgid="2001359431289794561">"డిస్కనెక్ట్ చేసి & జతను తీసివేయి"</string>
+ <string name="bluetooth_device_context_unpair" msgid="7525735305244087162">"జతను తీసివేయండి"</string>
+ <string name="bluetooth_device_context_disconnect_unpair" msgid="2001359431289794561">"డిస్కనెక్ట్ చేసి & జతను తీసివేయండి"</string>
<string name="bluetooth_device_context_connect_advanced" msgid="934657460643490773">"ఆప్షన్లు…"</string>
<string name="bluetooth_menu_advanced" msgid="7633682234855216066">"అధునాతన సెట్టింగ్లు"</string>
<string name="bluetooth_advanced_titlebar" msgid="5369701494951467257">"అధునాతన బ్లూటూత్"</string>
@@ -874,7 +874,7 @@
<string name="bluetooth_device_mac_address" msgid="4873325074786732703">"పరికర బ్లూటూత్ అడ్రస్: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
<string name="bluetooth_multuple_devices_mac_address" msgid="4974301550897923376">"పరికర బ్లూటూత్ అడ్రస్:\n<xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
<string name="bluetooth_unpair_dialog_title" msgid="6943633443716052995">"పరికరాన్ని మర్చిపోవాలా?"</string>
- <string name="remove_association_button" msgid="5004208145998061135">"అనుబంధాన్ని తీసివేయి"</string>
+ <string name="remove_association_button" msgid="5004208145998061135">"అనుబంధాన్ని తీసివేయండి"</string>
<string name="bluetooth_companion_app_remove_association_dialog_title" msgid="1344518601377991897">"యాప్ను డిస్కనెక్ట్ చేయాలా?"</string>
<string name="bluetooth_unpair_dialog_body" product="default" msgid="4730377171981539265">"మీ ఫోన్ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>తో పెయిర్ అవ్వలేదు"</string>
<string name="bluetooth_unpair_dialog_body" product="tablet" msgid="3428463407231980054">"మీ టాబ్లెట్ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>తో జత చేయబడి లేదు"</string>
@@ -894,7 +894,7 @@
<string name="bluetooth_device_advanced_online_mode_summary" msgid="271856759516576615">"బ్లూటూత్ పరికరానికి కనెక్ట్ చేయి"</string>
<string name="bluetooth_device_advanced_profile_header_title" msgid="7892879890208207223">"దీని కోసం ఉపయోగించు"</string>
<string name="bluetooth_device_advanced_rename_device" msgid="4798081898389041132">"పేరు మార్చు"</string>
- <string name="bluetooth_device_advanced_enable_opp_title" msgid="7604726126703453984">"ఇన్కమింగ్ ఫైల్ బదిలీలను అనుమతించు"</string>
+ <string name="bluetooth_device_advanced_enable_opp_title" msgid="7604726126703453984">"ఇన్కమింగ్ ఫైల్ బదిలీలను అనుమతించండి"</string>
<string name="bluetooth_pan_user_profile_summary_connected" msgid="7851033200857999275">"ఇంటర్నెట్ యాక్సెస్ కోసం పరికరానికి కనెక్ట్ చేయబడింది"</string>
<string name="bluetooth_pan_nap_profile_summary_connected" msgid="5563892893331988809">"స్థానిక ఇంటర్నెట్ కనెక్షన్ను పరికరంతో షేర్ చేయడం"</string>
<string name="bluetooth_dock_settings" msgid="1709536202189755022">"డాక్ సెట్టింగ్లు"</string>
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PINను సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"వర్క్ PINను సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ఆకృతిని సెట్ చేయండి"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"వర్క్ ఆకృతిని సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"వేలిముద్ర కోసం పాస్వర్డ్ సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"వేలిముద్రకు ఆకృతి సెట్ చేయండి"</string>
@@ -1951,7 +1953,7 @@
<string name="lockpassword_confirm_your_password_header" msgid="6132312814563023990">"మీ పాస్వర్డ్ను మళ్ళీ ఎంటర్ చేయండి"</string>
<string name="lockpassword_reenter_your_profile_password_header" msgid="3812040127714827685">"మీ వర్క్ పాస్వర్డ్ను మళ్లీ ఎంటర్ చేయండి"</string>
<string name="lockpassword_confirm_your_work_password_header" msgid="4647071231702288305">"మీ కార్యాలయ పాస్వర్డ్ను నమోదు చేయండి"</string>
- <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"మీ నమూనాను నిర్ధారించండి"</string>
+ <string name="lockpassword_confirm_your_pattern_header" msgid="4037701363240138651">"మీ ఆకృతిని నిర్ధారించండి"</string>
<string name="lockpassword_confirm_your_work_pattern_header" msgid="2668883108969165844">"మీ కార్యాలయ నమూనాను నమోదు చేయి"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="2241722970567131308">"మీ పిన్ను మళ్లీ ఎంటర్ చేయండి"</string>
<string name="lockpassword_reenter_your_profile_pin_header" msgid="2890233614560435538">"మీ వర్క్ PINను మళ్లీ ఎంటర్ చేయండి"</string>
@@ -1972,7 +1974,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"మీ పాస్వర్డ్ను మరచిపోయారా?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"మీ ఆకృతిని మర్చిపోయారా?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"మీ పిన్ను మర్చిపోయారా?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"కొనసాగడానికి మీ పరికరం నమూనాను ఉపయోగించండి"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"కొనసాగించడానికి మీ పరికరం ఆకృతిని ఉపయోగించండి"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"కొనసాగడానికి మీ డివైజ్ పిన్ను ఎంటర్ చేయండి"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"కొనసాగడానికి మీ పరికర పాస్వర్డ్ను నమోదు చేయండి"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"కొనసాగడానికి మీ కార్యాలయ నమూనాను ఉపయోగించండి"</string>
@@ -2005,7 +2007,7 @@
<string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"మీ కొత్త అన్లాక్ ఆకృతి"</string>
<string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"నిర్ధారించు"</string>
<string name="lockpattern_restart_button_text" msgid="255339375151895998">"మళ్లీ గీయి"</string>
- <string name="lockpattern_retry_button_text" msgid="4229668933251849760">"తీసివేయి"</string>
+ <string name="lockpattern_retry_button_text" msgid="4229668933251849760">"తీసివేయండి"</string>
<string name="lockpattern_continue_button_text" msgid="5253269556259503537">"కొనసాగించండి"</string>
<string name="lockpattern_settings_title" msgid="9223165804553269083">"అన్లాక్ ఆకృతి"</string>
<string name="lockpattern_settings_enable_title" msgid="7401197111303283723">"ఆకృతి అవసరం"</string>
@@ -2034,7 +2036,7 @@
<string name="applications_settings" msgid="1941993743933425622">"యాప్ సమాచారం"</string>
<string name="applications_settings_header" msgid="3154670675856048015">"యాప్ సెట్టింగ్లు"</string>
<string name="install_applications" msgid="3921609656584369901">"తెలియని మూలాలు"</string>
- <string name="install_applications_title" msgid="7890233747559108106">"అన్ని అనువ. మూలాలను అనుమతించు"</string>
+ <string name="install_applications_title" msgid="7890233747559108106">"అన్ని అనువ. మూలాలను అనుమతించండి"</string>
<string name="recent_app_category_title" msgid="189758417804427533">"ఇటీవల తెరిచిన యాప్లు"</string>
<plurals name="see_all_apps_title" formatted="false" msgid="6864581406735745400">
<item quantity="other">మొత్తం %1$d యాప్లను చూడండి</item>
@@ -2044,7 +2046,7 @@
<string name="forgot_password_text" msgid="2583194470767613163">"పిన్ను, ఆకృతిని, లేదా పాస్వర్డ్ను రీసెట్ చేయడానికి వారు సహాయపడతారు"</string>
<string name="install_all_warning" product="tablet" msgid="7010749217925069520">"మీ టాబ్లెట్ మరియు వ్యక్తిగత డేటా తెలియని మూలాల్లోని యాప్ల ద్వారా దాడికి గురి కావడానికి ఎక్కువ అవకాశం ఉంటుంది. ఈ మూలం నుండి యాప్లను ఇన్స్టాల్ చేయడం ద్వారా, ఈ యాప్లను ఉపయోగించడం ద్వారా మీ టాబ్లెట్కు సంభవించే ఏదైనా నష్టానికి లేదా కోల్పోయే డేటాకి బాధ్యత వహించడానికి మీరు అంగీకరిస్తున్నారు."</string>
<string name="install_all_warning" product="default" msgid="652516435709047343">"తెలియని యాప్లు మీ ఫోన్ పైన, వ్యక్తిగత డేటా పైన దాడి చేయడానికి ఎక్కువగా అవకాశం ఉంటుంది. ఈ సోర్స్ నుండి యాప్లను ఇన్స్టాల్ చేయడం ద్వారా, వాటి వినియోగంతో మీ ఫోన్కు ఏదైనా నష్టం జరిగితే లేదా మీ డేటాను కోల్పోతే అందుకు మీరే బాధ్యత వహిస్తారని అంగీకరిస్తున్నారు."</string>
- <string name="install_all_warning" product="device" msgid="2348262609815354500">"మీ పరికరం మరియు వ్యక్తిగత డేటాపై తెలియని మూలాధారాల నుండి పొందిన యాప్లు దాడి చేసే అవకాశం ఎక్కువగా ఉంది. ఈ మూలాధారం నుండి పొందిన యాప్లను ఇన్స్టాల్ చేయడం ద్వారా, వాటి ఉపయోగం కారణంగా మీ పరికరానికి జరిగే హాని లేదా డేటాని కోల్పోవడం వంటి వాటికి మీరే పూర్తి బాధ్యత వహించడానికి మీరు అంగీకరించాలి."</string>
+ <string name="install_all_warning" product="device" msgid="2348262609815354500">"మీ పరికరం మరియు వ్యక్తిగత డేటాపై తెలియని మూలాధారాల నుండి పొందిన యాప్లు దాడి చేసే అవకాశం ఎక్కువగా ఉంది. ఈ మూలాధారం నుండి పొందిన యాప్లను ఇన్స్టాల్ చేయడం ద్వారా, వాటి ఉపయోగం కారణంగా మీ పరికరానికి జరిగే హాని లేదా డేటాను కోల్పోవడం వంటి వాటికి మీరే పూర్తి బాధ్యత వహించడానికి మీరు అంగీకరించాలి."</string>
<string name="advanced_settings" msgid="2368905204839169094">"అధునాతన సెట్టింగ్లు"</string>
<string name="advanced_settings_summary" msgid="1823765348195530035">"మరిన్ని సెట్టింగ్ల ఎంపికలను ప్రారంభించు"</string>
<string name="application_info_label" msgid="1015706497694165866">"యాప్ సమాచారం"</string>
@@ -2054,13 +2056,13 @@
<string name="screen_compatibility_label" msgid="7549658546078613431">"స్క్రీన్ అనుకూలత"</string>
<string name="permissions_label" msgid="1708927634370314404">"అనుమతులు"</string>
<string name="cache_header_label" msgid="2441967971921741047">"కాష్"</string>
- <string name="clear_cache_btn_text" msgid="8597272828928143723">"కాష్ను క్లియర్ చేయి"</string>
+ <string name="clear_cache_btn_text" msgid="8597272828928143723">"కాష్ను క్లియర్ చేయండి"</string>
<string name="cache_size_label" msgid="313456088966822757">"కాష్"</string>
<plurals name="uri_permissions_text" formatted="false" msgid="8212425823423508096">
<item quantity="other">%d అంశాలు</item>
<item quantity="one">1 అంశం</item>
</plurals>
- <string name="clear_uri_btn_text" msgid="4828117421162495134">"యాక్సెస్ను తీసివేయి"</string>
+ <string name="clear_uri_btn_text" msgid="4828117421162495134">"యాక్సెస్ను తీసివేయండి"</string>
<string name="controls_label" msgid="8671492254263626383">"నియంత్రణలు"</string>
<string name="force_stop" msgid="2681771622136916280">"ఫోర్స్ స్టాప్"</string>
<string name="total_size_label" msgid="2052185048749658866">"మొత్తం"</string>
@@ -2785,7 +2787,7 @@
<string name="battery_tip_restrict_app_dialog_ok" msgid="7025027696689301916">"పరిమితం చేేయి"</string>
<string name="battery_tip_unrestrict_app_dialog_title" msgid="5501997201160532301">"పరిమితిని తీసివేయాలా?"</string>
<string name="battery_tip_unrestrict_app_dialog_message" msgid="215449637818582819">"ఈ యాప్ బ్యాక్గ్రౌండ్లో బ్యాటరీని ఉపయోగించగలదు. మీ బ్యాటరీ ఛార్జింగ్ త్వరగా ఖాళీ కావచ్చు."</string>
- <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"తీసివేయి"</string>
+ <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"తీసివేయండి"</string>
<string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"రద్దు చేయండి"</string>
<string name="battery_tip_dialog_summary_message" product="default" msgid="6097167058237891756">"యాప్ల బ్యాటరీ వినియోగం సాధారణంగా ఉంది. యాప్లు చాలా ఎక్కువ బ్యాటరీని వాడుతుంటే ఏం చేయాలనేది మీ ఫోన్ సూచిస్తుంది. \n\nబ్యాటరీ తక్కువగా ఉంటే బ్యాటరీ సేవర్ ఆన్ చేయవచ్చు."</string>
<string name="battery_tip_dialog_summary_message" product="tablet" msgid="573297655597451123">"మీ యాప్లు సాధారణ స్థాయిలో బ్యాటరీను వినియోగిస్తున్నాయి. యాప్లు చాలా ఎక్కువ బ్యాటరీని వినియోగిస్తున్నట్లయితే, మీ టాబ్లెట్, మీరు తీసుకోగల చర్యలను సూచిస్తుంది. \n\nమీరు తక్కువ బ్యాటరీను కలిగి ఉంటే, ఎప్పుడైనా మీరు బ్యాటరీ సేవర్ను ఆన్ చేయవచ్చు."</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"చివరిగా పూర్తి ఛార్జింగ్ చేసినప్పటి నుండి ఎలాంటి వినియోగం లేదు"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"గత 24 గంటల నుండి ఎలాంటి వినియోగం లేదు"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ఇతర యూజర్లు"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"పరికరం వినియోగాన్ని బట్టి మిగిలి ఉన్న బ్యాటరీ అంచనా వేయబడుతుంది"</string>
<string name="estimated_time_left" msgid="948717045180211777">"అంచనా వేసిన సమయం మిగిలి ఉంది"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"పూర్తిగా ఛార్జ్ కావడానికి పట్టే సమయం"</string>
@@ -3116,7 +3117,7 @@
<string name="device_admin_status" msgid="6332571781623084064">"ఈ అడ్మిన్ యాప్ యాక్టివ్గా ఉంది. కింది చర్యలు చేయడానికి <xliff:g id="APP_NAME">%1$s</xliff:g> యాప్ను అనుమతిస్తుంది:"</string>
<string name="profile_owner_add_title" msgid="2774489881662331549">"ప్రొఫైల్ నిర్వాహకుడిని సక్రియం చేయాలా?"</string>
<string name="profile_owner_add_title_simplified" msgid="2320828996993774182">"పర్యవేక్షణను అనుమతించాలా?"</string>
- <string name="adding_profile_owner_warning" msgid="6868275476058020513">"కొనసాగిస్తే, మీ యూజర్ను మీ అడ్మిన్ మేనేజ్ చేయగలరు, దాని వలన మీ వ్యక్తిగత డేటాతో పాటు అనుబంధితంగా ఉన్న డేటా కూడా స్టోర్ చేయబడవచ్చు.\n\nమీ అడ్మిన్ నెట్వర్క్ యాక్టివిటీ, మీ డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు ఈ యూజర్కు అనుబంధితంగా ఉన్న సెట్టింగ్లు, యాక్సెస్, యాప్లు మరియు డేటాని పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు."</string>
+ <string name="adding_profile_owner_warning" msgid="6868275476058020513">"కొనసాగిస్తే, మీ యూజర్ను మీ అడ్మిన్ మేనేజ్ చేయగలరు, దాని వలన మీ వ్యక్తిగత డేటాతో పాటు అనుబంధితంగా ఉన్న డేటా కూడా స్టోర్ చేయబడవచ్చు.\n\nమీ అడ్మిన్ నెట్వర్క్ యాక్టివిటీ, మీ డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు ఈ యూజర్కు అనుబంధితంగా ఉన్న సెట్టింగ్లు, యాక్సెస్, యాప్లు మరియు డేటాను పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు."</string>
<string name="admin_disabled_other_options" msgid="8122039047419172139">"ఇతర ఎంపికలను మీ నిర్వాహకులు నిలిపివేసారు"</string>
<string name="admin_more_details" msgid="4928985331640193758">"మరింత తెలుసుకోండి"</string>
<string name="notification_log_title" msgid="2812594935014664891">"నోటిఫికేషన్ లాగ్"</string>
@@ -3192,7 +3193,7 @@
<string name="data_usage_app_items_header_text" msgid="7513812163443595033">"యాప్ వినియోగం"</string>
<string name="data_usage_menu_roaming" msgid="6864561338842056939">"డేటా రోమింగ్"</string>
<string name="data_usage_menu_restrict_background" msgid="1414574366645086133">"నేపథ్య డేటాను పరిమితం చేయి"</string>
- <string name="data_usage_menu_allow_background" msgid="6242931073390680432">"నేపథ్య డేటాను అనుమతించు"</string>
+ <string name="data_usage_menu_allow_background" msgid="6242931073390680432">"నేపథ్య డేటాను అనుమతించండి"</string>
<string name="data_usage_menu_split_4g" msgid="3391899816926640583">"4G వినియోగాన్ని వేరుచేయి"</string>
<string name="data_usage_menu_show_wifi" msgid="6380926350184939975">"Wi‑Fiని చూపు"</string>
<string name="data_usage_menu_hide_wifi" msgid="4694889089278302691">"Wi‑Fiని దాచు"</string>
@@ -3211,7 +3212,7 @@
<string name="data_usage_label_foreground" msgid="8782117644558473624">"ముందుభాగం"</string>
<string name="data_usage_label_background" msgid="8862781660427421859">"బ్యాక్గ్రౌండ్"</string>
<string name="data_usage_app_restricted" msgid="312065316274378518">"పరిమితం చేయబడింది"</string>
- <string name="data_usage_disable_mobile" msgid="6183809500102606801">"మొబైల్ డేటాని ఆఫ్ చేయాలా?"</string>
+ <string name="data_usage_disable_mobile" msgid="6183809500102606801">"మొబైల్ డేటాను ఆఫ్ చేయాలా?"</string>
<string name="data_usage_disable_mobile_limit" msgid="1370147078938479538">"మొబైల్ డేటా పరిమితిని సెట్ చేయండి"</string>
<string name="data_usage_disable_4g_limit" msgid="3084868504051520840">"4G డేటా పరిమితిని సెట్ చేయి"</string>
<string name="data_usage_disable_3g_limit" msgid="8867555130268898044">"2G-3G డేటా పరిమితిని సెట్ చేయి"</string>
@@ -3297,7 +3298,7 @@
<string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ఎల్లప్పుడూ ఆన్లో ఉండే VPN కోసం DNS సర్వర్ అడ్రస్లు తప్పనిసరిగా సంఖ్యలు అయి ఉండాలి"</string>
<string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ఎంటర్ చేసిన సమాచారానికి ఎల్లప్పుడూ ఆన్లో ఉండే VPN సపోర్ట్ చేయదు"</string>
<string name="vpn_cancel" msgid="5929410618112404383">"రద్దు చేయండి"</string>
- <string name="vpn_done" msgid="5137858784289564985">"తీసివేయి"</string>
+ <string name="vpn_done" msgid="5137858784289564985">"తీసివేయండి"</string>
<string name="vpn_save" msgid="683868204634860888">"సేవ్ చేయండి"</string>
<string name="vpn_connect" msgid="7102335248484045354">"కనెక్ట్ చేయి"</string>
<string name="vpn_replace" msgid="1533147558671640341">"భర్తీ చేయి"</string>
@@ -3408,7 +3409,7 @@
<string name="user_delete_user_description" msgid="7764153465503821011">"వినియోగదారుని తొలగించండి"</string>
<string name="user_delete_button" msgid="3833498650182594653">"తొలగించండి"</string>
<string name="user_exit_guest_confirm_message" msgid="8995296853928816554">"ఈ సెషన్లోని అన్ని యాప్లు మరియు డేటా తొలగించబడతాయి."</string>
- <string name="user_exit_guest_dialog_remove" msgid="7067727314172605181">"తీసివేయి"</string>
+ <string name="user_exit_guest_dialog_remove" msgid="7067727314172605181">"తీసివేయండి"</string>
<string name="guest_category_title" msgid="5562663588315329152">"గెస్ట్ (మీరు)"</string>
<string name="user_category_title" msgid="4368580529662699083">"యూజర్లు"</string>
<string name="other_user_category_title" msgid="7089976887307643217">"ఇతర యూజర్లు"</string>
@@ -3416,7 +3417,7 @@
<string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"గెస్ట్ మోడ్ నుండి నిష్క్రమించినప్పుడు అన్ని గెస్ట్ యాప్లు, డేటాను తొలగించండి"</string>
<string name="remove_guest_on_exit_dialog_title" msgid="2310442892536079416">"గెస్ట్ యాక్టివిటీని తొలగించాలా?"</string>
<string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"ఈ గెస్ట్ సెషన్లోని యాప్లు, డేటా ఇప్పుడు తొలగించబడతాయి, మీరు గెస్ట్ మోడ్ నుండి నిష్క్రమించిన ప్రతిసారీ భవిష్యత్ గెస్ట్ యాక్టివిటీ మొత్తం తొలగించబడుతుంది"</string>
- <string name="enable_guest_calling" msgid="8300355036005240911">"ఫోన్ ఉపయోగించడానికి గెస్ట్ను అనుమతించు"</string>
+ <string name="enable_guest_calling" msgid="8300355036005240911">"ఫోన్ ఉపయోగించడానికి గెస్ట్ను అనుమతించండి"</string>
<string name="enable_guest_calling_summary" msgid="4748224917641204782">"కాల్ హిస్టరీ గెస్ట్ యూజర్తో షేర్ చేయబడుతుంది"</string>
<string name="user_enable_calling_sms" msgid="8546430559552381324">"ఫోన్ కాల్స్ & SMS ఆన్ చేయి"</string>
<string name="user_remove_user" msgid="8468203789739693845">"వినియోగదారుని తొలగించు"</string>
@@ -3461,7 +3462,7 @@
<string name="nfc_payment_btn_text_update" msgid="5159700960497443832">"అప్డేట్ చేయండి"</string>
<string name="nfc_work_text" msgid="2496515165821504077">"వర్క్ యాప్లు"</string>
<string name="restriction_settings_title" msgid="4293731103465972557">"పరిమితులు"</string>
- <string name="restriction_menu_reset" msgid="92859464456364092">"పరిమితులను తీసివేయి"</string>
+ <string name="restriction_menu_reset" msgid="92859464456364092">"పరిమితులను తీసివేయండి"</string>
<string name="restriction_menu_change_pin" msgid="2505923323199003718">"పిన్ను మార్చు"</string>
<string name="help_label" msgid="2896538416436125883">"సహాయం & ఫీడ్బ్యాక్"</string>
<string name="support_summary" product="default" msgid="6137136608018134563">"సహాయక ఆర్టికల్స్, ఫోన్ & చాట్"</string>
@@ -3517,11 +3518,11 @@
<string name="restriction_wifi_config_title" msgid="2630656989926554685">"Wi‑Fi మరియు మొబైల్"</string>
<string name="restriction_wifi_config_summary" msgid="920419010472168694">"Wi‑Fi మరియు మొబైల్ సెట్టింగ్ల ఎడిట్ను అనుమతించండి"</string>
<string name="restriction_bluetooth_config_title" msgid="220586273589093821">"బ్లూటూత్"</string>
- <string name="restriction_bluetooth_config_summary" msgid="7558879931011271603">"బ్లూటూత్ జతలు మరియు సెట్టింగ్ల యొక్క ఎడిట్ను అనుమతించు"</string>
+ <string name="restriction_bluetooth_config_summary" msgid="7558879931011271603">"బ్లూటూత్ జతలు మరియు సెట్టింగ్ల యొక్క ఎడిట్ను అనుమతించండి"</string>
<string name="restriction_nfc_enable_title" msgid="525512312298242911">"NFC"</string>
- <string name="restriction_nfc_enable_summary_config" msgid="8065688740509581028">"ఈ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> మరో NFC పరికరాన్ని తాకినప్పుడు డేటా మార్పిడి అనుమతించు"</string>
- <string name="restriction_nfc_enable_summary" product="tablet" msgid="6397567147629410131">"టాబ్లెట్ మరో పరికరాన్ని తాకినప్పుడు డేటా మార్పిడిని అనుమతించు"</string>
- <string name="restriction_nfc_enable_summary" product="default" msgid="3331800894734678808">"ఫోన్ మరో పరికరాన్ని తాకినప్పుడు డేటా మార్పిడిని అనుమతించు"</string>
+ <string name="restriction_nfc_enable_summary_config" msgid="8065688740509581028">"ఈ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> మరో NFC పరికరాన్ని తాకినప్పుడు డేటా మార్పిడి అనుమతించండి"</string>
+ <string name="restriction_nfc_enable_summary" product="tablet" msgid="6397567147629410131">"టాబ్లెట్ మరో పరికరాన్ని తాకినప్పుడు డేటా మార్పిడిని అనుమతించండి"</string>
+ <string name="restriction_nfc_enable_summary" product="default" msgid="3331800894734678808">"ఫోన్ మరో పరికరాన్ని తాకినప్పుడు డేటా మార్పిడిని అనుమతించండి"</string>
<string name="restriction_location_enable_title" msgid="4872281754836538066">"లొకేషన్"</string>
<string name="restriction_location_enable_summary" msgid="7139292323897390221">"మీ లొకేషన్ సమాచారాన్ని ఉపయోగించడానికి యాప్లను అనుమతించండి"</string>
<string name="wizard_back" msgid="8257697435061870191">"వెనుకకు"</string>
@@ -3627,7 +3628,7 @@
<string name="keywords_text_to_speech_output" msgid="6728080502619011668">"రేటు, భాష, ఆటోమేటిక్, చదివి వినిపించు, చదివి వినిపించడం, tts, యాక్సెసిబిలిటీ, స్క్రీన్ రీడర్, అంధులు"</string>
<string name="keywords_date_and_time" msgid="4402136313104901312">"గడియారం, మిలిటరీ"</string>
<string name="keywords_network_reset" msgid="4075670452112218042">"రీసెట్ చేయి, పునరుద్ధరించు, ఫ్యాక్టరీ"</string>
- <string name="keywords_factory_data_reset" msgid="4979623326958976773">"తొలగించు, పునరుద్ధరించు, క్లియర్ చేయి, తీసివేయి, ఫ్యాక్టరీ రీసెట్"</string>
+ <string name="keywords_factory_data_reset" msgid="4979623326958976773">"తొలగించు, పునరుద్ధరించు, క్లియర్ చేయండి, తీసివేయండి, ఫ్యాక్టరీ రీసెట్"</string>
<string name="keywords_printing" msgid="3528250034669909466">"ప్రింటర్"</string>
<string name="keywords_sounds" msgid="187191900698371911">"స్పీకర్ బీప్, స్పీకర్, వాల్యూమ్, మ్యూట్, మ్యూట్ చేయండి, ఆడియో, మ్యూజిక్, హ్యాప్టిక్, వైబ్రేటర్, వైబ్రేట్"</string>
<string name="keywords_sounds_and_notifications_interruptions" msgid="1500312884808362467">"ఆటంకం కలిగించవద్దు, అంతరాయం కలిగించు, అంతరాయం, విరామం"</string>
@@ -3671,9 +3672,9 @@
<string name="keywords_display_adaptive_sleep" msgid="4905300860114643966">"స్మార్ట్, మసక స్క్రీన్ స్లీప్, బ్యాటరీ, గడువు ముగింపు, అటెన్షన్, ప్రదర్శన, స్క్రీన్, ఇన్యాక్టివిటీ"</string>
<string name="keywords_auto_rotate" msgid="7288697525101837071">"కెమెరా, స్మార్ట్, ఆటో రొటేట్, ఆటో-రొటేట్, రొటేట్, తిప్పండి, రొటేషన్, పోర్ట్రెయిట్, ల్యాండ్స్కేప్, ఓరియంటేషన్, వర్టికల్, హారిజాంటల్"</string>
<string name="keywords_system_update_settings" msgid="5769003488814164931">"అప్గ్రేడ్, android"</string>
- <string name="keywords_zen_mode_settings" msgid="7810203406522669584">"dnd, షెడ్యూల్, నోటిఫికేషన్లు, బ్లాక్ చేయి, నిశ్శబ్దం, వైబ్రేట్, స్లీప్, కార్యాలయం, దృష్టి సారించడం, ధ్వని, మ్యూట్, రోజు, వారంలో రోజు, వారాంతం, వారంలో రాత్రి, ఈవెంట్"</string>
+ <string name="keywords_zen_mode_settings" msgid="7810203406522669584">"dnd, షెడ్యూల్, నోటిఫికేషన్లు, బ్లాక్ చేయండి, నిశ్శబ్దం, వైబ్రేట్, స్లీప్, కార్యాలయం, దృష్టి సారించడం, ధ్వని, మ్యూట్, రోజు, వారంలో రోజు, వారాంతం, వారంలో రాత్రి, ఈవెంట్"</string>
<string name="keywords_screen_timeout" msgid="8921857020437540572">"స్క్రీన్, లాక్ సమయం, గడువు ముగింపు, లాక్స్క్రీన్"</string>
- <string name="keywords_storage_settings" msgid="6018856193950281898">"మెమరీ, కాష్, డేటా, తొలగించు, క్లియర్ చేయి, ఖాళీ, స్థలం"</string>
+ <string name="keywords_storage_settings" msgid="6018856193950281898">"మెమరీ, కాష్, డేటా, తొలగించు, క్లియర్ చేయండి, ఖాళీ, స్థలం"</string>
<string name="keywords_bluetooth_settings" msgid="2588159530959868188">"కనెక్ట్ అయింది, పరికరం, హెడ్ఫోన్లు, హెడ్సెట్, స్పీకర్, వైర్లెస్, జత చేయి, ఇయర్బడ్లు, సంగీతం, మీడియా"</string>
<string name="keywords_wallpaper" msgid="7332890404629446192">"బ్యాక్గ్రౌండ్, రూపం, గ్రిడ్, అనుకూలంగా మార్చండి, వ్యక్తిగతీకరించు"</string>
<string name="keywords_styles" msgid="5291614313348476068">"చిహ్నం, యాస, రంగు"</string>
@@ -3760,7 +3761,7 @@
<string name="zen_mode_schedule_title" msgid="7064866561892906613">"షెడ్యూల్"</string>
<string name="zen_mode_use_automatic_rule" msgid="733850322530002484">"షెడ్యూల్ ఉపయోగించు"</string>
<string name="zen_mode_summary_combination" msgid="5944689309915947828">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
- <string name="zen_mode_settings_category" msgid="3794956668816783447">"శబ్దాలు చేసే అంతరాయాలను అనుమతించు"</string>
+ <string name="zen_mode_settings_category" msgid="3794956668816783447">"శబ్దాలు చేసే అంతరాయాలను అనుమతించండి"</string>
<string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"దృశ్య అంతరాయాలను బ్లాక్ చేయండి"</string>
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"విజిబిలిటీ సంకేతాలను అనుమతించండి"</string>
<string name="zen_mode_restrict_notifications_title" msgid="4169952466106040297">"దాగి వుండే నోటిఫికేషన్లకు ప్రదర్శన ఆప్షన్లు"</string>
@@ -3883,7 +3884,7 @@
<string name="history_toggled_on_summary" msgid="9034278971358282728">"మీ నోటిఫికేషన్లలో ఇటీవలి వాటితో పాటు, తాత్కాలికంగా స్నూజ్ చేయబడినవి ఇక్కడ కనిపిస్తాయి"</string>
<string name="notification_history_view_settings" msgid="5269317798670449002">"నోటిఫికేషన్ సెట్టింగ్లను చూడండి"</string>
<string name="notification_history_open_notification" msgid="2655071846911258371">"నోటిఫికేషన్ను తెరువు"</string>
- <string name="snooze_options_title" msgid="2109795569568344617">"నోటిఫికేషన్లను తాత్కాలికంగా ఆపివేయడాన్ని అనుమతించు"</string>
+ <string name="snooze_options_title" msgid="2109795569568344617">"నోటిఫికేషన్లను తాత్కాలికంగా ఆపివేయడాన్ని అనుమతించండి"</string>
<string name="hide_silent_icons_title" msgid="5951392023601167577">"సాధారణ నోటిఫికేషన్ల చిహ్నాలను దాచి పెట్టు"</string>
<string name="hide_silent_icons_summary" msgid="623763437631637232">"సాధారణ నోటిఫికేషన్లకు సంబంధించిన చిహ్నాలు స్టేటస్ పట్టీలో చూపబడవు"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"యాప్ చిహ్నంపై నోటిఫికేషన్ డాట్"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"\"<xliff:g id="APP_NAME">%1$s</xliff:g>\" నోటిఫికేషన్లన్నీ"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"అన్ని <xliff:g id="APP_NAME">%1$s</xliff:g> నోటిఫికేషన్లు"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"అనుకూల నోటిఫికేషన్లు"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">రోజుకు~<xliff:g id="NUMBER_1">%,d</xliff:g> నోటిఫికేషన్లు</item>
- <item quantity="one">రోజుకు ~<xliff:g id="NUMBER_0">%d</xliff:g> నోటిఫికేషన్</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">వారానికి ~<xliff:g id="NUMBER_1">%,d</xliff:g>నోటిఫికేషన్లు</item>
- <item quantity="one">వారానికి ~<xliff:g id="NUMBER_0">%d</xliff:g> నోటిఫికేషన్</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ఎప్పటికీ వద్దు"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"పరికరం & యాప్ నోటిఫికేషన్లు"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ఎటువంటి యాప్లు, పరికరాలు నోటిఫికేషన్లను చదవవచ్చో కంట్రోల్ చేయండి"</string>
@@ -4027,7 +4022,7 @@
<string name="notification_assistant_summary" msgid="1957783114840908887">"సూచించిన చర్యలు, రిప్లయిలు, అలాగే మరిన్ని పొందండి"</string>
<string name="no_notification_assistant" msgid="2533323397091834096">"ఏమీ లేవు"</string>
<string name="no_notification_listeners" msgid="2839354157349636000">"ఇన్స్టాల్ చేసిన అనువర్తనాలేవీ నోటిఫికేషన్ యాక్సెస్ను రిక్వెస్ట్ చేయలేదు."</string>
- <string name="notification_access_detail_switch" msgid="46386786409608330">"నోటిఫికేషన్ యాక్సెస్ను అనుమతించు"</string>
+ <string name="notification_access_detail_switch" msgid="46386786409608330">"నోటిఫికేషన్ యాక్సెస్ను అనుమతించండి"</string>
<string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"<xliff:g id="SERVICE">%1$s</xliff:g> కోసం నోటిఫికేషన్ యాక్సెస్ అనుమతించాలా?"</string>
<string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"Android 12లో Android అనుకూల నోటిఫికేషన్లను, \'మెరుగైన నోటిఫికేషన్లు\' రీప్లేస్ చేశాయి. ఈ ఫీచర్, సూచించిన చర్యలను, రిప్లయిలను చూపించి, మీ నోటిఫికేషన్లను ఆర్గనైజ్ చేస్తుంది. \n\nకాంటాక్ట్ పేర్లు, మెసేజ్లు లాంటి వ్యక్తిగత సమాచారంతో సహా నోటిఫికేషన్ కంటెంట్ను \'మెరుగైన నోటిఫికేషన్లు\' యాక్సెస్ చేయవచ్చు. ఫోన్ కాల్స్కు సమాధానమివ్వడం, \'అంతరాయం కలిగించవద్దు\' ఆప్షన్ను కంట్రోల్ చేయడం లాంటి నోటిఫికేషన్లను విస్మరించడం లేదా ప్రతిస్పందించడం కూడా ఈ ఫీచర్ చేయగలదు."</string>
<string name="notification_listener_security_warning_title" msgid="5791700876622858363">"<xliff:g id="SERVICE">%1$s</xliff:g> కోసం నోటిఫికేషన్ యాక్సెస్ను అనుమతించాలా?"</string>
@@ -4068,7 +4063,7 @@
<string name="picture_in_picture_empty_text" msgid="9123600661268731579">"చిత్రంలో చిత్రానికి మద్దతిచ్చే యాప్లు ఏవీ ఇన్స్టాల్ చేయబడలేదు"</string>
<string name="picture_in_picture_keywords" msgid="3605379820551656253">"pip picture in"</string>
<string name="picture_in_picture_app_detail_title" msgid="4442235098255164650">"పిక్చర్-ఇన్-పిక్చర్"</string>
- <string name="picture_in_picture_app_detail_switch" msgid="8544190716075624017">"పిక్చర్-ఇన్-పిక్చర్ను అనుమతించు"</string>
+ <string name="picture_in_picture_app_detail_switch" msgid="8544190716075624017">"పిక్చర్-ఇన్-పిక్చర్ను అనుమతించండి"</string>
<string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"యాప్ తెరిచి ఉన్నప్పుడు లేదా మీరు దాని నుండి బయటకు వెళ్లిపోయినప్పుడు \'పిక్చర్-ఇన్-పిక్చర్\' విండోను క్రియేట్ చేయడానికి ఈ యాప్ను అనుమతించండి (ఉదాహరణకు, వీడియోను చూడటం కొనసాగించడానికి). మీరు ఉపయోగించే ఇతర యాప్ల ఎగువున ఈ విండో డిస్ప్లే అవుతుంది."</string>
<string name="interact_across_profiles_title" msgid="7285906999927669971">"కనెక్టెడ్ వర్క్ & పర్సనల్ యాప్స్"</string>
<string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"కనెక్ట్ అయ్యింది"</string>
@@ -4096,7 +4091,7 @@
<string name="interact_across_profiles_install_personal_app_title" msgid="4790651223324866344">"ఈ యాప్లను కనెక్ట్ చేయడానికి, మీ వ్యక్తిగత ప్రొఫైల్లో <xliff:g id="NAME">%1$s</xliff:g>ను ఇన్స్టాల్ చేయండి"</string>
<string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"యాప్ను పొందడానికి ట్యాప్ చేయండి"</string>
<string name="manage_zen_access_title" msgid="1562322900340107269">"అంతరాయం కలిగించవద్దు యాక్సెస్"</string>
- <string name="zen_access_detail_switch" msgid="4183681772666138993">"\'అంతరాయం కలిగించవద్దు\' ఫీచర్ను అనుమతించు"</string>
+ <string name="zen_access_detail_switch" msgid="4183681772666138993">"\'అంతరాయం కలిగించవద్దు\' ఫీచర్ను అనుమతించండి"</string>
<string name="zen_access_empty_text" msgid="3779921853282293080">"ఇన్స్టాల్ చేసిన యాప్లేవీ అంతరాయం కలిగించవద్దు యాక్సెస్ రిక్వెస్ట్ చేయలేదు"</string>
<string name="loading_notification_apps" msgid="5139471829295287945">"అప్లికేషన్లను లోడ్ చేస్తోంది…"</string>
<string name="app_notifications_off_desc" msgid="6691342160980435901">"మీ అభ్యర్ధన మేరకు Android, ఈ పరికరంలో ఈ యాప్ యొక్క నోటిఫికేషన్లను కనిపించకుండా బ్లాక్ చేస్తోంది"</string>
@@ -4241,7 +4236,7 @@
<string name="zen_mode_events_summary" msgid="3241903481309766428">"రానున్న క్యాలెండర్ ఈవెంట్ల నుంచి"</string>
<string name="zen_mode_events_list" msgid="7191316245742097229">"ఈవెంట్లు"</string>
<string name="zen_mode_events_list_first" msgid="7425369082835214361">"ఈవెంట్లు"</string>
- <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"భర్తీ చేయడానికి యాప్లను అనుమతించు"</string>
+ <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"భర్తీ చేయడానికి యాప్లను అనుమతించండి"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"అంతరాయం కలిగించగల యాప్లు"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"మరిన్ని యాప్లను ఎంచుకోండి"</string>
<string name="zen_mode_bypassing_apps_none" msgid="7944221631721778096">"యాప్లు ఏవీ ఎంచుకోబడలేదు"</string>
@@ -4255,14 +4250,14 @@
<string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"అన్ని నోటిఫికేషన్లు"</string>
<string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"కొన్ని నోటిఫికేషన్లు"</string>
<string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"అంతరాయం కలిగించ గల నోటిఫికేషన్లు"</string>
- <string name="zen_mode_bypassing_app_channels_toggle_all" msgid="1449462656358219116">"అన్ని నోటిఫికేషన్లను అనుమతించు"</string>
+ <string name="zen_mode_bypassing_app_channels_toggle_all" msgid="1449462656358219116">"అన్ని నోటిఫికేషన్లను అనుమతించండి"</string>
<string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{ఏదీ అంతరాయాన్ని కలిగించలేదు}=1{{sound_category_1} అంతరాయాన్ని కలిగించగలదు}=2{{sound_category_1}, {sound_category_2}లు అంతరాయాన్ని కలిగించగలవు}=3{{sound_category_1}, {sound_category_2}, అలాగే {sound_category_3}లు అంతరాయాన్ని కలిగించగలవు}other{{sound_category_1}, {sound_category_2}, మరో # అంతరాయాన్ని కలిగించగలవు}}"</string>
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"ఏదీ అంతరాయాన్ని కలిగించలేదు"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"ఎవ్వరూ అంతరాయాన్ని కలిగించలేరు"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"కొంతమంది వ్యక్తులు అంతరాయాన్ని కలిగించగలరు"</string>
<string name="zen_mode_people_all" msgid="311036110283015205">"వ్యక్తులందరూ అంతరాయం కలిగించగలరు"</string>
- <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"రిపీట్ కాలర్లను అనుమతించు"</string>
- <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"రిపీట్ కాలర్స్ను అనుమతించు"</string>
+ <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"రిపీట్ కాలర్లను అనుమతించండి"</string>
+ <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"రిపీట్ కాలర్స్ను అనుమతించండి"</string>
<string name="zen_mode_all_callers" msgid="8104755389401941875">"ఎవరైనా"</string>
<string name="zen_mode_contacts_callers" msgid="5429267704011896833">"కాంటాక్ట్లు"</string>
<string name="zen_mode_starred_callers" msgid="1002370699564211178">"స్టార్ గుర్తు ఉన్న కాంటాక్ట్లు"</string>
@@ -4291,7 +4286,7 @@
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> వరకు అలారాలు మాత్రమే ఎంపికకు మార్చుతుంది"</string>
<string name="zen_mode_summary_always" msgid="722093064250082317">"ఎల్లప్పుడూ అంతరాయం కలిగించు ఎంపికకు మార్చుతుంది"</string>
<string name="zen_mode_screen_on" msgid="7312758100468915319">"స్క్రీన్ ఆన్లో ఉన్నప్పుడు"</string>
- <string name="zen_mode_screen_on_summary" msgid="510055058460316698">"అంతరాయం కలిగించవద్దు నిశ్శబ్దం చేసిన నోటిఫికేషన్లు స్క్రీన్లో పాప్-అప్ లాగా కనిపించి, స్టేటస్ బార్ చిహ్నాన్ని చూపడానికి అనుమతించు"</string>
+ <string name="zen_mode_screen_on_summary" msgid="510055058460316698">"అంతరాయం కలిగించవద్దు నిశ్శబ్దం చేసిన నోటిఫికేషన్లు స్క్రీన్లో పాప్-అప్ లాగా కనిపించి, స్టేటస్ బార్ చిహ్నాన్ని చూపడానికి అనుమతించండి"</string>
<string name="zen_mode_screen_off" msgid="7069798697669366075">"స్క్రీన్ ఆఫ్లో ఉన్నప్పుడు"</string>
<string name="zen_mode_screen_off_summary" msgid="4698018253505406152">"అంతరాయం కలిగించవద్దు ద్వారా నిశ్శబ్దం చేయబడిన నోటిఫికేషన్లను స్క్రీన్ని ఆన్ అయ్యేలా మరియు కాంతి మిణుకుమిణుకుమనేలా చేయనివ్వండి"</string>
<string name="zen_mode_screen_off_summary_no_led" msgid="1958271859408992636">"అంతరాయం కలిగించవద్దు ద్వారా నిశ్శబ్దం చేయబడిన నోటిఫికేషన్లను స్క్రీన్ని ఆన్ చేయనివ్వండి"</string>
@@ -4327,7 +4322,7 @@
<string name="encryption_interstitial_message_pattern" msgid="726550613252236854">"ఈ పరికరాన్ని ప్రారంభించిన వెంటనే మీ ఆకృతిని అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన పరికరాలలో ఉన్న డేటాను రక్షించడంలో ఇది సహాయపడుతుంది. మీ పరికరాన్ని ప్రారంభించడం కోసం ఆకృతిని అడగాలా?"</string>
<string name="encryption_interstitial_message_password" msgid="6051054565294909975">"ఈ పరికరాన్ని ప్రారంభించిన వెంటనే మీ పాస్వర్డ్ను అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. పరికరాన్ని ప్రారంభించే దాకా, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన పరికరాలలో ఉన్న డేటాను రక్షించడంలో ఇది సహాయపడుతుంది. మీ పరికరాన్ని ప్రారంభించడం కోసం పాస్వర్డ్ను అడగాలా?"</string>
<string name="encryption_interstitial_message_pin_for_fingerprint" msgid="7152770518093102916">"మీ డివైజ్ను అన్లాక్ చేయడానికి మీ వేలిముద్రను ఉపయోగించడంతో పాటు, దీనిని ప్రారంభించిన వెంటనే మీ PINను అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. డివైజ్ను ప్రారంభించే వరకు, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన డివైజ్లలో ఉన్న డేటాను రక్షించడంలో ఇది సహాయపడుతుంది. మీ డివైజ్ను ప్రారంభించడం కోసం PINను అడగాలా?"</string>
- <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="6257856552043740490">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మీ వేలిముద్రను ఉపయోగించడంతో పాటు, దీనిని ప్రారంభించిన వెంటనే మీ ఆకృతిని అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన పరికరాలలో ఉన్న డేటాని రక్షించడంలో ఇది సహాయపడుతుంది. మీ పరికరాన్ని ప్రారంభించడం కోసం ఆకృతిని అడగాలా?"</string>
+ <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="6257856552043740490">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మీ వేలిముద్రను ఉపయోగించడంతో పాటు, దీనిని ప్రారంభించిన వెంటనే మీ ఆకృతిని అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన పరికరాలలో ఉన్న డేటాను రక్షించడంలో ఇది సహాయపడుతుంది. మీ పరికరాన్ని ప్రారంభించడం కోసం ఆకృతిని అడగాలా?"</string>
<string name="encryption_interstitial_message_password_for_fingerprint" msgid="7710804822643612867">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మీ వేలిముద్రను ఉపయోగించడంతో పాటు, దీనిని ప్రారంభించిన వెంటనే మీ పాస్వర్డ్ను అడిగే విధంగా సెట్ చేయడం ద్వారా మీరు దీనికి అదనపు రక్షణను అందించవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, అది అలారాలతో సహా కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు. \n\nపోగొట్టుకున్న లేదా దొంగిలించబడిన పరికరాలలో ఉన్న డేటాను రక్షించడంలో ఇది సహాయపడుతుంది. మీ పరికరాన్ని ప్రారంభించడం కోసం పాస్వర్డ్ను అడగాలా?"</string>
<string name="encryption_interstitial_message_pin_for_face" msgid="8577135499926738241">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మీ ముఖాన్ని ఉపయోగించడంతో పాటు, మీరు ఈ పరికరం ప్రారంభం కావడానికి ముందే మీ PINను అడిగేలా చేసి దాన్ని మరింత సురక్షితం చేసుకోవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, ఇది అలారాలతో సహా, కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు.\n\nదీనివల్ల పోగొట్టుకున్న లేదా దొంగలించబడిన పరికరాల డేటాను రక్షించడంలో సహాయకరంగా ఉంటుంది. మీ పరికరాన్ని ప్రారంభించడానికి PIN కావాలా?>"</string>
<string name="encryption_interstitial_message_pattern_for_face" msgid="5851725964283239644">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మీ ముఖాన్ని ఉపయోగించడంతో పాటు, మీరు ఈ పరికరం ప్రారంభం కావడానికి ముందే మీ ఆకృతిని అడిగేలా చేసి దాన్ని మరింత సురక్షితం చేసుకోవచ్చు. పరికరాన్ని ప్రారంభించే వరకు, ఇది అలారాలతో సహా, కాల్స్, మెసేజ్లు లేదా నోటిఫికేషన్లను స్వీకరించదు.\n\nదీనివల్ల పోగొట్టుకున్న లేదా దొంగలించబడిన పరికరాల డేటాను రక్షించడంలో సహాయకరంగా ఉంటుంది. మీ పరికరాన్ని ప్రారంభించడానికి ఆకృతి కావాలా?"</string>
@@ -4475,7 +4470,7 @@
<string name="system_default_app" msgid="2647834628622214931">"(సిస్టమ్ ఆటోమేటిక్)"</string>
<string name="apps_storage" msgid="643866814746927111">"యాప్ల స్టోరేజ్"</string>
<string name="usage_access" msgid="5487993885373893282">"వినియోగ యాక్సెస్"</string>
- <string name="permit_usage_access" msgid="179630895262172674">"వినియోగ యాక్సెస్ను అనుమతించు"</string>
+ <string name="permit_usage_access" msgid="179630895262172674">"వినియోగ యాక్సెస్ను అనుమతించండి"</string>
<string name="app_usage_preference" msgid="7062447555623339120">"యాప్ వినియోగ ప్రాధాన్యతలు"</string>
<string name="time_spent_in_app_pref_title" msgid="25327097913383330">"స్క్రీన్ సమయం"</string>
<string name="usage_access_description" msgid="8547716253713890707">"\'వినియోగ యాక్సెస్\' ద్వారా యాప్, మీరు ఏయే ఇతర యాప్లను ఉపయోగిస్తున్నారో, వాటిని ఎంత తరచుగా ఉపయోగిస్తున్నారో, అలాగే మీ క్యారియర్, భాష సెట్టింగ్లు, ఇతర వివరాలను ట్రాక్ చేయగలదు."</string>
@@ -4604,7 +4599,7 @@
<string name="system_alert_window_settings" msgid="6458633954424862521">"ఇతర యాప్ల ఎగువున కనిపించు"</string>
<string name="system_alert_window_apps_title" msgid="1537949185175079866">"యాప్లు"</string>
<string name="system_alert_window_access_title" msgid="3074573819155116817">"ఇతర యాప్ల ఎగువన ప్రదర్శన"</string>
- <string name="permit_draw_overlay" msgid="4468994037192804075">"ఇతర యాప్ల ఎగువున కనిపించడానికి అనుమతించు"</string>
+ <string name="permit_draw_overlay" msgid="4468994037192804075">"ఇతర యాప్ల ఎగువున కనిపించడానికి అనుమతించండి"</string>
<string name="allow_overlay_description" msgid="1607235723669496298">"మీరు ఉపయోగించే ఇతర యాప్లలో పైభాగాన కనిపించడం కోసం ఈ యాప్ను అనుమతించండి. ఈ యాప్ మీరు ఎక్కడ ట్యాప్ చేసేది చూడగలుగుతుంది లేదా స్క్రీన్పై కనిపించే వాటిని మార్చగలుగుతుంది."</string>
<string name="manage_external_storage_title" msgid="8024521099838816100">"అన్ని ఫైళ్లకు యాక్సెస్"</string>
<string name="permit_manage_external_storage" msgid="6928847280689401761">"అన్ని ఫైళ్లను మేనేజ్ చేయడానికి అనుమతించండి"</string>
@@ -4685,7 +4680,7 @@
<string name="disabled_by_policy_content_biometric_parental_consent" msgid="7124116806784305206">"దీనిని సెటప్ చేయడం ప్రారంభించడానికి ఫోన్ను మీ తల్లి/తండ్రికి అప్పగించండి"</string>
<string name="default_admin_support_msg" msgid="8338570262037182531">"మీకు ఏవైనా సందేహాలు ఉంటే, మీ IT అడ్మిన్ను సంప్రదించండి"</string>
<string name="admin_support_more_info" msgid="8407433155725898290">"మరిన్ని వివరాలు"</string>
- <string name="admin_profile_owner_message" msgid="8860709969532649195">"సెట్టింగ్లు, అనుమతులు, కార్పొరేట్ యాక్సెస్, నెట్వర్క్ యాక్టివిటీ మరియు డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు మీ కార్యాలయ ప్రొఫైల్కి అనుబంధితంగా ఉన్న యాప్లు మరియు డేటాని మీ అడ్మిన్ పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు ."</string>
+ <string name="admin_profile_owner_message" msgid="8860709969532649195">"సెట్టింగ్లు, అనుమతులు, కార్పొరేట్ యాక్సెస్, నెట్వర్క్ యాక్టివిటీ మరియు డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు మీ కార్యాలయ ప్రొఫైల్కి అనుబంధితంగా ఉన్న యాప్లు మరియు డేటాను మీ అడ్మిన్ పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు ."</string>
<string name="admin_profile_owner_user_message" msgid="4929926887231544950">"సెట్టింగ్లు, అనుమతులు, కార్పొరేట్ యాక్సెస్, నెట్వర్క్ యాక్టివిటీ మరియు డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు ఈ యూజర్కు అనుబంధితంగా ఉన్న యాప్లు, డేటాను మీ అడ్మిన్ పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు."</string>
<string name="admin_device_owner_message" msgid="5503131744126520590">"సెట్టింగ్లు, అనుమతులు, కార్పొరేట్ యాక్సెస్, నెట్వర్క్ యాక్టివిటీ మరియు డివైజ్ యొక్క లొకేషన్ సమాచారంతో పాటు ఈ డివైజ్కు అనుబంధితంగా ఉన్న యాప్లు మరియు డేటాను మీ అడ్మిన్ పర్యవేక్షించగలరు, మేనేజ్ చేయగలరు."</string>
<string name="admin_financed_message" msgid="1156197630834947884">"మీ పరికర అడ్మినిస్ట్రేటర్ ఈ పరికరంతో అనుబంధించబడిన డేటాను యాక్సెస్ చేయవచ్చు, యాప్లను మేనేజ్ చేయవచ్చు అలాగే ఈ పరికరాల సెట్టింగ్లను మార్చవచ్చు."</string>
@@ -4906,7 +4901,7 @@
</plurals>
<string name="automatic_storage_manager_settings" msgid="519158151463974656">"నిల్వను నిర్వహించండి"</string>
<string name="automatic_storage_manager_text" msgid="6900593059927987273">"స్టోరేజ్ స్పేస్ను ఖాళీ చేయడంలో సహాయపడటానికి, స్టోరేజ్ మేనేజర్ మీ పరికరం నుండి బ్యాకప్ చేసిన ఫోటోలు, వీడియోలను తీసివేస్తుంది."</string>
- <string name="automatic_storage_manager_days_title" msgid="5077286114860539367">"ఫోటోలు & వీడియోలను తీసివేయి"</string>
+ <string name="automatic_storage_manager_days_title" msgid="5077286114860539367">"ఫోటోలు & వీడియోలను తీసివేయండి"</string>
<string name="automatic_storage_manager_preference_title" msgid="3483357910142595444">"నిల్వ నిర్వాహికి"</string>
<string name="automatic_storage_manager_primary_switch_title" msgid="9131959126462101994">"స్టోరేజ్ మేనేజర్ను ఉపయోగించండి"</string>
<string name="deletion_helper_automatic_title" msgid="597196990024769472">"ఆటోమేటిక్"</string>
@@ -5012,8 +5007,8 @@
<string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g> యొక్క ఖాతాలు"</string>
<string name="configure_section_header" msgid="3126887329521705210">"కాన్ఫిగర్ చేయండి"</string>
<string name="auto_sync_account_title" msgid="1070908045600374254">"యాప్ డేటాను ఆటోమేటిక్గా సింక్ చేయండి"</string>
- <string name="auto_sync_personal_account_title" msgid="3544275021920818595">"వ్యక్తిగత డేటాని ఆటోమేటిక్గా సమకాలీకరించు"</string>
- <string name="auto_sync_work_account_title" msgid="6060310415978781885">"కార్యాలయ డేటాని ఆటోమేటిక్గా సమకాలీకరించు"</string>
+ <string name="auto_sync_personal_account_title" msgid="3544275021920818595">"వ్యక్తిగత డేటాను ఆటోమేటిక్గా సమకాలీకరించు"</string>
+ <string name="auto_sync_work_account_title" msgid="6060310415978781885">"కార్యాలయ డేటాను ఆటోమేటిక్గా సమకాలీకరించు"</string>
<string name="auto_sync_account_summary" msgid="7580352130028957346">"డేటాను ఆటోమేటిక్గా రిఫ్రెష్ చేసేలా యాప్లు అనుమతించబడతాయి"</string>
<string name="account_sync_title" msgid="7036067017433297574">"ఖాతా సింక్"</string>
<string name="account_sync_summary_some_on" msgid="911460286297968724">"<xliff:g id="ID_2">%2$d</xliff:g>లో <xliff:g id="ID_1">%1$d</xliff:g> అంశాలకు సింక్ ఆన్లో ఉంది"</string>
@@ -5061,9 +5056,9 @@
<item quantity="one">కనీసం <xliff:g id="COUNT_0">%d</xliff:g> CA ప్రమాణపత్రం</item>
</plurals>
<string name="enterprise_privacy_lock_device" msgid="464054894363899866">"నిర్వాహకులు పరికరాన్ని లాక్ చేయగలరు మరియు పాస్వర్డ్ని రీసెట్ చేయగలరు"</string>
- <string name="enterprise_privacy_wipe_device" msgid="869589182352244591">"పరికరంలో ఉన్న మొత్తం డేటాని నిర్వాహకులు తొలగించగలరు"</string>
- <string name="enterprise_privacy_failed_password_wipe_device" msgid="7045164901334821226">"మొత్తం పరికర డేటాని తొలగించడానికి ముందు పాస్వర్డ్ విఫలయత్నాలు"</string>
- <string name="enterprise_privacy_failed_password_wipe_work" msgid="2537582942554484170">"కార్యాలయ ప్రొఫైల్ డేటాని తొలగించడానికి ముందు పాస్వర్డ్ విఫలయత్నాలు"</string>
+ <string name="enterprise_privacy_wipe_device" msgid="869589182352244591">"పరికరంలో ఉన్న మొత్తం డేటాను నిర్వాహకులు తొలగించగలరు"</string>
+ <string name="enterprise_privacy_failed_password_wipe_device" msgid="7045164901334821226">"మొత్తం పరికర డేటాను తొలగించడానికి ముందు పాస్వర్డ్ విఫలయత్నాలు"</string>
+ <string name="enterprise_privacy_failed_password_wipe_work" msgid="2537582942554484170">"కార్యాలయ ప్రొఫైల్ డేటాను తొలగించడానికి ముందు పాస్వర్డ్ విఫలయత్నాలు"</string>
<plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="8811973918944217791">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ప్రయత్నాలు</item>
<item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ప్రయత్నం</item>
@@ -5134,7 +5129,7 @@
<string name="storage_percent_full" msgid="7211888326013020857">"ఉపయోగించబడింది"</string>
<string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> వినియోగించబడింది"</string>
<string name="storage_total_summary" msgid="7163360249534964272">"మొత్తం <xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
- <string name="clear_instant_app_data" msgid="5951258323364386357">"యాప్ను క్లియర్ చేయి"</string>
+ <string name="clear_instant_app_data" msgid="5951258323364386357">"యాప్ను క్లియర్ చేయండి"</string>
<string name="clear_instant_app_confirmation" msgid="3964731334459209482">"మీరు ఈ తక్షణ యాప్ను తీసివేయాలనుకుంటున్నారా?"</string>
<string name="launch_instant_app" msgid="8503927414339606561">"తెరువు"</string>
<string name="game_storage_settings" msgid="2521393115726178837">"గేమ్లు"</string>
@@ -5467,7 +5462,7 @@
<string name="privacy_dashboard_title" msgid="6845403825611829558">"గోప్యత"</string>
<string name="privacy_dashboard_summary" msgid="5775090172422786808">"అనుమతులు, ఖాతా యాక్టివిటీ, వ్యక్తిగత డేటా"</string>
<string name="privacy_controls_title" msgid="1383047169455206604">"కంట్రోల్లు"</string>
- <string name="contextual_card_dismiss_remove" msgid="8636557343011606722">"తీసివేయి"</string>
+ <string name="contextual_card_dismiss_remove" msgid="8636557343011606722">"తీసివేయండి"</string>
<string name="contextual_card_dismiss_keep" msgid="440516181066490747">"Keep"</string>
<string name="contextual_card_dismiss_confirm_message" msgid="6434344989238055188">"ఈ సూచనని తీసివేయలా?"</string>
<string name="contextual_card_removed_message" msgid="5755438207494260867">"సూచన తీసివేయబడింది"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 3dd8ae9..d43aa4c 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"ตั้ง PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"ตั้ง PIN โปรไฟล์งาน"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"ตั้งรูปแบบ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"ตั้งรูปแบบโปรไฟล์งาน"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"ตั้งรหัสผ่านเพื่อใช้ลายนิ้วมือ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"ตั้งรูปแบบเพื่อใช้ลายนิ้วมือ"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"ไม่มีการใช้งานตั้งแต่ชาร์จเต็มครั้งล่าสุด"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"ไม่มีการใช้งานในช่วง 24 ชม. ที่ผ่านมา"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"ผู้ใช้รายอื่นๆ"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ค่าประมาณแบตเตอรี่ที่เหลืออิงตามการใช้งานอุปกรณ์ของคุณ"</string>
<string name="estimated_time_left" msgid="948717045180211777">"เวลาที่เหลือโดยประมาณ"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"จนกว่าจะชาร์จเต็ม"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"การแจ้งเตือนทั้งหมดของ \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"การแจ้งเตือนทั้งหมดของ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"การแจ้งเตือนแบบปรับอัตโนมัติ"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">การแจ้งเตือนประมาณ <xliff:g id="NUMBER_1">%,d</xliff:g> ครั้งต่อวัน</item>
- <item quantity="one">การแจ้งเตือนประมาณ <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งต่อวัน</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">การแจ้งเตือนประมาณ <xliff:g id="NUMBER_1">%,d</xliff:g> ครั้งต่อสัปดาห์</item>
- <item quantity="one">การแจ้งเตือนประมาณ <xliff:g id="NUMBER_0">%d</xliff:g> ครั้งต่อสัปดาห์</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"ไม่เลย"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"การแจ้งเตือนของอุปกรณ์และแอป"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"ควบคุมว่าจะให้แอปและอุปกรณ์ใดบ้างอ่านการแจ้งเตือนได้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index cbe6cea..a684718 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Magtakda ng PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Magtakda ng PIN sa trabaho"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Magtakda ng pattern"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Magtakda ng pattern sa trabaho"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Para magamit ang fingerprint, i-set ang pw"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Para magamit ang fingerprint, i-set ang pattern"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Walang paggamit mula noong huling na-full charge"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Walang paggamit sa nakalipas na 24 na oras"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Iba pang user"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Nakabatay ang pagtatantya ng natitirang baterya sa paggamit ng iyong device"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Tinatayang natitirang oras"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Hanggang mapuno ang baterya"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Lahat ng notification ng \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Lahat ng notification ng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Mga Adaptive na Notification"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notification bawat araw</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> na notification bawat araw</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> notification bawat linggo</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> na notification bawat linggo</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Huwag Kailanman"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Mga notification sa device at app"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kontrolin kung aling mga app at device ang makakapagbasa ng mga notification"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2cad593..5b91e88 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN ayarlayın"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"İş PIN\'i ayarlayın"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Desen oluşturun"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"İş deseni oluşturun"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Parmak izi için şifre ayarlayın"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Parmak izi için desen ayarlayın"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Son kez tamamen şarj olduktan sonra kullanılmadı"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Son 24 saatte kullanılmadı"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Diğer kullanıcılar"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Kalan pil gücü tahmini, cihazınızın kullanımına göre yapılır"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Kalan tahmini süre"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"sonra tam olarak şarj olacak"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Tüm \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" bildirimleri"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Tüm <xliff:g id="APP_NAME">%1$s</xliff:g> bildirimleri"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Uyarlanabilir Bildirimler"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">Günde yaklaşık <xliff:g id="NUMBER_1">%,d</xliff:g> bildirim</item>
- <item quantity="one">Günde yaklaşık <xliff:g id="NUMBER_0">%d</xliff:g> bildirim</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">Haftada yaklaşık <xliff:g id="NUMBER_1">%,d</xliff:g> bildirim</item>
- <item quantity="one">Haftada yaklaşık <xliff:g id="NUMBER_0">%d</xliff:g> bildirim</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Hiçbir zaman"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Cihaz ve uygulama bildirimleri"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Bildirimlerin hangi uygulama ve cihazlar tarafından okunabileceğini kontrol edin"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 2bace95..c4bdd41 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -418,7 +418,7 @@
<string name="security_settings_face_settings_require_confirmation" msgid="6603039421004198334">"Завжди просити підтвердження"</string>
<string name="security_settings_face_settings_require_confirmation_details" msgid="3498729789625461914">"Просити підтвердження під час використання фейсконтролю в додатках"</string>
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Видалити модель обличчя"</string>
- <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Налаштування фейсконтролю"</string>
+ <string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Налаштувати фейсконтроль"</string>
<string name="security_settings_face_settings_footer" msgid="625696606490947189">"За допомогою фейсконтролю ви можете розблоковувати телефон або проходити автентифікацію в додатках, наприклад щоб увійти в обліковий запис або схвалити покупку.\n\nЗверніть увагу:\nза раз можна налаштувати фейсконтроль лише для одного обличчя. Щоб додати інше обличчя, видаліть поточне.\n\nПоглянувши на телефон, ви можете випадково розблокувати його в недоречний момент.\n\nБудь-хто може розблокувати телефон, якщо піднесе його до вашого обличчя.\n\nТелефон може розблокувати людина, схожа на вас, зокрема ваш близнюк."</string>
<string name="security_settings_face_settings_footer_attention_not_supported" msgid="2071065435536235622">"За допомогою фейсконтролю ви можете розблоковувати телефон або проходити автентифікацію в додатках, наприклад щоб увійти в обліковий запис або схвалити покупку.\n\nЗверніть увагу:\nза раз можна налаштувати фейсконтроль лише для одного обличчя. Щоб додати інше обличчя, видаліть поточне.\n\nПоглянувши на телефон, ви можете випадково розблокувати його в недоречний момент.\n\nБудь-хто може розблокувати телефон, якщо піднесе його до вашого обличчя, навіть коли у вас заплющені очі.\n\nТелефон може розблокувати людина, схожа на вас, зокрема ваш близнюк."</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Видалити модель обличчя?"</string>
@@ -432,10 +432,10 @@
<string name="fingerprint_add_title" msgid="1837610443487902050">"Додати відбиток пальця"</string>
<string name="fingerprint_enable_keyguard_toggle_title" msgid="5451094461919440992">"блокування екрана"</string>
<plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="6897454766137108776">
- <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> відбиток пальця додано</item>
- <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> відбитки пальців додано</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> відбитків пальців додано</item>
- <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> відбитка пальця додано</item>
+ <item quantity="one">Додано <xliff:g id="COUNT">%1$d</xliff:g> відбиток пальця</item>
+ <item quantity="few">Додано <xliff:g id="COUNT">%1$d</xliff:g> відбитки пальців</item>
+ <item quantity="many">Додано <xliff:g id="COUNT">%1$d</xliff:g> відбитків пальців</item>
+ <item quantity="other">Додано <xliff:g id="COUNT">%1$d</xliff:g> відбитка пальця</item>
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1044059475710838504"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="7931650601996313070">"Налаштуйте \"Відбиток пальця\""</string>
@@ -1987,6 +1987,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Створіть PIN-код"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Створіть PIN-код для робочого профілю"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Створіть ключ"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Створіть ключ для робочого профілю"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Щоб користуватися відбитком пальця, налаштуйте пароль"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Щоб користуватися відбитком пальця, налаштуйте ключ"</string>
@@ -3000,8 +3002,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Відсутнє споживання з часу останнього повного заряджання"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Відсутнє споживання за останні 24 години"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Інші користувачі"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Залишок заряду акумулятора визначається на основі використання пристрою"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Залишилося приблизно"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"До повного заряду"</string>
@@ -4094,18 +4095,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"<xliff:g id="APP_NAME">%1$s</xliff:g>: усі сповіщення"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Усі сповіщення з додатка <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Адаптивні сповіщення"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на день</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на день</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщень на день</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на день</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на тиждень</item>
- <item quantity="few">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на тиждень</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщень на тиждень</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> сповіщення на тиждень</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Ніколи"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Сповіщення додатків і пристроїв"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Укажіть, які додатки та пристрої можуть переглядати сповіщення"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index b07da8b..b3bce72 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN سیٹ کریں"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"دفتری پروفائل کا PIN سیٹ کریں"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"پیٹرن سیٹ کریں"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"دفتری پروفائل کا پیٹرن سیٹ کریں"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"فنگر پرنٹ کے استعمال کے لیے پاس ورڈ سیٹ کریں"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"فنگر پرنٹ کے استعمال کے لیے پیٹرن سیٹ کریں"</string>
@@ -2924,8 +2926,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"پچھلے مکمل چارج کے بعد سے بیٹری کا کوئی استعمال نہیں"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"گزشتہ 24 گھنٹے میں بیٹری کا کوئی استعمال نہیں"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"دیگر صارفین"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"بچی ہوئی بیٹری کا اندازہ آپ کے آلے کے استعمال پر مبنی ہے"</string>
<string name="estimated_time_left" msgid="948717045180211777">"باقی تخمینی وقت"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"پوری طرح چارج ہونے تک"</string>
@@ -4006,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"سبھی \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" کی اطلاعات"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"<xliff:g id="APP_NAME">%1$s</xliff:g> کی سبھی اطلاعات"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"تغیر پذیر اطلاعات"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> اطلاعات فی دن</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> اطلاع فی دن</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> اطلاعات فی ہفتہ</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> اطلاع فی ہفتہ</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"کبھی نہیں"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"آلے اور ایپ کی اطلاعات"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"کنٹرول کریں کہ کون سی ایپس اور آلات اطلاعات کو پڑھ سکتے ہیں"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 8dd4700..d1e9f52 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1945,6 +1945,7 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"PIN kodni sozlang"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Ish profili uchun PIN kod tanlang"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Grafik kalitni sozlang"</string>
+ <string name="lockpassword_choose_your_pattern_description" msgid="6808109256008481046">"Qoʻshimcha xavfsizlik oshirishni istasangiz, qurilmani ochish uchun grafik kalit oʻrnating"</string>
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Ishchi profil grafik kalitini sozlang"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Barmoq izidan foydalanish uchun parol o‘rnating"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Avval grafik kalit yarating"</string>
@@ -2926,8 +2927,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Toʻliq quvvat olgandan keyin ishlatilmagan"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"24 soat ichida orqa fon rejimi ishlatilmagan"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Boshqa foydalanuvchilar"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Batareyaning qolgan vaqti qurilmadan qanday foydalanishingiz asosida taxminiy hisoblangan"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Taxminiy qolgan vaqt"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Quvvati to‘lishigacha qolgan vaqt"</string>
@@ -4008,13 +4008,13 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Barcha <xliff:g id="APP_NAME">%1$s</xliff:g> bildirishnomalari"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Barcha <xliff:g id="APP_NAME">%1$s</xliff:g> bildirishnomalari"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Moslashuvchan bildirishnomalar"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ta bildirishnoma (kuniga)</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ta bildirishnoma (kuniga)</item>
+ <plurals name="notifications_sent_daily" formatted="false" msgid="1319135950258375284">
+ <item quantity="other">Har kuni taxminan <xliff:g id="NUMBER_1">%,d</xliff:g> ta bildirishnoma</item>
+ <item quantity="one">Har kuni taxminan <xliff:g id="NUMBER_0">%d</xliff:g> ta bildirishnoma</item>
</plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> ta bildirishnoma (haftasiga)</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> ta bildirishnoma (haftasiga)</item>
+ <plurals name="notifications_sent_weekly" formatted="false" msgid="7604454969366376305">
+ <item quantity="other">Har hafta taxminan <xliff:g id="NUMBER_1">%,d</xliff:g> ta bildirishnoma</item>
+ <item quantity="one">Har hafta taxminan <xliff:g id="NUMBER_0">%d</xliff:g> ta bildirishnoma</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Hech qachon"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Qurilma va ilova bildirishnomalari"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index ed86bc0..cc3395f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Đặt mã PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Đặt mã PIN cho hồ sơ công việc"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Đặt hình mở khóa"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Đặt hình mở khóa cho hồ sơ công việc"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Đặt mật khẩu để dùng vân tay"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Đặt hình mở khóa để dùng vân tay"</string>
@@ -4007,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Tất cả các thông báo của ứng dụng \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Tất cả thông báo của <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Thông báo thích ứng"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> thông báo mỗi ngày</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> thông báo mỗi ngày</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> thông báo mỗi tuần</item>
- <item quantity="one">~<xliff:g id="NUMBER_0">%d</xliff:g> thông báo mỗi tuần</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Không bao giờ"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Thông báo của thiết bị và ứng dụng"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Kiểm soát những ứng dụng và thiết bị nào có thể đọc thông báo"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 249a287..778bc96 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1943,6 +1943,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"设置 PIN 码"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"设置工作资料 PIN 码"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"设置图案"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"设置工作资料图案"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"要使用指纹,请设置密码"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"要使用指纹,请设置解锁图案"</string>
@@ -4005,14 +4007,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"所有“<xliff:g id="APP_NAME">%1$s</xliff:g>”通知"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"所有<xliff:g id="APP_NAME">%1$s</xliff:g>通知"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"自适应通知功能"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">每天大约 <xliff:g id="NUMBER_1">%,d</xliff:g> 条通知</item>
- <item quantity="one">每天大约 <xliff:g id="NUMBER_0">%d</xliff:g> 条通知</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">每周大约 <xliff:g id="NUMBER_1">%,d</xliff:g> 条通知</item>
- <item quantity="one">每周大约 <xliff:g id="NUMBER_0">%d</xliff:g> 条通知</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"永不"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"设备和应用通知"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"控制哪些应用和设备能够读取通知"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index e0780e8..c87663d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1946,6 +1946,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"設定 PIN"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"設定工作設定檔 PIN"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"設定解鎖圖案"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"設定工作設定檔解鎖圖案"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"如要使用指紋,請設定密碼"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"如要使用指紋,請設定上鎖圖案"</string>
@@ -2927,8 +2929,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"上次充滿電後未使用電池"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"過去 24 小時未使用電池"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"其他使用者"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"根據裝置的使用情況估計剩餘電量"</string>
<string name="estimated_time_left" msgid="948717045180211777">"估計剩餘時間"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"剩餘充電時間"</string>
@@ -4009,14 +4010,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"所有「<xliff:g id="APP_NAME">%1$s</xliff:g>」通知"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"所有「<xliff:g id="APP_NAME">%1$s</xliff:g>」通知"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"自動調節通知"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">~每天 <xliff:g id="NUMBER_1">%,d</xliff:g> 個通知</item>
- <item quantity="one">~每天 <xliff:g id="NUMBER_0">%d</xliff:g> 個通知</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">~每星期 <xliff:g id="NUMBER_1">%,d</xliff:g> 個通知</item>
- <item quantity="one">~每星期 <xliff:g id="NUMBER_0">%d</xliff:g> 個通知</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"永不"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"裝置和應用程式通知"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"控制哪些應用程式和裝置可以讀取通知"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 120cb97..3109b1f 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1945,6 +1945,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"設定 PIN 碼"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"設定工作資料夾 PIN 碼"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"設定解鎖圖案"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"設定工作資料夾解鎖圖案"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"如要使用指紋,請設定密碼"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"如要使用指紋,請設定解鎖圖案"</string>
@@ -1974,7 +1976,7 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘記密碼了嗎?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"忘記解鎖圖案了嗎?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘記 PIN 碼了嗎?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"請用裝置解鎖圖案解鎖以繼續"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"請用裝置解鎖圖案解鎖"</string>
<string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"輸入裝置 PIN 碼即可繼續"</string>
<string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"請輸入你的裝置密碼以繼續作業"</string>
<string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"請用工作資料夾的解鎖圖案解鎖以繼續"</string>
@@ -2926,8 +2928,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"從上次充飽電後未曾使用"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"過去 24 小時未曾使用"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"其他使用者"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"系統會依據裝置的使用情形估算剩餘電量"</string>
<string name="estimated_time_left" msgid="948717045180211777">"預估剩餘時間"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"充飽所需時間"</string>
@@ -4008,14 +4009,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的所有通知"</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」的所有通知"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"自動調整通知"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="other">每天大約 <xliff:g id="NUMBER_1">%,d</xliff:g> 則通知</item>
- <item quantity="one">每天大約 <xliff:g id="NUMBER_0">%d</xliff:g> 則通知</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="other">每週大約 <xliff:g id="NUMBER_1">%,d</xliff:g> 則通知</item>
- <item quantity="one">每週大約 <xliff:g id="NUMBER_0">%d</xliff:g> 則通知</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"永遠不要"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"裝置和應用程式通知"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"控管可以讀取通知的應用程式和裝置"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 4772c5f..2306a5e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1944,6 +1944,8 @@
<string name="lockpassword_choose_your_pin_header" msgid="7754265746504679473">"Setha Iphinikhodi"</string>
<string name="lockpassword_choose_your_profile_pin_header" msgid="4581749963670819048">"Setha Iphinikhodi yomsebenzi"</string>
<string name="lockpassword_choose_your_pattern_header" msgid="5674909390779586252">"Setha iphethini"</string>
+ <!-- no translation found for lockpassword_choose_your_pattern_description (6808109256008481046) -->
+ <skip />
<string name="lockpassword_choose_your_profile_pattern_header" msgid="3101811498330756641">"Setha iphethini yomsebenzi"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="3167261267229254090">"Ukuze usebenzise izigxivizo zeminwe, setha iphasiwedi"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="4707788269512303400">"Ukuze usebenzise izigxivizo zeminwe, setha iphethini"</string>
@@ -2925,8 +2927,7 @@
<string name="battery_not_usage" msgid="1472275761547230196">"Akusetshenziswanga kusuka ekushajweni kokugcina okugcwele"</string>
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Akusetshenziswanga emahoreni angama-24 adlule"</string>
<string name="battery_usage_without_time" msgid="1346894834339420538"></string>
- <!-- no translation found for battery_usage_other_users (9002643295562500693) -->
- <skip />
+ <string name="battery_usage_other_users" msgid="9002643295562500693">"Abanye abasebenzisi"</string>
<string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ukulinganiselwa kwebhethri okusele kususelwa ekusetshenzisweni kwedivayisi yakho"</string>
<string name="estimated_time_left" msgid="948717045180211777">"Isikhathi esilinganiselwe esisele"</string>
<string name="estimated_charging_time_left" msgid="2287135413363961246">"Kuze kushaje ngokuphelele"</string>
@@ -4007,14 +4008,8 @@
<string name="notification_switch_label" msgid="8029371325967501557">"Zonke izaziso ze-\"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
<string name="notification_app_switch_label" msgid="4422902423925084193">"Zonke izaziso ze-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="default_notification_assistant" msgid="243718059890346442">"Izaziso eziguqukayo"</string>
- <plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> izaziso ngosuku</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> izaziso ngosuku</item>
- </plurals>
- <plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
- <item quantity="one">~<xliff:g id="NUMBER_1">%,d</xliff:g> izaziso zanjalo ngeviki</item>
- <item quantity="other">~<xliff:g id="NUMBER_1">%,d</xliff:g> izaziso zanjalo ngeviki</item>
- </plurals>
+ <!-- no translation found for notifications_sent_daily (1319135950258375284) -->
+ <!-- no translation found for notifications_sent_weekly (7604454969366376305) -->
<string name="notifications_sent_never" msgid="9081278709126812062">"Soze"</string>
<string name="manage_notification_access_title" msgid="6481256069087219982">"Idivayisi nezaziso ze-app"</string>
<string name="manage_notification_access_summary" msgid="2907135226478903997">"Lawula ukuthi yimaphi ama-app namadivayisi angafunda izaziso"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9c0250a..eb5bdde 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -115,27 +115,10 @@
<string name="bluetooth_not_visible_to_other_devices">Not visible to other Bluetooth devices</string>
<!-- Bluetooth settings screen, summary text when not discoverable with paired devices [CHAR LIMIT=50] -->
<string name="bluetooth_only_visible_to_paired_devices">Only visible to paired devices</string>
- <!-- Bluetooth settings screen, option name to pick discoverability timeout duration (a list dialog comes up) -->
- <string name="bluetooth_visibility_timeout">Visibility timeout</string>
- <!-- Bluetooth settings screen, check box label whether or not to allow
- bluetooth voice dialing when lock screen is up-->
- <string name="bluetooth_lock_voice_dialing">Lock voice dialing</string>
- <!-- Bluetooth settings screen, lock voice dialing checkbox summary text -->
- <string name="bluetooth_lock_voice_dialing_summary">
- Prevent use of the bluetooth dialer when the screen is locked
- </string>
<!-- Bluetooth settings screen, heading above the list of nearby bluetooth devices. [CHAR LIMIT=NONE] -->
<string name="bluetooth_devices">Bluetooth devices</string>
<!-- Bluetooth settings screen, title for the current bluetooth name setting -->
<string name="bluetooth_device_name">Device name</string>
- <!-- Bluetooth settings screen, image description for device details button. This opens the screen to rename, unpair, etc. a single device. -->
- <string name="bluetooth_device_details">Device settings</string>
- <!-- Bluetooth settings screen, image description for profile of a device details button. -->
- <string name="bluetooth_profile_details">Profile settings</string>
- <!-- Bluetooth settings screen, summary text when there isn't a name set (for the name setting) -->
- <string name="bluetooth_name_not_set">No name set, using account name</string>
- <!-- Bluetooth settings screen, menu item to scan for nearby bluetooth devices -->
- <string name="bluetooth_scan_for_devices">Scan for devices</string>
<!-- Bluetooth settings screen, menu item to change this device's Bluetooth name. [CHAR LIMIT=30] -->
<string name="bluetooth_rename_device">Rename this device</string>
<!-- Bluetooth settings screen, confirmation button for rename device dialog. [CHAR LIMIT=20] -->
@@ -148,10 +131,6 @@
<string name="bluetooth_disconnect_all_profiles" product="tablet">Your tablet will disconnect from "<xliff:g id="device_name">%1$s</xliff:g>."</string>
<!-- Bluetooth settings. Message for disconnecting from all profiles of a bluetooth device. [CHAR LIMIT=NONE] -->
<string name="bluetooth_disconnect_all_profiles" product="device">Your device will disconnect from "<xliff:g id="device_name">%1$s</xliff:g>."</string>
- <!-- dialog ok button for disconnect dialog [CHAR LIMIT=20] -->
- <string name="bluetooth_disconnect_dialog_ok">Disconnect</string>
- <!-- Bluetooth Settings. text displayed when user has restriction DISALLOW_CONFIG_BLUETOOTH [CHAR LIMIT=NONE]-->
- <string name="bluetooth_empty_list_user_restricted">You don\u2019t have permission to change Bluetooth settings.</string>
<!-- Title for bluetooth pairing item [CHAR LIMIT=60] -->
<string name="bluetooth_pairing_pref_title">Pair new device</string>
<!-- Keywords for bluetooth pairing item [CHAR LIMIT=30] -->
@@ -170,8 +149,6 @@
<!-- Title for related tools section. This section will list related tools below. [CHAR LIMIT=15] -->
<string name="bluetooth_screen_related">Related</string>
- <!-- Bluetooth Visibility message. This message informs the user that their device is now visible to other bluetooth devices. [CHAR LIMIT=NONE] -->
- <string name="bluetooth_is_visible_message"><xliff:g id="device_name">%1$s</xliff:g> is visible to nearby devices while Bluetooth settings is open.</string>
<!-- Bluetooth mac address message. This message shows the bluetooth mac address for this device. [CHAR LIMIT=120] -->
<string name="bluetooth_footer_mac_message" product="default">Phone\'s Bluetooth address: <xliff:g id="bluetooth_mac_address">%1$s</xliff:g></string>
<!-- Bluetooth mac address message. This message shows the bluetooth mac address for this device. [CHAR LIMIT=120] -->
@@ -179,11 +156,6 @@
<!-- Bluetooth mac address message. This message shows the bluetooth mac address for this device. [CHAR LIMIT=120] -->
<string name="bluetooth_footer_mac_message" product="device">Device\'s Bluetooth address: <xliff:g id="bluetooth_mac_address">%1$s</xliff:g></string>
- <!-- Bluetooth Visibility disconnect question. Asks the user if they wish to disconnect a paired bluetooth device. [CHAR LIMIT=50] -->
- <string name="bluetooth_is_disconnect_question">Disconnect <xliff:g id="device_name">%1$s</xliff:g>?</string>
- <!-- Bluetooth broadcasting settings, option to enable/disable broadcasting -->
- <string name="bluetooth_broadcasting">Broadcasting</string>
-
<!--Bluetooth settings screen, summary text for Bluetooth device with no name -->
<string name="bluetooth_device">Unnamed Bluetooth device</string>
<!--Bluetooth settings screen, text that appears in heading bar when scanning for devices -->
@@ -196,8 +168,6 @@
<string name="bluetooth_notif_title">Pairing request</string>
<!-- Notification message when a Bluetooth device wants to pair with us -->
<string name="bluetooth_notif_message">Tap to pair with <xliff:g id="device_name">%1$s</xliff:g>.</string>
- <!-- Item in bluetooth settings screen, used to show the list of received files [CHAR LIMIT=30] -->
- <string name="bluetooth_show_received_files">Received files</string>
<!-- Title for contextual Bluetooth devices card when Bluetooth is off [CHAR LIMIT=NONE]-->
<string name="bluetooth_devices_card_off_title">Bluetooth is off</string>
@@ -266,37 +236,12 @@
<!-- Activity label of BluetoothPermissionActivity [CHAR LIMIT=none]-->
<string name="bluetooth_connection_permission_request">"Bluetooth connection request"</string>
- <!-- Notification message when a remote Bluetooth device wants to connect to a Bluetooth profile [CHAR LIMIT=none]-->
- <string name="bluetooth_connection_notif_message">"Tap to connect to \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022."</string>
-
- <!-- Bluetooth connection permission Alert Activity text [CHAR LIMIT=none]-->
- <string name="bluetooth_connection_dialog_text">"Do you want to connect to \u0022<xliff:g id="device_name">%1$s</xliff:g>\u0022?"</string>
-
<!-- Activity label of BluetoothPbPermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] -->
<string name="bluetooth_phonebook_request">"Phone book access request"</string>
- <!-- Bluetooth phone book permission Alert Activity text [CHAR LIMIT=none] -->
- <string name="bluetooth_pb_acceptance_dialog_text">
- <xliff:g id="device_name">%1$s</xliff:g> wants to access your contacts and call history. Give access to <xliff:g id="device_name">%2$s</xliff:g>?
- </string>
-
- <!-- Bluetooth phone book permission Alert Activity checkbox text [CHAR LIMIT=none] -->
- <string name="bluetooth_remember_choice">Don\u2019t ask again</string>
- <!--FIXME SHOULD BE REMOVED AND ALL LANG VERSIONS FIXED TO ABOVE NAME -->
- <string name="bluetooth_pb_remember_choice">Don\u2019t ask again</string>
-
<!-- Activity label of BluetoothMessagePermissionActivity, also used as Strings in the permission dialog [CHAR LIMIT=none] -->
<string name="bluetooth_map_request">"Message access request"</string>
- <!-- Bluetooth message permission Alert Activity text [CHAR LIMIT=none] -->
- <string name="bluetooth_map_acceptance_dialog_text">%1$s wants to access your messages. Give access to %2$s?</string>
-
- <!-- Activity label of BluetoothMessagePermissionActivity for SIM access profile. Also used as Strings in the permission dialog [CHAR LIMIT=none] -->
- <string name="bluetooth_sap_request">"SIM access request"</string>
-
- <!-- Bluetooth SIM access permission Alert Activity text [CHAR LIMIT=none] -->
- <string name="bluetooth_sap_acceptance_dialog_text"><xliff:g id="device_name">%1$s</xliff:g> wants to access your SIM card. Granting access to the SIM card will disable data connectivity on your device for the duration of the connection. Give access to <xliff:g id="device_name">%2$s?</xliff:g></string>
-
<!-- Description for bluetooth device name summary [CHAR LIMIT=none] -->
<string name="bluetooth_device_name_summary">Visible as \u201C<xliff:g id="device_name">^1</xliff:g>\u201D to other devices</string>
<!-- Footer description for discoverable mode in bluetooth off state [CHAR LIMIT=none] -->
@@ -306,12 +251,6 @@
<string name="bluetooth_paired_device_title">Your devices</string>
<!-- Title for pairing bluetooth device page [CHAR LIMIT=none] -->
<string name="bluetooth_pairing_page_title">Pair new device</string>
- <!-- Summary for bluetooth item in connection detail page. (tablet)-->
- <string name="bluetooth_pref_summary" product="tablet">Allow your tablet to communicate with nearby Bluetooth devices</string>
- <!-- Summary for bluetooth item in connection detail page. (device)-->
- <string name="bluetooth_pref_summary" product="device">Allow your device to communicate with nearby Bluetooth devices</string>
- <!-- Summary for bluetooth item in connection detail page. (phone)-->
- <string name="bluetooth_pref_summary" product="default">Allow your phone to communicate with nearby Bluetooth devices</string>
<!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload">Disable Bluetooth A2DP hardware offload</string>
@@ -12671,7 +12610,7 @@
<!-- Summary for prevent ringing setting -->
<string name="prevent_ringing_option_mute_summary">Mute</string>
<!-- Summary for prevent ringing setting when the option itself is unavailable. [CHAR LIMIT=NONE] -->
- <string name="prevent_ringing_option_unavailable_lpp_summary">To enable, first change \"Press and hold power button\" to the power menu.</string>
+ <string name="prevent_ringing_option_unavailable_lpp_summary">To enable, first change \"Press & hold power button\" to the power menu.</string>
<!-- Title for detail page of wifi network [CHAR LIMIT=30] -->
<string name="pref_title_network_details">Network details</string>
@@ -13430,29 +13369,28 @@
<!-- Cards and passes name lower case [CHAR LIMIT=40] -->
<string name="cards_passes_lower">cards & passes</string>
- <!-- Power menu setting name [CHAR LIMIT=NONE] -->
- <string name="power_menu_setting_name">Press and hold power button</string>
+ <!-- Power menu setting name [CHAR LIMIT=60] -->
+ <string name="power_menu_setting_name">Press & hold power button</string>
- <!-- Power menu setting summary to describe press and hold power button for Assistant is enabled. [CHAR LIMIT=NONE] -->
- <string name="power_menu_summary_long_press_for_assist_enabled">Press and hold for the Assistant</string>
- <!-- Power menu setting summary to describe press and hold power button for Assistant is disabled and power menu will appear. [CHAR LIMIT=NONE] -->
- <string name="power_menu_summary_long_press_for_assist_disabled_with_power_menu">Press and hold for the power menu</string>
- <!-- Power menu setting summary to describe press and hold power button for Assistant is disabled and nothing will happen. [CHAR LIMIT=NONE] -->
- <string name="power_menu_summary_long_press_for_assist_disabled_no_action">Press and hold disabled</string>
+ <!-- Power menu setting section title for selecting the press and hold power button behavior. [CHAR LIMIT=60] -->
+ <string name="power_menu_long_press_category_title">Press & hold power button to access</string>
+ <!-- Power menu setting option to make press and hold power button to open Power Menu. [CHAR LIMIT=60] -->
+ <string name="power_menu_long_press_for_power_menu_title">Power menu</string>
+ <!-- Power menu setting option to make press and hold power button to open Assistant. [CHAR LIMIT=60] -->
+ <string name="power_menu_long_press_for_assistant_title">Digital assistant</string>
+
+ <!-- Power menu setting summary to describe press and hold power button will open Assistant. [CHAR LIMIT=NONE] -->
+ <string name="power_menu_summary_long_press_for_assistant">Access digital assistant</string>
+ <!-- Power menu setting summary to describe press and hold power button will open Power Menu. [CHAR LIMIT=NONE] -->
+ <string name="power_menu_summary_long_press_for_power_menu">Access power menu</string>
<!-- Power menu setting privacy no secure screen lock set [CHAR_LIMIT=NONE] -->
<string name="lockscreen_privacy_not_secure">To use, first set a screen lock</string>
- <!-- Power menu setting use long press power to invoke assistant. [CHAR LIMIT=NONE] -->
- <string name="power_menu_long_press_for_assist">Hold for Assistant</string>
-
- <!-- Power menu setting use log press power to invoke assistant summary. [CHAR LIMIT=NONE] -->
- <string name="power_menu_long_press_for_assist_summary">Trigger the Assistant by holding the power button</string>
-
- <!-- Power menu explanation to press power and volume up to show power and emergency menu. [CHAR LIMIT=NONE] -->
- <string name="power_menu_power_volume_up_hint">Power & Emergency Menu:\nPress Power and Volume up at the same time.</string>
+ <!-- Power menu explanation to press power and volume up to show power menu. [CHAR LIMIT=NONE] -->
+ <string name="power_menu_power_volume_up_hint">Power menu:\nPress the power button and the volume up button at the same time</string>
<!-- Power menu explanation where to find prevent ringing option. [CHAR LIMIT=NONE] -->
- <string name="power_menu_power_prevent_ringing_hint">Prevent ringing:\nShortcut available in the volume menu.</string>
+ <string name="power_menu_power_prevent_ringing_hint">Prevent ringing:\nPress a volume button for the shortcut</string>
<!-- Power menu title of the seekbar setting controlling duration of how long the power button must be held to invoke assistant. [CHAR LIMIT=NONE]-->
<string name="power_menu_long_press_for_assist_sensitivity_title">Press & hold duration</string>
diff --git a/res/xml/bluetooth_settings.xml b/res/xml/bluetooth_settings.xml
deleted file mode 100644
index 86d6d01..0000000
--- a/res/xml/bluetooth_settings.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/bluetooth_settings">
-
- <Preference
- android:key="device_name" />
-
- <PreferenceCategory
- android:key="paired_devices"
- android:title="@string/bluetooth_paired_device_title" />
-
- <PreferenceCategory>
-
- <Preference
- android:key="bt_rename_device"
- android:title="@string/bluetooth_device_name"
- android:summary="@string/summary_placeholder" />
-
- <Preference
- android:key="bt_received_files"
- android:title="@string/bluetooth_show_received_files" />
-
- </PreferenceCategory>
-
- <com.android.settingslib.widget.FooterPreference />
-
-</PreferenceScreen>
diff --git a/res/xml/bluetooth_settings_obsolete.xml b/res/xml/bluetooth_settings_obsolete.xml
deleted file mode 100644
index 55a099c..0000000
--- a/res/xml/bluetooth_settings_obsolete.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/bluetooth_settings" >
-
-</PreferenceScreen>
diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml
index e5e2daa..48cc40c 100644
--- a/res/xml/power_menu_settings.xml
+++ b/res/xml/power_menu_settings.xml
@@ -23,19 +23,28 @@
android:key="gesture_power_menu_video"
settings:searchable="false"
settings:lottie_imageAssetsFolder="power_menu"
- settings:lottie_rawRes="@raw/lottie_power_menu"/>
+ settings:lottie_rawRes="@raw/lottie_long_press_power_for_power_menu"
+ settings:controller="com.android.settings.gestures.LongPressPowerIllustrationPreferenceController"/>
- <SwitchPreference
- android:key="gesture_power_menu_long_press_for_assist"
- android:title="@string/power_menu_long_press_for_assist"
- android:summary="@string/power_menu_long_press_for_assist_summary"
- settings:controller="com.android.settings.gestures.LongPressPowerButtonPreferenceController"
- />
+ <PreferenceCategory
+ android:key="gesture_power_menu_long_press_category"
+ android:title="@string/power_menu_long_press_category_title">
+ <com.android.settingslib.widget.SelectorWithWidgetPreference
+ android:key="gesture_power_menu_long_press_for_power_menu"
+ android:title="@string/power_menu_long_press_for_power_menu_title"
+ settings:controller="com.android.settings.gestures.LongPressPowerForPowerMenuPreferenceController"/>
+
+ <com.android.settingslib.widget.SelectorWithWidgetPreference
+ android:key="gesture_power_menu_long_press_for_assistant"
+ android:title="@string/power_menu_long_press_for_assistant_title"
+ settings:controller="com.android.settings.gestures.LongPressPowerForAssistantPreferenceController"/>
+ </PreferenceCategory>
<com.android.settings.widget.LabeledSeekBarPreference
android:key="gesture_power_menu_long_press_for_assist_sensitivity"
android:title="@string/power_menu_long_press_for_assist_sensitivity_title"
android:summary="@string/power_menu_long_press_for_assist_sensitivity_summary"
+ settings:allowDividerAbove="true"
settings:textStart="@string/power_menu_long_press_for_assist_sensitivity_low_label"
settings:textEnd="@string/power_menu_long_press_for_assist_sensitivity_high_label"
settings:controller="com.android.settings.gestures.LongPressPowerSensitivityPreferenceController"
@@ -45,5 +54,6 @@
android:key="power_menu_power_volume_up_hint"
android:title="@string/power_menu_power_volume_up_hint"
android:selectable="false"
- settings:searchable="false"/>
+ settings:searchable="false"
+ settings:controller="com.android.settings.gestures.LongPressPowerFooterPreferenceController"/>
</PreferenceScreen>
diff --git a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
index 0af8aa1..f9a1113 100644
--- a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -49,8 +49,6 @@
if (mTopIntroPreference != null) {
mTopIntroPreference.setVisible(false);
}
-
- mToggleServiceSwitchPreference.applyPartnerCustomizationPaddingStyle();
}
@Override
diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
index 1b270d6..4387f83 100644
--- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
@@ -531,7 +531,8 @@
intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
Log.d(TAG, "Sending broadcast to query restart status for "
+ mAppEntry.info.packageName);
- mActivity.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT, null,
+ mActivity.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT,
+ android.Manifest.permission.HANDLE_QUERY_PACKAGE_RESTART,
mCheckKillProcessesReceiver, null, Activity.RESULT_CANCELED, null, null);
}
}
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 79e2ea3..3f57f5d 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -93,8 +93,10 @@
public static final String EXTRA_PARENTAL_CONSENT_STATUS = "consent_status";
private static final String SAVED_STATE_CONFIRMING_CREDENTIALS = "confirming_credentials";
- private static final String SAVED_STATE_FINGERPRINT_ONLY_ENROLLING =
- "fingerprint_only_enrolling";
+ private static final String SAVED_STATE_IS_SINGLE_ENROLLING =
+ "is_single_enrolling";
+ private static final String SAVED_STATE_PASS_THROUGH_EXTRAS_FROM_CHOSEN_LOCK_IN_SUW =
+ "pass_through_extras_from_chosen_lock_in_suw";
private static final String SAVED_STATE_ENROLL_ACTION_LOGGED = "enroll_action_logged";
private static final String SAVED_STATE_PARENTAL_OPTIONS = "enroll_preferences";
private static final String SAVED_STATE_GK_PW_HANDLE = "gk_pw_handle";
@@ -103,7 +105,8 @@
private int mUserId = UserHandle.myUserId();
private boolean mConfirmingCredentials;
- private boolean mFingerprintOnlyEnrolling;
+ private boolean mIsSingleEnrolling;
+ private Bundle mPassThroughExtrasFromChosenLockInSuw = null;
private boolean mIsEnrollActionLogged;
private boolean mHasFeatureFace = false;
private boolean mHasFeatureFingerprint = false;
@@ -132,8 +135,10 @@
if (savedInstanceState != null) {
mConfirmingCredentials = savedInstanceState.getBoolean(
SAVED_STATE_CONFIRMING_CREDENTIALS, false);
- mFingerprintOnlyEnrolling = savedInstanceState.getBoolean(
- SAVED_STATE_FINGERPRINT_ONLY_ENROLLING, false);
+ mIsSingleEnrolling = savedInstanceState.getBoolean(
+ SAVED_STATE_IS_SINGLE_ENROLLING, false);
+ mPassThroughExtrasFromChosenLockInSuw = savedInstanceState.getBundle(
+ SAVED_STATE_PASS_THROUGH_EXTRAS_FROM_CHOSEN_LOCK_IN_SUW);
mIsEnrollActionLogged = savedInstanceState.getBoolean(
SAVED_STATE_ENROLL_ACTION_LOGGED, false);
mParentalOptions = savedInstanceState.getBundle(SAVED_STATE_PARENTAL_OPTIONS);
@@ -300,20 +305,16 @@
if (!setupWizard && authenticators == BiometricManager.Authenticators.DEVICE_CREDENTIAL) {
launchCredentialOnlyEnroll();
finish();
- } else if (canUseFace && canUseFingerprint) {
- if (mGkPwHandle != null) {
- launchFaceAndFingerprintEnroll();
- } else {
+ } else if (canUseFace || canUseFingerprint) {
+ if (mGkPwHandle == null) {
setOrConfirmCredentialsNow();
- }
- } else if (canUseFingerprint) {
- if (mGkPwHandle != null) {
+ } else if (canUseFace && canUseFingerprint) {
+ launchFaceAndFingerprintEnroll();
+ } else if (canUseFingerprint) {
launchFingerprintOnlyEnroll();
} else {
- setOrConfirmCredentialsNow();
+ launchFaceOnlyEnroll();
}
- } else if (canUseFace) {
- launchFaceOnlyEnroll();
} else { // no modalities available
if (mParentalOptionsRequired) {
Log.d(TAG, "No consent for any modality: skipping enrollment");
@@ -329,7 +330,9 @@
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(SAVED_STATE_CONFIRMING_CREDENTIALS, mConfirmingCredentials);
- outState.putBoolean(SAVED_STATE_FINGERPRINT_ONLY_ENROLLING, mFingerprintOnlyEnrolling);
+ outState.putBoolean(SAVED_STATE_IS_SINGLE_ENROLLING, mIsSingleEnrolling);
+ outState.putBundle(SAVED_STATE_PASS_THROUGH_EXTRAS_FROM_CHOSEN_LOCK_IN_SUW,
+ mPassThroughExtrasFromChosenLockInSuw);
outState.putBoolean(SAVED_STATE_ENROLL_ACTION_LOGGED, mIsEnrollActionLogged);
if (mParentalOptions != null) {
outState.putBundle(SAVED_STATE_PARENTAL_OPTIONS, mParentalOptions);
@@ -343,6 +346,12 @@
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
+ if (isSuccessfulChooseCredential(requestCode, resultCode)
+ && data != null && data.getExtras() != null && data.getExtras().size() > 0
+ && WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ mPassThroughExtrasFromChosenLockInSuw = data.getExtras();
+ }
+
Log.d(TAG,
"onActivityResult(requestCode=" + requestCode + ", resultCode=" + resultCode + ")");
// single enrollment is handled entirely by the launched activity
@@ -416,7 +425,7 @@
}
} else {
Log.d(TAG, "Unknown or cancelled parental consent");
- setResult(RESULT_CANCELED);
+ setResult(RESULT_CANCELED, newResultIntent());
finish();
}
break;
@@ -442,22 +451,23 @@
mConfirmingCredentials = false;
final boolean isOk =
isSuccessfulConfirmOrChooseCredential(requestCode, resultCode);
- // single face enrollment requests confirmation directly
- // via BiometricEnrollBase#onCreate and should never get here
- if (isOk && mHasFeatureFace && mHasFeatureFingerprint) {
+ if (isOk && (mHasFeatureFace || mHasFeatureFingerprint)) {
updateGatekeeperPasswordHandle(data);
- launchFaceAndFingerprintEnroll();
- } else if (isOk && mHasFeatureFingerprint) {
- updateGatekeeperPasswordHandle(data);
- launchFingerprintOnlyEnroll();
+ if (mHasFeatureFace && mHasFeatureFingerprint) {
+ launchFaceAndFingerprintEnroll();
+ } else if (mHasFeatureFingerprint) {
+ launchFingerprintOnlyEnroll();
+ } else {
+ launchFaceOnlyEnroll();
+ }
} else {
Log.d(TAG, "Unknown result for set/choose lock: " + resultCode);
- setResult(resultCode);
+ setResult(resultCode, newResultIntent());
finish();
}
break;
case REQUEST_SINGLE_ENROLL:
- mFingerprintOnlyEnrolling = false;
+ mIsSingleEnrolling = false;
finishOrLaunchHandToParent(resultCode);
break;
default:
@@ -480,25 +490,37 @@
finish();
}
} else {
- setResult(resultCode);
+ setResult(resultCode, newResultIntent());
finish();
}
}
+ @NonNull
private Intent newResultIntent() {
final Intent intent = new Intent();
- final Bundle consentStatus = mParentalOptions.deepCopy();
- intent.putExtra(EXTRA_PARENTAL_CONSENT_STATUS, consentStatus);
- Log.v(TAG, "Result consent status: " + consentStatus);
+ if (mParentalOptionsRequired && mParentalOptions != null) {
+ final Bundle consentStatus = mParentalOptions.deepCopy();
+ intent.putExtra(EXTRA_PARENTAL_CONSENT_STATUS, consentStatus);
+ Log.v(TAG, "Result consent status: " + consentStatus);
+ }
+ if (mPassThroughExtrasFromChosenLockInSuw != null) {
+ intent.putExtras(mPassThroughExtrasFromChosenLockInSuw);
+ }
return intent;
}
private static boolean isSuccessfulConfirmOrChooseCredential(int requestCode, int resultCode) {
- final boolean okChoose = requestCode == REQUEST_CHOOSE_LOCK
+ return isSuccessfulChooseCredential(requestCode, resultCode)
+ || isSuccessfulConfirmCredential(requestCode, resultCode);
+ }
+
+ private static boolean isSuccessfulChooseCredential(int requestCode, int resultCode) {
+ return requestCode == REQUEST_CHOOSE_LOCK
&& resultCode == ChooseLockPattern.RESULT_FINISHED;
- final boolean okConfirm = requestCode == REQUEST_CONFIRM_LOCK
- && resultCode == RESULT_OK;
- return okChoose || okConfirm;
+ }
+
+ private static boolean isSuccessfulConfirmCredential(int requestCode, int resultCode) {
+ return requestCode == REQUEST_CONFIRM_LOCK && resultCode == RESULT_OK;
}
@Override
@@ -586,8 +608,8 @@
}
private void launchFingerprintOnlyEnroll() {
- if (!mFingerprintOnlyEnrolling) {
- mFingerprintOnlyEnrolling = true;
+ if (!mIsSingleEnrolling) {
+ mIsSingleEnrolling = true;
final Intent intent;
// ChooseLockGeneric can request to start fingerprint enroll bypassing the intro screen.
if (getIntent().getBooleanExtra(EXTRA_SKIP_INTRO, false)
@@ -601,8 +623,11 @@
}
private void launchFaceOnlyEnroll() {
- final Intent intent = BiometricUtils.getFaceIntroIntent(this, getIntent());
- launchSingleSensorEnrollActivity(intent, REQUEST_SINGLE_ENROLL);
+ if (!mIsSingleEnrolling) {
+ mIsSingleEnrolling = true;
+ final Intent intent = BiometricUtils.getFaceIntroIntent(this, getIntent());
+ launchSingleSensorEnrollActivity(intent, REQUEST_SINGLE_ENROLL);
+ }
}
private void launchFaceAndFingerprintEnroll() {
diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
index af25ecd..b313961 100644
--- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -16,21 +16,16 @@
package com.android.settings.biometrics.fingerprint;
-import android.app.Activity;
import android.app.KeyguardManager;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.os.UserHandle;
import android.view.View;
-import com.android.internal.widget.LockPatternUtils;
import com.android.settings.SetupWizardUtils;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.password.ChooseLockSettingsHelper;
-import com.android.settings.password.SetupChooseLockGeneric;
import com.android.settings.password.SetupSkipDialog;
public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction {
@@ -40,24 +35,6 @@
private static final String EXTRA_FINGERPRINT_ENROLLED_COUNT = "fingerprint_enrolled_count";
private static final String KEY_LOCK_SCREEN_PRESENT = "wasLockScreenPresent";
- private boolean mAlreadyHadLockScreenSetup = false;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (savedInstanceState == null) {
- mAlreadyHadLockScreenSetup = isKeyguardSecure();
- } else {
- mAlreadyHadLockScreenSetup = savedInstanceState.getBoolean(
- KEY_LOCK_SCREEN_PRESENT, false);
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putBoolean(KEY_LOCK_SCREEN_PRESENT, mAlreadyHadLockScreenSetup);
- }
@Override
protected Intent getEnrollingIntent() {
@@ -85,12 +62,6 @@
}
}
if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST && isKeyguardSecure()) {
- // if lock was already present, do not return intent data since it must have been
- // reported in previous attempts
- if (!mAlreadyHadLockScreenSetup) {
- data = getMetricIntent(data);
- }
-
// Report fingerprint count if user adding a new fingerprint
if (resultCode == RESULT_FINISHED) {
data = setFingerprintCount(data);
@@ -127,18 +98,6 @@
super.onActivityResult(requestCode, resultCode, data);
}
- private Intent getMetricIntent(Intent data) {
- if (data == null) {
- data = new Intent();
- }
- LockPatternUtils lockPatternUtils = new LockPatternUtils(this);
- data.putExtra(SetupChooseLockGeneric.
- SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY,
- lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId()));
-
- return data;
- }
-
private Intent setFingerprintCount(Intent data) {
if (data == null) {
data = new Intent();
@@ -161,8 +120,7 @@
if (!BiometricUtils.tryStartingNextBiometricEnroll(
this, ENROLL_NEXT_BIOMETRIC_REQUEST, "cancel")) {
resultCode = RESULT_SKIP;
- data = mAlreadyHadLockScreenSetup ? null : getMetricIntent(null);
- setResult(resultCode, data);
+ setResult(resultCode);
finish();
return;
}
@@ -176,18 +134,6 @@
// User has explicitly canceled enroll. Don't restart it automatically.
}
- /**
- * Propagate lock screen metrics if the user goes back from the fingerprint setup screen
- * after having added lock screen to his device.
- */
- @Override
- public void onBackPressed() {
- if (!mAlreadyHadLockScreenSetup && isKeyguardSecure()) {
- setResult(Activity.RESULT_CANCELED, getMetricIntent(null));
- }
- super.onBackPressed();
- }
-
private boolean isKeyguardSecure() {
return getSystemService(KeyguardManager.class).isKeyguardSecure();
}
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 3e50049..d90e394 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -27,6 +27,7 @@
import android.os.UserManager;
import android.text.Html;
import android.text.TextUtils;
+import android.util.Log;
import android.util.Pair;
import android.util.TypedValue;
import android.view.View;
@@ -41,13 +42,13 @@
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.GearPreference;
-import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.concurrent.RejectedExecutionException;
/**
* BluetoothDevicePreference is the preference type used to display each remote
@@ -175,6 +176,7 @@
mHideSecondTarget = hideSecondTarget;
}
+ @SuppressWarnings("FutureReturnValueIgnored")
void onPreferenceAttributesChanged() {
Pair<Drawable, String> pair = mCachedDevice.getDrawableWithDescription();
setIcon(pair.first);
@@ -186,9 +188,15 @@
* any preference info has changed from the previous value.
*/
setTitle(mCachedDevice.getName());
- // Null check is done at the framework
- setSummary(mCachedDevice.getConnectionSummary());
-
+ try {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ String summary = mCachedDevice.getConnectionSummary();
+ // Null check is done at the framework
+ ThreadUtils.postOnMainThread(() -> setSummary(summary));
+ });
+ } catch (RejectedExecutionException e) {
+ Log.w(TAG, "Handler thread unavailable, skipping getConnectionSummary!");
+ }
// Used to gray out the item
setEnabled(!mCachedDevice.isBusy());
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index 650267a..8dd00b3 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -86,8 +86,12 @@
@Override
public void onDestroy() {
super.onDestroy();
- if (!mPositiveClicked) {
- mPairingController.onCancel();
+ if (mPairingController.getDialogType()
+ != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG) {
+ /* Cancel pairing unless explicitly accepted by user */
+ if (!mPositiveClicked) {
+ mPairingController.onCancel();
+ }
}
}
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
index c8f71c4..7c5eb6b 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -151,13 +151,10 @@
public void onBackPressed() {
/*we need an answer so ignore back button presses during auth */
if(DEBUG) Log.i(TAG, "Back button pressed! ignoring");
- return;
}
// TODO(edjee): createConnectionDialogView, createPhonebookDialogView and createMapDialogView
// are similar. Refactor them into one method.
- // Also, the string resources bluetooth_remember_choice and bluetooth_pb_remember_choice should
- // be removed.
private View createConnectionDialogView() {
String mRemoteName = Utils.createRemoteName(this, mDevice);
mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java
index d549101..6fd5f58 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2.java
@@ -29,6 +29,7 @@
import android.text.format.DateUtils;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
@@ -53,7 +54,6 @@
import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -98,13 +98,13 @@
@VisibleForTesting
boolean mIsExpanded = false;
@VisibleForTesting
- int[] mBatteryHistoryLevels;
- @VisibleForTesting
long[] mBatteryHistoryKeys;
@VisibleForTesting
- int mTrapezoidIndex = BatteryChartViewV2.SELECTED_INDEX_INVALID;
+ BatteryChartViewModel mViewModel;
+ @VisibleForTesting
+ int mTrapezoidIndex = BatteryChartViewModel.SELECTED_INDEX_ALL;
- private boolean mIs24HourFormat = false;
+ private boolean mIs24HourFormat;
private boolean mIsFooterPrefAdded = false;
private PreferenceScreen mPreferenceScreen;
private FooterPreference mFooterPreference;
@@ -252,10 +252,11 @@
@Override
public void onSelect(int trapezoidIndex) {
Log.d(TAG, "onChartSelect:" + trapezoidIndex);
- refreshUi(trapezoidIndex, /*isForce=*/ false);
+ mTrapezoidIndex = trapezoidIndex;
+ refreshUi();
mMetricsFeatureProvider.action(
mPrefContext,
- trapezoidIndex == BatteryChartViewV2.SELECTED_INDEX_ALL
+ trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
? SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL
: SettingsEnums.ACTION_BATTERY_USAGE_TIME_SLOT);
}
@@ -276,18 +277,19 @@
if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
mBatteryIndexedMap = null;
mBatteryHistoryKeys = null;
- mBatteryHistoryLevels = null;
+ mViewModel = null;
addFooterPreferenceIfNeeded(false);
return;
}
mBatteryHistoryKeys = getBatteryHistoryKeys(batteryHistoryMap);
- mBatteryHistoryLevels = new int[CHART_LEVEL_ARRAY_SIZE];
+ List<Integer> levels = new ArrayList<Integer>();
for (int index = 0; index < CHART_LEVEL_ARRAY_SIZE; index++) {
final long timestamp = mBatteryHistoryKeys[index * 2];
final Map<String, BatteryHistEntry> entryMap = batteryHistoryMap.get(timestamp);
if (entryMap == null || entryMap.isEmpty()) {
Log.e(TAG, "abnormal entry list in the timestamp:"
+ ConvertUtils.utcToLocalTime(mPrefContext, timestamp));
+ levels.add(0);
continue;
}
// Averages the battery level in each time slot to avoid corner conditions.
@@ -295,16 +297,17 @@
for (BatteryHistEntry entry : entryMap.values()) {
batteryLevelCounter += entry.mBatteryLevel;
}
- mBatteryHistoryLevels[index] =
- Math.round(batteryLevelCounter / entryMap.size());
+ levels.add(Math.round(batteryLevelCounter / entryMap.size()));
}
- forceRefreshUi();
+ final List<String> texts = generateTimestampTexts(mBatteryHistoryKeys, mContext);
+ mViewModel = new BatteryChartViewModel(levels, texts, mTrapezoidIndex);
+ refreshUi();
Log.d(TAG, String.format(
- "setBatteryHistoryMap() size=%d key=%s\nlevels=%s",
+ "setBatteryHistoryMap() size=%d key=%s\nview model=%s",
batteryHistoryMap.size(),
ConvertUtils.utcToLocalTime(mPrefContext,
mBatteryHistoryKeys[mBatteryHistoryKeys.length - 1]),
- Arrays.toString(mBatteryHistoryLevels)));
+ mViewModel));
// Loads item icon and label in the background.
new LoadAllItemsInfoTask(batteryHistoryMap).execute();
@@ -319,35 +322,20 @@
private void setBatteryChartViewInner(final BatteryChartViewV2 batteryChartView) {
mBatteryChartView = batteryChartView;
mBatteryChartView.setOnSelectListener(this);
- forceRefreshUi();
- }
-
- private void forceRefreshUi() {
- final int refreshIndex =
- mTrapezoidIndex == BatteryChartViewV2.SELECTED_INDEX_INVALID
- ? BatteryChartViewV2.SELECTED_INDEX_ALL
- : mTrapezoidIndex;
- if (mBatteryChartView != null) {
- mBatteryChartView.setLevels(mBatteryHistoryLevels);
- mBatteryChartView.setSelectedIndex(refreshIndex);
- setTimestampLabel();
- }
- refreshUi(refreshIndex, /*isForce=*/ true);
+ refreshUi();
}
@VisibleForTesting
- boolean refreshUi(int trapezoidIndex, boolean isForce) {
+ boolean refreshUi() {
// Invalid refresh condition.
- if (mBatteryIndexedMap == null
- || mBatteryChartView == null
- || (mTrapezoidIndex == trapezoidIndex && !isForce)) {
+ if (mBatteryIndexedMap == null || mBatteryChartView == null) {
return false;
}
- Log.d(TAG, String.format("refreshUi: index=%d size=%d isForce:%b",
- trapezoidIndex, mBatteryIndexedMap.size(), isForce));
+ if (mViewModel != null) {
+ mViewModel.setSelectedIndex(mTrapezoidIndex);
+ }
+ mBatteryChartView.setViewModel(mViewModel);
- mTrapezoidIndex = trapezoidIndex;
- mBatteryChartView.setSelectedIndex(mTrapezoidIndex);
mHandler.post(() -> {
final long start = System.currentTimeMillis();
removeAndCacheAllPrefs();
@@ -584,20 +572,6 @@
return !contains(packageName, mNotAllowShowEntryPackages);
}
- @VisibleForTesting
- void setTimestampLabel() {
- if (mBatteryChartView == null || mBatteryHistoryKeys == null) {
- return;
- }
- final boolean is24HourFormat = DateFormat.is24HourFormat(mContext);
- final String[] labels = new String[mBatteryHistoryKeys.length];
- for (int i = 0; i < mBatteryHistoryKeys.length; i++) {
- labels[i] = ConvertUtils.utcToLocalTimeHour(mContext, mBatteryHistoryKeys[i],
- is24HourFormat);
- }
- mBatteryChartView.setAxisLabels(labels);
- }
-
private void addFooterPreferenceIfNeeded(boolean containAppItems) {
if (mIsFooterPrefAdded || mFooterPreference == null) {
return;
@@ -610,6 +584,17 @@
mHandler.post(() -> mPreferenceScreen.addPreference(mFooterPreference));
}
+ private static List<String> generateTimestampTexts(
+ @NonNull long[] timestamps, Context context) {
+ final boolean is24HourFormat = DateFormat.is24HourFormat(context);
+ final List<String> texts = new ArrayList<String>();
+ for (int index = 0; index < CHART_LEVEL_ARRAY_SIZE; index++) {
+ texts.add(ConvertUtils.utcToLocalTimeHour(context, timestamps[index * 2],
+ is24HourFormat));
+ }
+ return texts;
+ }
+
private static boolean contains(String target, CharSequence[] packageNames) {
if (target != null && packageNames != null) {
for (CharSequence packageName : packageNames) {
@@ -654,7 +639,7 @@
getBatteryHistoryKeys(batteryHistoryMap),
batteryHistoryMap,
/*purgeLowPercentageAndFakeData=*/ true);
- return batteryIndexedMap.get(BatteryChartViewV2.SELECTED_INDEX_ALL);
+ return batteryIndexedMap.get(BatteryChartViewModel.SELECTED_INDEX_ALL);
}
/** Used for {@link AppBatteryPreferenceController}. */
@@ -735,7 +720,7 @@
// Posts results back to main thread to refresh UI.
mHandler.post(() -> {
mBatteryIndexedMap = indexedUsageMap;
- forceRefreshUi();
+ refreshUi();
});
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
new file mode 100644
index 0000000..74f87fd
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage;
+
+import androidx.annotation.NonNull;
+import androidx.core.util.Preconditions;
+
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+
+/** The view model of {@code BatteryChartViewV2} */
+class BatteryChartViewModel {
+ private static final String TAG = "BatteryChartViewModel";
+
+ public static final int SELECTED_INDEX_ALL = -1;
+ public static final int SELECTED_INDEX_INVALID = -2;
+
+ // We need at least 2 levels to draw a trapezoid.
+ private static final int MIN_LEVELS_DATA_SIZE = 2;
+
+ private final List<Integer> mLevels;
+ private final List<String> mTexts;
+ private int mSelectedIndex;
+
+ BatteryChartViewModel(
+ @NonNull List<Integer> levels, @NonNull List<String> texts, int selectedIndex) {
+ Preconditions.checkArgument(
+ levels.size() == texts.size()
+ && levels.size() >= MIN_LEVELS_DATA_SIZE
+ && selectedIndex >= SELECTED_INDEX_ALL
+ && selectedIndex < levels.size(),
+ String.format(Locale.getDefault(), "Invalid BatteryChartViewModel"
+ + " levels.size: %d\ntexts.size: %d\nselectedIndex: %d.",
+ levels.size(), texts.size(), selectedIndex));
+ mLevels = levels;
+ mTexts = texts;
+ mSelectedIndex = selectedIndex;
+ }
+
+ public int size() {
+ return mLevels.size();
+ }
+
+ public List<Integer> levels() {
+ return mLevels;
+ }
+
+ public List<String> texts() {
+ return mTexts;
+ }
+
+ public int selectedIndex() {
+ return mSelectedIndex;
+ }
+
+ public void setSelectedIndex(int index) {
+ mSelectedIndex = index;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mLevels, mTexts, mSelectedIndex);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ } else if (!(other instanceof BatteryChartViewModel)) {
+ return false;
+ }
+ final BatteryChartViewModel batteryChartViewModel = (BatteryChartViewModel) other;
+ return Objects.equals(mLevels, batteryChartViewModel.mLevels)
+ && Objects.equals(mTexts, batteryChartViewModel.mTexts)
+ && mSelectedIndex == batteryChartViewModel.mSelectedIndex;
+ }
+
+ @Override
+ public String toString() {
+ return String.format(Locale.getDefault(), "levels: %s\ntexts: %s\nselectedIndex: %d",
+ Objects.toString(mLevels), Objects.toString(mTexts), mSelectedIndex);
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java
index 15a3ca6..bbaa157 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2.java
@@ -20,7 +20,6 @@
import static java.lang.Math.round;
import android.accessibilityservice.AccessibilityServiceInfo;
-import android.annotation.NonNull;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
@@ -38,6 +37,7 @@
import android.view.accessibility.AccessibilityManager;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.appcompat.widget.AppCompatImageView;
@@ -61,16 +61,14 @@
private static final int DIVIDER_COLOR = Color.parseColor("#CDCCC5");
private static final long UPDATE_STATE_DELAYED_TIME = 500L;
- /** Selects all trapezoid shapes. */
- public static final int SELECTED_INDEX_ALL = -1;
- public static final int SELECTED_INDEX_INVALID = -2;
-
/** A callback listener for selected group index is updated. */
public interface OnSelectListener {
/** The callback function for selected group index is updated. */
void onSelect(int trapezoidIndex);
}
+ private BatteryChartViewModel mViewModel;
+
private int mDividerWidth;
private int mDividerHeight;
private float mTrapezoidVOffset;
@@ -79,9 +77,7 @@
private String[] mPercentages = getPercentages();
@VisibleForTesting
- int mHoveredIndex = SELECTED_INDEX_INVALID;
- @VisibleForTesting
- int mSelectedIndex = SELECTED_INDEX_INVALID;
+ int mHoveredIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID;
@VisibleForTesting
String[] mAxisLabels;
@@ -103,7 +99,6 @@
@VisibleForTesting
final Runnable mUpdateClickableStateRun = () -> updateClickableState();
- private int[] mLevels;
private Paint mTextPaint;
private Paint mDividerPaint;
private Paint mTrapezoidPaint;
@@ -126,44 +121,26 @@
initializeColors(context);
// Registers the click event listener.
setOnClickListener(this);
- setSelectedIndex(SELECTED_INDEX_ALL);
setClickable(false);
+ requestLayout();
}
- /** Sets all levels value to draw the trapezoid shape */
- public void setLevels(int[] levels) {
- Log.d(TAG, "setLevels() " + (levels == null ? "null" : levels.length));
- // At least 2 levels to draw a trapezoid.
- if (levels == null || levels.length < 2) {
- mLevels = null;
+ /** Sets the data model of this view. */
+ public void setViewModel(BatteryChartViewModel viewModel) {
+ if (viewModel == null) {
+ mViewModel = null;
invalidate();
return;
}
- mLevels = levels;
- // Initialize trapezoid slots.
- mTrapezoidSlots = new TrapezoidSlot[mLevels.length - 1];
- for (int index = 0; index < mTrapezoidSlots.length; index++) {
- mTrapezoidSlots[index] = new TrapezoidSlot();
- }
+ Log.d(TAG, String.format("setViewModel(): size: %d, selectedIndex: %d.",
+ viewModel.size(), viewModel.selectedIndex()));
+ mViewModel = viewModel;
- setClickable(false);
- invalidate();
- // Sets the chart is clickable if there is at least one valid item in it.
- for (int index = 0; index < mLevels.length - 1; index++) {
- if (mLevels[index] != 0 && mLevels[index + 1] != 0) {
- setClickable(true);
- break;
- }
- }
- }
-
- /** Sets the selected group index to draw highlight effect. */
- public void setSelectedIndex(int index) {
- if (mSelectedIndex != index) {
- mSelectedIndex = index;
- invalidate();
- }
+ initializeTrapezoidSlots(viewModel.size() - 1);
+ initializeAxisLabels(viewModel.texts());
+ setClickable(hasNonZeroTrapezoid(viewModel.levels()));
+ requestLayout();
}
/** Sets the callback to monitor the selected group index. */
@@ -184,26 +161,6 @@
requestLayout();
}
- /**
- * Sets the X-axis labels list for each level. This class will choose some labels among the
- * input list to show.
- *
- * @param labels The length of this parameter should be the same as the length of
- * {@code levels}.
- */
- public void setAxisLabels(@NonNull String[] labels) {
- if (mAxisLabels == null) {
- mAxisLabels = new String[DEFAULT_AXIS_LABEL_COUNT];
- }
- // Current logic is always showing {@code AXIS_LABEL_GAPS_COUNT} labels.
- // TODO: Support different count of labels for different levels sizes.
- final int step = (labels.length - 1) / AXIS_LABEL_GAPS_COUNT;
- for (int index = 0; index < DEFAULT_AXIS_LABEL_COUNT; index++) {
- mAxisLabels[index] = labels[index * step];
- }
- requestLayout();
- }
-
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -240,7 +197,7 @@
// Before mLevels initialized, the count of trapezoids is unknown. Only draws the
// horizontal percentages and dividers.
drawHorizontalDividers(canvas);
- if (mLevels == null) {
+ if (mViewModel == null) {
return;
}
drawVerticalDividers(canvas);
@@ -282,7 +239,7 @@
public void onHoverChanged(boolean hovered) {
super.onHoverChanged(hovered);
if (!hovered) {
- mHoveredIndex = SELECTED_INDEX_INVALID; // reset
+ mHoveredIndex = BatteryChartViewModel.SELECTED_INDEX_INVALID; // reset
invalidate();
}
}
@@ -295,13 +252,15 @@
}
final int trapezoidIndex = getTrapezoidIndex(mTouchUpEventX);
// Ignores the click event if the level is zero.
- if (trapezoidIndex == SELECTED_INDEX_INVALID
+ if (trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_INVALID
|| !isValidToDraw(trapezoidIndex)) {
return;
}
if (mOnSelectListener != null) {
+ // Selects all if users click the same trapezoid item two times.
mOnSelectListener.onSelect(
- trapezoidIndex == mSelectedIndex ? SELECTED_INDEX_ALL : trapezoidIndex);
+ trapezoidIndex == mViewModel.selectedIndex()
+ ? BatteryChartViewModel.SELECTED_INDEX_ALL : trapezoidIndex);
}
view.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK);
}
@@ -350,8 +309,8 @@
mTrapezoidCurvePaint.setStrokeWidth(mDividerWidth * 2);
} else if (mIsSlotsClickabled) {
mTrapezoidCurvePaint = null;
- // Sets levels again to force update the click state.
- setLevels(mLevels);
+ // Sets view model again to force update the click state.
+ setViewModel(mViewModel);
}
invalidate();
}
@@ -366,6 +325,28 @@
super.setClickable(clickable);
}
+ private void initializeTrapezoidSlots(int count) {
+ mTrapezoidSlots = new TrapezoidSlot[count];
+ for (int index = 0; index < mTrapezoidSlots.length; index++) {
+ mTrapezoidSlots[index] = new TrapezoidSlot();
+ }
+ }
+
+ /**
+ * Initializes the displayed X-axis labels list selected from the model all texts list.
+ */
+ private void initializeAxisLabels(@NonNull List<String> allTexts) {
+ if (mAxisLabels == null) {
+ mAxisLabels = new String[DEFAULT_AXIS_LABEL_COUNT];
+ }
+ // Current logic is always showing {@code AXIS_LABEL_GAPS_COUNT} labels.
+ // TODO: Support different count of labels for different levels sizes.
+ final int step = (allTexts.size() - 1) / AXIS_LABEL_GAPS_COUNT;
+ for (int index = 0; index < DEFAULT_AXIS_LABEL_COUNT; index++) {
+ mAxisLabels[index] = allTexts.get(index * step);
+ }
+ }
+
private void initializeColors(Context context) {
setBackgroundColor(Color.TRANSPARENT);
mTrapezoidSolidColor = Utils.getColorAccentDefaultColor(context);
@@ -498,7 +479,7 @@
private void drawTrapezoids(Canvas canvas) {
// Ignores invalid trapezoid data.
- if (mLevels == null) {
+ if (mViewModel == null) {
return;
}
final float trapezoidBottom =
@@ -519,17 +500,17 @@
continue;
}
// Configures the trapezoid paint color.
- final int trapezoidColor =
- !mIsSlotsClickabled
- ? mTrapezoidColor
- : mSelectedIndex == index || mSelectedIndex == SELECTED_INDEX_ALL
- ? mTrapezoidSolidColor : mTrapezoidColor;
+ final int trapezoidColor = mIsSlotsClickabled && (mViewModel.selectedIndex() == index
+ || mViewModel.selectedIndex() == BatteryChartViewModel.SELECTED_INDEX_ALL)
+ ? mTrapezoidSolidColor : mTrapezoidColor;
final boolean isHoverState =
mIsSlotsClickabled && mHoveredIndex == index && isValidToDraw(mHoveredIndex);
mTrapezoidPaint.setColor(isHoverState ? mTrapezoidHoverColor : trapezoidColor);
- final float leftTop = round(trapezoidBottom - mLevels[index] * unitHeight);
- final float rightTop = round(trapezoidBottom - mLevels[index + 1] * unitHeight);
+ final float leftTop = round(
+ trapezoidBottom - mViewModel.levels().get(index) * unitHeight);
+ final float rightTop = round(
+ trapezoidBottom - mViewModel.levels().get(index + 1) * unitHeight);
trapezoidPath.reset();
trapezoidPath.moveTo(mTrapezoidSlots[index].mLeft, trapezoidBottom);
trapezoidPath.lineTo(mTrapezoidSlots[index].mLeft, leftTop);
@@ -568,15 +549,25 @@
return index;
}
}
- return SELECTED_INDEX_INVALID;
+ return BatteryChartViewModel.SELECTED_INDEX_INVALID;
}
private boolean isValidToDraw(int trapezoidIndex) {
- return mLevels != null
+ return mViewModel != null
&& trapezoidIndex >= 0
- && trapezoidIndex < mLevels.length - 1
- && mLevels[trapezoidIndex] != 0
- && mLevels[trapezoidIndex + 1] != 0;
+ && trapezoidIndex < mViewModel.size() - 1
+ && mViewModel.levels().get(trapezoidIndex) != 0
+ && mViewModel.levels().get(trapezoidIndex + 1) != 0;
+ }
+
+ private static boolean hasNonZeroTrapezoid(List<Integer> levels) {
+ // Sets the chart is clickable if there is at least one valid item in it.
+ for (int index = 0; index < levels.size() - 1; index++) {
+ if (levels.get(index) != 0 && levels.get(index + 1) != 0) {
+ return true;
+ }
+ }
+ return false;
}
private static String[] getPercentages() {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
index 94d7c0e..64f519a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
@@ -16,58 +16,66 @@
package com.android.settings.fuelgauge.batteryusage;
-import android.util.Log;
-
-import com.google.common.collect.ImmutableList;
+import androidx.annotation.NonNull;
+import androidx.core.util.Preconditions;
import java.util.List;
/** Wraps the battery timestamp and level data used for battery usage chart. */
public final class BatteryLevelData {
-
/** A container for the battery timestamp and level data. */
public static final class PeriodBatteryLevelData {
- private static final String TAG = "PeriodBatteryLevelData";
+ // The length of mTimestamps and mLevels must be the same. mLevels[index] might be null when
+ // there is no level data for the corresponding timestamp.
+ private final List<Long> mTimestamps;
+ private final List<Integer> mLevels;
- private final ImmutableList<Long> mTimestamps;
- private final ImmutableList<Integer> mLevels;
-
- public PeriodBatteryLevelData(List<Long> timestamps, List<Integer> levels) {
- if (timestamps.size() != levels.size()) {
- Log.e(TAG, "Different sizes of timestamps and levels. Timestamp: "
- + timestamps.size() + ", Level: " + levels.size());
- mTimestamps = ImmutableList.of();
- mLevels = ImmutableList.of();
- return;
- }
- mTimestamps = ImmutableList.copyOf(timestamps);
- mLevels = ImmutableList.copyOf(levels);
+ public PeriodBatteryLevelData(
+ @NonNull List<Long> timestamps, @NonNull List<Integer> levels) {
+ Preconditions.checkArgument(timestamps.size() == levels.size(),
+ /* errorMessage= */ "Timestamp: " + timestamps.size() + ", Level: "
+ + levels.size());
+ mTimestamps = timestamps;
+ mLevels = levels;
}
- public ImmutableList<Long> getTimestamps() {
+ public List<Long> getTimestamps() {
return mTimestamps;
}
- public ImmutableList<Integer> getLevels() {
+ public List<Integer> getLevels() {
return mLevels;
}
}
+ /**
+ * There could be 2 cases for the daily battery levels:
+ * 1) length is 2: The usage data is within 1 day. Only contains start and end data, such as
+ * data of 2022-01-01 06:00 and 2022-01-01 16:00.
+ * 2) length > 2: The usage data is more than 1 days. The data should be the start, end and 0am
+ * data of every day between the start and end, such as data of 2022-01-01 06:00,
+ * 2022-01-02 00:00, 2022-01-03 00:00 and 2022-01-03 08:00.
+ */
private final PeriodBatteryLevelData mDailyBatteryLevels;
- private final ImmutableList<PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
+ // The size of hourly data must be the size of daily data - 1.
+ private final List<PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
public BatteryLevelData(
- PeriodBatteryLevelData dailyBatteryLevels,
- List<PeriodBatteryLevelData> hourlyBatteryLevelsPerDay) {
+ @NonNull PeriodBatteryLevelData dailyBatteryLevels,
+ @NonNull List<PeriodBatteryLevelData> hourlyBatteryLevelsPerDay) {
+ final long dailySize = dailyBatteryLevels.getTimestamps().size();
+ final long hourlySize = hourlyBatteryLevelsPerDay.size();
+ Preconditions.checkArgument(hourlySize == dailySize - 1,
+ /* errorMessage= */ "DailySize: " + dailySize + ", HourlySize: " + hourlySize);
mDailyBatteryLevels = dailyBatteryLevels;
- mHourlyBatteryLevelsPerDay = ImmutableList.copyOf(hourlyBatteryLevelsPerDay);
+ mHourlyBatteryLevelsPerDay = hourlyBatteryLevelsPerDay;
}
public PeriodBatteryLevelData getDailyBatteryLevels() {
return mDailyBatteryLevels;
}
- public ImmutableList<PeriodBatteryLevelData> getHourlyBatteryLevelsPerDay() {
+ public List<PeriodBatteryLevelData> getHourlyBatteryLevelsPerDay() {
return mHourlyBatteryLevelsPerDay;
}
-}
+}
\ No newline at end of file
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
new file mode 100644
index 0000000..d8650a6
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -0,0 +1,468 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage;
+
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTime;
+
+import android.content.Context;
+import android.text.format.DateUtils;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settingslib.fuelgauge.BatteryStatus;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A utility class to process data loaded from database and make the data easy to use for battery
+ * usage UI.
+ */
+public final class DataProcessor {
+ private static final boolean DEBUG = false;
+ private static final String TAG = "DataProcessor";
+ private static final int MIN_DAILY_DATA_SIZE = 2;
+ private static final int MIN_TIMESTAMP_DATA_SIZE = 2;
+
+ /** A fake package name to represent no BatteryEntry data. */
+ public static final String FAKE_PACKAGE_NAME = "fake_package";
+
+ private DataProcessor() {
+ }
+
+ /**
+ * @return Returns battery level data and start async task to compute battery diff usage data
+ * and load app labels + icons.
+ * Returns null if the input is invalid or not having at least 2 hours data.
+ */
+ @Nullable
+ public static BatteryLevelData getBatteryLevelData(
+ Context context,
+ @Nullable final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
+ if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
+ Log.d(TAG, "getBatteryLevelData() returns null");
+ return null;
+ }
+ // Process raw history map data into hourly timestamps.
+ final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap =
+ getHistoryMapWithExpectedTimestamps(context, batteryHistoryMap);
+ // Wrap and processed history map into easy-to-use format for UI rendering.
+ final BatteryLevelData batteryLevelData =
+ getLevelDataThroughProcessedHistoryMap(context, processedBatteryHistoryMap);
+
+ //TODO: Add the async task to compute diff usage data and load labels and icons.
+
+ return batteryLevelData;
+ }
+
+ /**
+ * @return Returns the processed history map which has interpolated to every hour data.
+ * The start and end timestamp must be the even hours.
+ * The keys of processed history map should contain every hour between the start and end
+ * timestamp. If there's no data in some key, the value will be the empty hashmap.
+ */
+ @VisibleForTesting
+ static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapWithExpectedTimestamps(
+ Context context,
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
+ final long startTime = System.currentTimeMillis();
+ final List<Long> rawTimestampList = new ArrayList<>(batteryHistoryMap.keySet());
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap = new HashMap();
+ if (rawTimestampList.isEmpty()) {
+ Log.d(TAG, "empty batteryHistoryMap in getHistoryMapWithExpectedTimestamps()");
+ return resultMap;
+ }
+ Collections.sort(rawTimestampList);
+ final List<Long> expectedTimestampList = getTimestampSlots(rawTimestampList);
+ final boolean isFromFullCharge =
+ isFromFullCharge(batteryHistoryMap.get(rawTimestampList.get(0)));
+ interpolateHistory(
+ context, rawTimestampList, expectedTimestampList, isFromFullCharge,
+ batteryHistoryMap, resultMap);
+ Log.d(TAG, String.format("getHistoryMapWithExpectedTimestamps() size=%d in %d/ms",
+ resultMap.size(), (System.currentTimeMillis() - startTime)));
+ return resultMap;
+ }
+
+ @VisibleForTesting
+ @Nullable
+ static BatteryLevelData getLevelDataThroughProcessedHistoryMap(
+ Context context,
+ final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap) {
+ final List<Long> timestampList = new ArrayList<>(processedBatteryHistoryMap.keySet());
+ Collections.sort(timestampList);
+ final List<Long> dailyTimestamps = getDailyTimestamps(timestampList);
+ // There should be at least the start and end timestamps. Otherwise, return null to not show
+ // data in usage chart.
+ if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
+ return null;
+ }
+
+ final List<List<Long>> hourlyTimestamps = getHourlyTimestamps(dailyTimestamps);
+ final BatteryLevelData.PeriodBatteryLevelData dailyLevelData =
+ getPeriodBatteryLevelData(context, processedBatteryHistoryMap, dailyTimestamps);
+ final List<BatteryLevelData.PeriodBatteryLevelData> hourlyLevelData =
+ getHourlyPeriodBatteryLevelData(
+ context, processedBatteryHistoryMap, hourlyTimestamps);
+ return new BatteryLevelData(dailyLevelData, hourlyLevelData);
+ }
+
+ /**
+ * Computes expected timestamp slots for last full charge, which will return hourly timestamps
+ * between start and end two even hour values.
+ */
+ @VisibleForTesting
+ static List<Long> getTimestampSlots(final List<Long> rawTimestampList) {
+ final List<Long> timestampSlots = new ArrayList<>();
+ final int rawTimestampListSize = rawTimestampList.size();
+ // If timestamp number is smaller than 2, the following computation is not necessary.
+ if (rawTimestampListSize < MIN_TIMESTAMP_DATA_SIZE) {
+ return timestampSlots;
+ }
+ final long rawStartTimestamp = rawTimestampList.get(0);
+ final long rawEndTimestamp = rawTimestampList.get(rawTimestampListSize - 1);
+ // No matter the start is from last full charge or 6 days ago, use the nearest even hour.
+ final long startTimestamp = getNearestEvenHourTimestamp(rawStartTimestamp);
+ // Use the even hour before the raw end timestamp as the end.
+ final long endTimestamp = getLastEvenHourBeforeTimestamp(rawEndTimestamp);
+ // If the start timestamp is later or equal the end one, return the empty list.
+ if (startTimestamp >= endTimestamp) {
+ return timestampSlots;
+ }
+ for (long timestamp = startTimestamp; timestamp <= endTimestamp;
+ timestamp += DateUtils.HOUR_IN_MILLIS) {
+ timestampSlots.add(timestamp);
+ }
+ return timestampSlots;
+ }
+
+ /**
+ * Computes expected daily timestamp slots.
+ *
+ * The valid result should be composed of 3 parts:
+ * 1) start timestamp
+ * 2) every 0am timestamp (default timezone) between the start and end
+ * 3) end timestamp
+ * Otherwise, returns an empty list.
+ */
+ @VisibleForTesting
+ static List<Long> getDailyTimestamps(final List<Long> timestampList) {
+ final List<Long> dailyTimestampList = new ArrayList<>();
+ // If timestamp number is smaller than 2, the following computation is not necessary.
+ if (timestampList.size() < MIN_TIMESTAMP_DATA_SIZE) {
+ return dailyTimestampList;
+ }
+ final long startTime = timestampList.get(0);
+ final long endTime = timestampList.get(timestampList.size() - 1);
+ long nextDay = getTimestampOfNextDay(startTime);
+ dailyTimestampList.add(startTime);
+ while (nextDay < endTime) {
+ dailyTimestampList.add(nextDay);
+ nextDay += DateUtils.DAY_IN_MILLIS;
+ }
+ dailyTimestampList.add(endTime);
+ return dailyTimestampList;
+ }
+
+ @VisibleForTesting
+ static boolean isFromFullCharge(@Nullable final Map<String, BatteryHistEntry> entryList) {
+ if (entryList == null) {
+ Log.d(TAG, "entryList is nul in isFromFullCharge()");
+ return false;
+ }
+ final List<String> entryKeys = new ArrayList<>(entryList.keySet());
+ if (entryKeys.isEmpty()) {
+ Log.d(TAG, "empty entryList in isFromFullCharge()");
+ return false;
+ }
+ // The hist entries in the same timestamp should have same battery status and level.
+ // Checking the first one should be enough.
+ final BatteryHistEntry firstHistEntry = entryList.get(entryKeys.get(0));
+ return BatteryStatus.isCharged(firstHistEntry.mBatteryStatus, firstHistEntry.mBatteryLevel);
+ }
+
+ @VisibleForTesting
+ static long[] findNearestTimestamp(final List<Long> timestamps, final long target) {
+ final long[] results = new long[] {Long.MIN_VALUE, Long.MAX_VALUE};
+ // Searches the nearest lower and upper timestamp value.
+ for (long timestamp : timestamps) {
+ if (timestamp <= target && timestamp > results[0]) {
+ results[0] = timestamp;
+ }
+ if (timestamp >= target && timestamp < results[1]) {
+ results[1] = timestamp;
+ }
+ }
+ // Uses zero value to represent invalid searching result.
+ results[0] = results[0] == Long.MIN_VALUE ? 0 : results[0];
+ results[1] = results[1] == Long.MAX_VALUE ? 0 : results[1];
+ return results;
+ }
+
+ /**
+ * @return Returns the timestamp for 0am 1 day after the given timestamp based on local
+ * timezone.
+ */
+ @VisibleForTesting
+ static long getTimestampOfNextDay(long timestamp) {
+ final Calendar nextDayCalendar = Calendar.getInstance();
+ nextDayCalendar.setTimeInMillis(timestamp);
+ nextDayCalendar.add(Calendar.DAY_OF_YEAR, 1);
+ nextDayCalendar.set(Calendar.HOUR_OF_DAY, 0);
+ nextDayCalendar.set(Calendar.MINUTE, 0);
+ nextDayCalendar.set(Calendar.SECOND, 0);
+ return nextDayCalendar.getTimeInMillis();
+ }
+
+ /**
+ * Interpolates history map based on expected timestamp slots and processes the corner case when
+ * the expected start timestamp is earlier than what we have.
+ */
+ private static void interpolateHistory(
+ Context context,
+ final List<Long> rawTimestampList,
+ final List<Long> expectedTimestampSlots,
+ final boolean isFromFullCharge,
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap) {
+ if (rawTimestampList.isEmpty() || expectedTimestampSlots.isEmpty()) {
+ return;
+ }
+ final long expectedStartTimestamp = expectedTimestampSlots.get(0);
+ final long rawStartTimestamp = rawTimestampList.get(0);
+ int startIndex = 0;
+ // If the expected start timestamp is full charge or earlier than what we have, use the
+ // first data of what we have directly. This should be OK because the expected start
+ // timestamp is the nearest even hour of the raw start timestamp, their time diff is no
+ // more than 1 hour.
+ if (isFromFullCharge || expectedStartTimestamp < rawStartTimestamp) {
+ startIndex = 1;
+ resultMap.put(expectedStartTimestamp, batteryHistoryMap.get(rawStartTimestamp));
+ }
+ for (int index = startIndex; index < expectedTimestampSlots.size(); index++) {
+ final long currentSlot = expectedTimestampSlots.get(index);
+ interpolateHistoryForSlot(
+ context, currentSlot, rawTimestampList, batteryHistoryMap, resultMap);
+ }
+ }
+
+ private static void interpolateHistoryForSlot(
+ Context context,
+ final long currentSlot,
+ final List<Long> rawTimestampList,
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap) {
+ final long[] nearestTimestamps = findNearestTimestamp(rawTimestampList, currentSlot);
+ final long lowerTimestamp = nearestTimestamps[0];
+ final long upperTimestamp = nearestTimestamps[1];
+ // Case 1: upper timestamp is zero since scheduler is delayed!
+ if (upperTimestamp == 0) {
+ log(context, "job scheduler is delayed", currentSlot, null);
+ resultMap.put(currentSlot, new HashMap<>());
+ return;
+ }
+ // Case 2: upper timestamp is closed to the current timestamp.
+ if ((upperTimestamp - currentSlot) < 5 * DateUtils.SECOND_IN_MILLIS) {
+ log(context, "force align into the nearest slot", currentSlot, null);
+ resultMap.put(currentSlot, batteryHistoryMap.get(upperTimestamp));
+ return;
+ }
+ // Case 3: lower timestamp is zero before starting to collect data.
+ if (lowerTimestamp == 0) {
+ log(context, "no lower timestamp slot data", currentSlot, null);
+ resultMap.put(currentSlot, new HashMap<>());
+ return;
+ }
+ interpolateHistoryForSlot(context,
+ currentSlot, lowerTimestamp, upperTimestamp, batteryHistoryMap, resultMap);
+ }
+
+ private static void interpolateHistoryForSlot(
+ Context context,
+ final long currentSlot,
+ final long lowerTimestamp,
+ final long upperTimestamp,
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap) {
+ final Map<String, BatteryHistEntry> lowerEntryDataMap =
+ batteryHistoryMap.get(lowerTimestamp);
+ final Map<String, BatteryHistEntry> upperEntryDataMap =
+ batteryHistoryMap.get(upperTimestamp);
+ // Verifies whether the lower data is valid to use or not by checking boot time.
+ final BatteryHistEntry upperEntryDataFirstEntry =
+ upperEntryDataMap.values().stream().findFirst().get();
+ final long upperEntryDataBootTimestamp =
+ upperEntryDataFirstEntry.mTimestamp - upperEntryDataFirstEntry.mBootTimestamp;
+ // Lower data is captured before upper data corresponding device is booting.
+ if (lowerTimestamp < upperEntryDataBootTimestamp) {
+ // Provides an opportunity to force align the slot directly.
+ if ((upperTimestamp - currentSlot) < 10 * DateUtils.MINUTE_IN_MILLIS) {
+ log(context, "force align into the nearest slot", currentSlot, null);
+ resultMap.put(currentSlot, upperEntryDataMap);
+ } else {
+ log(context, "in the different booting section", currentSlot, null);
+ resultMap.put(currentSlot, new HashMap<>());
+ }
+ return;
+ }
+ log(context, "apply interpolation arithmetic", currentSlot, null);
+ final Map<String, BatteryHistEntry> newHistEntryMap = new HashMap<>();
+ final double timestampLength = upperTimestamp - lowerTimestamp;
+ final double timestampDiff = currentSlot - lowerTimestamp;
+ // Applies interpolation arithmetic for each BatteryHistEntry.
+ for (String entryKey : upperEntryDataMap.keySet()) {
+ final BatteryHistEntry lowerEntry = lowerEntryDataMap.get(entryKey);
+ final BatteryHistEntry upperEntry = upperEntryDataMap.get(entryKey);
+ // Checks whether there is any abnormal battery reset conditions.
+ if (lowerEntry != null) {
+ final boolean invalidForegroundUsageTime =
+ lowerEntry.mForegroundUsageTimeInMs > upperEntry.mForegroundUsageTimeInMs;
+ final boolean invalidBackgroundUsageTime =
+ lowerEntry.mBackgroundUsageTimeInMs > upperEntry.mBackgroundUsageTimeInMs;
+ if (invalidForegroundUsageTime || invalidBackgroundUsageTime) {
+ newHistEntryMap.put(entryKey, upperEntry);
+ log(context, "abnormal reset condition is found", currentSlot, upperEntry);
+ continue;
+ }
+ }
+ final BatteryHistEntry newEntry =
+ BatteryHistEntry.interpolate(
+ currentSlot,
+ upperTimestamp,
+ /*ratio=*/ timestampDiff / timestampLength,
+ lowerEntry,
+ upperEntry);
+ newHistEntryMap.put(entryKey, newEntry);
+ if (lowerEntry == null) {
+ log(context, "cannot find lower entry data", currentSlot, upperEntry);
+ continue;
+ }
+ }
+ resultMap.put(currentSlot, newHistEntryMap);
+ }
+
+ /**
+ * @return Returns the nearest even hour timestamp of the given timestamp.
+ */
+ private static long getNearestEvenHourTimestamp(long rawTimestamp) {
+ // If raw hour is even, the nearest even hour should be the even hour before raw
+ // start. The hour doesn't need to change and just set the minutes and seconds to 0.
+ // Otherwise, the nearest even hour should be raw hour + 1.
+ // For example, the nearest hour of 14:30:50 should be 14:00:00. While the nearest
+ // hour of 15:30:50 should be 16:00:00.
+ return getEvenHourTimestamp(rawTimestamp, /*addHourOfDay*/ 1);
+ }
+
+ /**
+ * @return Returns the last even hour timestamp before the given timestamp.
+ */
+ private static long getLastEvenHourBeforeTimestamp(long rawTimestamp) {
+ // If raw hour is even, the hour doesn't need to change as well.
+ // Otherwise, the even hour before raw end should be raw hour - 1.
+ // For example, the even hour before 14:30:50 should be 14:00:00. While the even
+ // hour before 15:30:50 should be 14:00:00.
+ return getEvenHourTimestamp(rawTimestamp, /*addHourOfDay*/ -1);
+ }
+
+ private static long getEvenHourTimestamp(long rawTimestamp, int addHourOfDay) {
+ final Calendar evenHourCalendar = Calendar.getInstance();
+ evenHourCalendar.setTimeInMillis(rawTimestamp);
+ // Before computing the evenHourCalendar, record raw hour based on local timezone.
+ final int rawHour = evenHourCalendar.get(Calendar.HOUR_OF_DAY);
+ if (rawHour % 2 != 0) {
+ evenHourCalendar.add(Calendar.HOUR_OF_DAY, addHourOfDay);
+ }
+ evenHourCalendar.set(Calendar.MINUTE, 0);
+ evenHourCalendar.set(Calendar.SECOND, 0);
+ evenHourCalendar.set(Calendar.MILLISECOND, 0);
+ return evenHourCalendar.getTimeInMillis();
+ }
+
+ private static List<List<Long>> getHourlyTimestamps(final List<Long> dailyTimestamps) {
+ final List<List<Long>> hourlyTimestamps = new ArrayList<>();
+ if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
+ return hourlyTimestamps;
+ }
+
+ for (int dailyStartIndex = 0; dailyStartIndex < dailyTimestamps.size() - 1;
+ dailyStartIndex++) {
+ long currentTimestamp = dailyTimestamps.get(dailyStartIndex);
+ final long dailyEndTimestamp = dailyTimestamps.get(dailyStartIndex + 1);
+ final List<Long> hourlyTimestampsPerDay = new ArrayList<>();
+ while (currentTimestamp <= dailyEndTimestamp) {
+ hourlyTimestampsPerDay.add(currentTimestamp);
+ currentTimestamp += 2 * DateUtils.HOUR_IN_MILLIS;
+ }
+ hourlyTimestamps.add(hourlyTimestampsPerDay);
+ }
+ return hourlyTimestamps;
+ }
+
+ private static List<BatteryLevelData.PeriodBatteryLevelData> getHourlyPeriodBatteryLevelData(
+ Context context,
+ final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
+ final List<List<Long>> timestamps) {
+ final List<BatteryLevelData.PeriodBatteryLevelData> levelData = new ArrayList<>();
+ timestamps.forEach(
+ timestampList -> levelData.add(
+ getPeriodBatteryLevelData(
+ context, processedBatteryHistoryMap, timestampList)));
+ return levelData;
+ }
+
+ private static BatteryLevelData.PeriodBatteryLevelData getPeriodBatteryLevelData(
+ Context context,
+ final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
+ final List<Long> timestamps) {
+ final List<Integer> levels = new ArrayList<>();
+ timestamps.forEach(
+ timestamp -> levels.add(getLevel(context, processedBatteryHistoryMap, timestamp)));
+ return new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels);
+ }
+
+ private static Integer getLevel(
+ Context context,
+ final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
+ final long timestamp) {
+ final Map<String, BatteryHistEntry> entryMap = processedBatteryHistoryMap.get(timestamp);
+ if (entryMap == null || entryMap.isEmpty()) {
+ Log.e(TAG, "abnormal entry list in the timestamp:"
+ + utcToLocalTime(context, timestamp));
+ return null;
+ }
+ // Averages the battery level in each time slot to avoid corner conditions.
+ float batteryLevelCounter = 0;
+ for (BatteryHistEntry entry : entryMap.values()) {
+ batteryLevelCounter += entry.mBatteryLevel;
+ }
+ return Math.round(batteryLevelCounter / entryMap.size());
+ }
+
+ private static void log(Context context, String content, long timestamp,
+ BatteryHistEntry entry) {
+ if (DEBUG) {
+ Log.d(TAG, String.format(entry != null ? "%s %s:\n%s" : "%s %s:%s",
+ utcToLocalTime(context, timestamp), content, entry));
+ }
+ }
+}
diff --git a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java
deleted file mode 100644
index 82766db..0000000
--- a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import static com.android.settings.gestures.PowerMenuSettingsUtils.LONG_PRESS_POWER_ASSISTANT_VALUE;
-import static com.android.settings.gestures.PowerMenuSettingsUtils.LONG_PRESS_POWER_GLOBAL_ACTIONS;
-import static com.android.settings.gestures.PowerMenuSettingsUtils.POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE;
-import static com.android.settings.gestures.PowerMenuSettingsUtils.POWER_BUTTON_LONG_PRESS_SETTING;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-
-import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
-
-/**
- * Configures the behaviour of long press power button action.
- */
-public class LongPressPowerButtonPreferenceController extends TogglePreferenceController {
-
- private static final String KEY_CHORD_POWER_VOLUME_UP_SETTING =
- Settings.Global.KEY_CHORD_POWER_VOLUME_UP;
-
- private static final String FOOTER_HINT_KEY = "power_menu_power_volume_up_hint";
- private static final String ASSIST_SWITCH_KEY = "gesture_power_menu_long_press_for_assist";
-
- /**
- * Values used for volume key chord behaviour when Assist setting is enabled.
- *
- * Values based on config_keyChordPowerVolumeUp in
- * frameworks/base/core/res/res/values/config.xml
- */
- @VisibleForTesting
- static final int KEY_CHORD_POWER_VOLUME_UP_NO_ACTION = 0;
- @VisibleForTesting
- static final int KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE = 1;
- @VisibleForTesting
- static final int KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS = 2;
-
- private static final int KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE =
- com.android.internal.R.integer.config_keyChordPowerVolumeUp;
-
- @MonotonicNonNull
- @VisibleForTesting
- Preference mFooterHint;
-
- @MonotonicNonNull
- @VisibleForTesting
- Preference mAssistSwitch;
-
- public LongPressPowerButtonPreferenceController(Context context, String key) {
- super(context, key);
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- mFooterHint = screen.findPreference(FOOTER_HINT_KEY);
- mAssistSwitch = screen.findPreference(ASSIST_SWITCH_KEY);
- refreshStateDisplay();
- }
-
- @Override
- public CharSequence getSummary() {
- final int powerButtonValue = PowerMenuSettingsUtils.getPowerButtonSettingValue(mContext);
- if (powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) {
- return mContext.getString(R.string.power_menu_summary_long_press_for_assist_enabled);
- } else if (powerButtonValue == LONG_PRESS_POWER_GLOBAL_ACTIONS) {
- return mContext.getString(
- R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu);
- } else {
- return mContext.getString(
- R.string.power_menu_summary_long_press_for_assist_disabled_no_action);
- }
- }
-
- @Override
- public int getAvailabilityStatus() {
- final boolean enabled = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable);
- return enabled ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
- }
-
- @Override
- public boolean isChecked() {
- return PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext);
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- if (setPowerLongPressValue(isChecked)) {
- // The key chord value is dependant on the long press setting and it always
- // toggled in tandem. POWER_BUTTON_LONG_PRESS_SETTING is always the source
- // of truth for both.
- setPowerVolumeChordValue(isChecked);
- refreshStateDisplay();
- return true;
- }
-
- return false;
- }
-
- @Override
- public int getSliceHighlightMenuRes() {
- return R.string.menu_key_system;
- }
-
- private void refreshStateDisplay() {
- if (mAssistSwitch != null) {
- mAssistSwitch.setSummary(getSummary());
- }
-
- if (mFooterHint != null) {
- String footerHintText = mContext.getString(R.string.power_menu_power_volume_up_hint);
- // If the device supports hush gesture, we need to notify the user where to find
- // the setting.
- if (mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_volumeHushGestureEnabled)) {
- footerHintText = footerHintText + "\n\n" + mContext.getString(
- R.string.power_menu_power_prevent_ringing_hint);
- }
-
- mFooterHint.setSummary(footerHintText);
- mFooterHint.setVisible(isPowerMenuKeyChordEnabled(mContext));
- }
- }
-
- private static boolean isPowerMenuKeyChordEnabled(Context context) {
- return Settings.Global.getInt(context.getContentResolver(),
- KEY_CHORD_POWER_VOLUME_UP_SETTING,
- context.getResources().getInteger(
- com.android.internal.R.integer.config_keyChordPowerVolumeUp))
- == KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS;
- }
-
- private boolean setPowerLongPressValue(boolean isChecked) {
- if (isChecked) {
- return Settings.Global.putInt(mContext.getContentResolver(),
- POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_ASSISTANT_VALUE);
- }
-
- // We need to determine the right disabled value based on the device default
- // for long-press power.
-
- // If the default is to start the assistant, then the fallback is GlobalActions.
- final int defaultPowerButtonValue = mContext.getResources().getInteger(
- POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE);
- if (defaultPowerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) {
- return Settings.Global.putInt(mContext.getContentResolver(),
- POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_GLOBAL_ACTIONS);
- }
-
- // If the default is something different than Assist, we use that default.
- return Settings.Global.putInt(mContext.getContentResolver(),
- POWER_BUTTON_LONG_PRESS_SETTING, defaultPowerButtonValue);
- }
-
- /**
- * Updates {@link Settings.Global.KEY_CHORD_POWER_VOLUME_UP} based on the changed value of
- * {@link #POWER_BUTTON_LONG_PRESS_SETTING}. If power button is used for Assist, key chord
- * should show the power menu.
- */
- private boolean setPowerVolumeChordValue(boolean isPowerButtonLongPressChecked) {
- if (isPowerButtonLongPressChecked) {
- return Settings.Global.putInt(mContext.getContentResolver(),
- KEY_CHORD_POWER_VOLUME_UP_SETTING, KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS);
- }
-
- // We restore key chord to the default value.
- int keyChordDefaultValue = mContext.getResources().getInteger(
- KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE);
- return Settings.Global.putInt(mContext.getContentResolver(),
- KEY_CHORD_POWER_VOLUME_UP_SETTING, keyChordDefaultValue);
- }
-
-}
diff --git a/src/com/android/settings/gestures/LongPressPowerFooterPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerFooterPreferenceController.java
new file mode 100644
index 0000000..b4f6def
--- /dev/null
+++ b/src/com/android/settings/gestures/LongPressPowerFooterPreferenceController.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+import android.text.TextUtils;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+/** Configures the behaviour of long press power footer. */
+public class LongPressPowerFooterPreferenceController extends BasePreferenceController
+ implements PowerMenuSettingsUtils.SettingsStateCallback, LifecycleObserver {
+
+ private Preference mPreference;
+ private final PowerMenuSettingsUtils mUtils;
+
+ public LongPressPowerFooterPreferenceController(Context context, String key) {
+ super(context, key);
+ mUtils = new PowerMenuSettingsUtils(context);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+
+ CharSequence footerHintText = mContext.getString(R.string.power_menu_power_volume_up_hint);
+ // If the device supports hush gesture, we need to tell the user where to find the setting.
+ if (mContext.getResources()
+ .getBoolean(com.android.internal.R.bool.config_volumeHushGestureEnabled)) {
+ footerHintText =
+ TextUtils.concat(
+ footerHintText,
+ "\n\n",
+ mContext.getString(R.string.power_menu_power_prevent_ringing_hint));
+ }
+
+ preference.setSummary(footerHintText);
+ preference.setVisible(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext));
+ }
+
+ @Override
+ public void onChange(Uri uri) {
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_START) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ mUtils.registerObserver(this);
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_STOP) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ public void onStop() {
+ mUtils.unregisterObserver();
+ }
+}
diff --git a/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceController.java
new file mode 100644
index 0000000..4a0ad74
--- /dev/null
+++ b/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceController.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+/**
+ * Configures the behaviour of the radio selector to configure long press power button to Assistant.
+ */
+public class LongPressPowerForAssistantPreferenceController extends BasePreferenceController
+ implements PowerMenuSettingsUtils.SettingsStateCallback,
+ SelectorWithWidgetPreference.OnClickListener,
+ LifecycleObserver {
+
+ private SelectorWithWidgetPreference mPreference;
+ private final PowerMenuSettingsUtils mUtils;
+
+ public LongPressPowerForAssistantPreferenceController(Context context, String key) {
+ super(context, key);
+ mUtils = new PowerMenuSettingsUtils(context);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)
+ ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ if (mPreference != null) {
+ mPreference.setOnClickListener(this);
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ if (preference instanceof SelectorWithWidgetPreference) {
+ ((SelectorWithWidgetPreference) preference)
+ .setChecked(
+ PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext));
+ }
+ }
+
+ @Override
+ public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ @Override
+ public void onChange(Uri uri) {
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_START) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ mUtils.registerObserver(this);
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_STOP) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ public void onStop() {
+ mUtils.unregisterObserver();
+ }
+}
diff --git a/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceController.java
new file mode 100644
index 0000000..c11f0e4
--- /dev/null
+++ b/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceController.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+/**
+ * Configures the behaviour of the radio selector to configure long press power button to Power
+ * Menu.
+ */
+public class LongPressPowerForPowerMenuPreferenceController extends BasePreferenceController
+ implements PowerMenuSettingsUtils.SettingsStateCallback,
+ SelectorWithWidgetPreference.OnClickListener,
+ LifecycleObserver {
+
+ private SelectorWithWidgetPreference mPreference;
+ private final PowerMenuSettingsUtils mUtils;
+
+ public LongPressPowerForPowerMenuPreferenceController(Context context, String key) {
+ super(context, key);
+ mUtils = new PowerMenuSettingsUtils(context);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)
+ ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ if (mPreference != null) {
+ mPreference.setOnClickListener(this);
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ if (preference instanceof SelectorWithWidgetPreference) {
+ ((SelectorWithWidgetPreference) preference)
+ .setChecked(
+ !PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext));
+ }
+ }
+
+ @Override
+ public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ @Override
+ public void onChange(Uri uri) {
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_START) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ mUtils.registerObserver(this);
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_STOP) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ public void onStop() {
+ mUtils.unregisterObserver();
+ }
+}
diff --git a/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceController.java
new file mode 100644
index 0000000..b3db9e7
--- /dev/null
+++ b/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.content.Context;
+import android.net.Uri;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.IllustrationPreference;
+
+/** Configures the behaviour of long press power illustration. */
+public class LongPressPowerIllustrationPreferenceController extends BasePreferenceController
+ implements PowerMenuSettingsUtils.SettingsStateCallback, LifecycleObserver {
+
+ private IllustrationPreference mIllustrationPreference;
+ private final PowerMenuSettingsUtils mUtils;
+
+ public LongPressPowerIllustrationPreferenceController(Context context, String key) {
+ super(context, key);
+ mUtils = new PowerMenuSettingsUtils(context);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mIllustrationPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+
+ ((IllustrationPreference) preference)
+ .setLottieAnimationResId(
+ PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)
+ ? R.raw.lottie_long_press_power_for_assistant
+ : R.raw.lottie_long_press_power_for_power_menu);
+ }
+
+ @Override
+ public void onChange(Uri uri) {
+ if (mIllustrationPreference != null) {
+ updateState(mIllustrationPreference);
+ }
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_START) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
+ public void onStart() {
+ mUtils.registerObserver(this);
+ }
+
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_STOP) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
+ public void onStop() {
+ mUtils.unregisterObserver();
+ }
+}
diff --git a/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceController.java
index a1d681c..6df4d72 100644
--- a/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceController.java
+++ b/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceController.java
@@ -17,37 +17,28 @@
package com.android.settings.gestures;
import android.content.Context;
-import android.database.ContentObserver;
-import android.os.Handler;
+import android.net.Uri;
import android.provider.Settings;
import androidx.annotation.Nullable;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.SliderPreferenceController;
import com.android.settings.widget.LabeledSeekBarPreference;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
/** Handles changes to the long press power button sensitivity slider. */
-public class LongPressPowerSensitivityPreferenceController extends
- SliderPreferenceController implements
- LifecycleObserver, OnStart, OnStop {
-
- private final ContentObserver mPowerButtonObserver = new ContentObserver(Handler.getMain()) {
- @Override
- public void onChange(boolean selfChange) {
- if (mPreference != null) {
- updateState(mPreference);
- }
- }
- };
+public class LongPressPowerSensitivityPreferenceController extends SliderPreferenceController
+ implements PowerMenuSettingsUtils.SettingsStateCallback, LifecycleObserver {
@Nullable
private final int[] mSensitivityValues;
+ private final PowerMenuSettingsUtils mUtils;
+
@Nullable
private LabeledSeekBarPreference mPreference;
@@ -55,18 +46,19 @@
super(context, preferenceKey);
mSensitivityValues = context.getResources().getIntArray(
com.android.internal.R.array.config_longPressOnPowerDurationSettings);
+ mUtils = new PowerMenuSettingsUtils(context);
}
- @Override
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_START) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
- mContext.getContentResolver().registerContentObserver(
- Settings.Global.getUriFor(PowerMenuSettingsUtils.POWER_BUTTON_LONG_PRESS_SETTING),
- false, mPowerButtonObserver);
+ mUtils.registerObserver(this);
}
- @Override
+ /** @OnLifecycleEvent(Lifecycle.Event.ON_STOP) */
+ @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop() {
- mContext.getContentResolver().unregisterContentObserver(mPowerButtonObserver);
+ mUtils.unregisterObserver();
}
@Override
@@ -86,21 +78,19 @@
public void updateState(Preference preference) {
super.updateState(preference);
final LabeledSeekBarPreference pref = (LabeledSeekBarPreference) preference;
- pref.setEnabled(
- isAvailable() && PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext));
+ pref.setVisible(
+ PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)
+ && getAvailabilityStatus() == AVAILABLE);
pref.setProgress(getSliderPosition());
}
@Override
public int getAvailabilityStatus() {
- if (mSensitivityValues == null || mSensitivityValues.length < 2) {
+ if (mSensitivityValues == null
+ || mSensitivityValues.length < 2
+ || !PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)) {
return UNSUPPORTED_ON_DEVICE;
}
-
- if (!PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext)) {
- return DISABLED_DEPENDENT_SETTING;
- }
-
return AVAILABLE;
}
@@ -121,6 +111,13 @@
}
@Override
+ public void onChange(Uri uri) {
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
+ @Override
public int getMax() {
if (mSensitivityValues == null || mSensitivityValues.length == 0) {
return 0;
diff --git a/src/com/android/settings/gestures/PowerMenuPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
index b4f97aa..599dd18 100644
--- a/src/com/android/settings/gestures/PowerMenuPreferenceController.java
+++ b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
@@ -16,9 +16,6 @@
package com.android.settings.gestures;
-import static com.android.settings.gestures.PowerMenuSettingsUtils.LONG_PRESS_POWER_ASSISTANT_VALUE;
-import static com.android.settings.gestures.PowerMenuSettingsUtils.LONG_PRESS_POWER_GLOBAL_ACTIONS;
-
import android.content.Context;
import com.android.settings.R;
@@ -32,25 +29,17 @@
@Override
public CharSequence getSummary() {
- final int powerButtonValue = PowerMenuSettingsUtils.getPowerButtonSettingValue(mContext);
- if (powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) {
- return mContext.getText(R.string.power_menu_summary_long_press_for_assist_enabled);
- } else if (powerButtonValue == LONG_PRESS_POWER_GLOBAL_ACTIONS) {
- return mContext.getText(
- R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu);
+ if (PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)) {
+ return mContext.getText(R.string.power_menu_summary_long_press_for_assistant);
} else {
- return mContext.getText(
- R.string.power_menu_summary_long_press_for_assist_disabled_no_action);
+ return mContext.getText(R.string.power_menu_summary_long_press_for_power_menu);
}
}
@Override
public int getAvailabilityStatus() {
- return isAssistInvocationAvailable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
- }
-
- private boolean isAssistInvocationAvailable() {
- return mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable);
+ return PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)
+ ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
}
}
diff --git a/src/com/android/settings/gestures/PowerMenuSettingsUtils.java b/src/com/android/settings/gestures/PowerMenuSettingsUtils.java
index 444b7c1..b110381 100644
--- a/src/com/android/settings/gestures/PowerMenuSettingsUtils.java
+++ b/src/com/android/settings/gestures/PowerMenuSettingsUtils.java
@@ -16,53 +16,163 @@
package com.android.settings.gestures;
+import android.content.ContentResolver;
import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
import android.provider.Settings;
/** Common code for long press power settings shared between controllers. */
final class PowerMenuSettingsUtils {
- /**
- * Setting storing the current behaviour of long press power.
- */
- public static final String POWER_BUTTON_LONG_PRESS_SETTING =
+ /** Setting storing the current behaviour of long press power. */
+ private static final String POWER_BUTTON_LONG_PRESS_SETTING =
Settings.Global.POWER_BUTTON_LONG_PRESS;
+ /** Setting storing the current behaviour of key chord power + volume up. */
+ private static final String KEY_CHORD_POWER_VOLUME_UP_SETTING =
+ Settings.Global.KEY_CHORD_POWER_VOLUME_UP;
+
/**
- * Value used for long press power button behaviour when the Assist setting is disabled.
+ * Value used for long press power button behaviour when long press power for Assistant is
+ * disabled.
*
- * If this value matches Assist setting, then it falls back to Global Actions panel or
- * power menu, depending on their respective settings.
+ * <p>If this value matches long press power for Assistant, then it falls back to Global Actions
+ * panel (i.e., the Power Menu), depending on their respective settings.
*/
- public static final int POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE =
+ private static final int POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE =
com.android.internal.R.integer.config_longPressOnPowerBehavior;
/**
- * Values used for long press power button behaviour when Assist setting is enabled.
- *
- * {@link com.android.server.policy.PhoneWindowManager#LONG_PRESS_POWER_GLOBAL_ACTIONS} for
- * source of the value.
+ * Value used for key chord power + volume up behaviour when long press power for Assistant is
+ * disabled.
*/
- static final int LONG_PRESS_POWER_NO_ACTION = 0;
- static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1;
- static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT
+ private static final int KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE =
+ com.android.internal.R.integer.config_keyChordPowerVolumeUp;
+
+ private static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1; // a.k.a., Power Menu
+ private static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT
+
+ private static final int KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS = 2;
+
+ private static final Uri POWER_BUTTON_LONG_PRESS_URI =
+ Settings.Global.getUriFor(POWER_BUTTON_LONG_PRESS_SETTING);
/**
- * @return current value of power button behaviour.
+ * @return true if long press power for assistant is currently enabled.
*/
- public static int getPowerButtonSettingValue(Context context) {
- return Settings.Global.getInt(context.getContentResolver(),
+ public static boolean isLongPressPowerForAssistantEnabled(Context context) {
+ int longPressPowerSettingValue = Settings.Global.getInt(
+ context.getContentResolver(),
POWER_BUTTON_LONG_PRESS_SETTING,
context.getResources().getInteger(POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE));
+ return longPressPowerSettingValue == LONG_PRESS_POWER_ASSISTANT_VALUE;
}
/**
- * @return true if long press power for assist is currently enabled.
+ * @return true if long press power for assistant setting is available on the device.
*/
- public static boolean isLongPressPowerForAssistEnabled(Context context) {
- return getPowerButtonSettingValue(context) == LONG_PRESS_POWER_ASSISTANT_VALUE;
+ public static boolean isLongPressPowerSettingAvailable(Context context) {
+ if (!context.getResources().getBoolean(
+ com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable)) {
+ return false;
+ }
+
+ int defaultLongPressPowerSettingValue =
+ context.getResources().getInteger(POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE);
+ switch (defaultLongPressPowerSettingValue) {
+ case LONG_PRESS_POWER_GLOBAL_ACTIONS:
+ case LONG_PRESS_POWER_ASSISTANT_VALUE:
+ // We support switching between Power Menu and Digital Assistant.
+ return true;
+ default:
+ // All other combinations are not supported.
+ return false;
+ }
}
- private PowerMenuSettingsUtils() {
+ public static boolean setLongPressPowerForAssistant(Context context) {
+ if (Settings.Global.putInt(
+ context.getContentResolver(),
+ POWER_BUTTON_LONG_PRESS_SETTING,
+ LONG_PRESS_POWER_ASSISTANT_VALUE)) {
+ // Make power + volume up buttons to open the power menu
+ Settings.Global.putInt(
+ context.getContentResolver(),
+ KEY_CHORD_POWER_VOLUME_UP_SETTING,
+ KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS);
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean setLongPressPowerForPowerMenu(Context context) {
+ if (Settings.Global.putInt(
+ context.getContentResolver(),
+ POWER_BUTTON_LONG_PRESS_SETTING,
+ LONG_PRESS_POWER_GLOBAL_ACTIONS)) {
+ // We restore power + volume up buttons to the default action.
+ int keyChordDefaultValue =
+ context.getResources()
+ .getInteger(KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE);
+ Settings.Global.putInt(
+ context.getContentResolver(),
+ KEY_CHORD_POWER_VOLUME_UP_SETTING,
+ keyChordDefaultValue);
+ return true;
+ }
+ return false;
+ }
+
+ private final Context mContext;
+ private final SettingsObserver mSettingsObserver;
+
+ PowerMenuSettingsUtils(Context context) {
+ mContext = context;
+ mSettingsObserver = new SettingsObserver(new Handler(Looper.getMainLooper()));
+ }
+
+ /**
+ * Registers callback for observing SettingsProvider state.
+ *
+ * @param callback for state changes
+ */
+ public void registerObserver(SettingsStateCallback callback) {
+ mSettingsObserver.setCallback(callback);
+ final ContentResolver resolver = mContext.getContentResolver();
+ resolver.registerContentObserver(POWER_BUTTON_LONG_PRESS_URI, true, mSettingsObserver);
+ }
+
+ /** Unregisters callback for observing SettingsProvider state. */
+ public void unregisterObserver() {
+ final ContentResolver resolver = mContext.getContentResolver();
+ resolver.unregisterContentObserver(mSettingsObserver);
+ }
+
+ /** An interface for when SettingsProvider key state changes. */
+ public interface SettingsStateCallback {
+ /** Callback method for SettingsProvider key state changes. */
+ void onChange(Uri uri);
+ }
+
+ private static final class SettingsObserver extends ContentObserver {
+ private SettingsStateCallback mCallback;
+
+ SettingsObserver(Handler handler) {
+ super(handler);
+ }
+
+ private void setCallback(SettingsStateCallback callback) {
+ mCallback = callback;
+ }
+
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ if (mCallback != null) {
+ mCallback.onChange(uri);
+ }
+ }
}
}
diff --git a/src/com/android/settings/notification/AppBubbleListPreferenceController.java b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
index 6ebb376..bf7fcc0 100644
--- a/src/com/android/settings/notification/AppBubbleListPreferenceController.java
+++ b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
@@ -51,7 +51,7 @@
private static final String KEY = "bubble_conversations";
public AppBubbleListPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -80,25 +80,25 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
// copy rather than inherit super's isAvailable because apps can link to this page
// as part of onboarding, before they send a valid conversation notification
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (mBackend.onlyHasDefaultChannel(mAppRow.pkg, mAppRow.uid)
|| NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
}
if (mAppRow.bubblePreference == BUBBLE_PREFERENCE_NONE) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return AVAILABLE;
+ return true;
}
@VisibleForTesting
diff --git a/src/com/android/settings/notification/app/AddToHomeScreenPreferenceController.java b/src/com/android/settings/notification/app/AddToHomeScreenPreferenceController.java
index 12b8075..e5afd9d 100644
--- a/src/com/android/settings/notification/app/AddToHomeScreenPreferenceController.java
+++ b/src/com/android/settings/notification/app/AddToHomeScreenPreferenceController.java
@@ -32,7 +32,7 @@
private static final String KEY = "add_to_home";
public AddToHomeScreenPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -41,11 +41,11 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
- return mConversationInfo != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mConversationInfo != null;
}
@Override
diff --git a/src/com/android/settings/notification/app/AllowSoundPreferenceController.java b/src/com/android/settings/notification/app/AllowSoundPreferenceController.java
index 99d0873..0664c54 100644
--- a/src/com/android/settings/notification/app/AllowSoundPreferenceController.java
+++ b/src/com/android/settings/notification/app/AllowSoundPreferenceController.java
@@ -40,7 +40,7 @@
public AllowSoundPreferenceController(Context context,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_IMPORTANCE);
+ super(context, backend);
mDependentFieldListener = dependentFieldListener;
}
@@ -50,14 +50,11 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
- if (mChannel != null && NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return mChannel != null && NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId());
}
diff --git a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
index 6c2c0c3..92cd911 100644
--- a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
@@ -64,7 +64,7 @@
public AppChannelsBypassingDndPreferenceController(
Context context,
NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -110,8 +110,8 @@
}
@Override
- public int getAvailabilityStatus() {
- return mAppRow != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ return mAppRow != null;
}
@Override
diff --git a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
index e7b2378..dd44a13 100644
--- a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
@@ -49,12 +49,7 @@
protected PreferenceCategory mPreference;
public AppConversationListPreferenceController(Context context, NotificationBackend backend) {
- this(context, backend, KEY);
- }
-
- public AppConversationListPreferenceController(Context context, NotificationBackend backend,
- String key) {
- super(context, backend, key);
+ super(context, backend);
}
@Override
@@ -63,24 +58,21 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (mBackend.onlyHasDefaultChannel(mAppRow.pkg, mAppRow.uid)
|| NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
}
- if (mBackend.hasSentValidMsg(mAppRow.pkg, mAppRow.uid) || mBackend.isInInvalidMsgState(
- mAppRow.pkg, mAppRow.uid)) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return mBackend.hasSentValidMsg(mAppRow.pkg, mAppRow.uid) || mBackend.isInInvalidMsgState(
+ mAppRow.pkg, mAppRow.uid);
}
@Override
diff --git a/src/com/android/settings/notification/app/AppLinkPreferenceController.java b/src/com/android/settings/notification/app/AppLinkPreferenceController.java
index ecf9670..043ae69 100644
--- a/src/com/android/settings/notification/app/AppLinkPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppLinkPreferenceController.java
@@ -32,7 +32,7 @@
private static final String KEY_APP_LINK = "app_link";
public AppLinkPreferenceController(Context context) {
- super(context, null, KEY_APP_LINK);
+ super(context, null);
}
@Override
@@ -41,11 +41,11 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
- return mAppRow.settingsIntent != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mAppRow.settingsIntent != null;
}
@Override
diff --git a/src/com/android/settings/notification/app/BadgePreferenceController.java b/src/com/android/settings/notification/app/BadgePreferenceController.java
index f94dfb5..108fa1d 100644
--- a/src/com/android/settings/notification/app/BadgePreferenceController.java
+++ b/src/com/android/settings/notification/app/BadgePreferenceController.java
@@ -38,7 +38,7 @@
public BadgePreferenceController(Context context,
NotificationBackend backend) {
- super(context, backend, KEY_BADGE);
+ super(context, backend);
}
@Override
@@ -47,29 +47,25 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mAppRow == null && mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (Settings.Secure.getInt(mContext.getContentResolver(),
NOTIFICATION_BADGING, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (isDefaultChannel()) {
- return AVAILABLE;
+ return true;
} else {
- return mAppRow == null
- ? CONDITIONALLY_UNAVAILABLE
- : mAppRow.showBadge
- ? AVAILABLE
- : CONDITIONALLY_UNAVAILABLE;
+ return mAppRow == null ? false : mAppRow.showBadge;
}
}
- return AVAILABLE;
+ return true;
}
@Override
diff --git a/src/com/android/settings/notification/app/BlockPreferenceController.java b/src/com/android/settings/notification/app/BlockPreferenceController.java
index ea3eaeb..f4e2132 100644
--- a/src/com/android/settings/notification/app/BlockPreferenceController.java
+++ b/src/com/android/settings/notification/app/BlockPreferenceController.java
@@ -42,7 +42,7 @@
public BlockPreferenceController(Context context,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_BLOCK);
+ super(context, backend);
mDependentFieldListener = dependentFieldListener;
}
@@ -52,14 +52,14 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mPreferenceFilter != null && !isIncludedInFilter()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return AVAILABLE;
+ return true;
}
@Override
diff --git a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
index da67afe..ad3a10c 100644
--- a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
@@ -32,15 +32,15 @@
static final int ON = 1;
public BubbleCategoryPreferenceController(Context context) {
- super(context, null, KEY);
+ super(context, null);
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
- return areBubblesEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return areBubblesEnabled();
}
@Override
diff --git a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
index ed1c9b5..0b9529b 100644
--- a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
@@ -32,15 +32,15 @@
static final int ON = 1;
public BubbleLinkPreferenceController(Context context) {
- super(context, null, KEY);
+ super(context, null);
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
- return areBubblesEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return areBubblesEnabled();
}
@Override
diff --git a/src/com/android/settings/notification/app/BubblePreferenceController.java b/src/com/android/settings/notification/app/BubblePreferenceController.java
index 516a45e..351b463 100644
--- a/src/com/android/settings/notification/app/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/app/BubblePreferenceController.java
@@ -56,7 +56,7 @@
public BubblePreferenceController(Context context, @Nullable FragmentManager fragmentManager,
NotificationBackend backend, boolean isAppPage,
@Nullable NotificationSettings.DependentFieldListener listener) {
- super(context, backend, KEY);
+ super(context, backend);
mFragmentManager = fragmentManager;
mIsAppPage = isAppPage;
mListener = listener;
@@ -68,24 +68,21 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (!mIsAppPage && !isEnabled()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (isDefaultChannel()) {
- return AVAILABLE;
+ return true;
} else {
- if (mAppRow != null && mAppRow.bubblePreference != BUBBLE_PREFERENCE_NONE) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return mAppRow != null && mAppRow.bubblePreference != BUBBLE_PREFERENCE_NONE;
}
}
- return AVAILABLE;
+ return true;
}
@Override
diff --git a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
index abbe89e..51370b1 100644
--- a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
@@ -42,31 +42,28 @@
static final int ON = 1;
public BubbleSummaryPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (!isGloballyEnabled()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (isDefaultChannel()) {
- return AVAILABLE;
+ return true;
} else {
- return mAppRow != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mAppRow != null;
}
}
- if (isGloballyEnabled() && mBackend.hasSentValidBubble(mAppRow.pkg, mAppRow.uid)) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return isGloballyEnabled() && mBackend.hasSentValidBubble(mAppRow.pkg, mAppRow.uid);
}
@Override
diff --git a/src/com/android/settings/notification/app/ChannelListPreferenceController.java b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
index 8d07911..8db3b21 100644
--- a/src/com/android/settings/notification/app/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
@@ -28,7 +28,6 @@
import android.os.Bundle;
import android.provider.Settings;
import android.text.TextUtils;
-import android.util.Slog;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -40,19 +39,16 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.applications.AppInfoBase;
-import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.notification.NotificationBackend;
import com.android.settingslib.PrimarySwitchPreference;
import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-public class ChannelListPreferenceController extends NotificationPreferenceController
- implements BasePreferenceController.UiBlocker {
+public class ChannelListPreferenceController extends NotificationPreferenceController {
private static final String KEY = "channels";
private static final String KEY_GENERAL_CATEGORY = "categories";
@@ -63,7 +59,7 @@
private PreferenceCategory mPreference;
public ChannelListPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -72,20 +68,20 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null) {
if (mBackend.onlyHasDefaultChannel(mAppRow.pkg, mAppRow.uid)
|| NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
}
- return AVAILABLE;
+ return true;
}
@Override
@@ -95,17 +91,24 @@
@Override
public void updateState(Preference preference) {
- mPreference = (PreferenceCategory) preference;
- // Load channel settings
- ThreadUtils.postOnBackgroundThread(() -> {
+ mPreference = (PreferenceCategory) preference;
+ // Load channel settings
+ new AsyncTask<Void, Void, Void>() {
+ @Override
+ protected Void doInBackground(Void... unused) {
mChannelGroupList = mBackend.getGroups(mAppRow.pkg, mAppRow.uid).getList();
Collections.sort(mChannelGroupList, CHANNEL_GROUP_COMPARATOR);
- ThreadUtils.getUiThreadHandler().getLooper().prepare();
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(Void unused) {
+ if (mContext == null) {
+ return;
+ }
updateFullList(mPreference, mChannelGroupList);
- ThreadUtils.postOnMainThread(() -> {
- showPreferences();
- });
- });
+ }
+ }.execute();
}
/**
@@ -141,12 +144,6 @@
}
}
- private void showPreferences() {
- if (mUiBlockListener != null) {
- mUiBlockListener.onBlockerWorkFinished(this);
- }
- }
-
/**
* Looks for the category for the given group's key at the expected index, if that doesn't
* match, it checks all groups, and if it can't find that group anywhere, it creates it.
diff --git a/src/com/android/settings/notification/app/ConversationDemotePreferenceController.java b/src/com/android/settings/notification/app/ConversationDemotePreferenceController.java
index ba7ca35..02f639c 100644
--- a/src/com/android/settings/notification/app/ConversationDemotePreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationDemotePreferenceController.java
@@ -37,7 +37,7 @@
public ConversationDemotePreferenceController(Context context,
SettingsPreferenceFragment hostFragment,
NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
mHostFragment = hostFragment;
}
@@ -47,17 +47,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mAppRow == null || mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (!TextUtils.isEmpty(mChannel.getConversationId()) && !mChannel.isDemoted()) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return !TextUtils.isEmpty(mChannel.getConversationId()) && !mChannel.isDemoted();
}
@Override
diff --git a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
index 56de88b..f99a56a 100644
--- a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
@@ -45,7 +45,7 @@
private boolean mStarted = false;
public ConversationHeaderPreferenceController(Context context, DashboardFragment fragment) {
- super(context, null, PREF_KEY_APP_HEADER);
+ super(context, null);
mFragment = fragment;
}
@@ -55,8 +55,8 @@
}
@Override
- public int getAvailabilityStatus() {
- return mAppRow != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ return mAppRow != null;
}
@Override
diff --git a/src/com/android/settings/notification/app/ConversationPriorityPreferenceController.java b/src/com/android/settings/notification/app/ConversationPriorityPreferenceController.java
index 46bc3c0..ae16928 100644
--- a/src/com/android/settings/notification/app/ConversationPriorityPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationPriorityPreferenceController.java
@@ -34,7 +34,7 @@
public ConversationPriorityPreferenceController(Context context,
NotificationBackend backend, NotificationSettings.DependentFieldListener listener) {
- super(context, backend, KEY);
+ super(context, backend);
mDependentFieldListener = listener;
}
@@ -44,14 +44,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mAppRow == null || mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return AVAILABLE;
+ return true;
}
@Override
diff --git a/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java b/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
index a5ef569..24c3d2f 100644
--- a/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationPromotePreferenceController.java
@@ -37,7 +37,7 @@
public ConversationPromotePreferenceController(Context context,
SettingsPreferenceFragment hostFragment,
NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
mHostFragment = hostFragment;
}
@@ -47,17 +47,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mAppRow == null || mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (!TextUtils.isEmpty(mChannel.getConversationId()) && mChannel.isDemoted()) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return !TextUtils.isEmpty(mChannel.getConversationId()) && mChannel.isDemoted();
}
@Override
diff --git a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
index cd160df..77a692f 100644
--- a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
+++ b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
@@ -30,7 +30,7 @@
private static final String KEY_DELETED = "deleted";
public DeletedChannelsPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY_DELETED);
+ super(context, backend);
}
@Override
@@ -39,19 +39,16 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
// only visible on app screen
if (mChannel != null || hasValidGroup()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid) > 0) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid) > 0;
}
@Override
diff --git a/src/com/android/settings/notification/app/DescriptionPreferenceController.java b/src/com/android/settings/notification/app/DescriptionPreferenceController.java
index 413a876..0a5bb2f 100644
--- a/src/com/android/settings/notification/app/DescriptionPreferenceController.java
+++ b/src/com/android/settings/notification/app/DescriptionPreferenceController.java
@@ -29,7 +29,7 @@
private static final String KEY_DESC = "desc";
public DescriptionPreferenceController(Context context) {
- super(context, null, KEY_DESC);
+ super(context, null);
}
@Override
@@ -38,20 +38,20 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null && !hasValidGroup()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannel != null && !TextUtils.isEmpty(mChannel.getDescription())) {
- return AVAILABLE;
+ return true;
}
if (hasValidGroup() && !TextUtils.isEmpty(mChannelGroup.getDescription())) {
- return AVAILABLE;
+ return true;
}
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
@Override
diff --git a/src/com/android/settings/notification/app/DndPreferenceController.java b/src/com/android/settings/notification/app/DndPreferenceController.java
index 811eeb4..b65928a 100644
--- a/src/com/android/settings/notification/app/DndPreferenceController.java
+++ b/src/com/android/settings/notification/app/DndPreferenceController.java
@@ -31,7 +31,7 @@
private static final String KEY_BYPASS_DND = "bypass_dnd";
public DndPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY_BYPASS_DND);
+ super(context, backend);
}
@Override
@@ -40,11 +40,11 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE || mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable() || mChannel == null) {
+ return false;
}
- return AVAILABLE;
+ return true;
}
@Override
diff --git a/src/com/android/settings/notification/app/HeaderPreferenceController.java b/src/com/android/settings/notification/app/HeaderPreferenceController.java
index c4b0e59..7379d55 100644
--- a/src/com/android/settings/notification/app/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/HeaderPreferenceController.java
@@ -45,7 +45,7 @@
private boolean mStarted = false;
public HeaderPreferenceController(Context context, DashboardFragment fragment) {
- super(context, null, PREF_KEY_APP_HEADER);
+ super(context, null);
mFragment = fragment;
}
@@ -55,8 +55,8 @@
}
@Override
- public int getAvailabilityStatus() {
- return mAppRow != null ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ return mAppRow != null;
}
@Override
diff --git a/src/com/android/settings/notification/app/HighImportancePreferenceController.java b/src/com/android/settings/notification/app/HighImportancePreferenceController.java
index 98dc8a7..d60668b 100644
--- a/src/com/android/settings/notification/app/HighImportancePreferenceController.java
+++ b/src/com/android/settings/notification/app/HighImportancePreferenceController.java
@@ -37,7 +37,7 @@
public HighImportancePreferenceController(Context context,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_IMPORTANCE);
+ super(context, backend);
mDependentFieldListener = dependentFieldListener;
}
@@ -47,19 +47,17 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (isDefaultChannel()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return mChannel.getImportance() >= IMPORTANCE_DEFAULT
- ? AVAILABLE
- : CONDITIONALLY_UNAVAILABLE;
+ return mChannel.getImportance() >= IMPORTANCE_DEFAULT;
}
@Override
diff --git a/src/com/android/settings/notification/app/ImportancePreferenceController.java b/src/com/android/settings/notification/app/ImportancePreferenceController.java
index 31ddac3..3c32ca4 100644
--- a/src/com/android/settings/notification/app/ImportancePreferenceController.java
+++ b/src/com/android/settings/notification/app/ImportancePreferenceController.java
@@ -38,7 +38,7 @@
public ImportancePreferenceController(Context context,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_IMPORTANCE);
+ super(context, backend);
mDependentFieldListener = dependentFieldListener;
}
@@ -48,14 +48,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return !isDefaultChannel() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return !isDefaultChannel();
}
@Override
diff --git a/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java b/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
index bb2c58b..b937e80 100644
--- a/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
+++ b/src/com/android/settings/notification/app/InvalidConversationInfoPreferenceController.java
@@ -31,7 +31,7 @@
public InvalidConversationInfoPreferenceController(Context context,
NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -40,19 +40,17 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mPreferenceFilter != null && !isIncludedInFilter()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return mBackend.isInInvalidMsgState(mAppRow.pkg, mAppRow.uid)
- ? AVAILABLE
- : CONDITIONALLY_UNAVAILABLE;
+ return mBackend.isInInvalidMsgState(mAppRow.pkg, mAppRow.uid);
}
@Override
diff --git a/src/com/android/settings/notification/app/InvalidConversationPreferenceController.java b/src/com/android/settings/notification/app/InvalidConversationPreferenceController.java
index 219ccbc..5c502dc 100644
--- a/src/com/android/settings/notification/app/InvalidConversationPreferenceController.java
+++ b/src/com/android/settings/notification/app/InvalidConversationPreferenceController.java
@@ -31,7 +31,7 @@
private static final String KEY = "invalid_conversation_switch";
public InvalidConversationPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY);
+ super(context, backend);
}
@Override
@@ -40,19 +40,17 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mPreferenceFilter != null && !isIncludedInFilter()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return mBackend.isInInvalidMsgState(mAppRow.pkg, mAppRow.uid)
- ? AVAILABLE
- : CONDITIONALLY_UNAVAILABLE;
+ return mBackend.isInInvalidMsgState(mAppRow.pkg, mAppRow.uid);
}
@Override
diff --git a/src/com/android/settings/notification/app/LightsPreferenceController.java b/src/com/android/settings/notification/app/LightsPreferenceController.java
index f7f9244..d096922 100644
--- a/src/com/android/settings/notification/app/LightsPreferenceController.java
+++ b/src/com/android/settings/notification/app/LightsPreferenceController.java
@@ -33,7 +33,7 @@
private static final String KEY_LIGHTS = "lights";
public LightsPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY_LIGHTS);
+ super(context, backend);
}
@Override
@@ -42,18 +42,16 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) && canPulseLight()
- && !isDefaultChannel()) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
+ && canPulseLight()
+ && !isDefaultChannel();
}
@Override
diff --git a/src/com/android/settings/notification/app/MinImportancePreferenceController.java b/src/com/android/settings/notification/app/MinImportancePreferenceController.java
index b2c0862..f825763 100644
--- a/src/com/android/settings/notification/app/MinImportancePreferenceController.java
+++ b/src/com/android/settings/notification/app/MinImportancePreferenceController.java
@@ -37,7 +37,7 @@
public MinImportancePreferenceController(Context context,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_IMPORTANCE);
+ super(context, backend);
mDependentFieldListener = dependentFieldListener;
}
@@ -47,17 +47,17 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (isDefaultChannel()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- return mChannel.getImportance() <= IMPORTANCE_LOW ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mChannel.getImportance() <= IMPORTANCE_LOW;
}
@Override
diff --git a/src/com/android/settings/notification/app/NotificationPreferenceController.java b/src/com/android/settings/notification/app/NotificationPreferenceController.java
index 271a83d..fb19d9d 100644
--- a/src/com/android/settings/notification/app/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/app/NotificationPreferenceController.java
@@ -17,24 +17,26 @@
package com.android.settings.notification.app;
import static android.app.NotificationManager.IMPORTANCE_NONE;
+import static android.os.UserHandle.USER_SYSTEM;
import android.annotation.Nullable;
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Drawable;
import android.os.UserManager;
+import android.provider.Settings;
import android.util.Log;
-import android.util.Slog;
import androidx.preference.Preference;
-import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.NotificationBackend;
import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.core.AbstractPreferenceController;
import java.util.Comparator;
import java.util.List;
@@ -44,7 +46,7 @@
* Parent class for preferences appearing on notification setting pages at the app,
* notification channel group, or notification channel level.
*/
-public abstract class NotificationPreferenceController extends BasePreferenceController {
+public abstract class NotificationPreferenceController extends AbstractPreferenceController {
private static final String TAG = "ChannelPrefContr";
@Nullable
protected NotificationChannel mChannel;
@@ -69,11 +71,8 @@
boolean overrideCanBlockValue;
boolean overrideCanConfigureValue;
- boolean mLoadedChannelState;
-
- public NotificationPreferenceController(Context context, NotificationBackend backend,
- String key) {
- super(context, key);
+ public NotificationPreferenceController(Context context, NotificationBackend backend) {
+ super(context);
mContext = context;
mNm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
mBackend = backend;
@@ -82,30 +81,28 @@
}
/**
- * Returns available if field's parent object is not blocked.
+ * Returns true if field's parent object is not blocked.
*/
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mChannelGroup != null) {
if (mChannelGroup.isBlocked()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
}
if (mChannel != null) {
if (mPreferenceFilter != null && !isIncludedInFilter()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if(mChannel.getImportance() == IMPORTANCE_NONE) {
- return CONDITIONALLY_UNAVAILABLE;
- }
+ return mChannel.getImportance() != IMPORTANCE_NONE;
}
- return AVAILABLE;
+ return true;
}
protected void onResume(NotificationBackend.AppRow appRow,
diff --git a/src/com/android/settings/notification/app/NotificationSettings.java b/src/com/android/settings/notification/app/NotificationSettings.java
index 5750167..192a0ee 100644
--- a/src/com/android/settings/notification/app/NotificationSettings.java
+++ b/src/com/android/settings/notification/app/NotificationSettings.java
@@ -41,7 +41,6 @@
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
-import android.util.Slog;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
@@ -130,52 +129,15 @@
}
}
- mUserId = UserHandle.getUserId(mUid);
mPkgInfo = findPackageInfo(mPkg, mUid);
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- if (mIntent == null && mArgs == null) {
- toastAndFinish("no intent");
- return;
- }
-
- if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null) {
- toastAndFinish("Missing package or uid or packageinfo");
- return;
- }
-
- startListeningToPackageRemove();
- }
-
- @Override
- public void onDestroy() {
- stopListeningToPackageRemove();
- super.onDestroy();
- }
-
- @Override
- public void onResume() {
- super.onResume();
- if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null) {
- toastAndFinish("Missing package or uid or packageinfo");
- return;
- }
- mPkgInfo = findPackageInfo(mPkg, mUid);
if (mPkgInfo != null) {
+ mUserId = UserHandle.getUserId(mUid);
mSuspendedAppsAdmin = RestrictedLockUtilsInternal.checkIfApplicationIsSuspended(
mContext, mPkg, mUserId);
- loadAppRow();
- if (mAppRow == null) {
- toastAndFinish("Can't load package");
- return;
- }
loadChannel();
- loadConversation();
+ loadAppRow();
loadChannelGroup();
loadPreferencesFilter();
collectConfigActivities();
@@ -195,6 +157,55 @@
}
}
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (mIntent == null && mArgs == null) {
+ Log.w(TAG, "No intent");
+ toastAndFinish();
+ return;
+ }
+
+ if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null) {
+ Log.w(TAG, "Missing package or uid or packageinfo");
+ toastAndFinish();
+ return;
+ }
+
+ startListeningToPackageRemove();
+ }
+
+ @Override
+ public void onDestroy() {
+ stopListeningToPackageRemove();
+ super.onDestroy();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mAppRow == null) {
+ Log.w(TAG, "Missing package or uid or packageinfo");
+ finish();
+ return;
+ }
+ // Reload app, channel, etc onResume in case they've changed. A little wasteful if we've
+ // just done onAttach but better than making every preference controller reload all
+ // the data
+ loadAppRow();
+ if (mAppRow == null) {
+ Log.w(TAG, "Can't load package");
+ finish();
+ return;
+ }
+ loadChannel();
+ loadConversation();
+ loadChannelGroup();
+ loadPreferencesFilter();
+ collectConfigActivities();
+ }
+
protected void animatePanel() {
if (mPreferenceFilter != null) {
mLayoutView = getActivity().findViewById(R.id.main_content);
@@ -296,8 +307,7 @@
}
}
- protected void toastAndFinish(String msg) {
- Log.w(TAG, msg);
+ protected void toastAndFinish() {
Toast.makeText(mContext, R.string.app_not_found_dlg_text, Toast.LENGTH_SHORT).show();
getActivity().finish();
}
diff --git a/src/com/android/settings/notification/app/NotificationsOffPreferenceController.java b/src/com/android/settings/notification/app/NotificationsOffPreferenceController.java
index 46625c3..0c7cd23 100644
--- a/src/com/android/settings/notification/app/NotificationsOffPreferenceController.java
+++ b/src/com/android/settings/notification/app/NotificationsOffPreferenceController.java
@@ -30,7 +30,7 @@
private static final String KEY_BLOCKED_DESC = "block_desc";
public NotificationsOffPreferenceController(Context context) {
- super(context, null, KEY_BLOCKED_DESC);
+ super(context, null);
}
@Override
@@ -39,20 +39,16 @@
}
@Override
- public int getAvailabilityStatus() {
+ public boolean isAvailable() {
if (mAppRow == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
if (mPreferenceFilter != null && !isIncludedInFilter()) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
// Available only when other controllers are unavailable - this UI replaces the UI that
// would give more detailed notification controls.
- if (super.getAvailabilityStatus() == AVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
- } else {
- return AVAILABLE;
- }
+ return !super.isAvailable();
}
@Override
diff --git a/src/com/android/settings/notification/app/SoundPreferenceController.java b/src/com/android/settings/notification/app/SoundPreferenceController.java
index 335b442..b23b4fc 100644
--- a/src/com/android/settings/notification/app/SoundPreferenceController.java
+++ b/src/com/android/settings/notification/app/SoundPreferenceController.java
@@ -47,7 +47,7 @@
public SoundPreferenceController(Context context, SettingsPreferenceFragment hostFragment,
NotificationSettings.DependentFieldListener dependentFieldListener,
NotificationBackend backend) {
- super(context, backend, KEY_SOUND);
+ super(context, backend);
mFragment = hostFragment;
mListener = dependentFieldListener;
}
@@ -58,17 +58,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) && !isDefaultChannel()) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ return checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) && !isDefaultChannel();
}
@Override
diff --git a/src/com/android/settings/notification/app/VibrationPreferenceController.java b/src/com/android/settings/notification/app/VibrationPreferenceController.java
index f91999f..34d1a54 100644
--- a/src/com/android/settings/notification/app/VibrationPreferenceController.java
+++ b/src/com/android/settings/notification/app/VibrationPreferenceController.java
@@ -34,7 +34,7 @@
private final Vibrator mVibrator;
public VibrationPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, KEY_VIBRATE);
+ super(context, backend);
mVibrator = context.getSystemService(Vibrator.class);
}
@@ -44,15 +44,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE || mChannel == null) {
- return CONDITIONALLY_UNAVAILABLE;
- }
- if (checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT) && !isDefaultChannel()
- && mVibrator != null && mVibrator.hasVibrator()) {
- return AVAILABLE;
- }
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable() || mChannel == null) {
+ return false;
+ }
+ return checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
+ && !isDefaultChannel()
+ && mVibrator != null
+ && mVibrator.hasVibrator();
}
@Override
diff --git a/src/com/android/settings/notification/app/VisibilityPreferenceController.java b/src/com/android/settings/notification/app/VisibilityPreferenceController.java
index 3f33267..a2a1d76 100644
--- a/src/com/android/settings/notification/app/VisibilityPreferenceController.java
+++ b/src/com/android/settings/notification/app/VisibilityPreferenceController.java
@@ -48,7 +48,7 @@
public VisibilityPreferenceController(Context context, LockPatternUtils utils,
NotificationBackend backend) {
- super(context, backend, KEY_VISIBILITY_OVERRIDE);
+ super(context, backend);
mLockPatternUtils = utils;
}
@@ -58,18 +58,14 @@
}
@Override
- public int getAvailabilityStatus() {
- if (super.getAvailabilityStatus() == CONDITIONALLY_UNAVAILABLE) {
- return CONDITIONALLY_UNAVAILABLE;
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
}
if (mChannel == null || mAppRow.banned) {
- return CONDITIONALLY_UNAVAILABLE;
+ return false;
}
- if (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) && isLockScreenSecure()) {
- return AVAILABLE;
- }
-
- return CONDITIONALLY_UNAVAILABLE;
+ return checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) && isLockScreenSecure();
}
@Override
diff --git a/src/com/android/settings/notification/zen/ZenModeAutomationSettings.java b/src/com/android/settings/notification/zen/ZenModeAutomationSettings.java
index 31a4ba7..4f18e5d 100644
--- a/src/com/android/settings/notification/zen/ZenModeAutomationSettings.java
+++ b/src/com/android/settings/notification/zen/ZenModeAutomationSettings.java
@@ -51,16 +51,6 @@
private boolean[] mDeleteDialogChecked;
@Override
- public void onAttach(Context context) {
- super.onAttach(context);
- Bundle bundle = getArguments();
- if (bundle != null && bundle.containsKey(DELETE)) {
- mBackend.removeZenRule(bundle.getString(DELETE));
- bundle.remove(DELETE);
- }
- }
-
- @Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
ZenServiceListing serviceListing = new ZenServiceListing(getContext(), CONFIG);
serviceListing.reloadApprovedServices();
diff --git a/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java b/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java
index 3b7cde0..023a770 100644
--- a/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenRuleButtonsPreferenceController.java
@@ -103,8 +103,7 @@
new ZenDeleteRuleDialog.PositiveClickListener() {
@Override
public void onOk(String id) {
- Bundle bundle = new Bundle();
- bundle.putString(ZenModeAutomationSettings.DELETE, id);
+ mBackend.removeZenRule(id);
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_ZEN_DELETE_RULE_OK);
new SubSettingLauncher(mContext)
@@ -112,7 +111,6 @@
.setDestination(ZenModeAutomationSettings.class.getName())
.setSourceMetricsCategory(MetricsProto.MetricsEvent
.NOTIFICATION_ZEN_MODE_AUTOMATION)
- .setArguments(bundle)
.launch();
}
});
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 7151c6d..fd925ec 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -143,7 +143,8 @@
}
final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout);
- layout.setDescriptionText("");
+ layout.setDescriptionText(
+ getString(R.string.lockpassword_choose_your_pattern_description));
}
@Override
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index ce91c9e..9fd8d06 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -22,7 +22,6 @@
import android.content.res.TypedArray;
import android.text.TextUtils;
import android.util.AttributeSet;
-import android.view.ViewGroup;
import android.widget.Switch;
import androidx.core.content.res.TypedArrayUtils;
@@ -35,8 +34,6 @@
import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
-import com.google.android.setupdesign.util.LayoutStyler;
-
import java.util.ArrayList;
import java.util.List;
@@ -52,7 +49,6 @@
new ArrayList<>();
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
- private boolean mApplyPartnerCustomizationPaddingStyle;
private SettingsMainSwitchBar mMainSwitchBar;
private CharSequence mTitle;
private EnforcedAdmin mEnforcedAdmin;
@@ -100,12 +96,6 @@
} else {
mMainSwitchBar.hide();
}
-
- if (mApplyPartnerCustomizationPaddingStyle) {
- // TODO(b/232494666): Replace all margins of the root view with the padding
- final ViewGroup parentView = (ViewGroup) mMainSwitchBar.getParent();
- LayoutStyler.applyPartnerCustomizationLayoutPaddingStyle(parentView);
- }
}
private void init(Context context, AttributeSet attrs) {
@@ -253,14 +243,6 @@
}
}
- /**
- * Apples the padding style of the partner's customization. It's used in the SetupWizard.
- */
- public void applyPartnerCustomizationPaddingStyle() {
- mApplyPartnerCustomizationPaddingStyle = true;
- notifyChanged();
- }
-
private void initMainSwitchBar() {
if (mMainSwitchBar != null) {
mMainSwitchBar.setTitle(mTitle);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
index 898e433..493436c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
@@ -34,7 +34,6 @@
import com.android.settings.R;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricEnrollIntroduction;
-import com.android.settings.password.SetupChooseLockGeneric.SetupChooseLockGenericFragment;
import com.android.settings.password.SetupSkipDialog;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowFingerprintManager;
@@ -160,8 +159,6 @@
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
assertThat(shadowActivity.getResultIntent()).isNotNull();
- assertThat(shadowActivity.getResultIntent().hasExtra(
- SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isTrue();
}
@Test
@@ -191,8 +188,6 @@
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
assertThat(shadowActivity.getResultIntent()).isNotNull();
- assertThat(shadowActivity.getResultIntent().hasExtra(
- SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isTrue();
}
@Test
@@ -218,8 +213,6 @@
BiometricEnrollBase.RESULT_FINISHED, null);
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
assertThat(shadowActivity.getResultIntent()).isNotNull();
- assertThat(shadowActivity.getResultIntent().hasExtra(
- SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isFalse();
}
@Test
@@ -260,8 +253,6 @@
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
IntentForResult startedActivity = shadowActivity.getNextStartedActivityForResult();
assertThat(startedActivity).isNotNull();
- assertThat(startedActivity.intent.hasExtra(
- SetupChooseLockGenericFragment.EXTRA_PASSWORD_QUALITY)).isFalse();
}
private ShadowKeyguardManager getShadowKeyguardManager() {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
index a53e693..bdcf742 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
@@ -369,14 +369,6 @@
}
@Test
- public void pairingStringIsFormattedCorrectly() {
- final String device = "test_device";
- final Context context = RuntimeEnvironment.application;
- assertThat(context.getString(R.string.bluetooth_pb_acceptance_dialog_text, device, device))
- .contains(device);
- }
-
- @Test
public void pairingDialogDismissedOnPositiveClick() {
// set the dialog variant to confirmation/consent
when(controller.getDialogType()).thenReturn(BluetoothPairingController.CONFIRMATION_DIALOG);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java
index c40d359..a25afed 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerV2Test.java
@@ -55,6 +55,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
@@ -173,11 +174,11 @@
for (int index = 0; index < DESIRED_HISTORY_SIZE; index++) {
assertThat(mBatteryChartPreferenceController.mBatteryHistoryKeys[index])
// These values is are calculated by hand from createBatteryHistoryMap().
- .isEqualTo(index + 1);
+ .isEqualTo(generateTimestamp(index));
}
// Verifies the created battery levels array.
for (int index = 0; index < 13; index++) {
- assertThat(mBatteryChartPreferenceController.mBatteryHistoryLevels[index])
+ assertThat(mBatteryChartPreferenceController.mViewModel.levels().get(index))
// These values is are calculated by hand from createBatteryHistoryMap().
.isEqualTo(100 - index * 2);
}
@@ -193,11 +194,11 @@
for (int index = 0; index < DESIRED_HISTORY_SIZE; index++) {
assertThat(mBatteryChartPreferenceController.mBatteryHistoryKeys[index])
// These values is are calculated by hand from createBatteryHistoryMap().
- .isEqualTo(index + 1);
+ .isEqualTo(generateTimestamp(index));
}
// Verifies the created battery levels array.
for (int index = 0; index < 13; index++) {
- assertThat(mBatteryChartPreferenceController.mBatteryHistoryLevels[index])
+ assertThat(mBatteryChartPreferenceController.mViewModel.levels().get(index))
// These values is are calculated by hand from createBatteryHistoryMap().
.isEqualTo(100 - index * 2);
}
@@ -205,67 +206,51 @@
}
@Test
+ public void testSetBatteryChartViewModel() {
+ verify(mBatteryChartPreferenceController.mBatteryChartView)
+ .setViewModel(new BatteryChartViewModel(
+ List.of(100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78, 76),
+ List.of("7 am", "9 am", "11 am", "1 pm", "3 pm", "5 pm", "7 pm",
+ "9 pm", "11 pm", "1 am", "3 am", "5 am", "7 am"),
+ BatteryChartViewModel.SELECTED_INDEX_ALL));
+ }
+
+ @Test
+ public void testRefreshUi_refresh() {
+ assertThat(mBatteryChartPreferenceController.refreshUi()).isTrue();
+ }
+
+ @Test
public void testRefreshUi_batteryIndexedMapIsNull_ignoreRefresh() {
mBatteryChartPreferenceController.setBatteryHistoryMap(null);
- assertThat(mBatteryChartPreferenceController.refreshUi(
- /*trapezoidIndex=*/ 1, /*isForce=*/ false)).isFalse();
+ assertThat(mBatteryChartPreferenceController.refreshUi()).isFalse();
}
@Test
public void testRefreshUi_batteryChartViewIsNull_ignoreRefresh() {
mBatteryChartPreferenceController.mBatteryChartView = null;
- assertThat(mBatteryChartPreferenceController.refreshUi(
- /*trapezoidIndex=*/ 1, /*isForce=*/ false)).isFalse();
- }
-
- @Test
- public void testRefreshUi_trapezoidIndexIsNotChanged_ignoreRefresh() {
- final int trapezoidIndex = 1;
- mBatteryChartPreferenceController.mTrapezoidIndex = trapezoidIndex;
- assertThat(mBatteryChartPreferenceController.refreshUi(
- trapezoidIndex, /*isForce=*/ false)).isFalse();
- }
-
- @Test
- public void testRefreshUi_forceUpdate_refreshUi() {
- final int trapezoidIndex = 1;
- mBatteryChartPreferenceController.mTrapezoidIndex = trapezoidIndex;
- assertThat(mBatteryChartPreferenceController.refreshUi(
- trapezoidIndex, /*isForce=*/ true)).isTrue();
- }
-
- @Test
- public void testForceRefreshUi_updateTrapezoidIndexIntoSelectAll() {
- mBatteryChartPreferenceController.mTrapezoidIndex =
- BatteryChartViewV2.SELECTED_INDEX_INVALID;
- mBatteryChartPreferenceController.setBatteryHistoryMap(
- createBatteryHistoryMap());
-
- assertThat(mBatteryChartPreferenceController.mTrapezoidIndex)
- .isEqualTo(BatteryChartViewV2.SELECTED_INDEX_ALL);
+ assertThat(mBatteryChartPreferenceController.refreshUi()).isFalse();
}
@Test
public void testRemoveAndCacheAllPrefs_emptyContent_ignoreRemoveAll() {
- final int trapezoidIndex = 1;
+ mBatteryChartPreferenceController.mTrapezoidIndex = 1;
doReturn(0).when(mAppListGroup).getPreferenceCount();
- mBatteryChartPreferenceController.refreshUi(
- trapezoidIndex, /*isForce=*/ true);
+ mBatteryChartPreferenceController.refreshUi();
verify(mAppListGroup, never()).removeAll();
}
@Test
public void testRemoveAndCacheAllPrefs_buildCacheAndRemoveAllPreference() {
- final int trapezoidIndex = 1;
+ mBatteryChartPreferenceController.mTrapezoidIndex = 1;
doReturn(1).when(mAppListGroup).getPreferenceCount();
doReturn(mPowerGaugePreference).when(mAppListGroup).getPreference(0);
doReturn(PREF_KEY).when(mPowerGaugePreference).getKey();
// Ensures the testing data is correct.
assertThat(mBatteryChartPreferenceController.mPreferenceCache).isEmpty();
- mBatteryChartPreferenceController.refreshUi(
- trapezoidIndex, /*isForce=*/ true);
+ mBatteryChartPreferenceController.refreshUi();
assertThat(mBatteryChartPreferenceController.mPreferenceCache.get(PREF_KEY))
.isEqualTo(mPowerGaugePreference);
@@ -522,7 +507,7 @@
@Test
public void testOnSelect_selectAll_logMetric() {
mBatteryChartPreferenceController.onSelect(
- BatteryChartViewV2.SELECTED_INDEX_ALL /*slot index*/);
+ BatteryChartViewModel.SELECTED_INDEX_ALL /*slot index*/);
verify(mMetricsFeatureProvider)
.action(mContext, SettingsEnums.ACTION_BATTERY_USAGE_SHOW_ALL);
@@ -562,7 +547,7 @@
spy(new ExpandDividerPreference(mContext));
// Simulates select all condition.
mBatteryChartPreferenceController.mTrapezoidIndex =
- BatteryChartViewV2.SELECTED_INDEX_ALL;
+ BatteryChartViewModel.SELECTED_INDEX_ALL;
mBatteryChartPreferenceController.refreshCategoryTitle();
@@ -581,44 +566,6 @@
}
@Test
- public void testSetTimestampLabel_nullBatteryHistoryKeys_ignore() {
- mBatteryChartPreferenceController = createController();
- mBatteryChartPreferenceController.mBatteryHistoryKeys = null;
- mBatteryChartPreferenceController.mBatteryChartView =
- spy(new BatteryChartViewV2(mContext));
- mBatteryChartPreferenceController.setTimestampLabel();
-
- verify(mBatteryChartPreferenceController.mBatteryChartView, never())
- .setAxisLabels(any());
- }
-
- @Test
- public void testSetTimestampLabel_setExpectedTimestampData() {
- mBatteryChartPreferenceController = createController();
- mBatteryChartPreferenceController.mBatteryChartView =
- spy(new BatteryChartViewV2(mContext));
- setUpBatteryHistoryKeys();
-
- mBatteryChartPreferenceController.setTimestampLabel();
-
- verify(mBatteryChartPreferenceController.mBatteryChartView)
- .setAxisLabels(new String[] {"4 pm", "12 am", "7 am"});
- }
-
- @Test
- public void testSetTimestampLabel_withoutValidTimestamp_setExpectedTimestampData() {
- mBatteryChartPreferenceController = createController();
- mBatteryChartPreferenceController.mBatteryChartView =
- spy(new BatteryChartViewV2(mContext));
- mBatteryChartPreferenceController.mBatteryHistoryKeys = new long[]{0L};
-
- mBatteryChartPreferenceController.setTimestampLabel();
-
- verify(mBatteryChartPreferenceController.mBatteryChartView)
- .setAxisLabels(new String[] {"12 am"});
- }
-
- @Test
public void testOnSaveInstanceState_restoreSelectedIndexAndExpandState() {
final int expectedIndex = 1;
final boolean isExpanded = true;
@@ -663,6 +610,11 @@
.isFalse();
}
+ private static Long generateTimestamp(int index) {
+ // "2021-04-23 07:00:00 UTC" + index hours
+ return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
+ }
+
private static Map<Long, Map<String, BatteryHistEntry>> createBatteryHistoryMap() {
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
for (int index = 0; index < DESIRED_HISTORY_SIZE; index++) {
@@ -671,7 +623,7 @@
final BatteryHistEntry entry = new BatteryHistEntry(values);
final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
entryMap.put("fake_entry_key" + index, entry);
- batteryHistoryMap.put(Long.valueOf(index + 1), entryMap);
+ batteryHistoryMap.put(generateTimestamp(index), entryMap);
}
return batteryHistoryMap;
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2Test.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2Test.java
index 34ba2eb..a8b8d10 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2Test.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewV2Test.java
@@ -42,6 +42,7 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
@@ -100,13 +101,15 @@
@Test
public void onClick_invokesCallback() {
- mBatteryChartView.setLevels(new int[] {90, 80, 70, 60});
+ final int originalSelectedIndex = 2;
+ mBatteryChartView.setViewModel(
+ new BatteryChartViewModel(List.of(90, 80, 70, 60), List.of("", "", "", ""),
+ originalSelectedIndex));
for (int i = 0; i < mBatteryChartView.mTrapezoidSlots.length; i++) {
mBatteryChartView.mTrapezoidSlots[i] = new BatteryChartViewV2.TrapezoidSlot();
mBatteryChartView.mTrapezoidSlots[i].mLeft = i;
mBatteryChartView.mTrapezoidSlots[i].mRight = i + 0.5f;
}
- mBatteryChartView.mSelectedIndex = 2;
final int[] selectedIndex = new int[1];
mBatteryChartView.setOnSelectListener(
trapezoidIndex -> {
@@ -123,7 +126,7 @@
mBatteryChartView.mTouchUpEventX = 2;
selectedIndex[0] = Integer.MIN_VALUE;
mBatteryChartView.onClick(mMockView);
- assertThat(selectedIndex[0]).isEqualTo(BatteryChartViewV2.SELECTED_INDEX_ALL);
+ assertThat(selectedIndex[0]).isEqualTo(BatteryChartViewModel.SELECTED_INDEX_ALL);
}
@Test
@@ -178,11 +181,14 @@
@Test
public void clickable_restoreFromNonClickableState() {
- final int[] levels = new int[13];
- for (int index = 0; index < levels.length; index++) {
- levels[index] = index + 1;
+ final List<Integer> levels = new ArrayList<Integer>();
+ final List<String> texts = new ArrayList<String>();
+ for (int index = 0; index < 13; index++) {
+ levels.add(index + 1);
+ texts.add("");
}
- mBatteryChartView.setLevels(levels);
+ mBatteryChartView.setViewModel(new BatteryChartViewModel(
+ levels, texts, BatteryChartViewModel.SELECTED_INDEX_ALL));
mBatteryChartView.setClickableForce(true);
when(mPowerUsageFeatureProvider.isChartGraphSlotsEnabled(mContext))
.thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
new file mode 100644
index 0000000..0306c4b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -0,0 +1,454 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.text.format.DateUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+@RunWith(RobolectricTestRunner.class)
+public class DataProcessorTest {
+ private static final String FAKE_ENTRY_KEY = "fake_entry_key";
+
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+
+ mContext = spy(RuntimeEnvironment.application);
+ }
+
+ @Test
+ public void getBatteryLevelData_emptyHistoryMap_returnNull() {
+ assertThat(DataProcessor.getBatteryLevelData(mContext, null)).isNull();
+ assertThat(DataProcessor.getBatteryLevelData(mContext, new HashMap<>())).isNull();
+ }
+
+ @Test
+ public void getBatteryLevelData_notEnoughData_returnNull() {
+ // The timestamps are within 1 hour.
+ final long[] timestamps = {1000000L, 2000000L, 3000000L};
+ final int[] levels = {100, 99, 98};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ assertThat(DataProcessor.getBatteryLevelData(mContext, batteryHistoryMap)).isNull();
+ }
+
+ @Test
+ public void getBatteryLevelData_returnExpectedResult() {
+ // Timezone GMT+8: 2022-01-01 00:00:00, 2022-01-01 01:00:00, 2022-01-01 02:00:00
+ final long[] timestamps = {1640966400000L, 1640970000000L, 1640973600000L};
+ final int[] levels = {100, 99, 98};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ final BatteryLevelData resultData =
+ DataProcessor.getBatteryLevelData(mContext, batteryHistoryMap);
+
+ final List<Long> expectedDailyTimestamps = List.of(timestamps[0], timestamps[2]);
+ final List<Integer> expectedDailyLevels = List.of(levels[0], levels[2]);
+ final List<List<Long>> expectedHourlyTimestamps = List.of(expectedDailyTimestamps);
+ final List<List<Integer>> expectedHourlyLevels = List.of(expectedDailyLevels);
+ verifyExpectedBatteryLevelData(
+ resultData,
+ expectedDailyTimestamps,
+ expectedDailyLevels,
+ expectedHourlyTimestamps,
+ expectedHourlyLevels);
+ }
+
+ @Test
+ public void getHistoryMapWithExpectedTimestamps_emptyHistoryMap_returnEmptyMap() {
+ assertThat(DataProcessor
+ .getHistoryMapWithExpectedTimestamps(mContext, new HashMap<>()))
+ .isEmpty();
+ }
+
+ @Test
+ public void getHistoryMapWithExpectedTimestamps_returnExpectedMap() {
+ // Timezone GMT+8
+ final long[] timestamps = {
+ 1640966700000L, // 2022-01-01 00:05:00
+ 1640970180000L, // 2022-01-01 01:03:00
+ 1640973840000L, // 2022-01-01 02:04:00
+ 1640978100000L, // 2022-01-01 03:15:00
+ 1640981400000L // 2022-01-01 04:10:00
+ };
+ final int[] levels = {100, 94, 90, 82, 50};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap =
+ DataProcessor.getHistoryMapWithExpectedTimestamps(mContext, batteryHistoryMap);
+
+ // Timezone GMT+8
+ final long[] expectedTimestamps = {
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640970000000L, // 2022-01-01 01:00:00
+ 1640973600000L, // 2022-01-01 02:00:00
+ 1640977200000L, // 2022-01-01 03:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ };
+ final int[] expectedLevels = {100, 94, 90, 84, 56};
+ assertThat(resultMap).hasSize(expectedLevels.length);
+ for (int index = 0; index < expectedLevels.length; index++) {
+ assertThat(resultMap.get(expectedTimestamps[index]).get(FAKE_ENTRY_KEY).mBatteryLevel)
+ .isEqualTo(expectedLevels[index]);
+ }
+ }
+
+ @Test
+ public void getLevelDataThroughProcessedHistoryMap_notEnoughData_returnNull() {
+ final long[] timestamps = {100L};
+ final int[] levels = {100};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ assertThat(
+ DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap))
+ .isNull();
+ }
+
+ @Test
+ public void getLevelDataThroughProcessedHistoryMap_OneDayData_returnExpectedResult() {
+ // Timezone GMT+8
+ final long[] timestamps = {
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640970000000L, // 2022-01-01 01:00:00
+ 1640973600000L, // 2022-01-01 02:00:00
+ 1640977200000L, // 2022-01-01 03:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ };
+ final int[] levels = {100, 94, 90, 82, 50};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ final BatteryLevelData resultData =
+ DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap);
+
+ final List<Long> expectedDailyTimestamps = List.of(timestamps[0], timestamps[4]);
+ final List<Integer> expectedDailyLevels = List.of(levels[0], levels[4]);
+ final List<List<Long>> expectedHourlyTimestamps = List.of(
+ List.of(timestamps[0], timestamps[2], timestamps[4])
+ );
+ final List<List<Integer>> expectedHourlyLevels = List.of(
+ List.of(levels[0], levels[2], levels[4])
+ );
+ verifyExpectedBatteryLevelData(
+ resultData,
+ expectedDailyTimestamps,
+ expectedDailyLevels,
+ expectedHourlyTimestamps,
+ expectedHourlyLevels);
+ }
+
+ @Test
+ public void getLevelDataThroughProcessedHistoryMap_MultipleDaysData_returnExpectedResult() {
+ // Timezone GMT+8
+ final long[] timestamps = {
+ 1641038400000L, // 2022-01-01 20:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641067200000L, // 2022-01-02 04:00:00
+ 1641081600000L, // 2022-01-02 08:00:00
+ };
+ final int[] levels = {100, 94, 90, 82};
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ createHistoryMap(timestamps, levels);
+
+ final BatteryLevelData resultData =
+ DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap);
+
+ final List<Long> expectedDailyTimestamps = List.of(
+ 1641038400000L, // 2022-01-01 20:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641081600000L // 2022-01-02 08:00:00
+ );
+ final List<Integer> expectedDailyLevels = new ArrayList<>();
+ expectedDailyLevels.add(100);
+ expectedDailyLevels.add(null);
+ expectedDailyLevels.add(82);
+ final List<List<Long>> expectedHourlyTimestamps = List.of(
+ List.of(
+ 1641038400000L, // 2022-01-01 20:00:00
+ 1641045600000L, // 2022-01-01 22:00:00
+ 1641052800000L // 2022-01-02 00:00:00
+ ),
+ List.of(
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641067200000L, // 2022-01-02 04:00:00
+ 1641074400000L, // 2022-01-02 06:00:00
+ 1641081600000L // 2022-01-02 08:00:00
+ )
+ );
+ final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
+ expectedHourlyLevels1.add(100);
+ expectedHourlyLevels1.add(null);
+ expectedHourlyLevels1.add(null);
+ final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
+ expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(94);
+ expectedHourlyLevels2.add(90);
+ expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(82);
+ final List<List<Integer>> expectedHourlyLevels = List.of(
+ expectedHourlyLevels1,
+ expectedHourlyLevels2
+ );
+ verifyExpectedBatteryLevelData(
+ resultData,
+ expectedDailyTimestamps,
+ expectedDailyLevels,
+ expectedHourlyTimestamps,
+ expectedHourlyLevels);
+ }
+
+ @Test
+ public void getTimestampSlots_emptyRawList_returnEmptyList() {
+ final List<Long> resultList =
+ DataProcessor.getTimestampSlots(new ArrayList<>());
+ assertThat(resultList).isEmpty();
+ }
+
+ @Test
+ public void getTimestampSlots_startWithEvenHour_returnExpectedResult() {
+ final Calendar startCalendar = Calendar.getInstance();
+ startCalendar.set(2022, 6, 5, 6, 30, 50); // 2022-07-05 06:30:50
+ final Calendar endCalendar = Calendar.getInstance();
+ endCalendar.set(2022, 6, 5, 22, 30, 50); // 2022-07-05 22:30:50
+
+ final Calendar expectedStartCalendar = Calendar.getInstance();
+ expectedStartCalendar.set(2022, 6, 5, 6, 0, 0); // 2022-07-05 06:00:00
+ final Calendar expectedEndCalendar = Calendar.getInstance();
+ expectedEndCalendar.set(2022, 6, 5, 22, 0, 0); // 2022-07-05 22:00:00
+ verifyExpectedTimestampSlots(
+ startCalendar, endCalendar, expectedStartCalendar, expectedEndCalendar);
+ }
+
+ @Test
+ public void getTimestampSlots_startWithOddHour_returnExpectedResult() {
+ final Calendar startCalendar = Calendar.getInstance();
+ startCalendar.set(2022, 6, 5, 5, 0, 50); // 2022-07-05 05:00:50
+ final Calendar endCalendar = Calendar.getInstance();
+ endCalendar.set(2022, 6, 6, 21, 00, 50); // 2022-07-06 21:00:50
+
+ final Calendar expectedStartCalendar = Calendar.getInstance();
+ expectedStartCalendar.set(2022, 6, 5, 6, 00, 00); // 2022-07-05 06:00:00
+ final Calendar expectedEndCalendar = Calendar.getInstance();
+ expectedEndCalendar.set(2022, 6, 6, 20, 00, 00); // 2022-07-06 20:00:00
+ verifyExpectedTimestampSlots(
+ startCalendar, endCalendar, expectedStartCalendar, expectedEndCalendar);
+ }
+
+ @Test
+ public void getDailyTimestamps_notEnoughData_returnEmptyList() {
+ assertThat(DataProcessor.getDailyTimestamps(new ArrayList<>())).isEmpty();
+ assertThat(DataProcessor.getDailyTimestamps(List.of(100L))).isEmpty();
+ }
+
+ @Test
+ public void getDailyTimestamps_OneDayData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640970000000L, // 2022-01-01 01:00:00
+ 1640973600000L, // 2022-01-01 02:00:00
+ 1640977200000L, // 2022-01-01 03:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ );
+ assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641160800000L, // 2022-01-03 06:00:00
+ 1641254400000L // 2022-01-04 08:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641139200000L, // 2022-01-03 00:00:00
+ 1641225600000L, // 2022-01-04 00:00:00
+ 1641254400000L // 2022-01-04 08:00:00
+ );
+ assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void isFromFullCharge_emptyData_returnFalse() {
+ assertThat(DataProcessor.isFromFullCharge(null)).isFalse();
+ assertThat(DataProcessor.isFromFullCharge(new HashMap<>())).isFalse();
+ }
+
+ @Test
+ public void isFromFullCharge_notChargedData_returnFalse() {
+ final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
+ final ContentValues values = new ContentValues();
+ values.put("batteryLevel", 98);
+ final BatteryHistEntry entry = new BatteryHistEntry(values);
+ entryMap.put(FAKE_ENTRY_KEY, entry);
+
+ assertThat(DataProcessor.isFromFullCharge(entryMap)).isFalse();
+ }
+
+ @Test
+ public void isFromFullCharge_chargedData_returnTrue() {
+ final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
+ final ContentValues values = new ContentValues();
+ values.put("batteryLevel", 100);
+ final BatteryHistEntry entry = new BatteryHistEntry(values);
+ entryMap.put(FAKE_ENTRY_KEY, entry);
+
+ assertThat(DataProcessor.isFromFullCharge(entryMap)).isTrue();
+ }
+
+ @Test
+ public void findNearestTimestamp_returnExpectedResult() {
+ long[] results = DataProcessor.findNearestTimestamp(
+ Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 15L);
+ assertThat(results).isEqualTo(new long[] {10L, 20L});
+
+ results = DataProcessor.findNearestTimestamp(
+ Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 10L);
+ assertThat(results).isEqualTo(new long[] {10L, 10L});
+
+ results = DataProcessor.findNearestTimestamp(
+ Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 5L);
+ assertThat(results).isEqualTo(new long[] {0L, 10L});
+
+ results = DataProcessor.findNearestTimestamp(
+ Arrays.asList(10L, 20L, 30L, 40L), /*target=*/ 50L);
+ assertThat(results).isEqualTo(new long[] {40L, 0L});
+ }
+
+ @Test
+ public void getTimestampOfNextDay_returnExpectedResult() {
+ // 2021-02-28 06:00:00 => 2021-03-01 00:00:00
+ assertThat(DataProcessor.getTimestampOfNextDay(1614463200000L))
+ .isEqualTo(1614528000000L);
+ // 2021-12-31 16:00:00 => 2022-01-01 00:00:00
+ assertThat(DataProcessor.getTimestampOfNextDay(1640937600000L))
+ .isEqualTo(1640966400000L);
+ }
+
+ private static Map<Long, Map<String, BatteryHistEntry>> createHistoryMap(
+ final long[] timestamps, final int[] levels) {
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
+ for (int index = 0; index < timestamps.length; index++) {
+ final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
+ final ContentValues values = new ContentValues();
+ values.put(BatteryHistEntry.KEY_BATTERY_LEVEL, levels[index]);
+ final BatteryHistEntry entry = new BatteryHistEntry(values);
+ entryMap.put(FAKE_ENTRY_KEY, entry);
+ batteryHistoryMap.put(timestamps[index], entryMap);
+ }
+ return batteryHistoryMap;
+ }
+
+ private static void verifyExpectedBatteryLevelData(
+ final BatteryLevelData resultData,
+ final List<Long> expectedDailyTimestamps,
+ final List<Integer> expectedDailyLevels,
+ final List<List<Long>> expectedHourlyTimestamps,
+ final List<List<Integer>> expectedHourlyLevels) {
+ final BatteryLevelData.PeriodBatteryLevelData dailyResultData =
+ resultData.getDailyBatteryLevels();
+ final List<BatteryLevelData.PeriodBatteryLevelData> hourlyResultData =
+ resultData.getHourlyBatteryLevelsPerDay();
+ verifyExpectedDailyBatteryLevelData(
+ dailyResultData, expectedDailyTimestamps, expectedDailyLevels);
+ verifyExpectedHourlyBatteryLevelData(
+ hourlyResultData, expectedHourlyTimestamps, expectedHourlyLevels);
+ }
+
+ private static void verifyExpectedDailyBatteryLevelData(
+ final BatteryLevelData.PeriodBatteryLevelData dailyResultData,
+ final List<Long> expectedDailyTimestamps,
+ final List<Integer> expectedDailyLevels) {
+ assertThat(dailyResultData.getTimestamps()).isEqualTo(expectedDailyTimestamps);
+ assertThat(dailyResultData.getLevels()).isEqualTo(expectedDailyLevels);
+ }
+
+ private static void verifyExpectedHourlyBatteryLevelData(
+ final List<BatteryLevelData.PeriodBatteryLevelData> hourlyResultData,
+ final List<List<Long>> expectedHourlyTimestamps,
+ final List<List<Integer>> expectedHourlyLevels) {
+ final int expectedHourlySize = expectedHourlyTimestamps.size();
+ assertThat(hourlyResultData).hasSize(expectedHourlySize);
+ for (int dailyIndex = 0; dailyIndex < expectedHourlySize; dailyIndex++) {
+ assertThat(hourlyResultData.get(dailyIndex).getTimestamps())
+ .isEqualTo(expectedHourlyTimestamps.get(dailyIndex));
+ assertThat(hourlyResultData.get(dailyIndex).getLevels())
+ .isEqualTo(expectedHourlyLevels.get(dailyIndex));
+ }
+ }
+
+ private static void verifyExpectedTimestampSlots(
+ final Calendar start,
+ final Calendar end,
+ final Calendar expectedStart,
+ final Calendar expectedEnd) {
+ expectedStart.set(Calendar.MILLISECOND, 0);
+ expectedEnd.set(Calendar.MILLISECOND, 0);
+ final ArrayList<Long> timestampSlots = new ArrayList<>();
+ timestampSlots.add(start.getTimeInMillis());
+ timestampSlots.add(end.getTimeInMillis());
+ final List<Long> resultList =
+ DataProcessor.getTimestampSlots(timestampSlots);
+
+ for (int index = 0; index < resultList.size(); index++) {
+ final long expectedTimestamp =
+ expectedStart.getTimeInMillis() + index * DateUtils.HOUR_IN_MILLIS;
+ assertThat(resultList.get(index)).isEqualTo(expectedTimestamp);
+ }
+ assertThat(resultList.get(resultList.size() - 1))
+ .isEqualTo(expectedEnd.getTimeInMillis());
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java
deleted file mode 100644
index 5637e96..0000000
--- a/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Application;
-import android.content.res.Resources;
-import android.provider.Settings;
-
-import androidx.annotation.StringRes;
-import androidx.preference.Preference;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.mockito.stubbing.Answer;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class LongPressPowerButtonPreferenceControllerTest {
-
- private static final String KEY_LONG_PRESS_POWER_BUTTON =
- "gesture_power_menu_long_press_for_assist";
-
- private Application mContext;
- private Resources mResources;
- private LongPressPowerButtonPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(ApplicationProvider.getApplicationContext());
- mResources = mock(Resources.class);
- when(mContext.getResources()).thenReturn(mResources);
- when(mResources.getString(anyInt())).thenAnswer((Answer<String>) invocation -> {
- int id = invocation.getArgument(0);
- return getString(id);
- });
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(true);
- mController = new LongPressPowerButtonPreferenceController(mContext,
- KEY_LONG_PRESS_POWER_BUTTON);
- mController.mAssistSwitch = mock(Preference.class);
- mController.mFooterHint = mock(Preference.class);
- }
-
- @Test
- public void isAvailable_configIsTrue_shouldReturnTrue() {
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(true);
-
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void isAvailable_configIsFalse_shouldReturnFalse() {
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(false);
-
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void preferenceChecked_powerMenuHintTextShown() {
- mController.onPreferenceChange(null, true);
-
- verify(mController.mFooterHint).setSummary(
- getString(
- R.string.power_menu_power_volume_up_hint));
- verify(mController.mFooterHint).setVisible(true);
- }
-
-
- @Test
- public void preferenceUnchecked_keyChordEnabled_powerMenuHintTextShown() {
- when(mResources.getInteger(
- com.android.internal.R.integer.config_keyChordPowerVolumeUp))
- .thenReturn(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS);
-
- mController.onPreferenceChange(null, false);
-
- verify(mController.mFooterHint).setSummary(
- getString(
- R.string.power_menu_power_volume_up_hint));
- verify(mController.mFooterHint).setVisible(true);
- }
-
- @Test
- public void preferenceChecked_hushGestureEnabled_powerMenuHintTextIncludesHushHint() {
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_volumeHushGestureEnabled))
- .thenReturn(true);
-
- mController.onPreferenceChange(null, true);
-
- verify(mController.mFooterHint).setSummary(
- getString(
- R.string.power_menu_power_volume_up_hint) + "\n\n"
- + getString(
- R.string.power_menu_power_prevent_ringing_hint));
- verify(mController.mFooterHint).setVisible(true);
- }
-
-
- @Test
- public void preferenceUnchecked_keyChordDisabled_powerMenuHintTextHidden() {
- mController.onPreferenceChange(null, false);
- when(mResources.getInteger(
- com.android.internal.R.integer.config_keyChordPowerVolumeUp))
- .thenReturn(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
-
- verify(mController.mFooterHint).setVisible(false);
- }
-
- @Test
- public void preferenceChecked_longPressPowerSettingSetToAssistant() {
- mController.onPreferenceChange(null, true);
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
- PowerMenuSettingsUtils.LONG_PRESS_POWER_ASSISTANT_VALUE);
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS);
- }
-
- @Test
- public void preferenceUnchecked_longPressPowerSettingSetToDefaultValue() {
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
- .thenReturn(
- PowerMenuSettingsUtils.LONG_PRESS_POWER_GLOBAL_ACTIONS);
-
- mController.onPreferenceChange(null, false);
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
- PowerMenuSettingsUtils.LONG_PRESS_POWER_GLOBAL_ACTIONS);
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
- verify(mController.mAssistSwitch).setSummary(
- getString(
- R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu));
- }
-
- @Test
- public void preferenceUnchecked_muteChordDefault_longPressPowerSettingSetToDefaultValue() {
- // Value out of range chosen deliberately.
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
- .thenReturn(8);
- when(mResources.getInteger(
- com.android.internal.R.integer.config_keyChordPowerVolumeUp))
- .thenReturn(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
-
- mController.onPreferenceChange(null, false);
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8);
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
- }
-
- @Test
- public void preferenceUnchecked_assistDefault_setNoAction() {
- // Ensure that the Assistant is the default behavior for LPP.
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
- .thenReturn(
- PowerMenuSettingsUtils.LONG_PRESS_POWER_ASSISTANT_VALUE);
-
- mController.onPreferenceChange(null, false);
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(
- PowerMenuSettingsUtils.LONG_PRESS_POWER_GLOBAL_ACTIONS);
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo(
- LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION);
- verify(mController.mAssistSwitch).setSummary(getString(
- R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu));
- }
-
- private String getString(@StringRes int id) {
- return ApplicationProvider.getApplicationContext().getString(id);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..e1cd53e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerFooterPreferenceControllerTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.Application;
+import android.content.res.Resources;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.FooterPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class LongPressPowerFooterPreferenceControllerTest {
+
+ private Application mContext;
+ private Resources mResources;
+ private Preference mPreference;
+ private LongPressPowerFooterPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
+ when(mContext.getResources()).thenReturn(mResources);
+ mPreference = new FooterPreference(mContext);
+ mController = new LongPressPowerFooterPreferenceController(mContext, "test_key");
+
+ PreferenceScreen mScreen = mock(PreferenceScreen.class);
+ when(mScreen.findPreference("test_key")).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ }
+
+ @Test
+ public void updateState_longPressPowerForPowerMenu_hidesPreference() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void updateState_longPressPowerForAssistant_showsPreference() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ }
+
+ @Test
+ public void updateState_notEligible_showsPreference() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ }
+
+ @Test
+ public void updateState_hushGestureEnabled_includesPreventRingingHint() {
+ when(mResources.getBoolean(com.android.internal.R.bool.config_volumeHushGestureEnabled))
+ .thenReturn(true);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString())
+ .isEqualTo(
+ TextUtils.concat(
+ mContext.getString(R.string.power_menu_power_volume_up_hint),
+ "\n\n",
+ mContext.getString(
+ R.string.power_menu_power_prevent_ringing_hint)));
+ }
+
+ @Test
+ public void updateState_hushGestureDisabled_doesNotIncludePreventRingingHint() {
+ when(mResources.getBoolean(com.android.internal.R.bool.config_volumeHushGestureEnabled))
+ .thenReturn(false);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getSummary().toString())
+ .isEqualTo(mContext.getString(R.string.power_menu_power_volume_up_hint));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceControllerTest.java
new file mode 100644
index 0000000..e210077
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerForAssistantPreferenceControllerTest.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.Application;
+import android.content.res.Resources;
+
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class LongPressPowerForAssistantPreferenceControllerTest {
+
+ private Application mContext;
+ private Resources mResources;
+ private SelectorWithWidgetPreference mPreference;
+ private LongPressPowerForAssistantPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
+ mPreference = new SelectorWithWidgetPreference(mContext);
+ mController = new LongPressPowerForAssistantPreferenceController(mContext, "test_key");
+
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(5); // Default to Assistant
+
+ PreferenceScreen mScreen = mock(PreferenceScreen.class);
+ when(mScreen.findPreference("test_key")).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ mController.onStart();
+ }
+
+ @Test
+ public void initialState_longPressPowerForPowerMenu_preferenceNotChecked() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void initialState_longPressPowerForAssistant_preferenceChecked() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+ @Test
+ public void getAvailabilityStatus_longPressPowerSettingAvailable_returnsAvailable() {
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_longPressPowerSettingNotAvailable_returnsNotAvailable() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(false);
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ public void onClick_updatesSettingsValue_checksPreference() {
+ // Initial state: preference not checked
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+ mController.updateState(mPreference);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isFalse();
+ assertThat(mPreference.isChecked()).isFalse();
+
+ mPreference.performClick();
+
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isTrue();
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceControllerTest.java
new file mode 100644
index 0000000..ea6557b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerForPowerMenuPreferenceControllerTest.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.Application;
+import android.content.res.Resources;
+
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class LongPressPowerForPowerMenuPreferenceControllerTest {
+
+ private Application mContext;
+ private Resources mResources;
+ private SelectorWithWidgetPreference mPreference;
+ private LongPressPowerForPowerMenuPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
+ mPreference = new SelectorWithWidgetPreference(mContext);
+ mController = new LongPressPowerForPowerMenuPreferenceController(mContext, "test_key");
+
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(5); // Default to Assistant
+
+ PreferenceScreen mScreen = mock(PreferenceScreen.class);
+ when(mScreen.findPreference("test_key")).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ mController.onStart();
+ }
+
+ @Test
+ public void initialState_longPressPowerForPowerMenu_preferenceChecked() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+ @Test
+ public void initialState_longPressPowerForAssistant_preferenceNotChecked() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void getAvailabilityStatus_longPressPowerSettingAvailable_returnsAvailable() {
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_longPressPowerSettingNotAvailable_returnsNotAvailable() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(false);
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ public void onClick_updatesSettingsValue_checksPreference() {
+ // Initial state: preference not checked
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+ mController.updateState(mPreference);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isTrue();
+ assertThat(mPreference.isChecked()).isFalse();
+
+ mPreference.performClick();
+
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isFalse();
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceControllerTest.java
new file mode 100644
index 0000000..37a4c0b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerIllustrationPreferenceControllerTest.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.Application;
+
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.IllustrationPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class LongPressPowerIllustrationPreferenceControllerTest {
+
+ private Application mContext;
+ private IllustrationPreference mPreference;
+ private LongPressPowerIllustrationPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = ApplicationProvider.getApplicationContext();
+ mPreference = new IllustrationPreference(mContext);
+ mController = new LongPressPowerIllustrationPreferenceController(mContext, "test_key");
+
+ PreferenceScreen mScreen = mock(PreferenceScreen.class);
+ when(mScreen.findPreference("test_key")).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ }
+
+ @Test
+ public void updateState_longPressPowerForPowerMenu_showsPowerMenuAnimation() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getLottieAnimationResId())
+ .isEqualTo(R.raw.lottie_long_press_power_for_power_menu);
+ }
+
+ @Test
+ public void updateState_longPressPowerForAssistant_showsAssistantAnimation() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.getLottieAnimationResId())
+ .isEqualTo(R.raw.lottie_long_press_power_for_assistant);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceControllerTest.java
index 9c99092..d1c0922 100644
--- a/tests/robotests/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerSensitivityPreferenceControllerTest.java
@@ -26,14 +26,20 @@
import android.content.res.Resources;
import android.provider.Settings;
+import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.widget.LabeledSeekBarPreference;
+import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowInteractionJankMonitor.class})
public class LongPressPowerSensitivityPreferenceControllerTest {
private static final String KEY_LONG_PRESS_SENSITIVITY =
@@ -43,7 +49,9 @@
private Application mContext;
private Resources mResources;
+ private LabeledSeekBarPreference mPreference;
private LongPressPowerSensitivityPreferenceController mController;
+ private PreferenceScreen mScreen;
@Before
public void setUp() {
@@ -52,11 +60,22 @@
when(mContext.getResources()).thenReturn(mResources);
when(mResources.getIntArray(
- com.android.internal.R.array.config_longPressOnPowerDurationSettings))
+ com.android.internal.R.array.config_longPressOnPowerDurationSettings))
.thenReturn(SENSITIVITY_VALUES);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(5); // Default to Assistant
+ mPreference = new LabeledSeekBarPreference(mContext, null);
mController = new LongPressPowerSensitivityPreferenceController(mContext,
KEY_LONG_PRESS_SENSITIVITY);
+
+ mScreen = mock(PreferenceScreen.class);
+ when(mScreen.findPreference(KEY_LONG_PRESS_SENSITIVITY)).thenReturn(mPreference);
+ mController.displayPreference(mScreen);
}
@Test
@@ -98,46 +117,64 @@
}
@Test
- public void longPressForAssistEnabled_isAvailable() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS,
- PowerMenuSettingsUtils.LONG_PRESS_POWER_ASSISTANT_VALUE);
+ public void longPressForAssistant_isVisible() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- LongPressPowerSensitivityPreferenceController.AVAILABLE);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isTrue();
}
@Test
- public void longPressForAssistDisabled_isNotAvailableDueToDependentSetting() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS,
- PowerMenuSettingsUtils.LONG_PRESS_POWER_NO_ACTION);
+ public void longPressForPowerMenu_isHidden() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- LongPressPowerSensitivityPreferenceController.DISABLED_DEPENDENT_SETTING);
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isFalse();
}
@Test
- public void sensitivityValuesAreNull_notAvailable() {
+ public void longPressPowerSettingNotAvailable_notAvailable_isHidden() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(false);
+
+ mController.updateState(mPreference);
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(LongPressPowerSensitivityPreferenceController.UNSUPPORTED_ON_DEVICE);
+ assertThat(mPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void sensitivityValuesAreNull_notAvailable_isHidden() {
when(mResources.getIntArray(
com.android.internal.R.array.config_longPressOnPowerDurationSettings))
.thenReturn(null);
mController = new LongPressPowerSensitivityPreferenceController(mContext,
KEY_LONG_PRESS_SENSITIVITY);
+ mController.displayPreference(mScreen);
+ mController.updateState(mPreference);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
LongPressPowerSensitivityPreferenceController.UNSUPPORTED_ON_DEVICE);
+ assertThat(mPreference.isVisible()).isFalse();
}
@Test
- public void sensitivityValuesArrayTooShort_notAvailable() {
+ public void sensitivityValuesArrayTooShort_notAvailable_isHidden() {
when(mResources.getIntArray(
com.android.internal.R.array.config_longPressOnPowerDurationSettings))
.thenReturn(new int[]{200});
mController = new LongPressPowerSensitivityPreferenceController(mContext,
KEY_LONG_PRESS_SENSITIVITY);
+ mController.displayPreference(mScreen);
+ mController.updateState(mPreference);
assertThat(mController.getAvailabilityStatus()).isEqualTo(
LongPressPowerSensitivityPreferenceController.UNSUPPORTED_ON_DEVICE);
+ assertThat(mPreference.isVisible()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
index 1a82a13..0dc16cc 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
@@ -18,20 +18,21 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
public class PowerMenuPreferenceControllerTest {
@@ -41,35 +42,75 @@
private static final String KEY_GESTURE_POWER_MENU = "gesture_power_menu";
-
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
- mResources = mock(Resources.class);
- when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(true);
- when(mContext.getResources()).thenReturn(mResources);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
mController = new PowerMenuPreferenceController(mContext, KEY_GESTURE_POWER_MENU);
+
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1); // Default to power menu
}
@Test
- public void getAvailabilityStatus_assistAvailable_available() {
+ public void getAvailabilityStatus_settingsAvailable_returnsAvailable() {
when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(true);
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1); // Default to power menu
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.AVAILABLE);
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
- public void getAvailabilityStatus_assistUnavailable_unavailable() {
+ public void getAvailabilityStatus_settingsNotAvailable_returnsNotAvailable() {
when(mResources.getBoolean(
- com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
- .thenReturn(false);
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(false);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1); // Default to power menu
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_longPressPowerSettingNotAvailable_returnsNotAvailable() {
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(3); // Default to power off (unsupported setup)
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ public void getSummary_longPressPowerToAssistant_returnsNotAvailable() {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ assertThat(mController.getSummary().toString())
+ .isEqualTo(
+ mContext.getString(R.string.power_menu_summary_long_press_for_assistant));
+ }
+
+ @Test
+ public void getSummary_longPressPowerToPowerMenu_returnsNotAvailable() {
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ assertThat(mController.getSummary().toString())
+ .isEqualTo(
+ mContext.getString(R.string.power_menu_summary_long_press_for_power_menu));
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuSettingsUtilsTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuSettingsUtilsTest.java
index 25f0320..3f16b63 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuSettingsUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuSettingsUtilsTest.java
@@ -44,48 +44,123 @@
mContext = spy(ApplicationProvider.getApplicationContext());
mResources = mock(Resources.class);
when(mContext.getResources()).thenReturn(mResources);
+
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(true);
}
@Test
- public void longPressBehaviourValuePresent_returnsValue() {
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
- .thenReturn(0);
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, 1);
-
- assertThat(PowerMenuSettingsUtils.getPowerButtonSettingValue(mContext)).isEqualTo(1);
+ public void isLongPressPowerForAssistantEnabled_valueSetToAssistant_returnsTrue() {
+ Settings.Global.putInt(
+ mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, 5);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isTrue();
}
@Test
- public void longPressBehaviourValueNotPresent_returnsDefault() {
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
- .thenReturn(2);
-
- assertThat(PowerMenuSettingsUtils.getPowerButtonSettingValue(mContext)).isEqualTo(2);
+ public void isLongPressPowerForAssistantEnabled_valueNotSetToAssistant_returnsFalse() {
+ Settings.Global.putInt(
+ mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, 3);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isFalse();
}
@Test
- public void longPressBehaviourValueSetToAssistant_isAssistEnabledReturnsTrue() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, 5);
- assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext)).isTrue();
+ public void isLongPressPowerForAssistantEnabled_valueNotSet_defaultToAssistant_returnsTrue() {
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(5);
+
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isTrue();
}
@Test
- public void longPressBehaviourValueNotSetToAssistant_isAssistEnabledReturnsFalse() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.POWER_BUTTON_LONG_PRESS, 3);
- assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext)).isFalse();
+ public void isLongPressPowerForAssistantEnabled_valueNotSet_defaultToPowerMenu_returnsFalse() {
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1);
+
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistantEnabled(mContext)).isFalse();
}
@Test
- public void longPressBehaviourDefaultSetToAssistant_isAssistEnabledReturnsFalse() {
- when(mResources.getInteger(
- com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ public void isLongPressPowerSettingAvailable_defaultToAssistant_returnsTrue() {
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(5);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)).isTrue();
+ }
+
+ @Test
+ public void isLongPressPowerSettingAvailable_defaultToPowerMenu_returnsTrue() {
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)).isTrue();
+ }
+
+ @Test
+ public void isLongPressPowerSettingAvailable_defaultToPowerOff_returnsFalse() {
+ // Power off is the unsupported option in long press power settings
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
.thenReturn(3);
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)).isFalse();
+ }
- assertThat(PowerMenuSettingsUtils.isLongPressPowerForAssistEnabled(mContext)).isFalse();
+ @Test
+ public void isLongPressPowerSettingAvailable_settingDisabled_returnsFalse() {
+ // Disable the setting
+ when(mResources.getBoolean(
+ com.android.internal.R.bool
+ .config_longPressOnPowerForAssistantSettingAvailable))
+ .thenReturn(false);
+ when(mResources.getInteger(com.android.internal.R.integer.config_longPressOnPowerBehavior))
+ .thenReturn(1);
+
+ assertThat(PowerMenuSettingsUtils.isLongPressPowerSettingAvailable(mContext)).isFalse();
+ }
+
+ @Test
+ public void setLongPressPowerForAssistant_updatesValue() throws Exception {
+ boolean result = PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+
+ assertThat(result).isTrue();
+ assertThat(
+ Settings.Global.getInt(
+ mContext.getContentResolver(),
+ Settings.Global.POWER_BUTTON_LONG_PRESS))
+ .isEqualTo(5);
+ }
+
+ @Test
+ public void setLongPressPowerForAssistant_updatesKeyChordValueToPowerMenu() throws Exception {
+ PowerMenuSettingsUtils.setLongPressPowerForAssistant(mContext);
+ assertThat(
+ Settings.Global.getInt(
+ mContext.getContentResolver(),
+ Settings.Global.KEY_CHORD_POWER_VOLUME_UP))
+ .isEqualTo(2);
+ }
+
+ @Test
+ public void setLongPressPowerForPowerMenu_updatesValue() throws Exception {
+ boolean result = PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ assertThat(result).isTrue();
+ assertThat(
+ Settings.Global.getInt(
+ mContext.getContentResolver(),
+ Settings.Global.POWER_BUTTON_LONG_PRESS))
+ .isEqualTo(1);
+ }
+
+ @Test
+ public void setLongPressPowerForPowerMenu_updatesKeyChordValueToDefault() throws Exception {
+ when(mResources.getInteger(com.android.internal.R.integer.config_keyChordPowerVolumeUp))
+ .thenReturn(1);
+
+ PowerMenuSettingsUtils.setLongPressPowerForPowerMenu(mContext);
+
+ assertThat(
+ Settings.Global.getInt(
+ mContext.getContentResolver(),
+ Settings.Global.KEY_CHORD_POWER_VOLUME_UP))
+ .isEqualTo(1);
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
index bf529e6..b2f1673 100644
--- a/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
@@ -426,7 +426,7 @@
private final class TestPreferenceController extends NotificationPreferenceController {
private TestPreferenceController(Context context, NotificationBackend backend) {
- super(context, backend, "key");
+ super(context, backend);
}
@Override
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
index 53e68d9..e01e023 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
@@ -27,6 +27,7 @@
import android.os.UserHandle;
import android.view.View;
import android.widget.Button;
+import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
@@ -192,6 +193,18 @@
.isEqualTo(application.getString(R.string.lockpattern_retry_button_text));
}
+ @Test
+ public void createActivity_patternDescription_shouldBeShown() {
+ PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
+
+ final TextView patternDescription =
+ layout.findViewById(R.id.sud_layout_subtitle);
+
+ assertThat(patternDescription.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(patternDescription.getText()).isEqualTo(
+ application.getString(R.string.lockpassword_choose_your_pattern_description));
+ }
+
private ChooseLockPatternFragment findFragment(FragmentActivity activity) {
return (ChooseLockPatternFragment)
activity.getSupportFragmentManager().findFragmentById(R.id.main_content);