diff options
author | Tony Mak <tonymak@google.com> | 2018-01-03 14:41:31 +0000 |
---|---|---|
committer | Tony Mak <tonymak@google.com> | 2018-01-04 19:06:01 +0000 |
commit | 6eeb040d86ba209bffbbb9a1c59d5ca0b659f343 (patch) | |
tree | 2d9ece21261a537bffa2255f988f5216d681cc99 /src/com/android/launcher3/compat | |
parent | cd7431d9256979e11faefb87912f888eb8b99258 (diff) | |
download | android_packages_apps_Trebuchet-6eeb040d86ba209bffbbb9a1c59d5ca0b659f343.tar.gz android_packages_apps_Trebuchet-6eeb040d86ba209bffbbb9a1c59d5ca0b659f343.tar.bz2 android_packages_apps_Trebuchet-6eeb040d86ba209bffbbb9a1c59d5ca0b659f343.zip |
Consume work mode API
Fix: 69905244
Change-Id: I5958b3a2ebba2fa0e0f69448d5526dc72ed6a97b
Diffstat (limited to 'src/com/android/launcher3/compat')
3 files changed, 64 insertions, 1 deletions
diff --git a/src/com/android/launcher3/compat/UserManagerCompat.java b/src/com/android/launcher3/compat/UserManagerCompat.java index 25808d21c..197f79836 100644 --- a/src/com/android/launcher3/compat/UserManagerCompat.java +++ b/src/com/android/launcher3/compat/UserManagerCompat.java @@ -33,7 +33,9 @@ public abstract class UserManagerCompat { public static UserManagerCompat getInstance(Context context) { synchronized (sInstanceLock) { if (sInstance == null) { - if (Utilities.ATLEAST_NOUGAT_MR1) { + if (Utilities.ATLEAST_P) { + sInstance = new UserManagerCompatVP(context.getApplicationContext()); + } else if (Utilities.ATLEAST_NOUGAT_MR1) { sInstance = new UserManagerCompatVNMr1(context.getApplicationContext()); } else if (Utilities.ATLEAST_NOUGAT) { sInstance = new UserManagerCompatVN(context.getApplicationContext()); @@ -61,4 +63,5 @@ public abstract class UserManagerCompat { public abstract boolean isUserUnlocked(UserHandle user); public abstract boolean isDemoUser(); + public abstract boolean trySetQuietModeEnabled(boolean enableQuietMode, UserHandle user); } diff --git a/src/com/android/launcher3/compat/UserManagerCompatVL.java b/src/com/android/launcher3/compat/UserManagerCompatVL.java index bb425732c..e6cc3198d 100644 --- a/src/com/android/launcher3/compat/UserManagerCompatVL.java +++ b/src/com/android/launcher3/compat/UserManagerCompatVL.java @@ -83,6 +83,11 @@ public class UserManagerCompatVL extends UserManagerCompat { } @Override + public boolean trySetQuietModeEnabled(boolean enableQuietMode, UserHandle user) { + return false; + } + + @Override public void enableAndResetCache() { synchronized (this) { mUsers = new LongArrayMap<>(); diff --git a/src/com/android/launcher3/compat/UserManagerCompatVP.java b/src/com/android/launcher3/compat/UserManagerCompatVP.java new file mode 100644 index 000000000..a0bf0ab22 --- /dev/null +++ b/src/com/android/launcher3/compat/UserManagerCompatVP.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2018 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.launcher3.compat; + +import android.content.Context; +import android.os.UserHandle; +import android.os.UserManager; +import android.util.Log; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +public class UserManagerCompatVP extends UserManagerCompatVNMr1 { + private static final String TAG = "UserManagerCompatVP"; + + private Method mTrySetQuietModeEnabledMethod; + + UserManagerCompatVP(Context context) { + super(context); + // TODO: Replace it with proper API call once SDK is ready. + try { + mTrySetQuietModeEnabledMethod = UserManager.class.getDeclaredMethod( + "trySetQuietModeEnabled", boolean.class, UserHandle.class); + } catch (NoSuchMethodException e) { + Log.e(TAG, "trySetQuietModeEnabled is not available", e); + } + } + + @Override + public boolean trySetQuietModeEnabled(boolean enableQuietMode, UserHandle user) { + if (mTrySetQuietModeEnabledMethod == null) { + return false; + } + try { + return (boolean) + mTrySetQuietModeEnabledMethod.invoke(mUserManager, enableQuietMode, user); + } catch (IllegalAccessException | InvocationTargetException e) { + Log.e(TAG, "Failed to invoke mTrySetQuietModeEnabledMethod", e); + } + return false; + } +} |