Exposing some private methods to easily customize arrow popup
Change-Id: I6f6dc0604a616f26c0879732a0237767ddbfdccc
diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java
index a4b6f5b..eca280b 100644
--- a/src/com/android/launcher3/BaseActivity.java
+++ b/src/com/android/launcher3/BaseActivity.java
@@ -26,6 +26,7 @@
import android.content.Intent;
import android.content.res.Configuration;
import android.support.annotation.IntDef;
+import android.view.ContextThemeWrapper;
import android.view.View.AccessibilityDelegate;
import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener;
@@ -116,13 +117,6 @@
return Utilities.ATLEAST_NOUGAT && isInMultiWindowMode();
}
- public static BaseActivity fromContext(Context context) {
- if (context instanceof BaseActivity) {
- return (BaseActivity) context;
- }
- return ((BaseActivity) ((ContextWrapper) context).getBaseContext());
- }
-
public SystemUiController getSystemUiController() {
if (mSystemUiController == null) {
mSystemUiController = new SystemUiController(getWindow());
@@ -259,4 +253,14 @@
writer.println(" mActivityFlags: " + mActivityFlags);
writer.println(" mForceInvisible: " + mForceInvisible);
}
+
+ public static <T extends BaseActivity> T fromContext(Context context) {
+ if (context instanceof BaseActivity) {
+ return (T) context;
+ } else if (context instanceof ContextThemeWrapper) {
+ return fromContext(((ContextWrapper) context).getBaseContext());
+ } else {
+ throw new IllegalArgumentException("Cannot find BaseActivity in parent tree");
+ }
+ }
}