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

Commit f7c459c9 authored by Daniel Sheng's avatar Daniel Sheng
Browse files

Added suggestions for gestures.

Bug: 30986021
Test: manual + make RunSettingsRoboTests + adb shell am instrument -w
com.android.settings.tests.unit /android.support.test.runner.AndroidJUnitRunner
Change-Id: I7337a141cb21e5a1399aaca05ec1facd8629577b
Merged-In: I7aed110c81ca2fb6b90e2f359b4bb941c02bc1c3
parent c1cc9fef
Loading
Loading
Loading
Loading
+113 −2
Original line number Diff line number Diff line
@@ -3149,7 +3149,7 @@
        <activity
            android:name=".Settings$CameraLiftTriggerSuggestionActivity"
            android:label="@string/camera_lift_trigger_title"
            android:icon="@drawable/ic_settings_camera"
            android:icon="@drawable/ic_suggestion_gesture"
            android:enabled="@bool/config_cameraLiftTriggerAvailable">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
@@ -3160,7 +3160,7 @@
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="3,7,30" />
                       android:value="4,8,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.CameraLiftTriggerSettings"/>
            <meta-data android:name="com.android.settings.title"
@@ -3169,6 +3169,117 @@
                       android:resource="@string/camera_lift_trigger_suggestion_summary" />
        </activity>

        <activity
            android:name=".Settings$DoubleTapPowerSuggestionActivity"
            android:label="@string/double_tap_power_for_camera_title"
            android:icon="@drawable/ic_suggestion_gesture">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.GESTURE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="4,8,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.DoubleTapPowerSettings"/>
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/double_tap_power_for_camera_suggestion_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/double_tap_power_for_camera_suggestion_summary" />
        </activity>

        <activity
            android:name=".Settings$DoubleTwistSuggestionActivity"
            android:label="@string/double_twist_for_camera_mode_title"
            android:icon="@drawable/ic_suggestion_gesture">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.GESTURE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="4,8,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.DoubleTwistGestureSettings"/>
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/double_twist_for_camera_suggestion_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/double_twist_for_camera_suggestion_summary" />
        </activity>

        <activity
            android:name=".Settings$AmbientDisplaySuggestionActivity"
            android:label="@string/ambient_display_title"
            android:icon="@drawable/ic_suggestion_gesture">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.GESTURE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="9,13,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.DoubleTapScreenSettings"/>
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/ambient_display_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/ambient_display_suggestion_summary" />
        </activity>

        <activity
            android:name=".Settings$AmbientDisplayPickupSuggestionActivity"
            android:label="@string/ambient_display_pickup_title"
            android:icon="@drawable/ic_suggestion_gesture">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.GESTURE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="9,13,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.PickupGestureSettings"/>
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/ambient_display_pickup_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/ambient_display_pickup_suggestion_summary" />
        </activity>

        <activity
            android:name=".Settings$SwipeToNotificationSuggestionActivity"
            android:label="@string/fingerprint_swipe_for_notifications_title"
            android:icon="@drawable/ic_suggestion_gesture">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.GESTURE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="9,13,30" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.gestures.SwipeToNotificationSettings"/>
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/fingerprint_swipe_for_notifications_suggestion_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/fingerprint_swipe_for_notifications_suggestion_summary" />
        </activity>
        <!-- End activities for moves/gestures suggestions -->

        <activity android:name=".applications.autofill.AutofillPickerActivity"
                android:excludeFromRecents="true"
                android:launchMode="singleInstance"
+28 −0
Original line number Diff line number Diff line
<!--
    Copyright (C) 2017 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="32.0"
    android:viewportHeight="32.0"
    android:autoMirrored="true">
    <path
        android:fillColor="@color/material_grey_600"
        android:pathData="M20,20.2V24H6V5.3h8.7l2.4,-4H7.6c-2.2,0 -4,1.8 -4,4v21.3c0,2.2 1.8,4 4,4h10.7c2.2,0 4,-1.8 4,-4V14.9L20,20.2zM15.6,28h-5.3v-1.3h5.3V28z"/>
    <path
        android:fillColor="@color/material_grey_600"
        android:pathData="M28.5,7l1.1,-2.4L32,3.5l-2.4,-1.1L28.5,0l-1.1,2.4L25,3.5l2.4,1.1L28.5,7zM21,7.4l-2.2,-4.8l-2.2,4.8l-4.8,2.2l4.8,2.2l2.2,4.8l2.2,-4.8l4.8,-2.2L21,7.4zM28.5,12.2l-1.1,2.4L25,15.6l2.4,1.1l1.1,2.4l1.1,-2.4l2.4,-1.1l-2.4,-1.1L28.5,12.2z"/>
