导航菜单

页面标题

页面副标题

万能钥匙 v1.1.23 - ScreenFragment.java 源代码

正在查看: 万能钥匙 v1.1.23 应用的 ScreenFragment.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.swmansion.rnscreens;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.FrameLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.uimanager.a1;
import com.google.android.inner_exoplayer2.text.ttml.TtmlNode;
import com.sdk.plus.data.manager.RalDataManager;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;

@Metadata(d1 = {"\u0000n\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\t\n\u0002\u0010\u0007\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0015\n\u0002\u0010!\n\u0002\b\u0015\b\u0016\u0018\u0000 <2\u00020\u00012\u00020\u0002:\u0003STUB\t\b\u0016¢\u0006\u0004\b\u0003\u0010\u0004B\u0011\b\u0017\u0012\u0006\u0010\u0006\u001a\u00020\u0005¢\u0006\u0004\b\u0003\u0010\u0007J\u000f\u0010\t\u001a\u00020\bH\u0016¢\u0006\u0004\b\t\u0010\u0004J-\u0010\u0011\u001a\u0004\u0018\u00010\u00102\u0006\u0010\u000b\u001a\u00020\n2\b\u0010\r\u001a\u0004\u0018\u00010\f2\b\u0010\u000f\u001a\u0004\u0018\u00010\u000eH\u0016¢\u0006\u0004\b\u0011\u0010\u0012J\u000f\u0010\u0013\u001a\u00020\bH\u0016¢\u0006\u0004\b\u0013\u0010\u0004J\u0011\u0010\u0015\u001a\u0004\u0018\u00010\u0014H\u0016¢\u0006\u0004\b\u0015\u0010\u0016J\u0011\u0010\u0018\u001a\u0004\u0018\u00010\u0017H\u0016¢\u0006\u0004\b\u0018\u0010\u0019J\u0017\u0010\u001d\u001a\u00020\u001c2\u0006\u0010\u001b\u001a\u00020\u001aH\u0016¢\u0006\u0004\b\u001d\u0010\u001eJ\u0017\u0010\u001f\u001a\u00020\b2\u0006\u0010\u001b\u001a\u00020\u001aH\u0016¢\u0006\u0004\b\u001f\u0010 J\u001f\u0010\"\u001a\u00020\b2\u0006\u0010\u001b\u001a\u00020\u001a2\u0006\u0010!\u001a\u00020\u0002H\u0016¢\u0006\u0004\b\"\u0010#J\u0017\u0010$\u001a\u00020\b2\u0006\u0010\u001b\u001a\u00020\u001aH\u0016¢\u0006\u0004\b$\u0010 J\u000f\u0010%\u001a\u00020\bH\u0016¢\u0006\u0004\b%\u0010\u0004J\u001f\u0010)\u001a\u00020\b2\u0006\u0010'\u001a\u00020&2\u0006\u0010(\u001a\u00020\u001cH\u0016¢\u0006\u0004\b)\u0010*J\u0017\u0010,\u001a\u00020\b2\u0006\u0010\r\u001a\u00020+H\u0016¢\u0006\u0004\b,\u0010-J\u0017\u0010.\u001a\u00020\b2\u0006\u0010\r\u001a\u00020+H\u0016¢\u0006\u0004\b.\u0010-J\u000f\u0010/\u001a\u00020\bH\u0016¢\u0006\u0004\b/\u0010\u0004J\u000f\u00100\u001a\u00020\bH\u0016¢\u0006\u0004\b0\u0010\u0004J\u000f\u00101\u001a\u00020\bH\u0016¢\u0006\u0004\b1\u0010\u0004J\u000f\u00102\u001a\u00020\bH\u0002¢\u0006\u0004\b2\u0010\u0004J\u000f\u00103\u001a\u00020\bH\u0002¢\u0006\u0004\b3\u0010\u0004J\u000f\u00104\u001a\u00020\bH\u0002¢\u0006\u0004\b4\u0010\u0004J\u000f\u00105\u001a\u00020\bH\u0002¢\u0006\u0004\b5\u0010\u0004J\u000f\u00106\u001a\u00020\bH\u0002¢\u0006\u0004\b6\u0010\u0004J\u0017\u00108\u001a\u00020\b2\u0006\u00107\u001a\u00020\u001cH\u0002¢\u0006\u0004\b8\u00109R(\u0010@\u001a\u00020\u00058\u0016@\u0016X\u0096.¢\u0006\u0018\n\u0004\b:\u0010;\u0012\u0004\b?\u0010\u0004\u001a\u0004\b<\u0010=\"\u0004\b>\u0010\u0007R \u0010E\u001a\b\u0012\u0004\u0012\u00020+0A8\u0016X\u0096\u0004¢\u0006\f\n\u0004\b\u0015\u0010B\u001a\u0004\bC\u0010DR\u0016\u0010H\u001a\u00020\u001c8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\bF\u0010GR\u0016\u0010J\u001a\u00020&8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\bI\u00100R\u0016\u0010L\u001a\u00020\u001c8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\bK\u0010GR\u0016\u0010N\u001a\u00020\u001c8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\bM\u0010GR\u0016\u0010P\u001a\u00020\u001c8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\bO\u0010GR\u0014\u0010R\u001a\u00020\u00018VX\u0096\u0004¢\u0006\u0006\u001a\u0004\bF\u0010Q¨\u0006V"}, d2 = {"Lcom/swmansion/rnscreens/ScreenFragment;", "Landroidx/fragment/app/Fragment;", "Lcom/swmansion/rnscreens/i;", "<init>", "()V", "Lcom/swmansion/rnscreens/Screen;", "screenView", "(Lcom/swmansion/rnscreens/Screen;)V", "Llg0/e0;", "onResume", "Landroid/view/LayoutInflater;", "inflater", "Landroid/view/ViewGroup;", TtmlNode.RUBY_CONTAINER, "Landroid/os/Bundle;", "savedInstanceState", "Landroid/view/View;", "onCreateView", "(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;", "o", "Landroid/app/Activity;", "e", "()Landroid/app/Activity;", "Lcom/facebook/react/bridge/ReactContext;", RalDataManager.DB_TIME, "()Lcom/facebook/react/bridge/ReactContext;", "Lcom/swmansion/rnscreens/ScreenFragment$b;", "event", "", "v", "(Lcom/swmansion/rnscreens/ScreenFragment$b;)Z", "r", "(Lcom/swmansion/rnscreens/ScreenFragment$b;)V", "fragmentWrapper", "x", "(Lcom/swmansion/rnscreens/ScreenFragment$b;Lcom/swmansion/rnscreens/i;)V", "l", "w", "", "alpha", "closing", "C", "(FZ)V", "Lcom/swmansion/rnscreens/ScreenContainer;", "n", "(Lcom/swmansion/rnscreens/ScreenContainer;)V", "q", "G", "F", "onDestroy", "J", "A", "y", "B", "z", "animationEnd", "D", "(Z)V", "d", "Lcom/swmansion/rnscreens/Screen;", "k", "()Lcom/swmansion/rnscreens/Screen;", "I", "getScreen$annotations", "screen", "", "Ljava/util/List;", "m", "()Ljava/util/List;", "childScreenContainers", "f", "Z", "shouldUpdateOnResume", "g", "transitionProgress", "h", "canDispatchWillAppear", mk.i.x, "canDispatchAppear", "j", "isTransitioning", "()Landroidx/fragment/app/Fragment;", "fragment", "a", "b", "ScreensFrameLayout", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
public class ScreenFragment extends Fragment implements i {

    public static final Companion INSTANCE = new Companion(null);

    public Screen screen;

    public final List<ScreenContainer> childScreenContainers;

    public boolean shouldUpdateOnResume;

    public float transitionProgress;

    public boolean canDispatchWillAppear;

    public boolean canDispatchAppear;

    public boolean isTransitioning;

    @Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0002\u0018\u00002\u00020\u0001B\u000f\u0012\u0006\u0010\u0003\u001a\u00020\u0002¢\u0006\u0004\b\u0004\u0010\u0005J\u000f\u0010\u0007\u001a\u00020\u0006H\u0016¢\u0006\u0004\b\u0007\u0010\b¨\u0006\t"}, d2 = {"Lcom/swmansion/rnscreens/ScreenFragment$ScreensFrameLayout;", "Landroid/widget/FrameLayout;", "Landroid/content/Context;", "context", "<init>", "(Landroid/content/Context;)V", "Llg0/e0;", "clearFocus", "()V", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public static final class ScreensFrameLayout extends FrameLayout {
        public ScreensFrameLayout(Context context) {
            super(context);
            kotlin.jvm.internal.n.i(context, "context");
        }

        @Override
        public void clearFocus() {
            if (getVisibility() != 4) {
                super.clearFocus();
            }
        }
    }

    @Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0007\n\u0000\n\u0002\u0010\n\n\u0002\b\u0003\b\u0086\u0003\u0018\u00002\u00020\u0001B\t\b\u0002¢\u0006\u0004\b\u0002\u0010\u0003J\u0017\u0010\u0006\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0004H\u0005¢\u0006\u0004\b\u0006\u0010\u0007J\u0015\u0010\u000b\u001a\u00020\n2\u0006\u0010\t\u001a\u00020\b¢\u0006\u0004\b\u000b\u0010\f¨\u0006\r"}, d2 = {"Lcom/swmansion/rnscreens/ScreenFragment$a;", "", "<init>", "()V", "Landroid/view/View;", "view", "b", "(Landroid/view/View;)Landroid/view/View;", "", "progress", "", "a", "(F)S", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public static final class Companion {
        public Companion() {
        }

        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        public final short a(float progress) {
            return (short) (progress == 0.0f ? 1 : progress == 1.0f ? 2 : 3);
        }

        public final View b(View view) {
            kotlin.jvm.internal.n.i(view, "view");
            ViewParent parent = view.getParent();
            if (parent != null) {
                ViewGroup viewGroup = (ViewGroup) parent;
                viewGroup.endViewTransition(view);
                viewGroup.removeView(view);
            }
            view.setVisibility(0);
            return view;
        }
    }

    @Metadata(d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0010\n\u0002\b\u0007\b\u0086\u0001\u0018\u00002\b\u0012\u0004\u0012\u00020\u00000\u0001B\t\b\u0002¢\u0006\u0004\b\u0002\u0010\u0003j\u0002\b\u0004j\u0002\b\u0005j\u0002\b\u0006j\u0002\b\u0007¨\u0006\b"}, d2 = {"Lcom/swmansion/rnscreens/ScreenFragment$b;", "", "<init>", "(Ljava/lang/String;I)V", "a", "b", "c", "d", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public enum b {
        DID_APPEAR,
        WILL_APPEAR,
        DID_DISAPPEAR,
        WILL_DISAPPEAR
    }

    @Metadata(k = 3, mv = {1, 8, 0}, xi = 48)
    public final class c {
        public static final int[] a;

        static {
            int[] iArr = new int[b.values().length];
            try {
                iArr[b.WILL_APPEAR.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                iArr[b.DID_APPEAR.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
            try {
                iArr[b.WILL_DISAPPEAR.ordinal()] = 3;
            } catch (NoSuchFieldError unused3) {
            }
            try {
                iArr[b.DID_DISAPPEAR.ordinal()] = 4;
            } catch (NoSuchFieldError unused4) {
            }
            a = iArr;
        }
    }

    public ScreenFragment() {
        this.childScreenContainers = new ArrayList();
        this.transitionProgress = -1.0f;
        this.canDispatchWillAppear = true;
        this.canDispatchAppear = true;
        throw new IllegalStateException("Screen fragments should never be restored. Follow instructions from https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067 to properly configure your main activity.");
    }

    @SuppressLint({"ValidFragment"})
    public ScreenFragment(Screen screen) {
        kotlin.jvm.internal.n.i(screen, "screenView");
        this.childScreenContainers = new ArrayList();
        this.transitionProgress = -1.0f;
        this.canDispatchWillAppear = true;
        this.canDispatchAppear = true;
        I(screen);
    }

    public static final void E(boolean z, ScreenFragment screenFragment) {
        kotlin.jvm.internal.n.i(screenFragment, "this$0");
        if (z) {
            screenFragment.y();
        } else {
            screenFragment.A();
        }
    }

    public static final View H(View view) {
        return INSTANCE.b(view);
    }

    public final void A() {
        x(b.WILL_APPEAR, this);
        C(0.0f, false);
    }

    public final void B() {
        x(b.WILL_DISAPPEAR, this);
        C(0.0f, true);
    }

    public void C(float alpha, boolean closing) {
        if (!(this instanceof ScreenStackFragment) || this.transitionProgress == alpha) {
            return;
        }
        float max = Math.max(0.0f, Math.min(1.0f, alpha));
        this.transitionProgress = max;
        short a = INSTANCE.a(max);
        ScreenContainer container = k().getContainer();
        boolean goingForward = container instanceof ScreenStack ? ((ScreenStack) container).getGoingForward() : false;
        ReactContext context = k().getContext();
        kotlin.jvm.internal.n.g(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
        ReactContext reactContext = context;
        com.facebook.react.uimanager.events.e c2 = a1.c(reactContext, k().getId());
        if (c2 != null) {
            c2.g(new mp.h(a1.e(reactContext), k().getId(), this.transitionProgress, closing, goingForward, a));
        }
    }

    public final void D(final boolean animationEnd) {
        this.isTransitioning = !animationEnd;
        Fragment parentFragment = getParentFragment();
        if (parentFragment == null || ((parentFragment instanceof ScreenFragment) && !((ScreenFragment) parentFragment).isTransitioning)) {
            if (isResumed()) {
                UiThreadUtil.runOnUiThread(new Runnable() {
                    @Override
                    public final void run() {
                        ScreenFragment.E(animationEnd, this);
                    }
                });
            } else if (animationEnd) {
                z();
            } else {
                B();
            }
        }
    }

    public void F() {
        D(true);
    }

    public void G() {
        D(false);
    }

    public void I(Screen screen) {
        kotlin.jvm.internal.n.i(screen, "<set-?>");
        this.screen = screen;
    }

    public final void J() {
        Activity activity = getActivity();
        if (activity == null) {
            this.shouldUpdateOnResume = true;
        } else {
            p.a.w(k(), activity, t());
        }
    }

    @Override
    public Activity e() {
        Fragment fragment;
        FragmentActivity activity;
        FragmentActivity activity2 = getActivity();
        if (activity2 != null) {
            return activity2;
        }
        ReactContext context = k().getContext();
        if (context instanceof ReactContext) {
            ReactContext reactContext = context;
            if (reactContext.getCurrentActivity() != null) {
                return reactContext.getCurrentActivity();
            }
        }
        for (ViewParent container = k().getContainer(); container != null; container = container.getParent()) {
            if ((container instanceof Screen) && (fragment = ((Screen) container).getFragment()) != null && (activity = fragment.getActivity()) != null) {
                return activity;
            }
        }
        return null;
    }

    @Override
    public Fragment f() {
        return this;
    }

    @Override
    public Screen k() {
        Screen screen = this.screen;
        if (screen != null) {
            return screen;
        }
        kotlin.jvm.internal.n.z("screen");
        return null;
    }

    @Override
    public void l(b event) {
        i fragmentWrapper;
        kotlin.jvm.internal.n.i(event, "event");
        List<ScreenContainer> m = m();
        ArrayList arrayList = new ArrayList();
        for (Object obj : m) {
            if (((ScreenContainer) obj).getScreenCount() > 0) {
                arrayList.add(obj);
            }
        }
        Iterator it = arrayList.iterator();
        while (it.hasNext()) {
            Screen topScreen = ((ScreenContainer) it.next()).getTopScreen();
            if (topScreen != null && (fragmentWrapper = topScreen.getFragmentWrapper()) != null) {
                x(event, fragmentWrapper);
            }
        }
    }

    @Override
    public List<ScreenContainer> m() {
        return this.childScreenContainers;
    }

    @Override
    public void n(ScreenContainer container) {
        kotlin.jvm.internal.n.i(container, TtmlNode.RUBY_CONTAINER);
        m().add(container);
    }

    @Override
    public void o() {
        J();
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        kotlin.jvm.internal.n.i(inflater, "inflater");
        k().setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
        Context context = getContext();
        if (context == null) {
            return null;
        }
        ScreensFrameLayout screensFrameLayout = new ScreensFrameLayout(context);
        screensFrameLayout.addView(H(k()));
        return screensFrameLayout;
    }

    public void onDestroy() {
        super.onDestroy();
        ScreenContainer container = k().getContainer();
        if (container == null || !container.hasScreen(this)) {
            ReactContext context = k().getContext();
            if (context instanceof ReactContext) {
                int e = a1.e(context);
                com.facebook.react.uimanager.events.e c2 = a1.c(context, k().getId());
                if (c2 != null) {
                    c2.g(new mp.g(e, k().getId()));
                }
            }
        }
        m().clear();
    }

    public void onResume() {
        super.onResume();
        if (this.shouldUpdateOnResume) {
            this.shouldUpdateOnResume = false;
            p.a.w(k(), e(), t());
        }
    }

    @Override
    public void q(ScreenContainer container) {
        kotlin.jvm.internal.n.i(container, TtmlNode.RUBY_CONTAINER);
        m().remove(container);
    }

    @Override
    public void r(b event) {
        kotlin.jvm.internal.n.i(event, "event");
        int i = c.a[event.ordinal()];
        if (i == 1) {
            this.canDispatchWillAppear = false;
            return;
        }
        if (i == 2) {
            this.canDispatchAppear = false;
        } else if (i == 3) {
            this.canDispatchWillAppear = true;
        } else {
            if (i != 4) {
                return;
            }
            this.canDispatchAppear = true;
        }
    }

    @Override
    public ReactContext t() {
        if (getContext() instanceof ReactContext) {
            ReactContext context = getContext();
            kotlin.jvm.internal.n.g(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
            return context;
        }
        if (k().getContext() instanceof ReactContext) {
            ReactContext context2 = k().getContext();
            kotlin.jvm.internal.n.g(context2, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
            return context2;
        }
        for (ViewParent container = k().getContainer(); container != null; container = container.getParent()) {
            if (container instanceof Screen) {
                Screen screen = (Screen) container;
                if (screen.getContext() instanceof ReactContext) {
                    ReactContext context3 = screen.getContext();
                    kotlin.jvm.internal.n.g(context3, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
                    return context3;
                }
            }
        }
        return null;
    }

    public boolean v(b event) {
        kotlin.jvm.internal.n.i(event, "event");
        int i = c.a[event.ordinal()];
        if (i == 1) {
            return this.canDispatchWillAppear;
        }
        if (i == 2) {
            return this.canDispatchAppear;
        }
        if (i == 3) {
            return !this.canDispatchWillAppear;
        }
        if (i == 4) {
            return !this.canDispatchAppear;
        }
        throw new lg0.l();
    }

    public void w() {
        ReactContext context = k().getContext();
        kotlin.jvm.internal.n.g(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
        ReactContext reactContext = context;
        int e = a1.e(reactContext);
        com.facebook.react.uimanager.events.e c2 = a1.c(reactContext, k().getId());
        if (c2 != null) {
            c2.g(new mp.b(e, k().getId()));
        }
    }

    public void x(b event, i fragmentWrapper) {
        com.facebook.react.uimanager.events.d iVar;
        kotlin.jvm.internal.n.i(event, "event");
        kotlin.jvm.internal.n.i(fragmentWrapper, "fragmentWrapper");
        Fragment f = fragmentWrapper.f();
        if (f instanceof ScreenStackFragment) {
            ScreenStackFragment screenStackFragment = (ScreenStackFragment) f;
            if (screenStackFragment.v(event)) {
                Screen k = screenStackFragment.k();
                fragmentWrapper.r(event);
                int f2 = a1.f(k);
                int i = c.a[event.ordinal()];
                if (i == 1) {
                    iVar = new mp.i(f2, k.getId());
                } else if (i == 2) {
                    iVar = new mp.e(f2, k.getId());
                } else if (i == 3) {
                    iVar = new mp.j(f2, k.getId());
                } else {
                    if (i != 4) {
                        throw new lg0.l();
                    }
                    iVar = new mp.f(f2, k.getId());
                }
                ReactContext context = k().getContext();
                kotlin.jvm.internal.n.g(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
                com.facebook.react.uimanager.events.e c2 = a1.c(context, k().getId());
                if (c2 != null) {
                    c2.g(iVar);
                }
                fragmentWrapper.l(event);
            }
        }
    }

    public final void y() {
        x(b.DID_APPEAR, this);
        C(1.0f, false);
    }

    public final void z() {
        x(b.DID_DISAPPEAR, this);
        C(1.0f, true);
    }
}