修复 UiCollection.forEach报错的问题

可能修复 部分设备无法找图的问题
This commit is contained in:
hyb1996
2018-10-19 16:18:48 +08:00
parent 78e0d6b088
commit 2b71f5e856
5 changed files with 34 additions and 28 deletions

View File

@@ -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")

View File

@@ -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();

View File

@@ -45,6 +45,7 @@ public class OpenCVHelper {
});
}
public static class LoaderCallback implements LoaderCallbackInterface {
private Activity mActivity;

View File

@@ -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();
}

View File

@@ -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":{}}]