package ly.img.android.pesdk.backend.model.state.manager; import android.content.Context; import android.util.Log; import java.lang.ref.WeakReference; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import java.util.WeakHashMap; import kotlin.jvm.JvmClassMappingKt; import kotlin.reflect.KClass; import ly.img.android.Feature; import ly.img.android.IMGLY; import ly.img.android.IMGLYProduct; import ly.img.android.pesdk.backend.model.state.EditorSaveSettings; import ly.img.android.pesdk.backend.model.state.HistoryState; import ly.img.android.pesdk.backend.model.state.LoadState; import ly.img.android.pesdk.backend.model.state.PhotoEditorSaveSettings; import ly.img.android.pesdk.backend.model.state.SaveSettings; import ly.img.android.pesdk.ui.activity.ImgLyContext; public final class StateHandler implements StateListenerInterface, SettingsHolderInterface { private static final HashMap<Class<? extends StateObservable<?>>, Class<? extends StateObservable<?>>> CLASS_OVERRIDES = new HashMap<>(); public static boolean InTestMode = false; private static final WeakHashMap<Integer, WeakReference<StateHandler>> stateHandlerWeakHashMap = new WeakHashMap<>(); private final WeakReference<Context> context; private HashMap<Class<? extends StateObservable<?>>, Settings<?>> frozenSettings; private Integer handlerId; private boolean isFrozen; protected EventHandlerInterface nativeEventsProcessor; private final IMGLYProduct product; private final HashMap<Class<? extends StateObservable<?>>, StateObservable<?>> stateMap; public interface TestCallback { void onStateChanged(String str); } public void setTestCallback(TestCallback testCallback) { } static { lowClassCheckIn(EditorSaveSettings.class, SaveSettings.class); lowClassCheckIn(PhotoEditorSaveSettings.class, SaveSettings.class); } public StateHandler(Context context2) { this.stateMap = new HashMap<>(); this.nativeEventsProcessor = null; this.frozenSettings = new HashMap<>(); this.isFrozen = false; this.handlerId = null; this.context = new WeakReference<>(context2); this.product = IMGLYProduct.UNKNOWN; try { EventHandlerInterface eventHandlerInterface = (EventHandlerInterface) SettingsList.EVENT_PROCESSOR_CLASS.getConstructor(StateHandler.class).newInstance(this); this.nativeEventsProcessor = eventHandlerInterface; eventHandlerInterface.init(this); checkLicense(); addToIdMap(); } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e2) { throw new RuntimeException(e2); } catch (InvocationTargetException e3) { throw new RuntimeException(e3); } catch (NoSuchMethodException e4) { throw new RuntimeException(e4); } } public StateHandler(Context context2, SettingsList settingsList) { this(context2, settingsList.getProduct(), settingsList); } /* JADX DEBUG: Multi-variable search result rejected for r0v3, resolved type: java.util.HashMap<java.lang.Class<? extends ly.img.android.pesdk.backend.model.state.manager.StateObservable<?>>, ly.img.android.pesdk.backend.model.state.manager.StateObservable<?>> */ /* JADX WARN: Multi-variable type inference failed */ public StateHandler(Context context2, IMGLYProduct iMGLYProduct, SettingsList settingsList) { this.stateMap = new HashMap<>(); this.nativeEventsProcessor = null; this.frozenSettings = new HashMap<>(); this.isFrozen = false; this.handlerId = null; this.context = new WeakReference<>(context2); this.product = iMGLYProduct; try { this.nativeEventsProcessor = (EventHandlerInterface) SettingsList.EVENT_PROCESSOR_CLASS.getConstructor(StateHandler.class).newInstance(this); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e2) { e2.printStackTrace(); } catch (InvocationTargetException e3) { e3.printStackTrace(); } catch (NoSuchMethodException e4) { e4.printStackTrace(); } this.nativeEventsProcessor.init(this); for (StateObservable<?> stateObservable : settingsList.settingsList.values()) { stateObservable.unBind(); this.stateMap.put(stateObservable.getClass(), stateObservable); } for (StateObservable<?> stateObservable2 : settingsList.settingsList.values()) { stateObservable2.onBind(this); } for (StateObservable<?> stateObservable3 : settingsList.settingsList.values()) { if (stateObservable3 instanceof Settings) { ((Settings) stateObservable3).saveInitState(); } } checkLicense(); addToIdMap(); } public static <T extends StateObservable<?>> void replaceStateClass(Class<T> cls, Class<? extends T> cls2) { CLASS_OVERRIDES.put(cls, cls2); } public static <T extends StateObservable<?>> void lowClassCheckIn(Class<? extends T> cls, Class<T> cls2) { CLASS_OVERRIDES.put(cls2, cls); } public static StateHandler findById(int i) throws StateHandlerNotFoundException { WeakReference<StateHandler> weakReference = stateHandlerWeakHashMap.get(Integer.valueOf(i)); StateHandler stateHandler = weakReference != null ? weakReference.get() : null; if (stateHandler != null) { return stateHandler; } throw new StateHandlerNotFoundException(); } public static StateHandler findInViewContext(Context context2) throws StateHandlerNotFoundException { if (context2 instanceof ImgLyContext) { return ((ImgLyContext) context2).getStateHandler(); } throw new StateHandlerNotFoundException(); } protected static <T extends StateObservable<?>> Class<? extends T> translateClass(Class<T> cls) { Class<? extends T> cls2 = (Class<? extends T>) CLASS_OVERRIDES.get(cls); return cls2 == null ? cls : cls2; } protected static <T extends StateObservable<?>> Class<? extends StateObservable<?>> translateToClassKey(Class<? extends StateObservable<?>> cls) { Class<? extends StateObservable<?>> cls2 = CLASS_OVERRIDES.get(cls); return cls2 == null ? cls : cls2; } public synchronized <StateClass extends StateObservable<?>> StateClass get(Class<StateClass> cls) { return (StateClass) getStateModel(cls); } public synchronized <StateClass extends StateObservable<?>> StateClass get(KClass<StateClass> kClass) { return (StateClass) getStateModel(JvmClassMappingKt.getJavaClass((KClass) kClass)); } public Context getContext() { Context context2 = this.context.get(); return context2 == null ? IMGLY.getAppContext() : context2; } /* access modifiers changed from: package-private */ /* renamed from: ly.img.android.pesdk.backend.model.state.manager.StateHandler$1 reason: invalid class name */ public static /* synthetic */ class AnonymousClass1 { static final /* synthetic */ int[] $SwitchMap$ly$img$android$IMGLYProduct; /* JADX WARNING: Can't wrap try/catch for region: R(6:0|1|2|3|4|(3:5|6|8)) */ /* JADX WARNING: Failed to process nested try/catch */ /* JADX WARNING: Missing exception handler attribute for start block: B:3:0x0012 */ /* JADX WARNING: Missing exception handler attribute for start block: B:5:0x001d */ static { int[] iArr = new int[IMGLYProduct.values().length]; $SwitchMap$ly$img$android$IMGLYProduct = iArr; iArr[IMGLYProduct.PESDK.ordinal()] = 1; $SwitchMap$ly$img$android$IMGLYProduct[IMGLYProduct.VESDK.ordinal()] = 2; try { $SwitchMap$ly$img$android$IMGLYProduct[IMGLYProduct.UNKNOWN.ordinal()] = 3; } catch (NoSuchFieldError unused) { } } } private void checkLicense() { if (this.product.hasWatermark()) { int i = AnonymousClass1.$SwitchMap$ly$img$android$IMGLYProduct[this.product.ordinal()]; if (i == 1) { Log.e("PESDK", "-\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n┌──────────────────────────────────────────────────────────────────────────────────────────┐\n│ The PhotoEditor SDK is a commercial product. Before being able to use it without │\n│ limitations, you need to unlock the SDK with a license file. You can obtain a │\n│ time-limited evaluation license by starting a trial at │\n│ https://www.photoeditorsdk.com/signup or you can purchase a license by requesting a │\n│ quote at https://www.photoeditorsdk.com/pricing. │\n└──────────────────────────────────────────────────────────────────────────────────────────┘\n┌──────────────────────────────────────────────────────────────────────────────────────────┐\n│ Because you did not specify a license file yet, the SDK will now display a watermark │\n│ image on top of any photos you display or export with it. For instructions for how to │\n│ unlock the SDK, please visit │\n│ https://docs.photoeditorsdk.com/guides/android/v6/introduction/getting_started │\n└──────────────────────────────────────────────────────────────────────────────────────────┘\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-"); } else if (i == 2) { Log.e("VESDK", "-\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n┌──────────────────────────────────────────────────────────────────────────────────────────┐\n│ The VideoEditor SDK is a commercial product. Before being able to use it without │\n│ limitations, you need to unlock the SDK with a license file. You can obtain a │\n│ time-limited evaluation license by starting a trial at │\n│ https://www.photoeditorsdk.com/signup or you can purchase a license by requesting a │\n│ quote at https://www.videoeditorsdk.com/pricing. │\n└──────────────────────────────────────────────────────────────────────────────────────────┘\n┌──────────────────────────────────────────────────────────────────────────────────────────┐\n│ Because you did not specify a license file yet, the SDK will now display a watermark │\n│ image on top of any photos you display or export with it. For instructions for how to │\n│ unlock the SDK, please visit │\n│ https://docs.videoeditorsdk.com/guides/android/v6/introduction/getting_started │\n└──────────────────────────────────────────────────────────────────────────────────────────┘\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n-"); } else if (i == 3) { throw new RuntimeException("Nice try!"); } } } private synchronized void bindSettings(StateObservable<?> stateObservable) { if (this.stateMap.get(translateToClassKey(stateObservable.getClass())) == null) { this.stateMap.put(translateToClassKey(stateObservable.getClass()), stateObservable); stateObservable.onBind(this); if (stateObservable instanceof Settings) { ((Settings) stateObservable).saveInitState(); } } } private void addToIdMap() { if (this.handlerId == null) { int identityHashCode = System.identityHashCode(this); while (true) { if (identityHashCode == -1 || stateHandlerWeakHashMap.containsKey(Integer.valueOf(identityHashCode))) { identityHashCode += (int) (Math.random() * 2.147483647E9d); } else { Integer valueOf = Integer.valueOf(identityHashCode); this.handlerId = valueOf; stateHandlerWeakHashMap.put(valueOf, new WeakReference<>(this)); return; } } } } public int getId() { Integer num = this.handlerId; if (num != null) { return num.intValue(); } return -1; } public boolean hasChanges() { if (((LoadState) getStateModel(LoadState.class)).getSourceType() == LoadState.SourceType.BROKEN || !((HistoryState) getStateModel(HistoryState.class)).hasUndoState(0)) { return false; } return true; } public synchronized void freezeStates() { if (!this.isFrozen) { this.isFrozen = true; for (Map.Entry<Class<? extends StateObservable<?>>, StateObservable<?>> entry : this.stateMap.entrySet()) { StateObservable<?> value = entry.getValue(); if (value instanceof Settings) { this.frozenSettings.put(entry.getKey(), ((Settings) value).getFrozenSettings()); } } } } public void unfreezeStates() { this.isFrozen = false; this.frozenSettings.clear(); } @Override // ly.img.android.pesdk.backend.model.state.manager.StateListenerInterface public void onStateChangeEvent(StateObservable stateObservable, String str) { this.nativeEventsProcessor.triggerEventCall(str); } public void dispatchEvent(String str) { if (str != null) { this.nativeEventsProcessor.triggerEventCall(str); } } public <StateClass extends StateObservable<?>> StateClass getFrozenStateModel(Class<StateClass> cls) { Settings<?> settings; return (!this.isFrozen || (settings = this.frozenSettings.get(translateClass(cls))) == null) ? (StateClass) getStateModel(cls) : settings; } public StateObservable<?> getStateModel(String str) { return getStateModel(str, StateObservable.class); } public <T extends StateObservable<?>> T getStateModel(String str, Class<T> cls) { try { Class<?> cls2 = Class.forName(str); if (cls.isAssignableFrom(cls2)) { return (T) getStateModel(cls2); } } catch (ClassNotFoundException unused) { } return null; } public <StateClass extends StateObservable<?>> StateClass getStateModel(Class<StateClass> cls) { Class translateClass = translateClass(cls); Class<? extends StateObservable<?>> translateToClassKey = translateToClassKey(cls); StateClass stateclass = (StateClass) this.stateMap.get(translateToClassKey); if (stateclass == null) { synchronized (this.stateMap) { stateclass = (StateClass) this.stateMap.get(translateToClassKey); } if (stateclass == null) { try { stateclass = (StateClass) ((StateObservable) translateClass.newInstance()); bindSettings(stateclass); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("StateClass: \"" + translateClass + "\" has no default constructor: " + e.getMessage()); } } } return stateclass; } public boolean hasModelNonDefaultValues(String str) { StateObservable<?> stateModel = getStateModel(str); if (stateModel instanceof Settings) { return ((Settings) stateModel).hasNonDefaults(); } return false; } public boolean hasModelNonDefaultValues(Class<? extends Settings<?>> cls) { Settings settings = (Settings) this.stateMap.get(translateToClassKey(cls)); return settings != null && settings.hasNonDefaults(); } public void unregisterSettingsEventListener(Object obj) { this.nativeEventsProcessor.unregister(obj); } public void registerSettingsEventListener(Object obj) { this.nativeEventsProcessor.register(obj); } public SettingsList createSettingsListDump() { HashMap hashMap = new HashMap(); for (Map.Entry<Class<? extends StateObservable<?>>, StateObservable<?>> entry : this.stateMap.entrySet()) { StateObservable<?> value = entry.getValue(); if (value instanceof Settings) { hashMap.put(entry.getKey(), ((Settings) value).getFrozenSettings()); } } return new SettingsList(this.product, hashMap); } @Override // ly.img.android.pesdk.backend.model.state.manager.SettingsHolderInterface public final boolean hasFeature(Feature feature) { return this.product.hasFeature(feature); } @Override // ly.img.android.pesdk.backend.model.state.manager.SettingsHolderInterface public IMGLYProduct getProduct() { return this.product; } @Override // ly.img.android.pesdk.backend.model.state.manager.SettingsHolderInterface public <StateClass extends Settings<?>> StateClass getSettingsModel(Class<StateClass> cls) { return (StateClass) ((Settings) getStateModel(cls)); } public static final class StateHandlerNotFoundException extends Exception { public StateHandlerNotFoundException() { super("Context is no ImgLyActivity"); } } }