diff options
Diffstat (limited to 'iconloaderlib/src/com/android/launcher3/util/UserIconInfo.java')
-rw-r--r-- | iconloaderlib/src/com/android/launcher3/util/UserIconInfo.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/iconloaderlib/src/com/android/launcher3/util/UserIconInfo.java b/iconloaderlib/src/com/android/launcher3/util/UserIconInfo.java new file mode 100644 index 0000000..f1d753d --- /dev/null +++ b/iconloaderlib/src/com/android/launcher3/util/UserIconInfo.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2013 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.util; + +import static com.android.launcher3.icons.BitmapInfo.FLAG_CLONE; +import static com.android.launcher3.icons.BitmapInfo.FLAG_PRIVATE; +import static com.android.launcher3.icons.BitmapInfo.FLAG_WORK; + +import android.os.UserHandle; + +import androidx.annotation.IntDef; +import androidx.annotation.NonNull; + +/** + * Data class which stores various properties of a {@link android.os.UserHandle} + * which affects rendering + */ +public class UserIconInfo { + + public static final int TYPE_MAIN = 0; + public static final int TYPE_WORK = 1; + public static final int TYPE_CLONED = 2; + + public static final int TYPE_PRIVATE = 3; + + @IntDef({TYPE_MAIN, TYPE_WORK, TYPE_CLONED, TYPE_PRIVATE}) + public @interface UserType { } + + public final UserHandle user; + @UserType + public final int type; + + public final long userSerial; + + public UserIconInfo(UserHandle user, @UserType int type) { + this(user, type, 0); + } + + public UserIconInfo(UserHandle user, @UserType int type, long userSerial) { + this.user = user; + this.type = type; + this.userSerial = userSerial; + } + + public boolean isMain() { + return type == TYPE_MAIN; + } + + public boolean isWork() { + return type == TYPE_WORK; + } + + public boolean isCloned() { + return type == TYPE_CLONED; + } + + public boolean isPrivate() { + return type == TYPE_PRIVATE; + } + + @NonNull + public FlagOp applyBitmapInfoFlags(@NonNull FlagOp op) { + return op.setFlag(FLAG_WORK, isWork()) + .setFlag(FLAG_CLONE, isCloned()) + .setFlag(FLAG_PRIVATE, isPrivate()); + } +} |