From 58ec284b501b9a777b2f8bdde634629738190e1b Mon Sep 17 00:00:00 2001
From: AshutoshSundresh <ashutoshsundresh@gmail.com>
Date: Sat, 04 Sep 2021 12:19:26 +0530
Subject: [PATCH] SensorPrivacyTile: Use secondary label for state

Change-Id: I2d7c1a9326356626047d63c2eec56717d16a2272
---

diff --git a/packages/SystemUI/res/drawable/ic_sensors_on.xml b/packages/SystemUI/res/drawable/ic_sensors_on.xml
new file mode 100644
index 0000000..f250ae3
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sensors_on.xml
@@ -0,0 +1,24 @@
+<!--
+     Copyright (C) 2021 ShapeShiftOS
+
+     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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="#FFFFFFFF"
+      android:pathData="M7.76,16.24C6.67,15.16 6,13.66 6,12s0.67,-3.16 1.76,-4.24l1.42,1.42C8.45,9.9 8,10.9 8,12c0,1.1 0.45,2.1 1.17,2.83L7.76,16.24zM16.24,16.24C17.33,15.16 18,13.66 18,12s-0.67,-3.16 -1.76,-4.24l-1.42,1.42C15.55,9.9 16,10.9 16,12c0,1.1 -0.45,2.1 -1.17,2.83L16.24,16.24zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2s2,-0.9 2,-2S13.1,10 12,10zM20,12c0,2.21 -0.9,4.21 -2.35,5.65l1.42,1.42C20.88,17.26 22,14.76 22,12s-1.12,-5.26 -2.93,-7.07l-1.42,1.42C19.1,7.79 20,9.79 20,12zM6.35,6.35L4.93,4.93C3.12,6.74 2,9.24 2,12s1.12,5.26 2.93,7.07l1.42,-1.42C4.9,16.21 4,14.21 4,12S4.9,7.79 6.35,6.35z"/>
+</vector>
diff --git a/packages/SystemUI/res/values/aicp_strings.xml b/packages/SystemUI/res/values/aicp_strings.xml
index a399edb..1367894 100644
--- a/packages/SystemUI/res/values/aicp_strings.xml
+++ b/packages/SystemUI/res/values/aicp_strings.xml
@@ -361,4 +361,9 @@
 
    <!-- Change clockface -->
    <string name="change_clock_face">Swipe to change the clock face</string>
+
+    <!-- Text for the quick setting tile for sensor privacy [CHAR LIMIT=30] -->
+    <string name="sensor_privacy_mode_tile">Sensors</string>
+    <string name="quick_settings_on">On</string>
+    <string name="quick_settings_off">Off</string>
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyTile.java
index 2aadab9..cae0791 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/SensorPrivacyTile.java
@@ -35,8 +35,6 @@
 public class SensorPrivacyTile extends QSTileImpl<BooleanState> implements
         SensorPrivacyManager.OnSensorPrivacyChangedListener {
     private static final String TAG = "SensorPrivacy";
-    private final Icon mIcon =
-            ResourceIcon.get(R.drawable.ic_signal_sensors);
     private final SensorPrivacyManager mSensorPrivacyManager;
     private final ActivityStarter mActivityStarter;
 
@@ -76,7 +74,7 @@
 
     @Override
     public CharSequence getTileLabel() {
-        return mContext.getString(R.string.sensor_privacy_mode);
+        return mContext.getString(R.string.sensor_privacy_mode_tile);
     }
 
     @Override
@@ -89,9 +87,15 @@
         final boolean enabled = arg instanceof Boolean ? (Boolean) arg
                 : mSensorPrivacyManager.isSensorPrivacyEnabled();
         state.value = enabled;
-        state.label = mContext.getString(R.string.sensor_privacy_mode);
-        state.icon = mIcon;
+        state.label = mContext.getString(R.string.sensor_privacy_mode_tile);
         state.state = enabled ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
+        if (state.value) {
+            state.secondaryLabel = mContext.getString(R.string.quick_settings_off);
+            state.icon = ResourceIcon.get(R.drawable.ic_signal_sensors);
+        } else {
+            state.secondaryLabel = mContext.getString(R.string.quick_settings_on);
+            state.icon = ResourceIcon.get(R.drawable.ic_sensors_on);
+        }
         state.contentDescription = state.label;
         state.expandedAccessibilityClassName = Switch.class.getName();
     }
