Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4a3ff953 authored by Almaz Mingaleev's avatar Almaz Mingaleev Committed by Android (Google) Code Review
Browse files

Merge "Move GeoTZ toggle to Date&Time settings screen." into sc-dev

parents 4239c904 ab05918e
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -4061,18 +4061,8 @@
    <!-- [CHAR LIMIT=50] Location settings screen, sub category for location services for managed profile -->
    <string name="managed_profile_location_services">Location services for work</string>
    <!-- [CHAR LIMIT=60] Location settings screen, screen title -->
    <string name="location_time_zone_detection_screen_title">Use location to set time zone</string>
    <!-- [CHAR LIMIT=50] Location settings screen, title for the setting that control whether the
         device can use its location for time zone detection. -->
    <string name="location_time_zone_detection_enabled_title">Location time zone detection</string>
    <!-- [CHAR LIMIT=NONE] Preference description text for location time zone detection -->
    <string name="location_time_zone_detection_enabled_description">Allows the device\u2019s location to be used to detect the current time zone. Other location settings such as Wi\u2011Fi scanning can affect the accuracy of time zone detection.</string>
    <!-- [CHAR LIMIT=NONE] Location settings screen, summary when location time zone detection is on -->
    <string name="location_time_zone_detection_on">On</string>
    <!-- [CHAR LIMIT=NONE] Location settings screen, summary when location time zone detection is off -->
    <string name="location_time_zone_detection_off">Off</string>
    <!-- [CHAR LIMIT=60] Date&Time settings screen, toggle button title -->
    <string name="location_time_zone_detection_toggle_title">Use location to set time zone</string>
    <!-- [CHAR LIMIT=NONE] Location settings screen, summary when location time zone detection is not
         applicable due to other settings like the "automatic time zone detection enabled" setting
         being set to "off". -->
+4 −4
Original line number Diff line number Diff line
@@ -53,12 +53,12 @@
        settings:keywords="@string/keywords_time_zone"/>

    <!-- This preference gets removed if location-based time zone detection is not supported -->
    <com.android.settingslib.RestrictedPreference
    <com.android.settingslib.RestrictedSwitchPreference
        android:key="location_time_zone_detection"
        android:title="@string/location_time_zone_detection_screen_title"
        android:title="@string/location_time_zone_detection_toggle_title"
        settings:controller="com.android.settings.datetime.LocationTimeZoneDetectionPreferenceController"
        android:fragment="com.android.settings.datetime.locationtimezone.TimeZoneDetectionSettings"
        settings:userRestriction="no_config_date_time"/>
        settings:userRestriction="no_config_date_time"
    />

    <PreferenceCategory
        android:key="time_format_preference_category"
+0 −28
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2020 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"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:title="@string/location_time_zone_detection_screen_title">

    <SwitchPreference
        android:title="@string/location_time_zone_detection_enabled_title"
        android:summary="@string/location_time_zone_detection_enabled_description"
        settings:controller="com.android.settings.datetime.locationtimezone.TimeZoneDetectionTogglePreferenceController"
        android:key="location_time_zone_detection_enabled" />

</PreferenceScreen>
+22 −6
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -43,7 +43,7 @@ import java.util.concurrent.Executor;
 * screen.
 */
public class LocationTimeZoneDetectionPreferenceController
        extends BasePreferenceController
        extends TogglePreferenceController
        implements LifecycleObserver, OnStart, OnStop, TimeManager.TimeZoneDetectorListener {

    private final TimeManager mTimeManager;
@@ -57,6 +57,22 @@ public class LocationTimeZoneDetectionPreferenceController
        mLocationManager = context.getSystemService(LocationManager.class);
    }

    @Override
    public boolean isChecked() {
        TimeZoneCapabilitiesAndConfig capabilitiesAndConfig =
                mTimeManager.getTimeZoneCapabilitiesAndConfig();
        TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
        return configuration.isGeoDetectionEnabled();
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        TimeZoneConfiguration configuration = new TimeZoneConfiguration.Builder()
                .setGeoDetectionEnabled(isChecked)
                .build();
        return mTimeManager.updateTimeZoneConfiguration(configuration);
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
@@ -126,10 +142,10 @@ public class LocationTimeZoneDetectionPreferenceController
                summaryResId = R.string.location_time_zone_detection_not_applicable;
            }
        } else if (configureGeoDetectionEnabledCapability == CAPABILITY_POSSESSED) {
            boolean isGeoDetectionEnabled = configuration.isGeoDetectionEnabled();
            summaryResId = isGeoDetectionEnabled
                    ? R.string.location_time_zone_detection_on
                    : R.string.location_time_zone_detection_off;
            // If capability is possessed, toggle status already tells all the information needed.
            // Returning null will make previous text stick on toggling.
            // See AbstractPreferenceController#refreshSummary.
            return "";
        } else {
            // This is unexpected: getAvailabilityStatus() should ensure that the UI element isn't
            // even shown for known cases, or the capability is unknown.
+0 −52
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.datetime.locationtimezone;

import android.app.settings.SettingsEnums;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;

/**
 * The controller for the "location time zone detection" screen.
 */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class TimeZoneDetectionSettings extends DashboardFragment {
    private static final String TAG = "LTZDetectionSettings";

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.LOCATION_TIME_ZONE_DETECTION;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.location_time_zone_detection;
    }

    @Override
    protected String getLogTag() {
        return TAG;
    }

    /**
     * For Search.
     */
    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider(R.xml.location_time_zone_detection);
}
Loading