正在查看: Zepto v25.1.4 应用的 ScreenFragment.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Zepto v25.1.4 应用的 ScreenFragment.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.swmansion.rnscreens;
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 androidx.media3.exoplayer.audio.e;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.uimanager.UIManagerHelper;
import com.facebook.react.uimanager.events.EventDispatcher;
import com.swmansion.rnscreens.events.HeaderBackButtonClickedEvent;
import com.swmansion.rnscreens.events.ScreenDismissedEvent;
import com.swmansion.rnscreens.events.ScreenTransitionProgressEvent;
import in.juspay.hypersdk.core.PaymentConstants;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
@Metadata
@SourceDebugExtension
public class ScreenFragment extends Fragment implements ScreenFragmentWrapper {
public static final int U = 0;
public final Screen N;
public final ArrayList O;
public boolean P;
public float Q;
public boolean R;
public boolean S;
public boolean T;
@Metadata
public static final class Companion {
}
@Metadata
public static final class ScreenLifecycleEvent {
public static final ScreenLifecycleEvent a;
public static final ScreenLifecycleEvent b;
public static final ScreenLifecycleEvent c;
public static final ScreenLifecycleEvent f2759d;
public static final ScreenLifecycleEvent[] f2760e;
static {
ScreenLifecycleEvent screenLifecycleEvent = new ScreenLifecycleEvent("DID_APPEAR", 0);
a = screenLifecycleEvent;
ScreenLifecycleEvent screenLifecycleEvent2 = new ScreenLifecycleEvent("WILL_APPEAR", 1);
b = screenLifecycleEvent2;
ScreenLifecycleEvent screenLifecycleEvent3 = new ScreenLifecycleEvent("DID_DISAPPEAR", 2);
c = screenLifecycleEvent3;
ScreenLifecycleEvent screenLifecycleEvent4 = new ScreenLifecycleEvent("WILL_DISAPPEAR", 3);
f2759d = screenLifecycleEvent4;
f2760e = new ScreenLifecycleEvent[]{screenLifecycleEvent, screenLifecycleEvent2, screenLifecycleEvent3, screenLifecycleEvent4};
}
public static ScreenLifecycleEvent valueOf(String str) {
return (ScreenLifecycleEvent) Enum.valueOf(ScreenLifecycleEvent.class, str);
}
public static ScreenLifecycleEvent[] values() {
return (ScreenLifecycleEvent[]) f2760e.clone();
}
}
@Metadata
public static final class ScreensFrameLayout extends FrameLayout {
@Override
public final void clearFocus() {
if (getVisibility() != 4) {
super.clearFocus();
}
}
}
@Metadata
public class WhenMappings {
static {
int[] iArr = new int[ScreenLifecycleEvent.values().length];
try {
iArr[1] = 1;
} catch (NoSuchFieldError unused) {
}
try {
iArr[0] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
iArr[3] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
iArr[2] = 4;
} catch (NoSuchFieldError unused4) {
}
}
}
public ScreenFragment() {
this.O = new ArrayList();
this.Q = -1.0f;
this.R = true;
this.S = 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.");
}
public static final void M(ViewGroup view) {
Intrinsics.checkNotNullParameter(view, "view");
ViewParent parent = view.getParent();
if (parent != null) {
ViewGroup viewGroup = (ViewGroup) parent;
viewGroup.endViewTransition(view);
viewGroup.removeView(view);
}
view.setVisibility(0);
}
@Override
public final ReactContext B() {
if (getContext() instanceof ReactContext) {
ReactContext context = getContext();
Intrinsics.f(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context;
}
if (r().getContext() instanceof ReactContext) {
ReactContext context2 = r().getContext();
Intrinsics.f(context2, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context2;
}
for (ViewParent container = r().getContainer(); container != null; container = container.getParent()) {
if (container instanceof Screen) {
Screen screen = (Screen) container;
if (screen.getContext() instanceof ReactContext) {
ReactContext context3 = screen.getContext();
Intrinsics.f(context3, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context3;
}
}
}
return null;
}
public final void H() {
ReactContext context = r().getContext();
Intrinsics.f(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
ReactContext reactContext = context;
int d2 = UIManagerHelper.d(reactContext);
EventDispatcher b = UIManagerHelper.b(reactContext, r().getId());
if (b != null) {
b.g(new HeaderBackButtonClickedEvent(d2, r().getId()));
}
}
public final void I(com.swmansion.rnscreens.ScreenFragment.ScreenLifecycleEvent r7, com.swmansion.rnscreens.ScreenFragmentWrapper r8) {
throw new UnsupportedOperationException("Method not decompiled: com.swmansion.rnscreens.ScreenFragment.I(com.swmansion.rnscreens.ScreenFragment$ScreenLifecycleEvent, com.swmansion.rnscreens.ScreenFragmentWrapper):void");
}
public final void J(float f2, boolean z) {
if (!(this instanceof ScreenStackFragment) || this.Q == f2) {
return;
}
float max = Math.max(0.0f, Math.min(1.0f, f2));
this.Q = max;
short s = (short) (max == 0.0f ? 1 : max == 1.0f ? 2 : 3);
ScreenContainer container = r().getContainer();
boolean goingForward = container instanceof ScreenStack ? ((ScreenStack) container).getGoingForward() : false;
ReactContext context = r().getContext();
Intrinsics.f(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
ReactContext reactContext = context;
EventDispatcher b = UIManagerHelper.b(reactContext, r().getId());
if (b != null) {
b.g(new ScreenTransitionProgressEvent(UIManagerHelper.d(reactContext), r().getId(), this.Q, z, goingForward, s));
}
}
public final void K(boolean z) {
this.T = !z;
Fragment parentFragment = getParentFragment();
if (parentFragment == null || ((parentFragment instanceof ScreenFragment) && !((ScreenFragment) parentFragment).T)) {
if (isResumed()) {
UiThreadUtil.runOnUiThread(new e(z, this, 5));
} else if (z) {
I(ScreenLifecycleEvent.c, this);
J(1.0f, true);
} else {
I(ScreenLifecycleEvent.f2759d, this);
J(0.0f, true);
}
}
}
public void L() {
K(true);
}
@Override
public final void b(ScreenLifecycleEvent event) {
ScreenFragmentWrapper fragmentWrapper;
Intrinsics.checkNotNullParameter(event, "event");
ArrayList arrayList = this.O;
ArrayList arrayList2 = new ArrayList();
for (Object obj : arrayList) {
if (((ScreenContainer) obj).getScreenCount() > 0) {
arrayList2.add(obj);
}
}
Iterator it = arrayList2.iterator();
while (it.hasNext()) {
Screen topScreen = ((ScreenContainer) it.next()).getTopScreen();
if (topScreen != null && (fragmentWrapper = topScreen.getFragmentWrapper()) != null) {
I(event, fragmentWrapper);
}
}
}
@Override
public final void e(ScreenLifecycleEvent event) {
Intrinsics.checkNotNullParameter(event, "event");
int ordinal = event.ordinal();
if (ordinal == 0) {
this.S = false;
return;
}
if (ordinal == 1) {
this.R = false;
} else if (ordinal == 2) {
this.S = true;
} else {
if (ordinal != 3) {
return;
}
this.R = true;
}
}
public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle) {
Intrinsics.checkNotNullParameter(inflater, "inflater");
r().setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
Context context = getContext();
if (context == null) {
return null;
}
Intrinsics.checkNotNullParameter(context, "context");
ScreensFrameLayout screensFrameLayout = new ScreensFrameLayout(context);
Screen r = r();
M(r);
screensFrameLayout.addView(r);
return screensFrameLayout;
}
public final void onDestroy() {
super.onDestroy();
ScreenContainer container = r().getContainer();
if (container == null || !container.c(this)) {
ReactContext context = r().getContext();
if (context instanceof ReactContext) {
int d2 = UIManagerHelper.d(context);
EventDispatcher b = UIManagerHelper.b(context, r().getId());
if (b != null) {
b.g(new ScreenDismissedEvent(d2, r().getId()));
}
}
}
this.O.clear();
}
public final void onResume() {
super.onResume();
if (this.P) {
this.P = false;
ScreenWindowTraits.j(r(), t(), B());
}
}
@Override
public final Screen r() {
Screen screen = this.N;
if (screen != null) {
return screen;
}
Intrinsics.n(PaymentConstants.Event.SCREEN);
throw null;
}
@Override
public final Activity t() {
Fragment fragment;
FragmentActivity activity;
FragmentActivity activity2 = getActivity();
if (activity2 != null) {
return activity2;
}
ReactContext context = r().getContext();
if (context instanceof ReactContext) {
ReactContext reactContext = context;
if (reactContext.getCurrentActivity() != null) {
return reactContext.getCurrentActivity();
}
}
for (ViewParent container = r().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 final ScreenFragment u() {
return this;
}
@Override
public final List w() {
return this.O;
}
@Override
public final void x(ScreenContainer container) {
Intrinsics.checkNotNullParameter(container, "container");
this.O.add(container);
}
@Override
public void y() {
FragmentActivity activity = getActivity();
if (activity == null) {
this.P = true;
} else {
ScreenWindowTraits.j(r(), activity, B());
}
}
@Override
public final void z(ScreenContainer container) {
Intrinsics.checkNotNullParameter(container, "container");
this.O.remove(container);
}
public ScreenFragment(Screen screenView) {
Intrinsics.checkNotNullParameter(screenView, "screenView");
this.O = new ArrayList();
this.Q = -1.0f;
this.R = true;
this.S = true;
Intrinsics.checkNotNullParameter(screenView, "<set-?>");
this.N = screenView;
}
}