Merge "Twilight Location off text" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-30 04:34:42 +00:00
committed by Android (Google) Code Review
7 changed files with 151 additions and 4 deletions

View File

@@ -0,0 +1,60 @@
<?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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/request_background_location_permission"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:paddingStart="8dp"
android:paddingEnd="10dp"
android:paddingTop="18dp"
android:paddingBottom="0dp"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="40dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_settings_location"
android:tint="?android:attr/colorAccent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:paddingRight="2dp"
android:gravity="center_vertical"
android:text="@string/twilight_mode_location_off_dialog_message"
android:textAppearance="?attr/textAppearanceSubtitle1"
android:textSize="16sp"
android:textColor="?android:attr/textColorPrimary"/>
</LinearLayout>
<Button
android:id="@+id/go_to_location_setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/twilight_mode_launch_location"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_gravity="end"/>
</LinearLayout>

View File

@@ -32,6 +32,9 @@
<item type="id" name="action_drag_move_bottom" />
<item type="id" name="action_drag_remove" />
<!-- Go to location settings button id -->
<item type="id" name="go_to_location_setting" />
<!-- For a menu item allowing users to edit a SIM display name -->
<item type="id" name="edit_sim_name" />
</resources>

View File

@@ -2810,10 +2810,10 @@
<string name="night_display_not_currently_on">Night Light not currently on</string>
<!-- Twilight Mode -->
<!-- When location mode is off, twilight scheduling does not function. [CHAR LIMIT=120] -->
<string name="twilight_mode_location_off_dialog_message">Device location needed to determine your sunset and sunrise times.</string>
<!-- When location mode is off, twilight scheduling does not function. [CHAR LIMIT=40] -->
<string name="twilight_mode_location_off_dialog_message">Device location needed to determine you sunset to sunrise</string>
<!-- When location mode is off, twilight scheduling does not function. [CHAR LIMIT=40] -->
<string name="twilight_mode_launch_location">Turn on location</string>
<string name="twilight_mode_launch_location">Location settings</string>
<!-- Dark ui screen-->
<!-- Display settings screen, activation button action for manual mode. [CHAR LIMIT=40] -->

View File

@@ -20,12 +20,20 @@
android:title="@string/dark_ui_mode"
settings:keywords="@string/keywords_dark_ui_mode">
<com.android.settingslib.widget.LayoutPreference
android:key="dark_ui_location_off"
android:selectable="false"
android:layout="@layout/twilight_mode_location_off"
settings:allowDividerBelow="true"
settings:controller="com.android.settings.display.TwilightLocationPreferenceController"/>
<DropDownPreference
android:key="dark_ui_auto_mode"
android:title="@string/dark_ui_auto_mode_title"
android:summary="%s"
android:entries="@array/dark_ui_scheduler_preference_titles"
android:entryValues="@array/dark_ui_scheduler_preference_titles"
settings:allowDividerAbove="true"
settings:controller="com.android.settings.display.darkmode.DarkModeScheduleSelectorController"
settings:keywords="@string/keywords_dark_ui_mode"/>

View File

@@ -20,6 +20,13 @@
android:title="@string/night_display_title"
settings:keywords="@string/keywords_display_night_display">
<com.android.settingslib.widget.LayoutPreference
android:key="dark_ui_location_off"
android:selectable="false"
android:layout="@layout/twilight_mode_location_off"
settings:controller="com.android.settings.display.TwilightLocationPreferenceController"
settings:allowDividerBelow="true"/>
<DropDownPreference
android:key="night_display_auto_mode"
android:title="@string/night_display_auto_mode_title"

View File

@@ -0,0 +1,69 @@
/*
* 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.display;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.view.View;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.LayoutPreference;
/**
* Controller to take the user to location settings page
*/
public class TwilightLocationPreferenceController extends BasePreferenceController {
private final LocationManager mLocationManager;
private final MetricsFeatureProvider mMetricsFeatureProvider;
public TwilightLocationPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
mLocationManager = context.getSystemService(LocationManager.class);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final LayoutPreference preference = screen.findPreference(getPreferenceKey());
final View button = preference.findViewById(R.id.go_to_location_setting);
button.setOnClickListener(v -> {
mMetricsFeatureProvider.logClickedPreference(preference, getMetricsCategory());
final Intent intent = new Intent();
intent.setClass(mContext, Settings.LocationSettingsActivity.class);
mContext.startActivity(intent);
});
}
@Override
public void updateState(Preference preference) {
preference.setVisible(!mLocationManager.isLocationEnabled());
}
@Override
public int getAvailabilityStatus() {
return AVAILABLE_UNSEARCHABLE;
}
}

View File

@@ -37,7 +37,7 @@ import java.util.List;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class DarkModeSettingsFragment extends DashboardFragment {
private static final String TAG = "DarkModeSettingsFragment";
private static final String TAG = "DarkModeSettingsFrag";
private static final String DARK_THEME_END_TIME = "dark_theme_end_time";
private static final String DARK_THEME_START_TIME = "dark_theme_start_time";
private DarkModeObserver mContentObserver;