CrackMe.apk
Download file
package expo.modules.adapters.react.views;
import android.util.Log;
import android.view.View;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.ReadableMapKeySetIterator;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.ViewProps;
import expo.modules.adapters.react.ArgumentsHelper;
import expo.modules.core.ViewManager;
import java.util.HashMap;
import java.util.Map;
public class ViewManagerAdapterUtils {
static String getViewManagerAdapterName(ViewManager viewManager) {
return "ViewManagerAdapter_" + viewManager.getName();
}
static Map<String, Object> getConstants(ViewManager viewManager) {
HashMap hashMap = new HashMap();
hashMap.put("eventNames", viewManager.getExportedEventNames());
return hashMap;
}
static Map<String, Object> getExportedCustomDirectEventTypeConstants(ViewManager viewManager) {
MapBuilder.Builder builder = MapBuilder.builder();
for (String next : viewManager.getExportedEventNames()) {
if (next instanceof String) {
builder.put(normalizeEventName(next), MapBuilder.of("registrationName", next));
}
}
return builder.build();
}
static <V extends View> void setProxiedProperties(String str, ViewManager<V> viewManager, V v, ReadableMap readableMap) {
ReadableMapKeySetIterator keySetIterator = readableMap.keySetIterator();
while (keySetIterator.hasNextKey()) {
String nextKey = keySetIterator.nextKey();
try {
ViewManager.PropSetterInfo propSetterInfo = viewManager.getPropSetterInfos().get(nextKey);
if (propSetterInfo != null) {
viewManager.updateProp(v, nextKey, ArgumentsHelper.getNativeArgumentForExpectedClass(readableMap.getDynamic(nextKey), propSetterInfo.getExpectedValueClass()));
} else {
throw new IllegalArgumentException("No setter found for prop " + nextKey + " in " + str);
}
} catch (Exception e) {
Log.e(str, "Error when setting prop " + nextKey + ". " + e.getMessage());
}
}
}
public static String normalizeEventName(String str) {
if (!str.startsWith("on")) {
return str;
}
return ViewProps.TOP + str.substring(2);
}
}
Download file