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

Commit 79706ea0 authored by Udam Saini's avatar Udam Saini Committed by Android (Google) Code Review
Browse files

Merge "Dynamically checks if screen lock suggestion is needed"

parents 8e10ddc2 62a7280c
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -1607,33 +1607,35 @@
                android:value="true" />
        </activity>

        <activity-alias android:name=".suggestion.ChooseLockGeneric"
            android:icon="@drawable/ic_settings_security"
            android:targetActivity=".ChooseLockGeneric">
        <activity android:name=".Settings$ScreenLockSuggestionActivity"
            android:icon="@drawable/ic_settings_security">
            <intent-filter android:priority="1">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.LOCK_SCREEN" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="0,30" />
            <meta-data android:name="com.android.settings.title"
                       android:resource="@string/suggested_lock_settings_title" />
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/suggested_lock_settings_summary" />
        </activity-alias>
        </activity>

        <activity-alias android:name=".suggestion.FingerprintEnrollIntroduction"
            android:icon="@drawable/ic_settings_security"
            android:targetActivity=".fingerprint.FingerprintEnrollIntroduction">
        <activity android:name=".Settings$FingerprintEnrollSuggestionActivity"
            android:icon="@drawable/ic_settings_security">
            <intent-filter android:priority="2">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="com.android.settings.suggested.category.LOCK_SCREEN" />
            </intent-filter>
            <meta-data android:name="com.android.settings.dismiss"
                       android:value="0,30" />
            <meta-data android:name="com.android.settings.require_feature"
                android:value="android.hardware.fingerprint" />
            <meta-data android:name="com.android.settings.title"
                android:resource="@string/suggested_lock_settings_title" />
            <meta-data android:name="com.android.settings.summary"
                android:resource="@string/suggested_lock_settings_summary" />
        </activity-alias>
        </activity>

        <activity android:name="ChooseLockGeneric$InternalActivity" android:exported="false"
            android:label="@string/lockpassword_choose_lock_generic_header"
+0 −24
Original line number Diff line number Diff line
@@ -24,11 +24,9 @@ import android.app.DialogFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintManager.RemovalCallback;
@@ -269,7 +267,6 @@ public class ChooseLockGeneric extends SettingsActivity {
                    || requestCode == ENABLE_ENCRYPTION_REQUEST) {
                if (resultCode != RESULT_CANCELED) {
                    getActivity().setResult(resultCode, data);
                    disableScreenLockSuggestion();
                    finish();
                }
            } else {
@@ -548,30 +545,9 @@ public class ChooseLockGeneric extends SettingsActivity {
                getActivity().setResult(Activity.RESULT_OK);
            } else {
                removeAllFingerprintTemplatesAndFinish();
                disableScreenLockSuggestion();
            }
        }

        private void disableScreenLockSuggestion() {
            final ComponentName suggestionChooseLock = new ComponentName("com.android.settings",
                    "com.android.settings.suggestion.ChooseLockGeneric");
            disableComponent(suggestionChooseLock);
            PackageManager pm = getContext().getPackageManager();
            if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
                final ComponentName suggestionFingerprint = new ComponentName(
                        "com.android.settings",
                        "com.android.settings.suggestion.FingerprintEnrollIntroduction");
                disableComponent(suggestionFingerprint);
            }
        }

        private void disableComponent(ComponentName componentName) {
            getContext().getPackageManager().setComponentEnabledSetting(
                    componentName,
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    PackageManager.DONT_KILL_APP);
        }

        private Intent getIntentForUnlockMethod(int quality, boolean disabled) {
            Intent intent = null;
            final Context context = getActivity();
+5 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings;

import com.android.settings.applications.AppOpsSummary;
import com.android.settings.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.fingerprint.FingerprintSettings;

/**
@@ -129,6 +130,10 @@ public class Settings extends SettingsActivity {
    public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ }
    public static class WallpaperSuggestionActivity extends SettingsActivity { /* empty */ }
    public static class FingerprintSuggestionActivity extends FingerprintSettings { /* empty */ }
    public static class FingerprintEnrollSuggestionActivity extends FingerprintEnrollIntroduction {
        /* empty */
    }
    public static class ScreenLockSuggestionActivity extends ChooseLockGeneric { /* empty */ }

    // Categories.
    public static class WirelessSettings extends SettingsActivity { /* empty */ }
+11 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import android.app.AutomaticZenRule;
import android.app.IWallpaperManager;
import android.app.IWallpaperManager.Stub;
import android.app.IWallpaperManagerCallback;
import android.app.KeyguardManager;
import android.app.NotificationManager;
import android.content.Context;
import android.hardware.fingerprint.FingerprintManager;
@@ -26,7 +27,9 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
import com.android.ims.ImsManager;
import com.android.settings.Settings.FingerprintEnrollSuggestionActivity;
import com.android.settings.Settings.FingerprintSuggestionActivity;
import com.android.settings.Settings.ScreenLockSuggestionActivity;
import com.android.settings.Settings.WallpaperSuggestionActivity;
import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
@@ -55,10 +58,18 @@ public class SuggestionsChecks {
            return isWifiCallingUnavailableOrEnabled();
        } else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
            return isNotSingleFingerprintEnrolled();
        } else if (className.equals(ScreenLockSuggestionActivity.class.getName())
                || className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
            return isDeviceSecured();
        }
        return false;
    }

    private boolean isDeviceSecured() {
        KeyguardManager km = mContext.getSystemService(KeyguardManager.class);
        return km.isKeyguardSecure();
    }

    private boolean isNotSingleFingerprintEnrolled() {
        FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
        return manager == null || manager.getEnrolledFingerprints().size() != 1;