导航菜单

页面标题

页面副标题

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

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

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


package com.swmansion.rnscreens;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.Transformation;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.fragment.app.Fragment;
import com.google.android.inner_exoplayer2.text.ttml.TtmlNode;
import com.google.android.material.appbar.AppBarLayout;
import com.sdk.plus.data.manager.RalDataManager;
import com.swmansion.rnscreens.ScreenStackHeaderSubview;
import kotlin.Metadata;
import lg0.e0;

@Metadata(d1 = {"\u0000l\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\b\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\u0003\n\u0002\u0018\u0002\n\u0002\b\n\n\u0002\u0018\u0002\n\u0002\b\f\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\n\u0018\u00002\u00020\u00012\u00020\u0002:\u0002MNB\u0011\b\u0017\u0012\u0006\u0010\u0004\u001a\u00020\u0003¢\u0006\u0004\b\u0005\u0010\u0006B\t\b\u0016¢\u0006\u0004\b\u0005\u0010\u0007J\u000f\u0010\t\u001a\u00020\bH\u0016¢\u0006\u0004\b\t\u0010\u0007J\u0017\u0010\f\u001a\u00020\b2\u0006\u0010\u000b\u001a\u00020\nH\u0016¢\u0006\u0004\b\f\u0010\rJ\u0017\u0010\u0010\u001a\u00020\b2\u0006\u0010\u000f\u001a\u00020\u000eH\u0016¢\u0006\u0004\b\u0010\u0010\u0011J\u0017\u0010\u0013\u001a\u00020\b2\u0006\u0010\u0012\u001a\u00020\u000eH\u0016¢\u0006\u0004\b\u0013\u0010\u0011J\u000f\u0010\u0014\u001a\u00020\bH\u0016¢\u0006\u0004\b\u0014\u0010\u0007J\u000f\u0010\u0015\u001a\u00020\bH\u0016¢\u0006\u0004\b\u0015\u0010\u0007J\u000f\u0010\u0016\u001a\u00020\bH\u0016¢\u0006\u0004\b\u0016\u0010\u0007J-\u0010\u001e\u001a\u0004\u0018\u00010\u001d2\u0006\u0010\u0018\u001a\u00020\u00172\b\u0010\u001a\u001a\u0004\u0018\u00010\u00192\b\u0010\u001c\u001a\u0004\u0018\u00010\u001bH\u0016¢\u0006\u0004\b\u001e\u0010\u001fJ\u000f\u0010 \u001a\u00020\bH\u0016¢\u0006\u0004\b \u0010\u0007J\u0017\u0010#\u001a\u00020\b2\u0006\u0010\"\u001a\u00020!H\u0016¢\u0006\u0004\b#\u0010$J\u001f\u0010&\u001a\u00020\b2\u0006\u0010\"\u001a\u00020!2\u0006\u0010\u0018\u001a\u00020%H\u0016¢\u0006\u0004\b&\u0010'J\u000f\u0010(\u001a\u00020\u000eH\u0016¢\u0006\u0004\b(\u0010)J\u000f\u0010*\u001a\u00020\bH\u0016¢\u0006\u0004\b*\u0010\u0007J\u000f\u0010+\u001a\u00020\bH\u0002¢\u0006\u0004\b+\u0010\u0007J\u000f\u0010,\u001a\u00020\u000eH\u0002¢\u0006\u0004\b,\u0010)J\u0017\u0010-\u001a\u00020\b2\u0006\u0010\"\u001a\u00020!H\u0002¢\u0006\u0004\b-\u0010$J\u0011\u0010.\u001a\u0004\u0018\u00010\u001dH\u0002¢\u0006\u0004\b.\u0010/R\u0018\u00103\u001a\u0004\u0018\u0001008\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b1\u00102R\u0018\u0010\u000b\u001a\u0004\u0018\u00010\n8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b4\u00105R\u0016\u00108\u001a\u00020\u000e8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b6\u00107R\u0016\u00109\u001a\u00020\u000e8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b\u0014\u00107R\u0018\u0010<\u001a\u0004\u0018\u00010\u001d8\u0002@\u0002X\u0082\u000e¢\u0006\u0006\n\u0004\b:\u0010;R$\u0010D\u001a\u0004\u0018\u00010=8\u0006@\u0006X\u0086\u000e¢\u0006\u0012\n\u0004\b>\u0010?\u001a\u0004\b@\u0010A\"\u0004\bB\u0010CR0\u0010L\u001a\u0010\u0012\u0004\u0012\u00020=\u0012\u0004\u0012\u00020\b\u0018\u00010E8\u0006@\u0006X\u0086\u000e¢\u0006\u0012\n\u0004\bF\u0010G\u001a\u0004\bH\u0010I\"\u0004\bJ\u0010K¨\u0006O"}, d2 = {"Lcom/swmansion/rnscreens/ScreenStackFragment;", "Lcom/swmansion/rnscreens/ScreenFragment;", "Lcom/swmansion/rnscreens/k;", "Lcom/swmansion/rnscreens/Screen;", "screenView", "<init>", "(Lcom/swmansion/rnscreens/Screen;)V", "()V", "Llg0/e0;", "Q", "Landroidx/appcompat/widget/Toolbar;", "toolbar", "S", "(Landroidx/appcompat/widget/Toolbar;)V", "", "hidden", "T", "(Z)V", "translucent", "U", "o", "F", "onStart", "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;", "onStop", "Landroid/view/Menu;", "menu", "onPrepareOptionsMenu", "(Landroid/view/Menu;)V", "Landroid/view/MenuInflater;", "onCreateOptionsMenu", "(Landroid/view/Menu;Landroid/view/MenuInflater;)V", "K", "()Z", "L", "P", "V", "W", "N", "()Landroid/view/View;", "Lcom/google/android/material/appbar/AppBarLayout;", "l", "Lcom/google/android/material/appbar/AppBarLayout;", "appBarLayout", "m", "Landroidx/appcompat/widget/Toolbar;", "n", "Z", "isToolbarShadowHidden", "isToolbarTranslucent", TtmlNode.TAG_P, "Landroid/view/View;", "lastFocusedChild", "Lcom/swmansion/rnscreens/CustomSearchView;", "q", "Lcom/swmansion/rnscreens/CustomSearchView;", "O", "()Lcom/swmansion/rnscreens/CustomSearchView;", "setSearchView", "(Lcom/swmansion/rnscreens/CustomSearchView;)V", "searchView", "Lkotlin/Function1;", "r", "Lah0/l;", "getOnSearchViewCreate", "()Lah0/l;", "R", "(Lah0/l;)V", "onSearchViewCreate", "a", "ScreensCoordinatorLayout", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
public final class ScreenStackFragment extends ScreenFragment implements k {

    public AppBarLayout appBarLayout;

    public Toolbar toolbar;

    public boolean isToolbarShadowHidden;

    public boolean isToolbarTranslucent;

    public View lastFocusedChild;

    public CustomSearchView searchView;

    public ah0.l<? super CustomSearchView, e0> onSearchViewCreate;

    @Metadata(d1 = {"\u0000,\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0002\u0018\u00002\u00020\u0001B\u0017\u0012\u0006\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004¢\u0006\u0004\b\u0006\u0010\u0007J\u0017\u0010\u000b\u001a\u00020\n2\u0006\u0010\t\u001a\u00020\bH\u0016¢\u0006\u0004\b\u000b\u0010\fJ\u000f\u0010\r\u001a\u00020\nH\u0016¢\u0006\u0004\b\r\u0010\u000eR\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010\u000fR\u0014\u0010\u0011\u001a\u00020\u00108\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0011\u0010\u0012¨\u0006\u0013"}, d2 = {"Lcom/swmansion/rnscreens/ScreenStackFragment$ScreensCoordinatorLayout;", "Landroidx/coordinatorlayout/widget/CoordinatorLayout;", "Landroid/content/Context;", "context", "Lcom/swmansion/rnscreens/ScreenFragment;", "mFragment", "<init>", "(Landroid/content/Context;Lcom/swmansion/rnscreens/ScreenFragment;)V", "Landroid/view/animation/Animation;", "animation", "Llg0/e0;", "startAnimation", "(Landroid/view/animation/Animation;)V", "clearFocus", "()V", "Lcom/swmansion/rnscreens/ScreenFragment;", "Landroid/view/animation/Animation$AnimationListener;", "mAnimationListener", "Landroid/view/animation/Animation$AnimationListener;", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public static final class ScreensCoordinatorLayout extends CoordinatorLayout {
        private final Animation.AnimationListener mAnimationListener;
        private final ScreenFragment mFragment;

        @Metadata(d1 = {"\u0000\u0017\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005*\u0001\u0000\b\n\u0018\u00002\u00020\u0001J\u0017\u0010\u0005\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0016¢\u0006\u0004\b\u0005\u0010\u0006J\u0017\u0010\u0007\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0016¢\u0006\u0004\b\u0007\u0010\u0006J\u0017\u0010\b\u001a\u00020\u00042\u0006\u0010\u0003\u001a\u00020\u0002H\u0016¢\u0006\u0004\b\b\u0010\u0006¨\u0006\t"}, d2 = {"com/swmansion/rnscreens/ScreenStackFragment$ScreensCoordinatorLayout$a", "Landroid/view/animation/Animation$AnimationListener;", "Landroid/view/animation/Animation;", "animation", "Llg0/e0;", "onAnimationStart", "(Landroid/view/animation/Animation;)V", "onAnimationEnd", "onAnimationRepeat", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
        public static final class a implements Animation.AnimationListener {
            public a() {
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                kotlin.jvm.internal.n.i(animation, "animation");
                ScreensCoordinatorLayout.this.mFragment.F();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                kotlin.jvm.internal.n.i(animation, "animation");
            }

            @Override
            public void onAnimationStart(Animation animation) {
                kotlin.jvm.internal.n.i(animation, "animation");
                ScreensCoordinatorLayout.this.mFragment.G();
            }
        }

        public ScreensCoordinatorLayout(Context context, ScreenFragment screenFragment) {
            super(context);
            kotlin.jvm.internal.n.i(context, "context");
            kotlin.jvm.internal.n.i(screenFragment, "mFragment");
            this.mFragment = screenFragment;
            this.mAnimationListener = new a();
        }

        public void clearFocus() {
            if (getVisibility() != 4) {
                super/*android.view.ViewGroup*/.clearFocus();
            }
        }

        public void startAnimation(Animation animation) {
            kotlin.jvm.internal.n.i(animation, "animation");
            a aVar = new a(this.mFragment);
            aVar.setDuration(animation.getDuration());
            if ((animation instanceof AnimationSet) && !this.mFragment.isRemoving()) {
                AnimationSet animationSet = (AnimationSet) animation;
                animationSet.addAnimation(aVar);
                animationSet.setAnimationListener(this.mAnimationListener);
                super/*android.view.ViewGroup*/.startAnimation(animationSet);
                return;
            }
            AnimationSet animationSet2 = new AnimationSet(true);
            animationSet2.addAnimation(animation);
            animationSet2.addAnimation(aVar);
            animationSet2.setAnimationListener(this.mAnimationListener);
            super/*android.view.ViewGroup*/.startAnimation(animationSet2);
        }
    }

    @Metadata(d1 = {"\u0000$\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0007\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\b\u0002\u0018\u00002\u00020\u0001B\u000f\u0012\u0006\u0010\u0003\u001a\u00020\u0002¢\u0006\u0004\b\u0004\u0010\u0005J\u001f\u0010\u000b\u001a\u00020\n2\u0006\u0010\u0007\u001a\u00020\u00062\u0006\u0010\t\u001a\u00020\bH\u0014¢\u0006\u0004\b\u000b\u0010\fR\u0014\u0010\u0003\u001a\u00020\u00028\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\r\u0010\u000e¨\u0006\u000f"}, d2 = {"Lcom/swmansion/rnscreens/ScreenStackFragment$a;", "Landroid/view/animation/Animation;", "Lcom/swmansion/rnscreens/ScreenFragment;", "mFragment", "<init>", "(Lcom/swmansion/rnscreens/ScreenFragment;)V", "", "interpolatedTime", "Landroid/view/animation/Transformation;", RalDataManager.DB_TIME, "Llg0/e0;", "applyTransformation", "(FLandroid/view/animation/Transformation;)V", "a", "Lcom/swmansion/rnscreens/ScreenFragment;", "react-native-screens_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public static final class a extends Animation {

        public final ScreenFragment mFragment;

        public a(ScreenFragment screenFragment) {
            kotlin.jvm.internal.n.i(screenFragment, "mFragment");
            this.mFragment = screenFragment;
        }

        @Override
        public void applyTransformation(float interpolatedTime, Transformation t) {
            kotlin.jvm.internal.n.i(t, RalDataManager.DB_TIME);
            super.applyTransformation(interpolatedTime, t);
            this.mFragment.C(interpolatedTime, !r3.isResumed());
        }
    }

    public ScreenStackFragment() {
        throw new IllegalStateException("ScreenStack 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 ScreenStackFragment(Screen screen) {
        super(screen);
        kotlin.jvm.internal.n.i(screen, "screenView");
    }

    @Override
    public void F() {
        super.F();
        P();
    }

    public boolean K() {
        ScreenContainer container = k().getContainer();
        if (!(container instanceof ScreenStack)) {
            throw new IllegalStateException("ScreenStackFragment added into a non-stack container");
        }
        if (!kotlin.jvm.internal.n.d(((ScreenStack) container).getRootScreen(), k())) {
            return true;
        }
        Fragment parentFragment = getParentFragment();
        if (parentFragment instanceof ScreenStackFragment) {
            return ((ScreenStackFragment) parentFragment).K();
        }
        return false;
    }

    public void L() {
        ScreenContainer container = k().getContainer();
        if (!(container instanceof ScreenStack)) {
            throw new IllegalStateException("ScreenStackFragment added into a non-stack container");
        }
        ((ScreenStack) container).dismiss(this);
    }

    public final View N() {
        View k = k();
        while (k != null) {
            if (k.isFocused()) {
                return k;
            }
            k = k instanceof ViewGroup ? ((ViewGroup) k).getFocusedChild() : null;
        }
        return null;
    }

    public final CustomSearchView getSearchView() {
        return this.searchView;
    }

    public final void P() {
        View view = getView();
        ViewParent parent = view != null ? view.getParent() : null;
        if (parent instanceof ScreenStack) {
            ((ScreenStack) parent).onViewAppearTransitionEnd();
        }
    }

    public void Q() {
        Toolbar toolbar;
        AppBarLayout appBarLayout = this.appBarLayout;
        if (appBarLayout != null && (toolbar = this.toolbar) != null && toolbar.getParent() == appBarLayout) {
            appBarLayout.removeView(toolbar);
        }
        this.toolbar = null;
    }

    public final void R(ah0.l<? super CustomSearchView, e0> lVar) {
        this.onSearchViewCreate = lVar;
    }

    public void S(Toolbar toolbar) {
        kotlin.jvm.internal.n.i(toolbar, "toolbar");
        AppBarLayout appBarLayout = this.appBarLayout;
        if (appBarLayout != null) {
            appBarLayout.addView(toolbar);
        }
        AppBarLayout.LayoutParams layoutParams = new AppBarLayout.LayoutParams(-1, -2);
        layoutParams.g(0);
        toolbar.setLayoutParams(layoutParams);
        this.toolbar = toolbar;
    }

    public void T(boolean hidden) {
        if (this.isToolbarShadowHidden != hidden) {
            AppBarLayout appBarLayout = this.appBarLayout;
            if (appBarLayout != null) {
                appBarLayout.setElevation(hidden ? 0.0f : com.facebook.react.uimanager.u.d(4.0f));
            }
            AppBarLayout appBarLayout2 = this.appBarLayout;
            if (appBarLayout2 != null) {
                appBarLayout2.setStateListAnimator(null);
            }
            this.isToolbarShadowHidden = hidden;
        }
    }

    public void U(boolean translucent) {
        if (this.isToolbarTranslucent != translucent) {
            CoordinatorLayout.e layoutParams = k().getLayoutParams();
            kotlin.jvm.internal.n.g(layoutParams, "null cannot be cast to non-null type androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams");
            layoutParams.o(translucent ? null : new AppBarLayout.ScrollingViewBehavior());
            this.isToolbarTranslucent = translucent;
        }
    }

    public final boolean V() {
        ScreenStackHeaderConfig headerConfig = k().getHeaderConfig();
        int configSubviewsCount = headerConfig != null ? headerConfig.getConfigSubviewsCount() : 0;
        if (headerConfig != null && configSubviewsCount > 0) {
            for (int i = 0; i < configSubviewsCount; i++) {
                if (headerConfig.getConfigSubview(i).getType() == ScreenStackHeaderSubview.a.SEARCH_BAR) {
                    return true;
                }
            }
        }
        return false;
    }

    public final void W(Menu menu) {
        menu.clear();
        if (V()) {
            Context context = getContext();
            if (this.searchView == null && context != null) {
                CustomSearchView customSearchView = new CustomSearchView(context, this);
                this.searchView = customSearchView;
                ah0.l<? super CustomSearchView, e0> lVar = this.onSearchViewCreate;
                if (lVar != null) {
                    lVar.invoke(customSearchView);
                }
            }
            MenuItem add = menu.add("");
            add.setShowAsAction(2);
            add.setActionView((View) this.searchView);
        }
    }

    @Override
    public void o() {
        super.o();
        ScreenStackHeaderConfig headerConfig = k().getHeaderConfig();
        if (headerConfig != null) {
            headerConfig.onUpdate();
        }
    }

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        kotlin.jvm.internal.n.i(menu, "menu");
        kotlin.jvm.internal.n.i(inflater, "inflater");
        W(menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        AppBarLayout appBarLayout;
        AppBarLayout appBarLayout2;
        kotlin.jvm.internal.n.i(inflater, "inflater");
        Context context = getContext();
        CoordinatorLayout screensCoordinatorLayout = context != null ? new ScreensCoordinatorLayout(context, this) : null;
        Screen k = k();
        CoordinatorLayout.e eVar = new CoordinatorLayout.e(-1, -1);
        eVar.o(this.isToolbarTranslucent ? null : new AppBarLayout.ScrollingViewBehavior());
        k.setLayoutParams(eVar);
        if (screensCoordinatorLayout != null) {
            screensCoordinatorLayout.addView(ScreenFragment.H(k()));
        }
        Context context2 = getContext();
        if (context2 != null) {
            appBarLayout = new AppBarLayout(context2);
            appBarLayout.setBackgroundColor(0);
            appBarLayout.setLayoutParams(new AppBarLayout.LayoutParams(-1, -2));
        } else {
            appBarLayout = null;
        }
        this.appBarLayout = appBarLayout;
        if (screensCoordinatorLayout != null) {
            screensCoordinatorLayout.addView(appBarLayout);
        }
        if (this.isToolbarShadowHidden) {
            AppBarLayout appBarLayout3 = this.appBarLayout;
            if (appBarLayout3 != null) {
                appBarLayout3.setElevation(0.0f);
            }
            AppBarLayout appBarLayout4 = this.appBarLayout;
            if (appBarLayout4 != null) {
                appBarLayout4.setStateListAnimator(null);
            }
        }
        Toolbar toolbar = this.toolbar;
        if (toolbar != null && (appBarLayout2 = this.appBarLayout) != null) {
            appBarLayout2.addView(ScreenFragment.H(toolbar));
        }
        setHasOptionsMenu(true);
        return screensCoordinatorLayout;
    }

    public void onPrepareOptionsMenu(Menu menu) {
        ScreenStackHeaderConfig headerConfig;
        kotlin.jvm.internal.n.i(menu, "menu");
        if (!k().isTransparent() || ((headerConfig = k().getHeaderConfig()) != null && !headerConfig.getIsHeaderHidden())) {
            W(menu);
        }
        super.onPrepareOptionsMenu(menu);
    }

    public void onStart() {
        View view = this.lastFocusedChild;
        if (view != null) {
            view.requestFocus();
        }
        super.onStart();
    }

    public void onStop() {
        if (op.a.a.a(getContext())) {
            this.lastFocusedChild = N();
        }
        super.onStop();
    }
}