UserManagerCompat.java revision a52ecb0390c85afb385371bb844bb496c59ddf87
13306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong/* 23306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Copyright (C) 2014 The Android Open Source Project 33306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * 43306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Licensed under the Apache License, Version 2.0 (the "License"); 53306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * you may not use this file except in compliance with the License. 63306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * You may obtain a copy of the License at 73306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * 83306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * http://www.apache.org/licenses/LICENSE-2.0 93306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * 103306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Unless required by applicable law or agreed to in writing, software 113306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * distributed under the License is distributed on an "AS IS" BASIS, 123306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * See the License for the specific language governing permissions and 143306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * limitations under the License. 153306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong */ 163306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 173306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongpackage com.android.launcher3.compat; 183306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 193306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongimport android.content.Context; 203306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongimport android.os.UserHandle; 213306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 223306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongimport com.android.launcher3.Utilities; 233306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 243306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongimport java.util.List; 253306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 263306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dongpublic abstract class UserManagerCompat { 273306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong protected UserManagerCompat() { 283306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } 293306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 303306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong private static final Object sInstanceLock = new Object(); 313306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong private static UserManagerCompat sInstance; 323306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 333306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public static UserManagerCompat getInstance(Context context) { 343306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong synchronized (sInstanceLock) { 353306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong if (sInstance == null) { 363306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong if (Utilities.ATLEAST_NOUGAT_MR1) { 373306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong sInstance = new UserManagerCompatVNMr1(context.getApplicationContext()); 383306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } else if (Utilities.ATLEAST_NOUGAT) { 393306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong sInstance = new UserManagerCompatVN(context.getApplicationContext()); 403306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } else if (Utilities.ATLEAST_MARSHMALLOW) { 413306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong sInstance = new UserManagerCompatVM(context.getApplicationContext()); 423306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } else { 433306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong sInstance = new UserManagerCompatVL(context.getApplicationContext()); 443306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } 453306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } 463306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong return sInstance; 473306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } 483306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong } 493306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 503306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong /** 513306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong * Creates a cache for users. 523306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong */ 533306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract void enableAndResetCache(); 543306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 553306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract List<UserHandle> getUserProfiles(); 563306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract long getSerialNumberForUser(UserHandle user); 573306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract UserHandle getUserForSerialNumber(long serialNumber); 583306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract CharSequence getBadgedLabelForUser(CharSequence label, UserHandle user); 593306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract long getUserCreationTime(UserHandle user); 603306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract boolean isQuietModeEnabled(UserHandle user); 613306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract boolean isUserUnlocked(UserHandle user); 623306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong 633306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong public abstract boolean isDemoUser(); 643306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong} 653306cfee3bf38ab207a0504e49c2d492bb73ffbfJames Dong