summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-11-02 11:22:39 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-11-03 15:25:23 -0700
commitdcc0ba29a5222c9b0002604299501b716cda0b56 (patch)
tree32e09e0ba71f39d504c5819c4b31e27b7bacde2c /src/com
parente4f09a5f0a756de15fee663097071a08de1ec8dd (diff)
downloadandroid_packages_apps_Trebuchet-dcc0ba29a5222c9b0002604299501b716cda0b56.tar.gz
android_packages_apps_Trebuchet-dcc0ba29a5222c9b0002604299501b716cda0b56.tar.bz2
android_packages_apps_Trebuchet-dcc0ba29a5222c9b0002604299501b716cda0b56.zip
Enabling async inflation for AppWidgets
Bug: 22839968 Change-Id: Id622053c2882f478b3a3ab3918a9f76750ead8c6
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/LauncherAppWidgetHostView.java15
-rw-r--r--src/com/android/launcher3/Utilities.java6
2 files changed, 21 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LauncherAppWidgetHostView.java b/src/com/android/launcher3/LauncherAppWidgetHostView.java
index b3db092da..b34d1ff99 100644
--- a/src/com/android/launcher3/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher3/LauncherAppWidgetHostView.java
@@ -22,6 +22,7 @@ import android.content.Context;
import android.graphics.Rect;
import android.os.Handler;
import android.os.SystemClock;
+import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -36,13 +37,17 @@ import android.widget.RemoteViews;
import com.android.launcher3.dragndrop.DragLayer.TouchCompleteListener;
+import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.concurrent.Executor;
/**
* {@inheritDoc}
*/
public class LauncherAppWidgetHostView extends AppWidgetHostView implements TouchCompleteListener {
+ private static final String TAG = "LauncherWidgetHostView";
+
// Related to the auto-advancing of widgets
private static final long ADVANCE_INTERVAL = 20000;
private static final long ADVANCE_STAGGER = 250;
@@ -75,6 +80,16 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView implements Touc
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
setAccessibilityDelegate(Launcher.getLauncher(context).getAccessibilityDelegate());
setBackgroundResource(R.drawable.widget_internal_focus_bg);
+
+ if (Utilities.isAtLeastO()) {
+ try {
+ Method asyncMethod = AppWidgetHostView.class
+ .getMethod("setAsyncExecutor", Executor.class);
+ asyncMethod.invoke(this, Utilities.THREAD_POOL_EXECUTOR);
+ } catch (Exception e) {
+ Log.e(TAG, "Unable to set async executor", e);
+ }
+ }
}
@Override
diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java
index 13a69f21c..be8ff00b7 100644
--- a/src/com/android/launcher3/Utilities.java
+++ b/src/com/android/launcher3/Utilities.java
@@ -84,6 +84,12 @@ public final class Utilities {
private static final int[] sLoc0 = new int[2];
private static final int[] sLoc1 = new int[2];
+ public static boolean isAtLeastO() {
+ // TODO: Clean this up: b/32610406
+ return !"REL".equals(Build.VERSION.CODENAME)
+ && "O".compareTo(Build.VERSION.CODENAME) <= 0;
+ }
+
public static final boolean ATLEAST_NOUGAT_MR1 =
Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1;