</vector>
+7 −0
Original line number Diff line number Diff line
@@ -147,6 +147,13 @@ public class Settings extends SettingsActivity {
    }
    public static class ScreenLockSuggestionActivity extends ChooseLockGeneric { /* empty */ }
    public static class CameraLiftTriggerSuggestionActivity extends SettingsActivity { /* empty */ }
    public static class DoubleTapPowerSuggestionActivity extends SettingsActivity { /* empty */ }
    public static class DoubleTwistSuggestionActivity extends SettingsActivity { /* empty */ }
    public static class AmbientDisplaySuggestionActivity extends SettingsActivity { /* empty */ }
    public static class AmbientDisplayPickupSuggestionActivity extends SettingsActivity {
        /* empty */ }
    public static class SwipeToNotificationSuggestionActivity extends SettingsActivity {
        /* empty */ }
    public static class WallpaperSettingsActivity extends SettingsActivity { /* empty */ }
    public static class ManagedProfileSettingsActivity extends SettingsActivity { /* empty */ }
    public static class DeletionHelperActivity extends SettingsActivity { /* empty */ }
+30 −0
Original line number Diff line number Diff line
@@ -20,11 +20,24 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.util.Log;

import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.Settings.AmbientDisplayPickupSuggestionActivity;
import com.android.settings.Settings.AmbientDisplaySuggestionActivity;
import com.android.settings.Settings.DoubleTapPowerSuggestionActivity;
import com.android.settings.Settings.DoubleTwistSuggestionActivity;
import com.android.settings.Settings.SwipeToNotificationSuggestionActivity;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.gestures.DoubleTapPowerPreferenceController;
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.DoubleTwistPreferenceController;
import com.android.settings.gestures.PickupGesturePreferenceController;
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.support.NewDeviceIntroSuggestionActivity;
import com.android.settingslib.drawer.Tile;
@@ -41,6 +54,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider

    private final SuggestionRanker mSuggestionRanker;
    private final MetricsFeatureProvider mMetricsFeatureProvider;
    private final AmbientDisplayConfiguration mAmbientDisplayConfig;

    @Override
    public boolean isSmartSuggestionEnabled(Context context) {
@@ -52,6 +66,21 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
        final String className = component.getClassName();
        if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) {
            return NewDeviceIntroSuggestionActivity.isSuggestionComplete(context);
        } else if (className.equals(DoubleTapPowerSuggestionActivity.class.getName())) {
            return DoubleTapPowerPreferenceController
                    .isSuggestionComplete(context, getSharedPrefs(context));
        } else if (className.equals(DoubleTwistSuggestionActivity.class.getName())) {
            return DoubleTwistPreferenceController
                    .isSuggestionComplete(context, getSharedPrefs(context));
        } else if (className.equals(AmbientDisplaySuggestionActivity.class.getName())) {
            return DoubleTapScreenPreferenceController
                    .isSuggestionComplete(context, getSharedPrefs(context));
        } else if (className.equals(AmbientDisplayPickupSuggestionActivity.class.getName())) {
            return PickupGesturePreferenceController
                    .isSuggestionComplete(context, getSharedPrefs(context));
        } else if (className.equals(SwipeToNotificationSuggestionActivity.class.getName())) {
            return SwipeToNotificationPreferenceController
                    .isSuggestionComplete(context, getSharedPrefs(context));
        }
        return false;
    }
@@ -67,6 +96,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider
                new SuggestionFeaturizer(new EventStore(appContext)));
        mMetricsFeatureProvider = FeatureFactory.getFactory(appContext)
                .getMetricsFeatureProvider();
        mAmbientDisplayConfig = new AmbientDisplayConfiguration(appContext);
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -130,7 +130,8 @@ public class SuggestionsChecks {

    private boolean isCameraLiftTriggerEnabled() {
        final int triggerEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.CAMERA_LIFT_TRIGGER_ENABLED, 0);
                Settings.Secure.CAMERA_LIFT_TRIGGER_ENABLED,
                Settings.Secure.CAMERA_LIFT_TRIGGER_ENABLED_DEFAULT);
        return triggerEnabled == 1;
    }
}
Loading