UserManagerCompat.java revision f5e3744637db1598c389e62450627b2548f8f517
1f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright/* 2f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Copyright (C) 2014 The Android Open Source Project 3f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 4f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Licensed under the Apache License, Version 2.0 (the "License"); 5f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * you may not use this file except in compliance with the License. 6f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * You may obtain a copy of the License at 7f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 8f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * http://www.apache.org/licenses/LICENSE-2.0 9f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * 10f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * Unless required by applicable law or agreed to in writing, software 11f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * distributed under the License is distributed on an "AS IS" BASIS, 12f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * See the License for the specific language governing permissions and 14f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright * limitations under the License. 15f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright */ 16f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 17f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightpackage com.android.launcher3.compat; 18f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 19f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightimport android.content.Context; 20f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 21f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightimport com.android.launcher3.Utilities; 22fb8df2356ab108d5f56413bb524b3dac6a37af3eMichael Wright 23f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wrightimport java.util.List; 24fb8df2356ab108d5f56413bb524b3dac6a37af3eMichael Wright 25fb8df2356ab108d5f56413bb524b3dac6a37af3eMichael Wrightpublic abstract class UserManagerCompat { 26f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright protected UserManagerCompat() { 27f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright } 28f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 29f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright private static final Object sInstanceLock = new Object(); 30f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright private static UserManagerCompat sInstance; 31f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright 32f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright public static UserManagerCompat getInstance(Context context) { 33f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright synchronized (sInstanceLock) { 34f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright if (sInstance == null) { 35f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright if (Utilities.ATLEAST_NOUGAT_MR1) { 36f9c2ada62f328fac9747983185463e4e67ef4f6bMichael Wright sInstance = new UserManagerCompatVNMr1(context.getApplicationContext()); 37 } else if (Utilities.ATLEAST_NOUGAT) { 38 sInstance = new UserManagerCompatVN(context.getApplicationContext()); 39 } else if (Utilities.ATLEAST_MARSHMALLOW) { 40 sInstance = new UserManagerCompatVM(context.getApplicationContext()); 41 } else if (Utilities.ATLEAST_LOLLIPOP) { 42 sInstance = new UserManagerCompatVL(context.getApplicationContext()); 43 } else if (Utilities.ATLEAST_JB_MR1) { 44 sInstance = new UserManagerCompatV17(context.getApplicationContext()); 45 } else { 46 sInstance = new UserManagerCompatV16(); 47 } 48 } 49 return sInstance; 50 } 51 } 52 53 /** 54 * Creates a cache for users. 55 */ 56 public abstract void enableAndResetCache(); 57 58 public abstract List<UserHandleCompat> getUserProfiles(); 59 public abstract long getSerialNumberForUser(UserHandleCompat user); 60 public abstract UserHandleCompat getUserForSerialNumber(long serialNumber); 61 public abstract CharSequence getBadgedLabelForUser(CharSequence label, UserHandleCompat user); 62 public abstract long getUserCreationTime(UserHandleCompat user); 63 public abstract boolean isQuietModeEnabled(UserHandleCompat user); 64 public abstract boolean isUserUnlocked(UserHandleCompat user); 65 66 public abstract boolean isDemoUser(); 67} 68