Fix Triangle Problems
Fix triangle being 1 z-order lower and cant resize window(eg. Google
Play!!)
Fix triangle not showing at all on some apps.
diff --git a/src/com/zst/xposed/halo/floatingwindow/MovableWindow.java b/src/com/zst/xposed/halo/floatingwindow/MovableWindow.java
index 2ac95a1..6cd5fc3 100644
--- a/src/com/zst/xposed/halo/floatingwindow/MovableWindow.java
+++ b/src/com/zst/xposed/halo/floatingwindow/MovableWindow.java
@@ -142,19 +142,30 @@
& Res.FLAG_FLOATING_WINDOW) == Res.FLAG_FLOATING_WINDOW;
}
});
+ XposedBridge.hookAllMethods(Activity.class, "onResume", new XC_MethodHook(){
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!isHoloFloat) return;
+ if (overlayView != null){
+ FrameLayout decorView = (FrameLayout) activity.getWindow().peekDecorView().getRootView();
+ decorView.bringChildToFront(overlayView);
+ }
+ }
+ });
+
}
public static void inject_DecorView_generateLayout(final LoadPackageParam lpparam) throws Throwable{
//Class<?> hookClass = findClass("com.android.internal.policy.impl.PhoneWindow", lpparam.classLoader);
//XposedBridge.hookAllMethods(hookClass, "generateLayout", new XC_MethodHook() {
- XposedBridge.hookAllMethods(Activity.class, "onCreate", new XC_MethodHook(){
+ XposedBridge.hookAllMethods(Activity.class, "onStart", new XC_MethodHook() {
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
if (!isHoloFloat) return;
pref.reload();
if (!pref.getBoolean(Res.KEY_MOVABLE_WINDOW, Res.DEFAULT_MOVABLE_WINDOW)) return;
Activity thiss = (Activity)param.thisObject;
Window window = (Window) thiss.getWindow();
+ //Window window = (Window) param.thisObject;
Context context = window.getContext();
FrameLayout decorView = (FrameLayout) window.peekDecorView().getRootView();
@@ -166,7 +177,7 @@
ViewGroup.LayoutParams paramz = new ViewGroup.LayoutParams
(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
- decorView.addView(overlayView, decorView.getChildCount(), paramz);
+ decorView.addView(overlayView, -1, paramz);
triangle = (ImageView)overlayView.findViewById(R.id.movable_corner);
triangle.setBackground(modRes.getDrawable(R.drawable.movable_corner));