修复 UiCollection.forEach报错的问题
可能修复 部分设备无法找图的问题
This commit is contained in:
@@ -14,6 +14,7 @@ import com.bumptech.glide.request.transition.Transition;
|
||||
import com.flurry.android.FlurryAgent;
|
||||
import com.squareup.leakcanary.LeakCanary;
|
||||
import com.stardust.app.GlobalAppContext;
|
||||
import com.stardust.autojs.core.image.OpenCVHelper;
|
||||
import com.stardust.autojs.core.ui.inflater.ImageLoader;
|
||||
import com.stardust.autojs.core.ui.inflater.util.Drawables;
|
||||
import com.stardust.theme.ThemeColor;
|
||||
@@ -30,6 +31,8 @@ import org.autojs.autojs.timing.TimedTaskManager;
|
||||
import org.autojs.autojs.timing.TimedTaskScheduler;
|
||||
import org.autojs.autojs.tool.CrashHandler;
|
||||
import org.autojs.autojs.ui.error.ErrorReportActivity;
|
||||
import org.opencv.android.BaseLoaderCallback;
|
||||
import org.opencv.android.OpenCVLoader;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
@@ -107,6 +110,7 @@ public class App extends MultiDexApplication {
|
||||
setupDrawableImageLoader();
|
||||
TimedTaskScheduler.checkTasksRepeatedlyIfNeeded(this);
|
||||
initDynamicBroadcastReceivers();
|
||||
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
|
||||
@@ -35,6 +35,8 @@ import com.stardust.view.accessibility.LayoutInspector;
|
||||
|
||||
import org.mozilla.javascript.ContextFactory;
|
||||
import org.mozilla.javascript.Scriptable;
|
||||
import org.opencv.android.BaseLoaderCallback;
|
||||
import org.opencv.android.OpenCVLoader;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -82,6 +84,9 @@ public abstract class AutoJs {
|
||||
protected void init() {
|
||||
addAccessibilityServiceDelegates();
|
||||
registerActivityLifecycleCallbacks();
|
||||
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_13, mContext, new BaseLoaderCallback(mContext) {
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public abstract void ensureAccessibilityServiceEnabled();
|
||||
|
||||
@@ -45,6 +45,7 @@ public class OpenCVHelper {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public static class LoaderCallback implements LoaderCallbackInterface {
|
||||
private Activity mActivity;
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.
|
||||
* Created by Stardust on 2017/3/9.
|
||||
*/
|
||||
|
||||
public class UiObjectCollection implements List<UiObject> {
|
||||
public class UiObjectCollection {
|
||||
|
||||
public static final UiObjectCollection EMPTY = UiObjectCollection.of(Collections.<UiObject>emptyList());
|
||||
|
||||
@@ -73,59 +73,55 @@ public class UiObjectCollection implements List<UiObject> {
|
||||
return mNodes.toArray(new UiObject[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T[] toArray(T[] a) {
|
||||
return mNodes.toArray(a);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean add(UiObject uiObject) {
|
||||
return mNodes.add(uiObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean remove(Object o) {
|
||||
return mNodes.remove(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsAll(Collection<?> c) {
|
||||
return mNodes.containsAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean addAll(Collection<? extends UiObject> c) {
|
||||
return mNodes.addAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean addAll(int index, Collection<? extends UiObject> c) {
|
||||
return mNodes.addAll(index, c);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean removeAll(Collection<?> c) {
|
||||
return mNodes.removeAll(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean retainAll(Collection<?> c) {
|
||||
return mNodes.retainAll(c);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public void replaceAll(UnaryOperator<UiObject> operator) {
|
||||
mNodes.replaceAll(operator);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public void sort(Comparator<? super UiObject> c) {
|
||||
mNodes.sort(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void clear() {
|
||||
mNodes.clear();
|
||||
}
|
||||
@@ -270,69 +266,69 @@ public class UiObjectCollection implements List<UiObject> {
|
||||
return mNodes.get(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public UiObject set(int index, UiObject element) {
|
||||
return mNodes.set(index, element);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void add(int index, UiObject element) {
|
||||
mNodes.add(index, element);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public UiObject remove(int index) {
|
||||
return mNodes.remove(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public int indexOf(Object o) {
|
||||
return mNodes.indexOf(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public int lastIndexOf(Object o) {
|
||||
return mNodes.lastIndexOf(o);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public ListIterator<UiObject> listIterator() {
|
||||
return mNodes.listIterator();
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public ListIterator<UiObject> listIterator(int index) {
|
||||
return mNodes.listIterator(index);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public List<UiObject> subList(int fromIndex, int toIndex) {
|
||||
return mNodes.subList(fromIndex, toIndex);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public Spliterator<UiObject> spliterator() {
|
||||
return mNodes.spliterator();
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public boolean removeIf(Predicate<? super UiObject> filter) {
|
||||
return mNodes.removeIf(filter);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public Stream<UiObject> stream() {
|
||||
return mNodes.stream();
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
|
||||
public Stream<UiObject> parallelStream() {
|
||||
return mNodes.parallelStream();
|
||||
}
|
||||
@@ -341,17 +337,17 @@ public class UiObjectCollection implements List<UiObject> {
|
||||
return mNodes.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean isEmpty() {
|
||||
return mNodes.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public boolean contains(Object o) {
|
||||
return mNodes.contains(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public Iterator<UiObject> iterator() {
|
||||
return mNodes.iterator();
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":433,"versionName":"4.0.4 Alpha4","enabled":true,"outputFile":"commonRelease-4.0.4 Alpha4.apk","fullName":"commonRelease","baseName":"common-release"},"path":"commonRelease-4.0.4 Alpha4.apk","properties":{}}]
|
||||
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":434,"versionName":"4.0.4 Alpha5","enabled":true,"outputFile":"commonRelease-4.0.4 Alpha5.apk","fullName":"commonRelease","baseName":"common-release"},"path":"commonRelease-4.0.4 Alpha5.apk","properties":{}}]
|
||||
Reference in New Issue
Block a user