Settings: Double tap to trigger doze [2/2]

* Also adapt Add video to Double tap to trigger doze from Pie: a66601a

Change-Id: Id98543542db937c6cc1f176cd55f6b02e472849d

Settings: DoubleTapGesture: Use new material-you illustration preference

* Switch to new Android 12 animation. Huge thanks to aryanata for the animation

Change-Id: Idfc536dff628fb4ba9cd45f6453add68f64a7b46

Settings: Add a preference controller for Double tap to Ambient

* Follows 41903244b1d8cf43c6c657b8ba5d9e7648136c72.
* Hide by default.

Co-authored-by: Akash <akashniki@gmail.com>
Co-authored-by: Aryanata Andipradana <a.ryan.ata.ap@gmail.com>
Co-authored-by: Joey <joey@evolution-x.org>
This commit is contained in:
SKULSHADY
2021-01-10 15:30:33 +00:00
committed by Joey
parent 7ccf58d196
commit da8ea87e85
8 changed files with 164 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -161,4 +161,9 @@
<!-- Smart 5G --> <!-- Smart 5G -->
<string name="smart_5g_title">Smart 5G</string> <string name="smart_5g_title">Smart 5G</string>
<string name="smart_5g_summary">Automatically switch between 5G and 4G to reduce battery consumption</string> <string name="smart_5g_summary">Automatically switch between 5G and 4G to reduce battery consumption</string>
<!-- Doze on double tap -->
<string name="double_tap_title">Double tap</string>
<string name="doze_double_tap_title">Double tap to check phone</string>
<string name="doze_double_tap_summary">Pulse notifications by a double tap</string>
</resources> </resources>

View File

@@ -64,4 +64,7 @@
<!-- Battery Info: mAh --> <!-- Battery Info: mAh -->
<integer name="config_battery_divider" translatable="false">1000</integer> <integer name="config_battery_divider" translatable="false">1000</integer>
<!-- Whether to show double tap ambient settings -->
<bool name="config_supports_double_tap_ambient" translatable="false">false</bool>
</resources> </resources>

View File

@@ -0,0 +1,35 @@
<?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.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:key="double_tap"
android:title="@string/double_tap_title">
<com.android.settingslib.widget.IllustrationPreference
android:key="gesture_tap_screen_video"
app:searchable="false"
app:lottie_rawRes="@raw/lottie_tap_to_check_phone"/>
<org.evolution.settings.preferences.SystemSettingSwitchPreference
android:key="doze_trigger_doubletap"
android:title="@string/doze_double_tap_title"
android:summary="@string/doze_double_tap_summary"
android:defaultValue="false" />
</PreferenceScreen>

View File

@@ -87,6 +87,13 @@
settings:searchable="false" settings:searchable="false"
settings:controller="com.android.settings.gestures.DoubleTapScreenPreferenceController" /> settings:controller="com.android.settings.gestures.DoubleTapScreenPreferenceController" />
<Preference
android:key="double_tap"
android:title="@string/doze_double_tap_title"
android:fragment="com.android.settings.gestures.DoubleTapAmbientSettings"
settings:controller="com.android.settings.gestures.DoubleTapAmbientSettingsPreferenceController"
settings:userRestriction="no_ambient_display" />
<Preference <Preference
android:key="gesture_pick_up_input_summary" android:key="gesture_pick_up_input_summary"
android:title="@string/ambient_display_pickup_title" android:title="@string/ambient_display_pickup_title"

View File

@@ -0,0 +1,47 @@
/*
* Copyright (C) 2019-2020 The Evolution X 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.gestures;
import android.os.Bundle;
import androidx.preference.Preference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
public class DoubleTapAmbientSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.double_tap_ambient_screen_settings);
getActivity().getActionBar().setTitle(R.string.double_tap_title);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
return false;
}
@Override
public int getMetricsCategory() {
return MetricsEvent.VIEW_UNKNOWN;
}
}

View File

@@ -0,0 +1,65 @@
/*
* 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.
*/
package com.android.settings.gestures;
import android.content.Context;
import android.hardware.display.AmbientDisplayConfiguration;
import android.provider.Settings;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
public class DoubleTapAmbientSettingsPreferenceController extends BasePreferenceController {
private AmbientDisplayConfiguration mAmbientConfig;
public DoubleTapAmbientSettingsPreferenceController(@NonNull Context context, @NonNull String key) {
super(context, key);
}
@Override
public int getAvailabilityStatus() {
boolean nativeDoubleTapToDozeAvailable = !android.text.TextUtils.isEmpty(
mContext.getResources().getString(com.android.internal.R.string.config_dozeDoubleTapSensorType));
// avoid conflict with single tap sensor devices e.g: pixels
boolean singleTapSensorAvailable = getAmbientConfig().tapSensorAvailable();
boolean supported = !nativeDoubleTapToDozeAvailable && !singleTapSensorAvailable;
return supported ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public void displayPreference(@NonNull PreferenceScreen screen) {
super.displayPreference(screen);
}
@Override
@NonNull
public CharSequence getSummary() {
return mContext.getText(com.android.settings.R.string.doze_double_tap_summary);
}
private AmbientDisplayConfiguration getAmbientConfig() {
if (mAmbientConfig == null) {
mAmbientConfig = new AmbientDisplayConfiguration(mContext);
}
return mAmbientConfig;
}
}