526 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			526 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.fragment.app;
 | |
| 
 | |
| import android.util.Log;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import androidx.core.os.CancellationSignal;
 | |
| import androidx.core.view.ViewCompat;
 | |
| import androidx.fragment.R;
 | |
| import java.util.ArrayList;
 | |
| import java.util.HashSet;
 | |
| import java.util.Iterator;
 | |
| import java.util.List;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| abstract class SpecialEffectsController {
 | |
|     private final ViewGroup mContainer;
 | |
|     final ArrayList<Operation> mPendingOperations = new ArrayList<>();
 | |
|     final ArrayList<Operation> mRunningOperations = new ArrayList<>();
 | |
|     boolean mOperationDirectionIsPop = false;
 | |
|     boolean mIsContainerPostponed = false;
 | |
| 
 | |
|     abstract void executeOperations(List<Operation> list, boolean z);
 | |
| 
 | |
|     public ViewGroup getContainer() {
 | |
|         return this.mContainer;
 | |
|     }
 | |
| 
 | |
|     void updateOperationDirection(boolean z) {
 | |
|         this.mOperationDirectionIsPop = z;
 | |
|     }
 | |
| 
 | |
|     static SpecialEffectsController getOrCreateController(ViewGroup viewGroup, FragmentManager fragmentManager) {
 | |
|         return getOrCreateController(viewGroup, fragmentManager.getSpecialEffectsControllerFactory());
 | |
|     }
 | |
| 
 | |
|     static SpecialEffectsController getOrCreateController(ViewGroup viewGroup, SpecialEffectsControllerFactory specialEffectsControllerFactory) {
 | |
|         Object tag = viewGroup.getTag(R.id.special_effects_controller_view_tag);
 | |
|         if (tag instanceof SpecialEffectsController) {
 | |
|             return (SpecialEffectsController) tag;
 | |
|         }
 | |
|         SpecialEffectsController createController = specialEffectsControllerFactory.createController(viewGroup);
 | |
|         viewGroup.setTag(R.id.special_effects_controller_view_tag, createController);
 | |
|         return createController;
 | |
|     }
 | |
| 
 | |
|     SpecialEffectsController(ViewGroup viewGroup) {
 | |
|         this.mContainer = viewGroup;
 | |
|     }
 | |
| 
 | |
|     Operation.LifecycleImpact getAwaitingCompletionLifecycleImpact(FragmentStateManager fragmentStateManager) {
 | |
|         Operation findPendingOperation = findPendingOperation(fragmentStateManager.getFragment());
 | |
|         Operation.LifecycleImpact lifecycleImpact = findPendingOperation != null ? findPendingOperation.getLifecycleImpact() : null;
 | |
|         Operation findRunningOperation = findRunningOperation(fragmentStateManager.getFragment());
 | |
|         return (findRunningOperation == null || !(lifecycleImpact == null || lifecycleImpact == Operation.LifecycleImpact.NONE)) ? lifecycleImpact : findRunningOperation.getLifecycleImpact();
 | |
|     }
 | |
| 
 | |
|     private Operation findPendingOperation(Fragment fragment) {
 | |
|         Iterator<Operation> it = this.mPendingOperations.iterator();
 | |
|         while (it.hasNext()) {
 | |
|             Operation next = it.next();
 | |
|             if (next.getFragment().equals(fragment) && !next.isCanceled()) {
 | |
|                 return next;
 | |
|             }
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     private Operation findRunningOperation(Fragment fragment) {
 | |
|         Iterator<Operation> it = this.mRunningOperations.iterator();
 | |
|         while (it.hasNext()) {
 | |
|             Operation next = it.next();
 | |
|             if (next.getFragment().equals(fragment) && !next.isCanceled()) {
 | |
|                 return next;
 | |
|             }
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     void enqueueAdd(Operation.State state, FragmentStateManager fragmentStateManager) {
 | |
|         if (FragmentManager.isLoggingEnabled(2)) {
 | |
|             Log.v("FragmentManager", "SpecialEffectsController: Enqueuing add operation for fragment " + fragmentStateManager.getFragment());
 | |
|         }
 | |
|         enqueue(state, Operation.LifecycleImpact.ADDING, fragmentStateManager);
 | |
|     }
 | |
| 
 | |
|     void enqueueShow(FragmentStateManager fragmentStateManager) {
 | |
|         if (FragmentManager.isLoggingEnabled(2)) {
 | |
|             Log.v("FragmentManager", "SpecialEffectsController: Enqueuing show operation for fragment " + fragmentStateManager.getFragment());
 | |
|         }
 | |
|         enqueue(Operation.State.VISIBLE, Operation.LifecycleImpact.NONE, fragmentStateManager);
 | |
|     }
 | |
| 
 | |
|     void enqueueHide(FragmentStateManager fragmentStateManager) {
 | |
|         if (FragmentManager.isLoggingEnabled(2)) {
 | |
|             Log.v("FragmentManager", "SpecialEffectsController: Enqueuing hide operation for fragment " + fragmentStateManager.getFragment());
 | |
|         }
 | |
|         enqueue(Operation.State.GONE, Operation.LifecycleImpact.NONE, fragmentStateManager);
 | |
|     }
 | |
| 
 | |
|     void enqueueRemove(FragmentStateManager fragmentStateManager) {
 | |
|         if (FragmentManager.isLoggingEnabled(2)) {
 | |
|             Log.v("FragmentManager", "SpecialEffectsController: Enqueuing remove operation for fragment " + fragmentStateManager.getFragment());
 | |
|         }
 | |
|         enqueue(Operation.State.REMOVED, Operation.LifecycleImpact.REMOVING, fragmentStateManager);
 | |
|     }
 | |
| 
 | |
|     private void enqueue(Operation.State state, Operation.LifecycleImpact lifecycleImpact, FragmentStateManager fragmentStateManager) {
 | |
|         synchronized (this.mPendingOperations) {
 | |
|             CancellationSignal cancellationSignal = new CancellationSignal();
 | |
|             Operation findPendingOperation = findPendingOperation(fragmentStateManager.getFragment());
 | |
|             if (findPendingOperation != null) {
 | |
|                 findPendingOperation.mergeWith(state, lifecycleImpact);
 | |
|                 return;
 | |
|             }
 | |
|             final FragmentStateManagerOperation fragmentStateManagerOperation = new FragmentStateManagerOperation(state, lifecycleImpact, fragmentStateManager, cancellationSignal);
 | |
|             this.mPendingOperations.add(fragmentStateManagerOperation);
 | |
|             fragmentStateManagerOperation.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.SpecialEffectsController.1
 | |
|                 @Override // java.lang.Runnable
 | |
|                 public void run() {
 | |
|                     if (SpecialEffectsController.this.mPendingOperations.contains(fragmentStateManagerOperation)) {
 | |
|                         fragmentStateManagerOperation.getFinalState().applyState(fragmentStateManagerOperation.getFragment().mView);
 | |
|                     }
 | |
|                 }
 | |
|             });
 | |
|             fragmentStateManagerOperation.addCompletionListener(new Runnable() { // from class: androidx.fragment.app.SpecialEffectsController.2
 | |
|                 @Override // java.lang.Runnable
 | |
|                 public void run() {
 | |
|                     SpecialEffectsController.this.mPendingOperations.remove(fragmentStateManagerOperation);
 | |
|                     SpecialEffectsController.this.mRunningOperations.remove(fragmentStateManagerOperation);
 | |
|                 }
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     void markPostponedState() {
 | |
|         synchronized (this.mPendingOperations) {
 | |
|             updateFinalState();
 | |
|             this.mIsContainerPostponed = false;
 | |
|             int size = this.mPendingOperations.size() - 1;
 | |
|             while (true) {
 | |
|                 if (size < 0) {
 | |
|                     break;
 | |
|                 }
 | |
|                 Operation operation = this.mPendingOperations.get(size);
 | |
|                 Operation.State from = Operation.State.from(operation.getFragment().mView);
 | |
|                 if (operation.getFinalState() == Operation.State.VISIBLE && from != Operation.State.VISIBLE) {
 | |
|                     this.mIsContainerPostponed = operation.getFragment().isPostponed();
 | |
|                     break;
 | |
|                 }
 | |
|                 size--;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     void forcePostponedExecutePendingOperations() {
 | |
|         if (this.mIsContainerPostponed) {
 | |
|             this.mIsContainerPostponed = false;
 | |
|             executePendingOperations();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     void executePendingOperations() {
 | |
|         if (this.mIsContainerPostponed) {
 | |
|             return;
 | |
|         }
 | |
|         if (!ViewCompat.isAttachedToWindow(this.mContainer)) {
 | |
|             forceCompleteAllOperations();
 | |
|             this.mOperationDirectionIsPop = false;
 | |
|             return;
 | |
|         }
 | |
|         synchronized (this.mPendingOperations) {
 | |
|             if (!this.mPendingOperations.isEmpty()) {
 | |
|                 ArrayList arrayList = new ArrayList(this.mRunningOperations);
 | |
|                 this.mRunningOperations.clear();
 | |
|                 Iterator it = arrayList.iterator();
 | |
|                 while (it.hasNext()) {
 | |
|                     Operation operation = (Operation) it.next();
 | |
|                     if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                         Log.v("FragmentManager", "SpecialEffectsController: Cancelling operation " + operation);
 | |
|                     }
 | |
|                     operation.cancel();
 | |
|                     if (!operation.isComplete()) {
 | |
|                         this.mRunningOperations.add(operation);
 | |
|                     }
 | |
|                 }
 | |
|                 updateFinalState();
 | |
|                 ArrayList arrayList2 = new ArrayList(this.mPendingOperations);
 | |
|                 this.mPendingOperations.clear();
 | |
|                 this.mRunningOperations.addAll(arrayList2);
 | |
|                 Iterator it2 = arrayList2.iterator();
 | |
|                 while (it2.hasNext()) {
 | |
|                     ((Operation) it2.next()).onStart();
 | |
|                 }
 | |
|                 executeOperations(arrayList2, this.mOperationDirectionIsPop);
 | |
|                 this.mOperationDirectionIsPop = false;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     void forceCompleteAllOperations() {
 | |
|         String str;
 | |
|         String str2;
 | |
|         boolean isAttachedToWindow = ViewCompat.isAttachedToWindow(this.mContainer);
 | |
|         synchronized (this.mPendingOperations) {
 | |
|             updateFinalState();
 | |
|             Iterator<Operation> it = this.mPendingOperations.iterator();
 | |
|             while (it.hasNext()) {
 | |
|                 it.next().onStart();
 | |
|             }
 | |
|             Iterator it2 = new ArrayList(this.mRunningOperations).iterator();
 | |
|             while (it2.hasNext()) {
 | |
|                 Operation operation = (Operation) it2.next();
 | |
|                 if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                     StringBuilder sb = new StringBuilder();
 | |
|                     sb.append("SpecialEffectsController: ");
 | |
|                     if (isAttachedToWindow) {
 | |
|                         str2 = "";
 | |
|                     } else {
 | |
|                         str2 = "Container " + this.mContainer + " is not attached to window. ";
 | |
|                     }
 | |
|                     sb.append(str2);
 | |
|                     sb.append("Cancelling running operation ");
 | |
|                     sb.append(operation);
 | |
|                     Log.v("FragmentManager", sb.toString());
 | |
|                 }
 | |
|                 operation.cancel();
 | |
|             }
 | |
|             Iterator it3 = new ArrayList(this.mPendingOperations).iterator();
 | |
|             while (it3.hasNext()) {
 | |
|                 Operation operation2 = (Operation) it3.next();
 | |
|                 if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                     StringBuilder sb2 = new StringBuilder();
 | |
|                     sb2.append("SpecialEffectsController: ");
 | |
|                     if (isAttachedToWindow) {
 | |
|                         str = "";
 | |
|                     } else {
 | |
|                         str = "Container " + this.mContainer + " is not attached to window. ";
 | |
|                     }
 | |
|                     sb2.append(str);
 | |
|                     sb2.append("Cancelling pending operation ");
 | |
|                     sb2.append(operation2);
 | |
|                     Log.v("FragmentManager", sb2.toString());
 | |
|                 }
 | |
|                 operation2.cancel();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private void updateFinalState() {
 | |
|         Iterator<Operation> it = this.mPendingOperations.iterator();
 | |
|         while (it.hasNext()) {
 | |
|             Operation next = it.next();
 | |
|             if (next.getLifecycleImpact() == Operation.LifecycleImpact.ADDING) {
 | |
|                 next.mergeWith(Operation.State.from(next.getFragment().requireView().getVisibility()), Operation.LifecycleImpact.NONE);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class Operation {
 | |
|         private State mFinalState;
 | |
|         private final Fragment mFragment;
 | |
|         private LifecycleImpact mLifecycleImpact;
 | |
|         private final List<Runnable> mCompletionListeners = new ArrayList();
 | |
|         private final HashSet<CancellationSignal> mSpecialEffectsSignals = new HashSet<>();
 | |
|         private boolean mIsCanceled = false;
 | |
|         private boolean mIsComplete = false;
 | |
| 
 | |
|         enum LifecycleImpact {
 | |
|             NONE,
 | |
|             ADDING,
 | |
|             REMOVING
 | |
|         }
 | |
| 
 | |
|         public State getFinalState() {
 | |
|             return this.mFinalState;
 | |
|         }
 | |
| 
 | |
|         public final Fragment getFragment() {
 | |
|             return this.mFragment;
 | |
|         }
 | |
| 
 | |
|         LifecycleImpact getLifecycleImpact() {
 | |
|             return this.mLifecycleImpact;
 | |
|         }
 | |
| 
 | |
|         final boolean isCanceled() {
 | |
|             return this.mIsCanceled;
 | |
|         }
 | |
| 
 | |
|         final boolean isComplete() {
 | |
|             return this.mIsComplete;
 | |
|         }
 | |
| 
 | |
|         void onStart() {
 | |
|         }
 | |
| 
 | |
|         enum State {
 | |
|             REMOVED,
 | |
|             VISIBLE,
 | |
|             GONE,
 | |
|             INVISIBLE;
 | |
| 
 | |
|             static State from(View view) {
 | |
|                 return (view.getAlpha() == 0.0f && view.getVisibility() == 0) ? INVISIBLE : from(view.getVisibility());
 | |
|             }
 | |
| 
 | |
|             static State from(int i) {
 | |
|                 if (i == 0) {
 | |
|                     return VISIBLE;
 | |
|                 }
 | |
|                 if (i == 4) {
 | |
|                     return INVISIBLE;
 | |
|                 }
 | |
|                 if (i == 8) {
 | |
|                     return GONE;
 | |
|                 }
 | |
|                 throw new IllegalArgumentException("Unknown visibility " + i);
 | |
|             }
 | |
| 
 | |
|             void applyState(View view) {
 | |
|                 int i = AnonymousClass3.$SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[ordinal()];
 | |
|                 if (i == 1) {
 | |
|                     ViewGroup viewGroup = (ViewGroup) view.getParent();
 | |
|                     if (viewGroup != null) {
 | |
|                         if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                             Log.v("FragmentManager", "SpecialEffectsController: Removing view " + view + " from container " + viewGroup);
 | |
|                         }
 | |
|                         viewGroup.removeView(view);
 | |
|                         return;
 | |
|                     }
 | |
|                     return;
 | |
|                 }
 | |
|                 if (i == 2) {
 | |
|                     if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                         Log.v("FragmentManager", "SpecialEffectsController: Setting view " + view + " to VISIBLE");
 | |
|                     }
 | |
|                     view.setVisibility(0);
 | |
|                     return;
 | |
|                 }
 | |
|                 if (i == 3) {
 | |
|                     if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                         Log.v("FragmentManager", "SpecialEffectsController: Setting view " + view + " to GONE");
 | |
|                     }
 | |
|                     view.setVisibility(8);
 | |
|                     return;
 | |
|                 }
 | |
|                 if (i != 4) {
 | |
|                     return;
 | |
|                 }
 | |
|                 if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                     Log.v("FragmentManager", "SpecialEffectsController: Setting view " + view + " to INVISIBLE");
 | |
|                 }
 | |
|                 view.setVisibility(4);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         Operation(State state, LifecycleImpact lifecycleImpact, Fragment fragment, CancellationSignal cancellationSignal) {
 | |
|             this.mFinalState = state;
 | |
|             this.mLifecycleImpact = lifecycleImpact;
 | |
|             this.mFragment = fragment;
 | |
|             cancellationSignal.setOnCancelListener(new CancellationSignal.OnCancelListener() { // from class: androidx.fragment.app.SpecialEffectsController.Operation.1
 | |
|                 @Override // androidx.core.os.CancellationSignal.OnCancelListener
 | |
|                 public void onCancel() {
 | |
|                     Operation.this.cancel();
 | |
|                 }
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         public String toString() {
 | |
|             return "Operation {" + Integer.toHexString(System.identityHashCode(this)) + "} {mFinalState = " + this.mFinalState + "} {mLifecycleImpact = " + this.mLifecycleImpact + "} {mFragment = " + this.mFragment + "}";
 | |
|         }
 | |
| 
 | |
|         final void cancel() {
 | |
|             if (isCanceled()) {
 | |
|                 return;
 | |
|             }
 | |
|             this.mIsCanceled = true;
 | |
|             if (this.mSpecialEffectsSignals.isEmpty()) {
 | |
|                 complete();
 | |
|                 return;
 | |
|             }
 | |
|             Iterator it = new ArrayList(this.mSpecialEffectsSignals).iterator();
 | |
|             while (it.hasNext()) {
 | |
|                 ((CancellationSignal) it.next()).cancel();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         final void mergeWith(State state, LifecycleImpact lifecycleImpact) {
 | |
|             int i = AnonymousClass3.$SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$LifecycleImpact[lifecycleImpact.ordinal()];
 | |
|             if (i == 1) {
 | |
|                 if (this.mFinalState == State.REMOVED) {
 | |
|                     if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                         Log.v("FragmentManager", "SpecialEffectsController: For fragment " + this.mFragment + " mFinalState = REMOVED -> VISIBLE. mLifecycleImpact = " + this.mLifecycleImpact + " to ADDING.");
 | |
|                     }
 | |
|                     this.mFinalState = State.VISIBLE;
 | |
|                     this.mLifecycleImpact = LifecycleImpact.ADDING;
 | |
|                     return;
 | |
|                 }
 | |
|                 return;
 | |
|             }
 | |
|             if (i == 2) {
 | |
|                 if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                     Log.v("FragmentManager", "SpecialEffectsController: For fragment " + this.mFragment + " mFinalState = " + this.mFinalState + " -> REMOVED. mLifecycleImpact  = " + this.mLifecycleImpact + " to REMOVING.");
 | |
|                 }
 | |
|                 this.mFinalState = State.REMOVED;
 | |
|                 this.mLifecycleImpact = LifecycleImpact.REMOVING;
 | |
|                 return;
 | |
|             }
 | |
|             if (i == 3 && this.mFinalState != State.REMOVED) {
 | |
|                 if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                     Log.v("FragmentManager", "SpecialEffectsController: For fragment " + this.mFragment + " mFinalState = " + this.mFinalState + " -> " + state + ". ");
 | |
|                 }
 | |
|                 this.mFinalState = state;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         final void addCompletionListener(Runnable runnable) {
 | |
|             this.mCompletionListeners.add(runnable);
 | |
|         }
 | |
| 
 | |
|         public final void markStartedSpecialEffect(CancellationSignal cancellationSignal) {
 | |
|             onStart();
 | |
|             this.mSpecialEffectsSignals.add(cancellationSignal);
 | |
|         }
 | |
| 
 | |
|         public final void completeSpecialEffect(CancellationSignal cancellationSignal) {
 | |
|             if (this.mSpecialEffectsSignals.remove(cancellationSignal) && this.mSpecialEffectsSignals.isEmpty()) {
 | |
|                 complete();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public void complete() {
 | |
|             if (this.mIsComplete) {
 | |
|                 return;
 | |
|             }
 | |
|             if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                 Log.v("FragmentManager", "SpecialEffectsController: " + this + " has called complete.");
 | |
|             }
 | |
|             this.mIsComplete = true;
 | |
|             Iterator<Runnable> it = this.mCompletionListeners.iterator();
 | |
|             while (it.hasNext()) {
 | |
|                 it.next().run();
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /* renamed from: androidx.fragment.app.SpecialEffectsController$3, reason: invalid class name */
 | |
|     static /* synthetic */ class AnonymousClass3 {
 | |
|         static final /* synthetic */ int[] $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$LifecycleImpact;
 | |
|         static final /* synthetic */ int[] $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State;
 | |
| 
 | |
|         static {
 | |
|             int[] iArr = new int[Operation.LifecycleImpact.values().length];
 | |
|             $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$LifecycleImpact = iArr;
 | |
|             try {
 | |
|                 iArr[Operation.LifecycleImpact.ADDING.ordinal()] = 1;
 | |
|             } catch (NoSuchFieldError unused) {
 | |
|             }
 | |
|             try {
 | |
|                 $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$LifecycleImpact[Operation.LifecycleImpact.REMOVING.ordinal()] = 2;
 | |
|             } catch (NoSuchFieldError unused2) {
 | |
|             }
 | |
|             try {
 | |
|                 $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$LifecycleImpact[Operation.LifecycleImpact.NONE.ordinal()] = 3;
 | |
|             } catch (NoSuchFieldError unused3) {
 | |
|             }
 | |
|             int[] iArr2 = new int[Operation.State.values().length];
 | |
|             $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State = iArr2;
 | |
|             try {
 | |
|                 iArr2[Operation.State.REMOVED.ordinal()] = 1;
 | |
|             } catch (NoSuchFieldError unused4) {
 | |
|             }
 | |
|             try {
 | |
|                 $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[Operation.State.VISIBLE.ordinal()] = 2;
 | |
|             } catch (NoSuchFieldError unused5) {
 | |
|             }
 | |
|             try {
 | |
|                 $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[Operation.State.GONE.ordinal()] = 3;
 | |
|             } catch (NoSuchFieldError unused6) {
 | |
|             }
 | |
|             try {
 | |
|                 $SwitchMap$androidx$fragment$app$SpecialEffectsController$Operation$State[Operation.State.INVISIBLE.ordinal()] = 4;
 | |
|             } catch (NoSuchFieldError unused7) {
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     private static class FragmentStateManagerOperation extends Operation {
 | |
|         private final FragmentStateManager mFragmentStateManager;
 | |
| 
 | |
|         FragmentStateManagerOperation(Operation.State state, Operation.LifecycleImpact lifecycleImpact, FragmentStateManager fragmentStateManager, CancellationSignal cancellationSignal) {
 | |
|             super(state, lifecycleImpact, fragmentStateManager.getFragment(), cancellationSignal);
 | |
|             this.mFragmentStateManager = fragmentStateManager;
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.fragment.app.SpecialEffectsController.Operation
 | |
|         void onStart() {
 | |
|             if (getLifecycleImpact() == Operation.LifecycleImpact.ADDING) {
 | |
|                 Fragment fragment = this.mFragmentStateManager.getFragment();
 | |
|                 View findFocus = fragment.mView.findFocus();
 | |
|                 if (findFocus != null) {
 | |
|                     fragment.setFocusedView(findFocus);
 | |
|                     if (FragmentManager.isLoggingEnabled(2)) {
 | |
|                         Log.v("FragmentManager", "requestFocus: Saved focused view " + findFocus + " for Fragment " + fragment);
 | |
|                     }
 | |
|                 }
 | |
|                 View requireView = getFragment().requireView();
 | |
|                 if (requireView.getParent() == null) {
 | |
|                     this.mFragmentStateManager.addViewToContainer();
 | |
|                     requireView.setAlpha(0.0f);
 | |
|                 }
 | |
|                 if (requireView.getAlpha() == 0.0f && requireView.getVisibility() == 0) {
 | |
|                     requireView.setVisibility(4);
 | |
|                 }
 | |
|                 requireView.setAlpha(fragment.getPostOnViewCreatedAlpha());
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.fragment.app.SpecialEffectsController.Operation
 | |
|         public void complete() {
 | |
|             super.complete();
 | |
|             this.mFragmentStateManager.moveToExpectedState();
 | |
|         }
 | |
|     }
 | |
| }
 |