正在查看: BAM Crawford v6.14.1 应用的 ScreenFragment.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: BAM Crawford v6.14.1 应用的 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 com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.uimanager.b1;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import kotlin.jvm.internal.DefaultConstructorMarker;
public class ScreenFragment extends Fragment implements o {
public static final a Companion = new a(null);
private boolean canDispatchAppear;
private boolean canDispatchWillAppear;
private boolean isTransitioning;
private final List<l> mChildScreenContainers;
private float mProgress;
public j screen;
private boolean shouldUpdateOnResume;
public static final class a {
private a() {
}
public a(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
protected final View a(View view) {
kotlin.jvm.internal.k.e(view, "view");
ViewParent parent = view.getParent();
if (parent != null) {
ViewGroup viewGroup = (ViewGroup) parent;
viewGroup.endViewTransition(view);
viewGroup.removeView(view);
}
view.setVisibility(0);
return view;
}
}
public enum b {
Appear,
WillAppear,
Disappear,
WillDisappear
}
private static final class c extends FrameLayout {
public c(Context context) {
super(context);
kotlin.jvm.internal.k.e(context, "context");
}
@Override
public void clearFocus() {
if (getVisibility() != 4) {
super.clearFocus();
}
}
}
public class d {
public static final int[] a;
static {
int[] iArr = new int[b.values().length];
try {
iArr[b.WillAppear.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
iArr[b.Appear.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
iArr[b.WillDisappear.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
iArr[b.Disappear.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
a = iArr;
}
}
public ScreenFragment() {
this.mChildScreenContainers = new ArrayList();
this.mProgress = -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.");
}
private final void dispatchOnAppear() {
dispatchLifecycleEvent(b.Appear, this);
dispatchTransitionProgressEvent(1.0f, false);
}
private final void dispatchOnDisappear() {
dispatchLifecycleEvent(b.Disappear, this);
dispatchTransitionProgressEvent(1.0f, true);
}
private final void dispatchOnWillAppear() {
dispatchLifecycleEvent(b.WillAppear, this);
dispatchTransitionProgressEvent(BitmapDescriptorFactory.HUE_RED, false);
}
private final void dispatchOnWillDisappear() {
dispatchLifecycleEvent(b.WillDisappear, this);
dispatchTransitionProgressEvent(BitmapDescriptorFactory.HUE_RED, true);
}
private final void dispatchViewAnimationEvent(final boolean z) {
this.isTransitioning = !z;
Fragment parentFragment = getParentFragment();
if (parentFragment == null || ((parentFragment instanceof ScreenFragment) && !((ScreenFragment) parentFragment).isTransitioning)) {
if (isResumed()) {
UiThreadUtil.runOnUiThread(new Runnable() {
@Override
public final void run() {
ScreenFragment.dispatchViewAnimationEvent$lambda$8(z, this);
}
});
} else if (z) {
dispatchOnDisappear();
} else {
dispatchOnWillDisappear();
}
}
}
public static final void dispatchViewAnimationEvent$lambda$8(boolean z, ScreenFragment this$0) {
kotlin.jvm.internal.k.e(this$0, "this$0");
if (z) {
this$0.dispatchOnAppear();
} else {
this$0.dispatchOnWillAppear();
}
}
public static void getScreen$annotations() {
}
protected static final View recycleView(View view) {
return Companion.a(view);
}
private final void updateWindowTraits() {
Activity activity = getActivity();
if (activity == null) {
this.shouldUpdateOnResume = true;
} else {
y.a.v(getScreen(), activity, tryGetContext());
}
}
@Override
public void addChildScreenContainer(l container) {
kotlin.jvm.internal.k.e(container, "container");
this.mChildScreenContainers.add(container);
}
public boolean canDispatchLifecycleEvent(b event) {
kotlin.jvm.internal.k.e(event, "event");
int i = d.a[event.ordinal()];
if (i == 1) {
return this.canDispatchWillAppear;
}
if (i == 2) {
return this.canDispatchAppear;
}
if (i != 3) {
if (i != 4) {
throw new vj.k();
}
if (!this.canDispatchAppear) {
return true;
}
} else if (!this.canDispatchWillAppear) {
return true;
}
return false;
}
public void dispatchHeaderBackButtonClickedEvent() {
ReactContext context = getScreen().getContext();
kotlin.jvm.internal.k.c(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
ReactContext reactContext = context;
int e = b1.e(reactContext);
com.facebook.react.uimanager.events.d c2 = b1.c(reactContext, getScreen().getId());
if (c2 != null) {
c2.c(new ej.b(e, getScreen().getId()));
}
}
public void dispatchLifecycleEvent(b event, o fragmentWrapper) {
com.facebook.react.uimanager.events.c iVar;
kotlin.jvm.internal.k.e(event, "event");
kotlin.jvm.internal.k.e(fragmentWrapper, "fragmentWrapper");
Fragment fragment = fragmentWrapper.getFragment();
if (fragment instanceof ScreenStackFragment) {
ScreenStackFragment screenStackFragment = (ScreenStackFragment) fragment;
if (screenStackFragment.canDispatchLifecycleEvent(event)) {
j screen = screenStackFragment.getScreen();
fragmentWrapper.updateLastEventDispatched(event);
int f = b1.f(screen);
int i = d.a[event.ordinal()];
if (i == 1) {
iVar = new ej.i(f, screen.getId());
} else if (i == 2) {
iVar = new ej.e(f, screen.getId());
} else if (i == 3) {
iVar = new ej.j(f, screen.getId());
} else {
if (i != 4) {
throw new vj.k();
}
iVar = new ej.f(f, screen.getId());
}
ReactContext context = getScreen().getContext();
kotlin.jvm.internal.k.c(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
com.facebook.react.uimanager.events.d c2 = b1.c(context, getScreen().getId());
if (c2 != null) {
c2.c(iVar);
}
fragmentWrapper.dispatchLifecycleEventInChildContainers(event);
}
}
}
@Override
public void dispatchLifecycleEventInChildContainers(b event) {
o fragmentWrapper;
kotlin.jvm.internal.k.e(event, "event");
List<l> list = this.mChildScreenContainers;
ArrayList arrayList = new ArrayList();
for (Object obj : list) {
if (((l) obj).getScreenCount() > 0) {
arrayList.add(obj);
}
}
Iterator it = arrayList.iterator();
while (it.hasNext()) {
j topScreen = ((l) it.next()).getTopScreen();
if (topScreen != null && (fragmentWrapper = topScreen.getFragmentWrapper()) != null) {
dispatchLifecycleEvent(event, fragmentWrapper);
}
}
}
public void dispatchTransitionProgressEvent(float f, boolean z) {
if (this instanceof ScreenStackFragment) {
if (this.mProgress == f) {
return;
}
float max = Math.max(BitmapDescriptorFactory.HUE_RED, Math.min(1.0f, f));
this.mProgress = max;
if (!(max == BitmapDescriptorFactory.HUE_RED)) {
r1 = (max != 1.0f ? 0 : 1) != 0 ? 2 : 3;
}
short s = (short) r1;
l container = getScreen().getContainer();
boolean goingForward = container instanceof q ? ((q) container).getGoingForward() : false;
ReactContext context = getScreen().getContext();
kotlin.jvm.internal.k.c(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
ReactContext reactContext = context;
com.facebook.react.uimanager.events.d c2 = b1.c(reactContext, getScreen().getId());
if (c2 != null) {
c2.c(new ej.h(b1.e(reactContext), getScreen().getId(), this.mProgress, z, goingForward, s));
}
}
}
@Override
public List<l> getChildScreenContainers() {
return this.mChildScreenContainers;
}
public n0.a getDefaultViewModelCreationExtras() {
return super/*androidx.lifecycle.e*/.getDefaultViewModelCreationExtras();
}
@Override
public Fragment getFragment() {
return this;
}
@Override
public j getScreen() {
j jVar = this.screen;
if (jVar != null) {
return jVar;
}
kotlin.jvm.internal.k.o("screen");
return null;
}
@Override
public void onContainerUpdate() {
updateWindowTraits();
}
public View onCreateView(LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle) {
kotlin.jvm.internal.k.e(inflater, "inflater");
getScreen().setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
Context context = getContext();
if (context == null) {
return null;
}
c cVar = new c(context);
cVar.addView(recycleView(getScreen()));
return cVar;
}
public void onDestroy() {
super.onDestroy();
l container = getScreen().getContainer();
if (container == null || !container.l(this)) {
ReactContext context = getScreen().getContext();
if (context instanceof ReactContext) {
int e = b1.e(context);
com.facebook.react.uimanager.events.d c2 = b1.c(context, getScreen().getId());
if (c2 != null) {
c2.c(new ej.g(e, getScreen().getId()));
}
}
}
this.mChildScreenContainers.clear();
}
public void onResume() {
super.onResume();
if (this.shouldUpdateOnResume) {
this.shouldUpdateOnResume = false;
y.a.v(getScreen(), tryGetActivity(), tryGetContext());
}
}
public void onViewAnimationEnd() {
dispatchViewAnimationEvent(true);
}
public void onViewAnimationStart() {
dispatchViewAnimationEvent(false);
}
@Override
public void removeChildScreenContainer(l container) {
kotlin.jvm.internal.k.e(container, "container");
this.mChildScreenContainers.remove(container);
}
public void setScreen(j jVar) {
kotlin.jvm.internal.k.e(jVar, "<set-?>");
this.screen = jVar;
}
@Override
public Activity tryGetActivity() {
Fragment fragment;
androidx.fragment.app.d activity;
androidx.fragment.app.d activity2 = getActivity();
if (activity2 != null) {
return activity2;
}
ReactContext context = getScreen().getContext();
if (context instanceof ReactContext) {
ReactContext reactContext = context;
if (reactContext.getCurrentActivity() != null) {
return reactContext.getCurrentActivity();
}
}
for (ViewParent container = getScreen().getContainer(); container != null; container = container.getParent()) {
if ((container instanceof j) && (fragment = ((j) container).getFragment()) != null && (activity = fragment.getActivity()) != null) {
return activity;
}
}
return null;
}
@Override
public ReactContext tryGetContext() {
if (getContext() instanceof ReactContext) {
ReactContext context = getContext();
kotlin.jvm.internal.k.c(context, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context;
}
if (getScreen().getContext() instanceof ReactContext) {
ReactContext context2 = getScreen().getContext();
kotlin.jvm.internal.k.c(context2, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context2;
}
for (ViewParent container = getScreen().getContainer(); container != null; container = container.getParent()) {
if (container instanceof j) {
j jVar = (j) container;
if (jVar.getContext() instanceof ReactContext) {
ReactContext context3 = jVar.getContext();
kotlin.jvm.internal.k.c(context3, "null cannot be cast to non-null type com.facebook.react.bridge.ReactContext");
return context3;
}
}
}
return null;
}
@Override
public void updateLastEventDispatched(b event) {
kotlin.jvm.internal.k.e(event, "event");
int i = d.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;
}
}
@SuppressLint({"ValidFragment"})
public ScreenFragment(j screenView) {
kotlin.jvm.internal.k.e(screenView, "screenView");
this.mChildScreenContainers = new ArrayList();
this.mProgress = -1.0f;
this.canDispatchWillAppear = true;
this.canDispatchAppear = true;
setScreen(screenView);
}
}