UserManagerCompatVL.java revision f9847b9bd3e5286fe10667ec12dab5b4c43355fa
1ed13187a745866483139e2878037e1f8427ce567Kenny Guy 2ed13187a745866483139e2878037e1f8427ce567Kenny Guy/* 3ed13187a745866483139e2878037e1f8427ce567Kenny Guy * Copyright (C) 2014 The Android Open Source Project 4ed13187a745866483139e2878037e1f8427ce567Kenny Guy * 5ed13187a745866483139e2878037e1f8427ce567Kenny Guy * Licensed under the Apache License, Version 2.0 (the "License"); 6ed13187a745866483139e2878037e1f8427ce567Kenny Guy * you may not use this file except in compliance with the License. 7ed13187a745866483139e2878037e1f8427ce567Kenny Guy * You may obtain a copy of the License at 8ed13187a745866483139e2878037e1f8427ce567Kenny Guy * 9ed13187a745866483139e2878037e1f8427ce567Kenny Guy * http://www.apache.org/licenses/LICENSE-2.0 10ed13187a745866483139e2878037e1f8427ce567Kenny Guy * 11ed13187a745866483139e2878037e1f8427ce567Kenny Guy * Unless required by applicable law or agreed to in writing, software 12ed13187a745866483139e2878037e1f8427ce567Kenny Guy * distributed under the License is distributed on an "AS IS" BASIS, 13ed13187a745866483139e2878037e1f8427ce567Kenny Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14ed13187a745866483139e2878037e1f8427ce567Kenny Guy * See the License for the specific language governing permissions and 15ed13187a745866483139e2878037e1f8427ce567Kenny Guy * limitations under the License. 16ed13187a745866483139e2878037e1f8427ce567Kenny Guy */ 17ed13187a745866483139e2878037e1f8427ce567Kenny Guy 18ed13187a745866483139e2878037e1f8427ce567Kenny Guypackage com.android.launcher3.compat; 19ed13187a745866483139e2878037e1f8427ce567Kenny Guy 20ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport android.content.Context; 21f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokaniimport android.content.pm.PackageManager; 22ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport android.graphics.drawable.Drawable; 23ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport android.os.UserHandle; 24ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport android.os.UserManager; 25ed13187a745866483139e2878037e1f8427ce567Kenny Guy 26ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport java.util.ArrayList; 27c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guyimport java.util.Collections; 28ed13187a745866483139e2878037e1f8427ce567Kenny Guyimport java.util.List; 29ed13187a745866483139e2878037e1f8427ce567Kenny Guy 30ed13187a745866483139e2878037e1f8427ce567Kenny Guypublic class UserManagerCompatVL extends UserManagerCompatV17 { 31f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani private final PackageManager mPm; 32ed13187a745866483139e2878037e1f8427ce567Kenny Guy 33ed13187a745866483139e2878037e1f8427ce567Kenny Guy UserManagerCompatVL(Context context) { 34ed13187a745866483139e2878037e1f8427ce567Kenny Guy super(context); 35f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani mPm = context.getPackageManager(); 36ed13187a745866483139e2878037e1f8427ce567Kenny Guy } 37ed13187a745866483139e2878037e1f8427ce567Kenny Guy 386075170b838bfe7a040bbff25c2c22859b7d6ee5Dharmesh Mokani @Override 39ed13187a745866483139e2878037e1f8427ce567Kenny Guy public List<UserHandleCompat> getUserProfiles() { 40c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy List<UserHandle> users = mUserManager.getUserProfiles(); 41c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy if (users == null) { 42c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy return Collections.EMPTY_LIST; 43ed13187a745866483139e2878037e1f8427ce567Kenny Guy } 44c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy ArrayList<UserHandleCompat> compatUsers = new ArrayList<UserHandleCompat>( 45c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy users.size()); 46c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy for (UserHandle user : users) { 47c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy compatUsers.add(UserHandleCompat.fromUser(user)); 48c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy } 49c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy return compatUsers; 50ed13187a745866483139e2878037e1f8427ce567Kenny Guy } 51ed13187a745866483139e2878037e1f8427ce567Kenny Guy 526075170b838bfe7a040bbff25c2c22859b7d6ee5Dharmesh Mokani @Override 53ed13187a745866483139e2878037e1f8427ce567Kenny Guy public Drawable getBadgedDrawableForUser(Drawable unbadged, UserHandleCompat user) { 54f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani // STOPSHIP(mokani): Remove catch block once dogfood build is bigger than LRW70. 55f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani // This hack is just to prevent crash in older builds. 56f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani try { 57f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani return mPm.getUserBadgedIcon(unbadged, user.getUser()); 58f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani } catch (Exception e) { 59f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani return unbadged; 60f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani } 61c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy } 62c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy 636075170b838bfe7a040bbff25c2c22859b7d6ee5Dharmesh Mokani @Override 64d6fe52636dcaa96ec1e10ce2daebe98b820c9739Kenny Guy public CharSequence getBadgedLabelForUser(CharSequence label, UserHandleCompat user) { 65c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy if (user == null) { 66c2bd8101b8e26b9ebb2c079ae6867229dad3f196Kenny Guy return label; 67ed13187a745866483139e2878037e1f8427ce567Kenny Guy } 68f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani // STOPSHIP(mokani): Remove catch block once dogfood build is bigger than LRW70. 69f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani // This hack is just to prevent crash in older builds. 70f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani try { 71f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani return mPm.getUserBadgedLabel(label, user.getUser()); 72f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani } catch (Exception e) { 73f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani return label; 74f9847b9bd3e5286fe10667ec12dab5b4c43355faDharmesh Mokani } 75ed13187a745866483139e2878037e1f8427ce567Kenny Guy } 76ed13187a745866483139e2878037e1f8427ce567Kenny Guy} 77ed13187a745866483139e2878037e1f8427ce567Kenny Guy 78