Loading AndroidManifest.xml +3 −5 Original line number Diff line number Diff line Loading @@ -1688,14 +1688,12 @@ android:value="true" /> </activity> <activity android:name=".Settings$ScreenLockSuggestionActivity" <activity android:name=".password.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" Loading @@ -1703,7 +1701,7 @@ <meta-data android:name="com.android.settings.icon_tintable" android:value="true" /> </activity> <activity android:name=".Settings$FingerprintEnrollSuggestionActivity" <activity android:name=".fingerprint.FingerprintEnrollSuggestionActivity" android:icon="@drawable/ic_suggestion_fingerprint"> <intent-filter android:priority="2"> <action android:name="android.intent.action.MAIN" /> Loading Loading @@ -2908,7 +2906,7 @@ android:value="true" /> </activity> <activity android:name="Settings$WifiCallingSuggestionActivity" <activity android:name=".wifi.WifiCallingSuggestionActivity" android:label="@string/wifi_calling_settings_title" android:icon="@drawable/ic_settings_wireless" android:taskAffinity=""> Loading src/com/android/settings/Settings.java +0 −8 Original line number Diff line number Diff line Loading @@ -21,8 +21,6 @@ import android.util.FeatureFlagUtils; import com.android.settings.applications.AppOpsSummary; import com.android.settings.enterprise.EnterprisePrivacySettings; import com.android.settings.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.password.ChooseLockGeneric; /** * Top-level Settings activity Loading Loading @@ -157,12 +155,6 @@ public class Settings extends SettingsActivity { public static class ManageExternalSourcesActivity extends SettingsActivity { /* empty */ } public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ } public static class WifiCallingSuggestionActivity extends SettingsActivity { /* empty */ } public static class FingerprintEnrollSuggestionActivity extends FingerprintEnrollIntroduction { /* empty */ } public static class ScreenLockSuggestionActivity extends ChooseLockGeneric { /* empty */ } public static class DoubleTapPowerSuggestionActivity extends SettingsActivity { /* empty */ } public static class DoubleTwistSuggestionActivity extends SettingsActivity { /* empty */ } public static class AmbientDisplaySuggestionActivity extends SettingsActivity { /* empty */ } Loading src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public interface SuggestionFeatureProvider { boolean isSmartSuggestionEnabled(Context context); /** Return true if the suggestion has already been completed and does not need to be shown */ boolean isSuggestionCompleted(Context context, @NonNull ComponentName suggestion); boolean isSuggestionComplete(Context context, @NonNull ComponentName suggestion); /** * Returns the {@link SharedPreferences} that holds metadata for suggestions. Loading src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +18 −4 Original line number Diff line number Diff line Loading @@ -39,13 +39,18 @@ import com.android.settings.Settings.DoubleTwistSuggestionActivity; import com.android.settings.Settings.NightDisplaySuggestionActivity; import com.android.settings.Settings.SwipeToNotificationSuggestionActivity; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.fingerprint.FingerprintEnrollSuggestionActivity; import com.android.settings.fingerprint.FingerprintSuggestionActivity; 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.password.ScreenLockSuggestionActivity; import com.android.settings.support.NewDeviceIntroSuggestionActivity; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wifi.WifiCallingSuggestionActivity; import com.android.settingslib.drawer.Tile; import com.android.settingslib.suggestions.SuggestionParser; Loading Loading @@ -96,12 +101,21 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider } @Override public boolean isSuggestionCompleted(Context context, @NonNull ComponentName component) { public boolean isSuggestionComplete(Context context, @NonNull ComponentName component) { final String className = component.getClassName(); if (className.equals(NightDisplaySuggestionActivity.class.getName())) { if (className.equals(WallpaperSuggestionActivity.class.getName())) { return WallpaperSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(FingerprintSuggestionActivity.class.getName())) { return FingerprintSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { return FingerprintEnrollSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) { return ScreenLockSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) { return WifiCallingSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(NightDisplaySuggestionActivity.class.getName())) { return hasUsedNightDisplay(context); } if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) { } else if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) { return NewDeviceIntroSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(DoubleTapPowerSuggestionActivity.class.getName())) { return DoubleTapPowerPreferenceController Loading src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java +1 −66 Original line number Diff line number Diff line Loading @@ -16,23 +16,10 @@ package com.android.settings.dashboard.suggestions; import android.app.KeyguardManager; import android.app.WallpaperManager; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.hardware.fingerprint.FingerprintManager; import android.support.annotation.VisibleForTesting; import com.android.ims.ImsManager; import com.android.settings.Settings.FingerprintEnrollSuggestionActivity; import com.android.settings.Settings.ScreenLockSuggestionActivity; import com.android.settings.Settings.WifiCallingSuggestionActivity; import com.android.settings.Utils; import com.android.settings.fingerprint.FingerprintSuggestionActivity; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wrapper.WallpaperManagerWrapper; import com.android.settingslib.drawer.Tile; /** Loading @@ -43,69 +30,17 @@ public class SuggestionsChecks { private static final String TAG = "SuggestionsChecks"; private final Context mContext; private final WallpaperManagerWrapper mWallpaperManager; public SuggestionsChecks(Context context) { mContext = context.getApplicationContext(); mWallpaperManager = new WallpaperManagerWrapper(mContext); } public boolean isSuggestionComplete(Tile suggestion) { ComponentName component = suggestion.intent.getComponent(); String className = component.getClassName(); if (className.equals(WallpaperSuggestionActivity.class.getName())) { return hasWallpaperSet(); } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) { return isWifiCallingUnavailableOrEnabled(); } else if (className.equals(FingerprintSuggestionActivity.class.getName())) { return !Utils.hasFingerprintHardware(mContext) || !isFingerprintEnabled() || isNotSingleFingerprintEnrolled(); } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) { return isDeviceSecured(); } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { final FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext); if (manager == null || !isFingerprintEnabled() || !Utils.hasFingerprintHardware(mContext)) { return true; } return manager.hasEnrolledFingerprints(); } final SuggestionFeatureProvider provider = FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(mContext); return provider.isSuggestionCompleted(mContext, component); } private boolean isDeviceSecured() { KeyguardManager km = mContext.getSystemService(KeyguardManager.class); return km.isKeyguardSecure(); } private boolean isNotSingleFingerprintEnrolled() { FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext); return manager == null || manager.getEnrolledFingerprints().size() != 1; return provider.isSuggestionComplete(mContext, component); } public boolean isWifiCallingUnavailableOrEnabled() { if (!ImsManager.isWfcEnabledByPlatform(mContext) || !ImsManager.isWfcProvisionedOnDevice(mContext)) { return true; } return ImsManager.isWfcEnabledByUser(mContext) && ImsManager.isNonTtyOrTtyOnVolteEnabled(mContext); } @VisibleForTesting boolean hasWallpaperSet() { return mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM) > 0; } private boolean isFingerprintEnabled() { DevicePolicyManager dpManager = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); final int dpmFlags = dpManager.getKeyguardDisabledFeatures(null, /* admin */ mContext.getUserId()); return (dpmFlags & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) == 0; } } Loading
AndroidManifest.xml +3 −5 Original line number Diff line number Diff line Loading @@ -1688,14 +1688,12 @@ android:value="true" /> </activity> <activity android:name=".Settings$ScreenLockSuggestionActivity" <activity android:name=".password.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" Loading @@ -1703,7 +1701,7 @@ <meta-data android:name="com.android.settings.icon_tintable" android:value="true" /> </activity> <activity android:name=".Settings$FingerprintEnrollSuggestionActivity" <activity android:name=".fingerprint.FingerprintEnrollSuggestionActivity" android:icon="@drawable/ic_suggestion_fingerprint"> <intent-filter android:priority="2"> <action android:name="android.intent.action.MAIN" /> Loading Loading @@ -2908,7 +2906,7 @@ android:value="true" /> </activity> <activity android:name="Settings$WifiCallingSuggestionActivity" <activity android:name=".wifi.WifiCallingSuggestionActivity" android:label="@string/wifi_calling_settings_title" android:icon="@drawable/ic_settings_wireless" android:taskAffinity=""> Loading
src/com/android/settings/Settings.java +0 −8 Original line number Diff line number Diff line Loading @@ -21,8 +21,6 @@ import android.util.FeatureFlagUtils; import com.android.settings.applications.AppOpsSummary; import com.android.settings.enterprise.EnterprisePrivacySettings; import com.android.settings.fingerprint.FingerprintEnrollIntroduction; import com.android.settings.password.ChooseLockGeneric; /** * Top-level Settings activity Loading Loading @@ -157,12 +155,6 @@ public class Settings extends SettingsActivity { public static class ManageExternalSourcesActivity extends SettingsActivity { /* empty */ } public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ } public static class WifiCallingSuggestionActivity extends SettingsActivity { /* empty */ } public static class FingerprintEnrollSuggestionActivity extends FingerprintEnrollIntroduction { /* empty */ } public static class ScreenLockSuggestionActivity extends ChooseLockGeneric { /* empty */ } public static class DoubleTapPowerSuggestionActivity extends SettingsActivity { /* empty */ } public static class DoubleTwistSuggestionActivity extends SettingsActivity { /* empty */ } public static class AmbientDisplaySuggestionActivity extends SettingsActivity { /* empty */ } Loading
src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ public interface SuggestionFeatureProvider { boolean isSmartSuggestionEnabled(Context context); /** Return true if the suggestion has already been completed and does not need to be shown */ boolean isSuggestionCompleted(Context context, @NonNull ComponentName suggestion); boolean isSuggestionComplete(Context context, @NonNull ComponentName suggestion); /** * Returns the {@link SharedPreferences} that holds metadata for suggestions. Loading
src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +18 −4 Original line number Diff line number Diff line Loading @@ -39,13 +39,18 @@ import com.android.settings.Settings.DoubleTwistSuggestionActivity; import com.android.settings.Settings.NightDisplaySuggestionActivity; import com.android.settings.Settings.SwipeToNotificationSuggestionActivity; import com.android.settings.core.instrumentation.MetricsFeatureProvider; import com.android.settings.fingerprint.FingerprintEnrollSuggestionActivity; import com.android.settings.fingerprint.FingerprintSuggestionActivity; 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.password.ScreenLockSuggestionActivity; import com.android.settings.support.NewDeviceIntroSuggestionActivity; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wifi.WifiCallingSuggestionActivity; import com.android.settingslib.drawer.Tile; import com.android.settingslib.suggestions.SuggestionParser; Loading Loading @@ -96,12 +101,21 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider } @Override public boolean isSuggestionCompleted(Context context, @NonNull ComponentName component) { public boolean isSuggestionComplete(Context context, @NonNull ComponentName component) { final String className = component.getClassName(); if (className.equals(NightDisplaySuggestionActivity.class.getName())) { if (className.equals(WallpaperSuggestionActivity.class.getName())) { return WallpaperSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(FingerprintSuggestionActivity.class.getName())) { return FingerprintSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { return FingerprintEnrollSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) { return ScreenLockSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) { return WifiCallingSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(NightDisplaySuggestionActivity.class.getName())) { return hasUsedNightDisplay(context); } if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) { } else if (className.equals(NewDeviceIntroSuggestionActivity.class.getName())) { return NewDeviceIntroSuggestionActivity.isSuggestionComplete(context); } else if (className.equals(DoubleTapPowerSuggestionActivity.class.getName())) { return DoubleTapPowerPreferenceController Loading
src/com/android/settings/dashboard/suggestions/SuggestionsChecks.java +1 −66 Original line number Diff line number Diff line Loading @@ -16,23 +16,10 @@ package com.android.settings.dashboard.suggestions; import android.app.KeyguardManager; import android.app.WallpaperManager; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.hardware.fingerprint.FingerprintManager; import android.support.annotation.VisibleForTesting; import com.android.ims.ImsManager; import com.android.settings.Settings.FingerprintEnrollSuggestionActivity; import com.android.settings.Settings.ScreenLockSuggestionActivity; import com.android.settings.Settings.WifiCallingSuggestionActivity; import com.android.settings.Utils; import com.android.settings.fingerprint.FingerprintSuggestionActivity; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wallpaper.WallpaperSuggestionActivity; import com.android.settings.wrapper.WallpaperManagerWrapper; import com.android.settingslib.drawer.Tile; /** Loading @@ -43,69 +30,17 @@ public class SuggestionsChecks { private static final String TAG = "SuggestionsChecks"; private final Context mContext; private final WallpaperManagerWrapper mWallpaperManager; public SuggestionsChecks(Context context) { mContext = context.getApplicationContext(); mWallpaperManager = new WallpaperManagerWrapper(mContext); } public boolean isSuggestionComplete(Tile suggestion) { ComponentName component = suggestion.intent.getComponent(); String className = component.getClassName(); if (className.equals(WallpaperSuggestionActivity.class.getName())) { return hasWallpaperSet(); } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) { return isWifiCallingUnavailableOrEnabled(); } else if (className.equals(FingerprintSuggestionActivity.class.getName())) { return !Utils.hasFingerprintHardware(mContext) || !isFingerprintEnabled() || isNotSingleFingerprintEnrolled(); } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) { return isDeviceSecured(); } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) { final FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext); if (manager == null || !isFingerprintEnabled() || !Utils.hasFingerprintHardware(mContext)) { return true; } return manager.hasEnrolledFingerprints(); } final SuggestionFeatureProvider provider = FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider(mContext); return provider.isSuggestionCompleted(mContext, component); } private boolean isDeviceSecured() { KeyguardManager km = mContext.getSystemService(KeyguardManager.class); return km.isKeyguardSecure(); } private boolean isNotSingleFingerprintEnrolled() { FingerprintManager manager = Utils.getFingerprintManagerOrNull(mContext); return manager == null || manager.getEnrolledFingerprints().size() != 1; return provider.isSuggestionComplete(mContext, component); } public boolean isWifiCallingUnavailableOrEnabled() { if (!ImsManager.isWfcEnabledByPlatform(mContext) || !ImsManager.isWfcProvisionedOnDevice(mContext)) { return true; } return ImsManager.isWfcEnabledByUser(mContext) && ImsManager.isNonTtyOrTtyOnVolteEnabled(mContext); } @VisibleForTesting boolean hasWallpaperSet() { return mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM) > 0; } private boolean isFingerprintEnabled() { DevicePolicyManager dpManager = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); final int dpmFlags = dpManager.getKeyguardDisabledFeatures(null, /* admin */ mContext.getUserId()); return (dpmFlags & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) == 0; } }