Splitting some methods into individual compat classes

Change-Id: Id5a2650b290367d1574eb56346beca389900596b
This commit is contained in:
Sunny Goyal
2016-08-31 14:15:40 -07:00
parent 45b9fd280a
commit 35908f9e67
5 changed files with 74 additions and 15 deletions
@@ -32,8 +32,12 @@ public abstract class UserManagerCompat {
public static UserManagerCompat getInstance(Context context) {
synchronized (sInstanceLock) {
if (sInstance == null) {
if (Utilities.isNycOrAbove()) {
if (Utilities.isNycMR1OrAbove()) {
sInstance = new UserManagerCompatVNMr1(context.getApplicationContext());
} else if (Utilities.isNycOrAbove()) {
sInstance = new UserManagerCompatVN(context.getApplicationContext());
} else if (Utilities.ATLEAST_MARSHMALLOW) {
sInstance = new UserManagerCompatVM(context.getApplicationContext());
} else if (Utilities.ATLEAST_LOLLIPOP) {
sInstance = new UserManagerCompatVL(context.getApplicationContext());
} else if (Utilities.ATLEAST_JB_MR1) {
@@ -1,4 +1,3 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
@@ -94,9 +93,6 @@ public class UserManagerCompatVL extends UserManagerCompatV17 {
@Override
public long getUserCreationTime(UserHandleCompat user) {
if (Utilities.ATLEAST_MARSHMALLOW) {
return mUserManager.getUserCreationTime(user.getUser());
}
SharedPreferences prefs = Utilities.getPrefs(mContext);
String key = USER_CREATION_TIME_KEY + getSerialNumberForUser(user);
if (!prefs.contains(key)) {
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2016 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.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
@TargetApi(Build.VERSION_CODES.M)
public class UserManagerCompatVM extends UserManagerCompatVL {
UserManagerCompatVM(Context context) {
super(context);
}
@Override
public long getUserCreationTime(UserHandleCompat user) {
return mUserManager.getUserCreationTime(user.getUser());
}
}
@@ -23,7 +23,7 @@ import android.os.Build;
import com.android.launcher3.Utilities;
@TargetApi(Build.VERSION_CODES.N)
public class UserManagerCompatVN extends UserManagerCompatVL {
public class UserManagerCompatVN extends UserManagerCompatVM {
UserManagerCompatVN(Context context) {
super(context);
@@ -38,14 +38,5 @@ public class UserManagerCompatVN extends UserManagerCompatVL {
public boolean isUserUnlocked(UserHandleCompat user) {
return mUserManager.isUserUnlocked(user.getUser());
}
@Override
public boolean isDemoUser() {
if (Utilities.isNycMR1OrAbove()) {
return mUserManager.isDemoUser();
} else {
return super.isDemoUser();
}
}
}
@@ -0,0 +1,34 @@
/*
* Copyright (C) 2016 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.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
@TargetApi(Build.VERSION_CODES.N_MR1)
public class UserManagerCompatVNMr1 extends UserManagerCompatVN {
UserManagerCompatVNMr1(Context context) {
super(context);
}
@Override
public boolean isDemoUser() {
return mUserManager.isDemoUser();
}
}