diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-07-28 12:11:54 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-07-29 16:10:31 -0700 |
commit | d3b87ef1963fb96177ca85bcd6a25879e27e419c (patch) | |
tree | f334d5aa2b24626cba47ec1936264a08e385a4b5 /src/com/android/launcher3/compat | |
parent | c42087e5c011dbf912c0f8b8d27d15ec5a97dca1 (diff) | |
download | android_packages_apps_Trebuchet-d3b87ef1963fb96177ca85bcd6a25879e27e419c.tar.gz android_packages_apps_Trebuchet-d3b87ef1963fb96177ca85bcd6a25879e27e419c.tar.bz2 android_packages_apps_Trebuchet-d3b87ef1963fb96177ca85bcd6a25879e27e419c.zip |
Adding quiet mode support for shortcuts
> LauncherApps returns empty list when the user is locked. Not relying on
LauncherApps in this case
> When the user is locked, removing all dynamic shortcuts
> Loading shortcuts from DB when the user is locked
> Verifying the shortcuts again when the user is available
Bug: 30411561
Change-Id: Ib6eb372c5b009cadb86a8f6e781f3f3cbf787ceb
Diffstat (limited to 'src/com/android/launcher3/compat')
4 files changed, 19 insertions, 30 deletions
diff --git a/src/com/android/launcher3/compat/LauncherAppsCompat.java b/src/com/android/launcher3/compat/LauncherAppsCompat.java index 3c1013db4..645e68a8f 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompat.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompat.java @@ -31,15 +31,6 @@ import java.util.List; public abstract class LauncherAppsCompat { - public static final String ACTION_MANAGED_PROFILE_ADDED = - "android.intent.action.MANAGED_PROFILE_ADDED"; - public static final String ACTION_MANAGED_PROFILE_REMOVED = - "android.intent.action.MANAGED_PROFILE_REMOVED"; - public static final String ACTION_MANAGED_PROFILE_AVAILABLE = - "android.intent.action.MANAGED_PROFILE_AVAILABLE"; - public static final String ACTION_MANAGED_PROFILE_UNAVAILABLE = - "android.intent.action.MANAGED_PROFILE_UNAVAILABLE"; - public interface OnAppsChangedCallbackCompat { void onPackageRemoved(String packageName, UserHandleCompat user); void onPackageAdded(String packageName, UserHandleCompat user); diff --git a/src/com/android/launcher3/compat/UserManagerCompat.java b/src/com/android/launcher3/compat/UserManagerCompat.java index 978f9229d..29ed5d9ba 100644 --- a/src/com/android/launcher3/compat/UserManagerCompat.java +++ b/src/com/android/launcher3/compat/UserManagerCompat.java @@ -57,4 +57,5 @@ public abstract class UserManagerCompat { public abstract CharSequence getBadgedLabelForUser(CharSequence label, UserHandleCompat user); public abstract long getUserCreationTime(UserHandleCompat user); public abstract boolean isQuietModeEnabled(UserHandleCompat user); + public abstract boolean isUserUnlocked(UserHandleCompat user); } diff --git a/src/com/android/launcher3/compat/UserManagerCompatV16.java b/src/com/android/launcher3/compat/UserManagerCompatV16.java index a006efd50..e678ffa3d 100644 --- a/src/com/android/launcher3/compat/UserManagerCompatV16.java +++ b/src/com/android/launcher3/compat/UserManagerCompatV16.java @@ -55,4 +55,9 @@ public class UserManagerCompatV16 extends UserManagerCompat { public boolean isQuietModeEnabled(UserHandleCompat user) { return false; } + + @Override + public boolean isUserUnlocked(UserHandleCompat user) { + return true; + } } diff --git a/src/com/android/launcher3/compat/UserManagerCompatVN.java b/src/com/android/launcher3/compat/UserManagerCompatVN.java index ae41e68a3..771d141c3 100644 --- a/src/com/android/launcher3/compat/UserManagerCompatVN.java +++ b/src/com/android/launcher3/compat/UserManagerCompatVN.java @@ -16,15 +16,11 @@ package com.android.launcher3.compat; +import android.annotation.TargetApi; import android.content.Context; -import android.os.UserHandle; -import android.os.UserManager; -import android.util.Log; +import android.os.Build; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -//TODO: Once gogole3 SDK is updated to N, add @TargetApi(Build.VERSION_CODES.N) +@TargetApi(Build.VERSION_CODES.N) public class UserManagerCompatVN extends UserManagerCompatVL { private static final String TAG = "UserManagerCompatVN"; @@ -35,21 +31,17 @@ public class UserManagerCompatVN extends UserManagerCompatVL { @Override public boolean isQuietModeEnabled(UserHandleCompat user) { - if (user != null) { - try { - //TODO: Replace with proper API call once google3 SDK is updated. - Method isQuietModeEnabledMethod = UserManager.class.getMethod("isQuietModeEnabled", - UserHandle.class); - return (boolean) isQuietModeEnabledMethod.invoke(mUserManager, user.getUser()); - } catch (NoSuchMethodError | NoSuchMethodException | IllegalAccessException - | InvocationTargetException e) { - Log.e(TAG, "Running on N without isQuietModeEnabled", e); - } catch (IllegalArgumentException e) { - // TODO remove this when API is fixed to not throw this - // when called on user that isn't a managed profile. - } + return mUserManager.isQuietModeEnabled(user.getUser()); + } + + @Override + public boolean isUserUnlocked(UserHandleCompat user) { + // TODO: Remove the try-catch block when the API permission has been relaxed (b/30475753) + try { + return mUserManager.isUserUnlocked(user.getUser()); + } catch (RuntimeException e) { + return !isQuietModeEnabled(user); } - return false; } } |