Move the Location time zone detection setting

Move the Location time zone detection setting to Date & Time as per
UI review / product request.

This initial commit just moves the existing MVP setting behavior to a
different screen. Still invisible by default.

Enable with:
$ adb shell setprop persist.sys.location_time_zone_detection_feature_enabled 1
.. plus a reboot.

Bug: 152746236
Test: Manual: build / boot / toggle switch in SettingsUI / inspect output of adb shell dumpsys time_zone_detector
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceControllerTest"
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.locationtimezone.TimeZoneDetectionTogglePreferenceControllerTest"
Test: m -j30 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.datetime.locationtimezone.TimeZoneDetectionSettingsTest"
Change-Id: I9ecfa853014a9f92086a9cb2d34e1517474ceb93
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index 20fac45..43a797a 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -52,6 +52,14 @@
         settings:userRestriction="no_config_date_time"
         settings:keywords="@string/keywords_time_zone"/>
 
+    <!-- This preference gets removed if location-based time zone detection is not supported -->
+    <com.android.settingslib.RestrictedPreference
+        android:key="location_time_zone_detection"
+        android:title="@string/location_time_zone_detection_screen_title"
+        settings:controller="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceController"
+        android:fragment="com.android.settings.datetime.locationtimezone.TimeZoneDetectionSettings"
+        settings:userRestriction="no_config_date_time"/>
+
     <PreferenceCategory
         android:key="time_format_preference_category"
         android:title="@string/time_format_category_title"
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index 80f4973..fb03f4c 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -65,13 +65,6 @@
             settings:forWork="true"
             settings:useAdminDisabledSummary="true"/>
 
-        <!-- This preference gets removed if location-based time zone detection is not supported -->
-        <Preference
-            android:key="location_time_zone_detection"
-            android:title="@string/location_time_zone_detection_screen_title"
-            settings:controller="com.android.settings.location.LocationTimeZoneDetectionPreferenceController"
-            android:fragment="com.android.settings.location.TimeZoneDetectionSettings" />
-
         <PreferenceCategory
             android:key="location_services"
             android:layout="@layout/preference_category_no_label"
diff --git a/res/xml/location_settings_personal.xml b/res/xml/location_settings_personal.xml
index 3bd7b6e..de8ed81 100644
--- a/res/xml/location_settings_personal.xml
+++ b/res/xml/location_settings_personal.xml
@@ -51,13 +51,6 @@
         android:fragment="com.android.settings.location.ScanningSettings"
         settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
 
-    <!-- This preference gets removed if location-based time zone detection is not supported -->
-    <Preference
-        android:key="location_time_zone_detection"
-        android:title="@string/location_time_zone_detection_screen_title"
-        settings:controller="com.android.settings.location.LocationTimeZoneDetectionPreferenceController"
-        android:fragment="com.android.settings.location.TimeZoneDetectionSettings" />
-
     <PreferenceCategory
         android:key="location_services"
         android:layout="@layout/preference_category_no_label"
diff --git a/res/xml/location_time_zone_detection.xml b/res/xml/location_time_zone_detection.xml
index 7f0c248..9f5e775 100644
--- a/res/xml/location_time_zone_detection.xml
+++ b/res/xml/location_time_zone_detection.xml
@@ -22,7 +22,7 @@
     <SwitchPreference
         android:title="@string/location_time_zone_detection_enabled_title"
         android:summary="@string/location_time_zone_detection_enabled_description"
-        settings:controller="com.android.settings.location.TimeZoneDetectionTogglePreferenceController"
+        settings:controller="com.android.settings.datetime.locationtimezone.TimeZoneDetectionTogglePreferenceController"
         android:key="location_time_zone_detection_enabled" />
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/location/LocationTimeZoneDetectionPreferenceController.java b/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java
similarity index 99%
rename from src/com/android/settings/location/LocationTimeZoneDetectionPreferenceController.java
rename to src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java
index a16c9bb..bbfbb19 100644
--- a/src/com/android/settings/location/LocationTimeZoneDetectionPreferenceController.java
+++ b/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceController.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.settings.location;
+package com.android.settings.datetime;
 
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_NOT_ALLOWED;
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_NOT_APPLICABLE;
diff --git a/src/com/android/settings/location/TimeZoneDetectionSettings.java b/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettings.java
similarity index 96%
rename from src/com/android/settings/location/TimeZoneDetectionSettings.java
rename to src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettings.java
index 66e2f9a..db6ffc4 100644
--- a/src/com/android/settings/location/TimeZoneDetectionSettings.java
+++ b/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettings.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.settings.location;
+package com.android.settings.datetime.locationtimezone;
 
 import android.app.settings.SettingsEnums;
 
diff --git a/src/com/android/settings/location/TimeZoneDetectionTogglePreferenceController.java b/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceController.java
similarity index 96%
rename from src/com/android/settings/location/TimeZoneDetectionTogglePreferenceController.java
rename to src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceController.java
index f23c9f9..c91be7f 100644
--- a/src/com/android/settings/location/TimeZoneDetectionTogglePreferenceController.java
+++ b/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceController.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.location;
+package com.android.settings.datetime.locationtimezone;
 
 import android.app.time.TimeManager;
 import android.app.time.TimeZoneCapabilitiesAndConfig;
diff --git a/tests/robotests/src/com/android/settings/location/LocationTimeZoneDetectionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
similarity index 98%
rename from tests/robotests/src/com/android/settings/location/LocationTimeZoneDetectionPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
index 03e684b..0758869 100644
--- a/tests/robotests/src/com/android/settings/location/LocationTimeZoneDetectionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.location;
+package com.android.settings.datetime;
 
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_NOT_APPLICABLE;
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_NOT_SUPPORTED;
diff --git a/tests/robotests/src/com/android/settings/location/TimeZoneDetectionSettingsTest.java b/tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettingsTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/location/TimeZoneDetectionSettingsTest.java
rename to tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettingsTest.java
index a8104bd..9f16492 100644
--- a/tests/robotests/src/com/android/settings/location/TimeZoneDetectionSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionSettingsTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.location;
+package com.android.settings.datetime.locationtimezone;
 
 import static com.google.common.truth.Truth.assertThat;
 
diff --git a/tests/robotests/src/com/android/settings/location/TimeZoneDetectionTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceControllerTest.java
similarity index 98%
rename from tests/robotests/src/com/android/settings/location/TimeZoneDetectionTogglePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceControllerTest.java
index a78499c..27a9859 100644
--- a/tests/robotests/src/com/android/settings/location/TimeZoneDetectionTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/locationtimezone/TimeZoneDetectionTogglePreferenceControllerTest.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.settings.location;
+package com.android.settings.datetime.locationtimezone;
 
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_NOT_APPLICABLE;
 import static android.app.time.TimeZoneCapabilities.CAPABILITY_POSSESSED;