Make power policy methods public in CarPowerManager

- Google Map and some 3rd-party apps need to know power policy change.
- Methods for getting the current policy and getting policy change
notification are made public.

Bug: 175134034
Test: atest CarPowerManagerUnitTest
Change-Id: I4b409c4b06da9e6da819d965cc3e1ba3c0107675
diff --git a/service/AndroidManifest.xml b/service/AndroidManifest.xml
index 846712e..af7c387 100644
--- a/service/AndroidManifest.xml
+++ b/service/AndroidManifest.xml
@@ -484,7 +484,7 @@
          android:description="@string/car_permission_desc_car_test_service"/>
 
     <!-- Allows system app to enable / disable / query features in the system.
-     <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.CONTROL_CAR_FEATURES"
          android:protectionLevel="signature|privileged"
@@ -492,7 +492,7 @@
          android:description="@string/car_permission_desc_control_car_features"/>
 
     <!-- Allows an application to use car watchdog service.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.USE_CAR_WATCHDOG"
          android:protectionLevel="signature|privileged"
@@ -531,7 +531,6 @@
          android:label="@string/car_permission_label_set_car_vendor_category_door"
          android:description="@string/car_permission_desc_set_car_vendor_category_door"/>
 
-
     <!-- Allows an application to read vendor properties related with seats.
          <p>Protection level: signature|privileged
     -->
@@ -637,7 +636,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_1"/>
 
     <!-- Allows an application to control vendor properties in category 1.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_1"
          android:protectionLevel="signature|privileged"
@@ -645,7 +644,7 @@
          android:description="@string/car_permission_desc_set_car_vendor_category_1"/>
 
     <!-- Allows an application to access vendor properties in category 2.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_2"
          android:protectionLevel="signature|privileged"
@@ -653,7 +652,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_2"/>
 
     <!-- Allows an application to control vendor properties in category 2.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_2"
          android:protectionLevel="signature|privileged"
@@ -661,7 +660,7 @@
          android:description="@string/car_permission_desc_set_car_vendor_category_2"/>
 
     <!-- Allows an application to access vendor properties in category 3.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_3"
          android:protectionLevel="signature|privileged"
@@ -669,7 +668,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_3"/>
 
     <!-- Allows an application to control vendor properties in category 3.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_3"
          android:protectionLevel="signature|privileged"
@@ -685,7 +684,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_4"/>
 
     <!-- Allows an application to control vendor properties in category 4.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_4"
          android:protectionLevel="signature|privileged"
@@ -701,7 +700,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_5"/>
 
     <!-- Allows an application to control vendor properties in category 5.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_5"
          android:protectionLevel="signature|privileged"
@@ -717,7 +716,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_6"/>
 
     <!-- Allows an application to control vendor properties in category 6.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_6"
          android:protectionLevel="signature|privileged"
@@ -725,7 +724,7 @@
          android:description="@string/car_permission_desc_set_car_vendor_category_6"/>
 
     <!-- Allows an application to access vendor properties in category 7.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_7"
          android:protectionLevel="signature|privileged"
@@ -733,7 +732,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_7"/>
 
     <!-- Allows an application to control vendor properties in category 7.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_7"
          android:protectionLevel="signature|privileged"
@@ -741,7 +740,7 @@
          android:description="@string/car_permission_desc_set_car_vendor_category_7"/>
 
     <!-- Allows an application to access vendor properties in category 8.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_8"
          android:protectionLevel="signature|privileged"
@@ -749,7 +748,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_8"/>
 
     <!-- Allows an application to control vendor properties in category 8.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_8"
          android:protectionLevel="signature|privileged"
@@ -765,7 +764,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_9"/>
 
     <!-- Allows an application to control vendor properties in category 9.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_9"
          android:protectionLevel="signature|privileged"
@@ -781,7 +780,7 @@
          android:description="@string/car_permission_desc_get_car_vendor_category_10"/>
 
     <!-- Allows an application to control vendor properties in category 10.
-        <p>Protection level: signature|privileged
+         <p>Protection level: signature|privileged
     -->
     <permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_10"
          android:protectionLevel="signature|privileged"
@@ -789,13 +788,30 @@
          android:description="@string/car_permission_desc_set_car_vendor_category_10"/>
 
     <!-- Allows an application to receive Car input events.
-        <p>Protection level: signature
+         <p>Protection level: signature
     -->
     <permission android:name="android.car.permission.CAR_MONITOR_INPUT"
                 android:protectionLevel="signature"
                 android:label="@string/car_permission_label_monitor_input"
                 android:description="@string/car_permission_desc_monitor_input"/>
 
+    <!-- Allows an application to get the current power policy or to be notified of power policy
+         change.
+         <p>Protection level: normal
+    -->
+    <permission android:name="android.car.permission.READ_CAR_POWER_POLICY"
+                android:protectionLevel="normal"
+                android:label="@string/car_permission_label_read_car_power_policy"
+                android:description="@string/car_permission_desc_read_car_power_policy"/>
+
+    <!-- Allows an application to apply a new power policy.
+         <p>Protection level: signature|privileged
+    -->
+    <permission android:name="android.car.permission.CONTROL_CAR_POWER_POLICY"
+                android:protectionLevel="signature|privileged"
+                android:label="@string/car_permission_label_control_car_power_policy"
+                android:description="@string/car_permission_desc_control_car_power_policy"/>
+
     <uses-permission android:name="android.permission.CALL_PHONE"/>
     <uses-permission android:name="android.permission.DEVICE_POWER"/>
     <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS"/>