summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/util/FlagOp.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-03-15 09:16:30 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-03-18 15:13:28 -0700
commit3bbbabc54ac73a4451b0a862a3faac6426b1b7b4 (patch)
treed3833e7eb292d4137ec87c0f481d2c59139916fd /src/com/android/launcher3/util/FlagOp.java
parentb8f00da8deec7f65002830261042da0140cbead0 (diff)
downloadandroid_packages_apps_Trebuchet-3bbbabc54ac73a4451b0a862a3faac6426b1b7b4.tar.gz
android_packages_apps_Trebuchet-3bbbabc54ac73a4451b0a862a3faac6426b1b7b4.tar.bz2
android_packages_apps_Trebuchet-3bbbabc54ac73a4451b0a862a3faac6426b1b7b4.zip
Fixing model being updated on UI thread
> When package gets unavailable or suspended, the disabled flag was getting updated on the UI thread. This could lead to inconsistent model if launcher activity didn't exist. > Fixing: When unsuspending one work profile apps, all work profile apps get unsuspended Bug: 27673573,27673373,27403236 Change-Id: I7fde3f79c36204e73ca66ccf8431fa0f0cce3d08
Diffstat (limited to 'src/com/android/launcher3/util/FlagOp.java')
-rw-r--r--src/com/android/launcher3/util/FlagOp.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/com/android/launcher3/util/FlagOp.java b/src/com/android/launcher3/util/FlagOp.java
new file mode 100644
index 000000000..5e26ed12f
--- /dev/null
+++ b/src/com/android/launcher3/util/FlagOp.java
@@ -0,0 +1,30 @@
+package com.android.launcher3.util;
+
+public abstract class FlagOp {
+
+ public static FlagOp NO_OP = new FlagOp() {};
+
+ private FlagOp() {}
+
+ public int apply(int flags) {
+ return flags;
+ }
+
+ public static FlagOp addFlag(final int flag) {
+ return new FlagOp() {
+ @Override
+ public int apply(int flags) {
+ return flags | flag;
+ }
+ };
+ }
+
+ public static FlagOp removeFlag(final int flag) {
+ return new FlagOp() {
+ @Override
+ public int apply(int flags) {
+ return flags & ~flag;
+ }
+ };
+ }
+}