From dcc09c40341a35ff893bb8a29207d544bf7a0939 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Thu, 27 Sep 2018 00:22:41 +0800 Subject: [PATCH] fix: cannot set w and h on root element of ui; fix: ui.post --- .../org/autojs/autojs/ui/splash/SplashActivity.java | 2 +- autojs/src/main/assets/modules/__ui__.js | 4 ++-- .../autojs/core/ui/inflater/DynamicLayoutInflater.java | 10 +++++++--- .../view/accessibility/AccessibilityService.java | 3 +-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.java b/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.java index fc73ba14..ec5f693a 100644 --- a/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/splash/SplashActivity.java @@ -51,7 +51,7 @@ public class SplashActivity extends BaseActivity { mNotStartMainActivity = getIntent().getBooleanExtra(NOT_START_MAIN_ACTIVITY, false); boolean forceShowAd = getIntent().getBooleanExtra(FORCE_SHOW_AD, false); setContentView(R.layout.activity_splash); - mFullScreenAdView = (FullScreenAdView) findViewById(R.id.full_screen_view); + mFullScreenAdView = findViewById(R.id.full_screen_view); if (!forceShowAd && !Pref.shouldShowAd()) { mFullScreenAdView.setVisibility(View.INVISIBLE); mHandler.postDelayed(this::enterNextActivity, 1500); diff --git a/autojs/src/main/assets/modules/__ui__.js b/autojs/src/main/assets/modules/__ui__.js index ba603891..e96a4b96 100644 --- a/autojs/src/main/assets/modules/__ui__.js +++ b/autojs/src/main/assets/modules/__ui__.js @@ -19,7 +19,7 @@ module.exports = function (runtime, global) { xml = xml.toXMLString(); } runtime.ui.layoutInflater.setContext(activity); - var view = runtime.ui.layoutInflater.inflate(xml); + var view = runtime.ui.layoutInflater.inflate(xml, activity.window.decorView, false); ui.setContentView(view); } @@ -80,7 +80,7 @@ module.exports = function (runtime, global) { ui.post = function (action, delay) { delay = delay || 0; - runtime.getUiHandler().postDelay(wrapUiAction(action), delay); + runtime.getUiHandler().postDelayed(wrapUiAction(action), delay); } ui.statusBarColor = function (color) { diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/DynamicLayoutInflater.java b/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/DynamicLayoutInflater.java index 6d1f1e17..a205c004 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/DynamicLayoutInflater.java +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/DynamicLayoutInflater.java @@ -146,20 +146,24 @@ public class DynamicLayoutInflater { } public View inflate(String xml, @Nullable ViewGroup parent) { + return inflate(xml, parent, parent != null); + } + + public View inflate(String xml, @Nullable ViewGroup parent, boolean attachToParent) { View view = mLayoutInflaterDelegate.beforeInflation(xml, parent); if (view != null) return view; xml = convertXml(xml); - return mLayoutInflaterDelegate.afterInflation(doInflation(xml, parent), xml, parent); + return mLayoutInflaterDelegate.afterInflation(doInflation(xml, parent, attachToParent), xml, parent); } - protected View doInflation(String xml, @Nullable ViewGroup parent) { + protected View doInflation(String xml, @Nullable ViewGroup parent, boolean attachToParent) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(new ByteArrayInputStream(xml.getBytes())); - return inflate(document.getDocumentElement(), parent, true); + return inflate(document.getDocumentElement(), parent, attachToParent); } catch (Exception e) { throw new InflateException(e); } diff --git a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java index 79122996..5a993948 100644 --- a/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java +++ b/automator/src/main/java/com/stardust/view/accessibility/AccessibilityService.java @@ -24,7 +24,6 @@ import java.util.concurrent.locks.ReentrantLock; public class AccessibilityService extends android.accessibilityservice.AccessibilityService { - private static final String TAG = "AccessibilityService"; private static final SortedMap mDelegates = new TreeMap<>(); @@ -55,7 +54,7 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi @Override public void onAccessibilityEvent(final AccessibilityEvent event) { instance = this; - Log.v(TAG, "onAccessibilityEvent: " + event); + //Log.v(TAG, "onAccessibilityEvent: " + event); if (!containsAllEventTypes && !eventTypes.contains(event.getEventType())) return; int type = event.getEventType();