UserManagerCompatVL.java revision 18bf8e2ffde3444d53aaa9654da02cdedd0b7cd1
1
2/*
3 * Copyright (C) 2014 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package com.android.launcher3.compat;
19
20import android.content.Context;
21import android.content.SharedPreferences;
22import android.content.pm.PackageManager;
23import android.graphics.drawable.Drawable;
24import android.os.UserHandle;
25
26import com.android.launcher3.LauncherAppState;
27
28import java.util.ArrayList;
29import java.util.Collections;
30import java.util.List;
31
32public class UserManagerCompatVL extends UserManagerCompatV17 {
33    private static final String USER_CREATION_TIME_KEY = "user_creation_time_";
34
35    private final PackageManager mPm;
36    private final Context mContext;
37
38    UserManagerCompatVL(Context context) {
39        super(context);
40        mPm = context.getPackageManager();
41        mContext = context;
42    }
43
44    @Override
45    public List<UserHandleCompat> getUserProfiles() {
46        List<UserHandle> users = mUserManager.getUserProfiles();
47        if (users == null) {
48            return Collections.EMPTY_LIST;
49        }
50        ArrayList<UserHandleCompat> compatUsers = new ArrayList<UserHandleCompat>(
51                users.size());
52        for (UserHandle user : users) {
53            compatUsers.add(UserHandleCompat.fromUser(user));
54        }
55        return compatUsers;
56    }
57
58    @Override
59    public Drawable getBadgedDrawableForUser(Drawable unbadged, UserHandleCompat user) {
60        return mPm.getUserBadgedIcon(unbadged, user.getUser());
61    }
62
63    @Override
64    public CharSequence getBadgedLabelForUser(CharSequence label, UserHandleCompat user) {
65        if (user == null) {
66            return label;
67        }
68        return mPm.getUserBadgedLabel(label, user.getUser());
69    }
70
71    @Override
72    public long getUserCreationTime(UserHandleCompat user) {
73        // TODO: Use system API once available.
74        SharedPreferences prefs = mContext.getSharedPreferences(
75                LauncherAppState.getSharedPreferencesKey(), Context.MODE_PRIVATE);
76        String key = USER_CREATION_TIME_KEY + getSerialNumberForUser(user);
77        if (!prefs.contains(key)) {
78            prefs.edit().putLong(key, System.currentTimeMillis()).apply();
79        }
80        return prefs.getLong(key, 0);
81    }
82}
83
84