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

Commit 2659c0f6 authored by Aaron Heuckroth's avatar Aaron Heuckroth Committed by Aran Ink
Browse files

Create Settings preference for Global Actions Panel.

Test: Automated tests pass.

Bug: 127295457
Change-Id: I6502d4c8541a3f279fb96d5f050f13890db8f376
parent db6a7027
Loading
Loading
Loading
Loading
+0 −0

Empty file added.

+11 −0
Original line number Diff line number Diff line
@@ -7264,6 +7264,8 @@
    <string name="keywords_profile_challenge">work challenge, work, profile</string>
    <string name="keywords_unification">work profile, managed profile, unify, unification, work, profile</string>
    <string name="keywords_gesture">gestures</string>
    <!-- Search keywords for Global Actions Panel. [DO NOT TRANSLATE] -->
    <string name="keywords_global_actions_panel" translatable="false">global actions</string>
    <string name="keywords_payment_settings">pay, tap, payments</string>
    <string name="keywords_backup">backup, back up</string>
    <string name="keywords_assist_gesture_launch">gesture</string>
@@ -10148,6 +10150,15 @@
    <!-- Summary text for ambient display tap [CHAR LIMIT=NONE]-->
    <string name="ambient_display_tap_screen_summary">To check time, notifications, and other info, tap your screen.</string>
    <!-- Summary text for global actions panel [CHAR LIMIT=NONE] [DO NOT TRANSLATE]-->
    <string name="global_actions_panel_summary" translatable="false">To show the global actions panel, press &amp; hold Power button</string>
    <!-- Preference and settings suggestion title text for global actions panel [CHAR LIMIT=60] [DO NOT TRANSLATE]-->
    <string name="global_actions_panel_title" translatable="false">Show global actions</string>
    <!-- Short title text for global actions panel [CHAR LIMIT=40] [DO NOT TRANSLATE]-->
    <string name="global_actions_panel_short_title" translatable="false">Global actions</string>
    <!-- Footer text for global actions panel [CHAR LIMIT=NONE] [DO NOT TRANSLATE]-->
    <string name="global_actions_panel_footer" translatable="false">The global actions panel can be accessed even when the device is locked.</string>
    <!-- Title text for swiping downwards on fingerprint sensor for notifications [CHAR LIMIT=80]-->
    <string name="fingerprint_swipe_for_notifications_title">Swipe fingerprint for notifications</string>
    <!-- Title text for fingerprint gesture preference screen [CHAR LIMIT=25] -->
+6 −0
Original line number Diff line number Diff line
@@ -75,4 +75,10 @@
        android:fragment="com.android.settings.gestures.PreventRingingGestureSettings"
        settings:controller="com.android.settings.gestures.PreventRingingParentPreferenceController" />

    <Preference
        android:key="gesture_global_actions_panel_summary"
        android:title="@string/global_actions_panel_short_title"
        android:fragment="com.android.settings.gestures.GlobalActionsPanelSettings"
        settings:controller="com.android.settings.gestures.GlobalActionsPanelPreferenceController" />

</PreferenceScreen>
+40 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2019 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:app="http://schemas.android.com/apk/res-auto"
    android:key="gesture_global_actions_panel"
    android:title="@string/global_actions_panel_title">

    <com.android.settings.widget.VideoPreference
        android:key="global_actions_panel_video"
        app:animation="@raw/gesture_global_actions_panel" />

    <SwitchPreference
        android:key="gesture_global_actions_panel_switch"
        android:title="@string/global_actions_panel_title"
        android:summary="@string/global_actions_panel_summary"
        app:keywords="@string/keywords_global_actions_panel"
        app:controller="com.android.settings.gestures.GlobalActionsPanelPreferenceController"
        app:allowDividerAbove="true" />

    <com.android.settingslib.widget.FooterPreference
        android:key="footer_preference"
        android:title="@string/global_actions_panel_footer" />

</PreferenceScreen>
 No newline at end of file
+69 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 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.provider.Settings;
import android.text.TextUtils;

import com.android.internal.annotations.VisibleForTesting;

public class GlobalActionsPanelPreferenceController extends GesturePreferenceController {
    private static final String PREF_KEY_VIDEO = "global_actions_panel_video";

    // TODO (b/132182180) -- Use Secure Settings constants instead of hard-coded strings
    @VisibleForTesting
    protected static final String ENABLED_SETTING = "global_actions_panel_enabled";
    // TODO (b/132182180) -- Use Secure Settings constants instead of hard-coded strings
    @VisibleForTesting
    protected static final String AVAILABLE_SETTING = "global_actions_panel_available";

    @VisibleForTesting
    protected static final String TOGGLE_KEY = "gesture_global_actions_panel_switch";

    public GlobalActionsPanelPreferenceController(Context context, String key) {
        super(context, key);
    }

    @Override
    public int getAvailabilityStatus() {
        int enabled = Settings.Secure.getInt(mContext.getContentResolver(), AVAILABLE_SETTING, 0);
        return enabled == 1 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        return Settings.Secure.putInt(mContext.getContentResolver(), ENABLED_SETTING,
                isChecked ? 1 : 0);
    }

    @Override
    protected String getVideoPrefKey() {
        return PREF_KEY_VIDEO;
    }

    @Override
    public boolean isSliceable() {
        return TextUtils.equals(getPreferenceKey(), TOGGLE_KEY);
    }

    @Override
    public boolean isChecked() {
        int enabled = Settings.Secure.getInt(mContext.getContentResolver(), ENABLED_SETTING, 0);
        return enabled == 1;
    }
}
Loading