doze: Adapt to S style
* Reference e7db7fc560
* Adapted and rewritten in Kt
* Use Theme.SubSettingsBase for theme
* Replace PreferenceActivity with CollapsingToolbarBaseActivity
* Add Titles to preference screen
* Remove onOptionsItemSelected and where neccessary move to activity
Change-Id: I4d35ade6f45022944df4db787948c03b5bc14e5f
Signed-off-by: Rohan Hasabe <rohanhasabe8@gmail.com>
Signed-off-by: Bruno Martins <bgcngm@gmail.com>
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
android:name=".DozeSettingsActivity"
|
||||
android:exported="false"
|
||||
android:label="@string/ambient_display_title"
|
||||
android:theme="@style/Theme.Main">
|
||||
android:theme="@style/Theme.SubSettingsBase">
|
||||
<intent-filter>
|
||||
<action android:name="org.lineageos.settings.device.DOZE_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
public <init>(android.content.Context, android.util.AttributeSet);
|
||||
}
|
||||
|
||||
-keep class ** extends android.support.v14.preference.PreferenceFragment
|
||||
-keep class ** extends androidx.preference.PreferenceFragment
|
||||
-keep class org.lineageos.settings.doze.* {
|
||||
*;
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2019-2020 The LineageOS 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.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/switchbar_background_color" android:state_activated="false" />
|
||||
<item android:color="?android:attr/colorAccent" android:state_activated="true" />
|
||||
</selector>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2019 The LineageOS 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.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/switch_bar_bg" />
|
||||
</shape>
|
||||
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
** Copyright 2014, 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:orientation="vertical"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent">
|
||||
|
||||
<include layout="@layout/switch_bar" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,49 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 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/switch_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize"
|
||||
android:background="@drawable/switchbar_background"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:clickable="true"
|
||||
android:gravity="center"
|
||||
android:theme="@*android:style/ThemeOverlay.DeviceDefault.Accent">
|
||||
|
||||
<TextView android:id="@+id/switch_text"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingStart="56dp"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Title"
|
||||
android:textColor="?android:attr/textColorPrimaryInverse"
|
||||
android:textSize="18sp"
|
||||
android:textAlignment="viewStart" />
|
||||
|
||||
<Switch
|
||||
android:id="@android:id/switch_widget"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="@null"
|
||||
android:theme="@style/Theme.Main.SwitchBar.Switch" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2020 The LineageOS 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.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<color name="switchbar_switch_track_tint">#82000000</color>
|
||||
<color name="switchbar_switch_thumb_tint">@android:color/black</color>
|
||||
</resources>
|
||||
@@ -1,21 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2020 The LineageOS 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.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<color name="switchbar_background_color">@*android:color/material_grey_600</color>
|
||||
<color name="switchbar_switch_track_tint">#BFFFFFFF</color>
|
||||
<color name="switchbar_switch_thumb_tint">@android:color/white</color>
|
||||
</resources>
|
||||
@@ -1,72 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2015-2016 The CyanogenMod Project
|
||||
2017-2020 The LineageOS 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.
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<style name="Theme.Main" parent="@android:style/Theme.DeviceDefault.Settings">
|
||||
<item name="dialogPreferenceStyle">@style/Theme.Main.DialogPreferenceStyle</item>
|
||||
<item name="preferenceCategoryStyle">@style/Theme.Main.PreferenceCategoryStyle</item>
|
||||
<item name="preferenceFragmentStyle">@style/Theme.Main.PreferenceFragmentStyle</item>
|
||||
<item name="preferenceStyle">@style/Theme.Main.PreferenceStyle</item>
|
||||
<item name="preferenceTheme">@style/Theme.Main.PreferenceTheme</item>
|
||||
<item name="switchPreferenceStyle">@style/Theme.Main.SwitchPreferenceStyle</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.DialogPreferenceStyle" parent="@style/Theme.Main.PreferenceStyle" />
|
||||
|
||||
<style name="Theme.Main.PreferenceCategoryStyle" parent="@*android:style/Preference.DeviceDefault.Category">
|
||||
<item name="allowDividerAbove">true</item>
|
||||
<item name="allowDividerBelow">true</item>
|
||||
<item name="android:layout">@layout/preference_category_material_settings</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
|
||||
<item name="allowDividerAfterLastItem">false</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.PreferenceStyle" parent="@*android:style/Preference.DeviceDefault">
|
||||
<item name="allowDividerAbove">false</item>
|
||||
<item name="allowDividerBelow">true</item>
|
||||
<item name="singleLineTitle">false</item>
|
||||
<item name="android:layout">@layout/preference_material_settings</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.PreferenceTheme" parent="@style/PreferenceThemeOverlay.SettingsBase">
|
||||
<item name="preferenceCategoryTitleTextAppearance">
|
||||
@style/Theme.Main.TextAppearance.CategoryTitle
|
||||
</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.SwitchPreferenceStyle" parent="@style/Theme.Main.PreferenceStyle">
|
||||
<item name="widgetLayout">@*android:layout/preference_widget_switch</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.SwitchBar" parent="@android:style/ThemeOverlay.Material.ActionBar">
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.SwitchBar.Switch">
|
||||
<item name="android:trackTint">@color/switchbar_switch_track_tint</item>
|
||||
<item name="android:thumbTint">@color/switchbar_switch_thumb_tint</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.Main.TextAppearance.CategoryTitle"
|
||||
parent="@*android:style/TextAppearance.DeviceDefault.Body2">
|
||||
<item name="android:textAllCaps">true</item>
|
||||
<item name="android:textSize">11sp</item>
|
||||
<!-- 0.8 Spacing, 0.8/11 = 0.072727273 -->
|
||||
<item name="android:letterSpacing">0.072727273</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2015 The CyanogenMod Project
|
||||
2018-2019 The LineageOS Project
|
||||
2018-2021 The LineageOS Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -15,7 +15,19 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||
android:title="@string/ambient_display_title">
|
||||
|
||||
<com.android.settingslib.widget.TopIntroPreference
|
||||
android:key="doze_top_intro"
|
||||
android:title="@string/ambient_display_enable_summary"/>
|
||||
|
||||
<com.android.settingslib.widget.MainSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="doze_enable"
|
||||
android:title="@string/ambient_display_enable_title" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="always_on_display"
|
||||
|
||||
@@ -6,14 +6,15 @@
|
||||
package org.lineageos.settings.doze
|
||||
|
||||
import android.os.Bundle
|
||||
import android.preference.PreferenceActivity
|
||||
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity
|
||||
import com.android.settingslib.collapsingtoolbar.R
|
||||
|
||||
class DozeSettingsActivity : PreferenceActivity() {
|
||||
class DozeSettingsActivity : CollapsingToolbarBaseActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
fragmentManager
|
||||
.beginTransaction()
|
||||
.replace(android.R.id.content, DozeSettingsFragment(), TAG)
|
||||
.replace(R.id.content_frame, DozeSettingsFragment(), TAG)
|
||||
.commit()
|
||||
}
|
||||
|
||||
|
||||
@@ -10,20 +10,16 @@ import android.app.AlertDialog
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.CompoundButton
|
||||
import android.widget.Switch
|
||||
import android.widget.TextView
|
||||
import androidx.preference.*
|
||||
|
||||
import com.android.settingslib.widget.MainSwitchPreference
|
||||
import com.android.settingslib.widget.OnMainSwitchChangeListener
|
||||
|
||||
class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChangeListener,
|
||||
CompoundButton.OnCheckedChangeListener {
|
||||
OnMainSwitchChangeListener {
|
||||
private lateinit var alwaysOnDisplayPreference: SwitchPreference
|
||||
private lateinit var switchBar: View
|
||||
private lateinit var textView: TextView
|
||||
private lateinit var switchBar: MainSwitchPreference
|
||||
|
||||
private var pickUpPreference: ListPreference? = null
|
||||
private var pocketPreference: SwitchPreference? = null
|
||||
@@ -32,7 +28,6 @@ class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChange
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
addPreferencesFromResource(R.xml.doze_settings)
|
||||
activity.actionBar?.setDisplayHomeAsUpEnabled(true)
|
||||
|
||||
val prefs = activity.getSharedPreferences("doze_settings", Activity.MODE_PRIVATE)!!
|
||||
if (savedInstanceState == null && !prefs.getBoolean("first_help_shown", false)) {
|
||||
@@ -46,6 +41,10 @@ class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChange
|
||||
}
|
||||
|
||||
val dozeEnabled = Utils.isDozeEnabled(context)
|
||||
switchBar = findPreference(Utils.DOZE_ENABLE)!!
|
||||
switchBar.addOnSwitchChangeListener(this)
|
||||
switchBar.isChecked = dozeEnabled
|
||||
|
||||
alwaysOnDisplayPreference = findPreference(Utils.ALWAYS_ON_DISPLAY)!!
|
||||
alwaysOnDisplayPreference.isEnabled = dozeEnabled
|
||||
alwaysOnDisplayPreference.isChecked = Utils.isAlwaysOnEnabled(context)
|
||||
@@ -80,35 +79,6 @@ class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChange
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
|
||||
): View {
|
||||
val view = LayoutInflater.from(context).inflate(R.layout.doze, container, false)
|
||||
(view as ViewGroup).addView(super.onCreateView(inflater, container, savedInstanceState))
|
||||
return view
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val dozeEnabled = Utils.isDozeEnabled(context)
|
||||
|
||||
textView = view.findViewById(R.id.switch_text)
|
||||
textView.text =
|
||||
getString(if (dozeEnabled) R.string.switch_bar_on else R.string.switch_bar_off)
|
||||
switchBar = view.findViewById(R.id.switch_bar)
|
||||
|
||||
val switchWidget = switchBar.findViewById<Switch>(android.R.id.switch_widget)
|
||||
switchWidget.isChecked = dozeEnabled
|
||||
switchWidget.setOnCheckedChangeListener(this)
|
||||
|
||||
switchBar.isActivated = dozeEnabled
|
||||
switchBar.setOnClickListener {
|
||||
switchWidget.isChecked = !switchWidget.isChecked
|
||||
switchBar.isActivated = switchWidget.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
||||
if (preference.key == Utils.ALWAYS_ON_DISPLAY) {
|
||||
Utils.enableAlwaysOn(context, newValue as Boolean)
|
||||
@@ -117,13 +87,11 @@ class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChange
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onCheckedChanged(compoundButton: CompoundButton, isChecked: Boolean) {
|
||||
override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) {
|
||||
Utils.enableDoze(context, isChecked)
|
||||
Utils.checkDozeService(context)
|
||||
|
||||
textView.text =
|
||||
getString(if (isChecked) R.string.switch_bar_on else R.string.switch_bar_off)
|
||||
switchBar.isActivated = isChecked
|
||||
switchBar.isChecked = isChecked
|
||||
|
||||
if (!isChecked) {
|
||||
Utils.enableAlwaysOn(context, false)
|
||||
@@ -135,13 +103,4 @@ class DozeSettingsFragment : PreferenceFragment(), Preference.OnPreferenceChange
|
||||
pocketPreference?.isEnabled = isChecked
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
return when (item.itemId) {
|
||||
R.id.home -> {
|
||||
activity.onBackPressed()
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ object Utils {
|
||||
private const val DOZE_INTENT = "com.android.systemui.doze.pulse"
|
||||
|
||||
const val ALWAYS_ON_DISPLAY = "always_on_display"
|
||||
const val DOZE_ENABLE = "doze_enable"
|
||||
|
||||
const val CATEGORY_PICKUP_SENSOR = "pickup_sensor"
|
||||
const val CATEGORY_PROXIMITY_SENSOR = "proximity_sensor"
|
||||
|
||||
Reference in New Issue
Block a user