小黄书™.apk(点击下载) / StateHandler.java


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");
        }
    }
}