98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.transition;
 | |
| 
 | |
| import android.content.Context;
 | |
| import android.util.SparseArray;
 | |
| import android.view.LayoutInflater;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class Scene {
 | |
|     private Context mContext;
 | |
|     private Runnable mEnterAction;
 | |
|     private Runnable mExitAction;
 | |
|     private View mLayout;
 | |
|     private int mLayoutId;
 | |
|     private ViewGroup mSceneRoot;
 | |
| 
 | |
|     public ViewGroup getSceneRoot() {
 | |
|         return this.mSceneRoot;
 | |
|     }
 | |
| 
 | |
|     boolean isCreatedFromLayoutResource() {
 | |
|         return this.mLayoutId > 0;
 | |
|     }
 | |
| 
 | |
|     public void setEnterAction(Runnable runnable) {
 | |
|         this.mEnterAction = runnable;
 | |
|     }
 | |
| 
 | |
|     public void setExitAction(Runnable runnable) {
 | |
|         this.mExitAction = runnable;
 | |
|     }
 | |
| 
 | |
|     public static Scene getSceneForLayout(ViewGroup viewGroup, int i, Context context) {
 | |
|         SparseArray sparseArray = (SparseArray) viewGroup.getTag(R.id.transition_scene_layoutid_cache);
 | |
|         if (sparseArray == null) {
 | |
|             sparseArray = new SparseArray();
 | |
|             viewGroup.setTag(R.id.transition_scene_layoutid_cache, sparseArray);
 | |
|         }
 | |
|         Scene scene = (Scene) sparseArray.get(i);
 | |
|         if (scene != null) {
 | |
|             return scene;
 | |
|         }
 | |
|         Scene scene2 = new Scene(viewGroup, i, context);
 | |
|         sparseArray.put(i, scene2);
 | |
|         return scene2;
 | |
|     }
 | |
| 
 | |
|     public Scene(ViewGroup viewGroup) {
 | |
|         this.mLayoutId = -1;
 | |
|         this.mSceneRoot = viewGroup;
 | |
|     }
 | |
| 
 | |
|     private Scene(ViewGroup viewGroup, int i, Context context) {
 | |
|         this.mContext = context;
 | |
|         this.mSceneRoot = viewGroup;
 | |
|         this.mLayoutId = i;
 | |
|     }
 | |
| 
 | |
|     public Scene(ViewGroup viewGroup, View view) {
 | |
|         this.mLayoutId = -1;
 | |
|         this.mSceneRoot = viewGroup;
 | |
|         this.mLayout = view;
 | |
|     }
 | |
| 
 | |
|     public void exit() {
 | |
|         Runnable runnable;
 | |
|         if (getCurrentScene(this.mSceneRoot) != this || (runnable = this.mExitAction) == null) {
 | |
|             return;
 | |
|         }
 | |
|         runnable.run();
 | |
|     }
 | |
| 
 | |
|     public void enter() {
 | |
|         if (this.mLayoutId > 0 || this.mLayout != null) {
 | |
|             getSceneRoot().removeAllViews();
 | |
|             if (this.mLayoutId > 0) {
 | |
|                 LayoutInflater.from(this.mContext).inflate(this.mLayoutId, this.mSceneRoot);
 | |
|             } else {
 | |
|                 this.mSceneRoot.addView(this.mLayout);
 | |
|             }
 | |
|         }
 | |
|         Runnable runnable = this.mEnterAction;
 | |
|         if (runnable != null) {
 | |
|             runnable.run();
 | |
|         }
 | |
|         setCurrentScene(this.mSceneRoot, this);
 | |
|     }
 | |
| 
 | |
|     static void setCurrentScene(ViewGroup viewGroup, Scene scene) {
 | |
|         viewGroup.setTag(R.id.transition_current_scene, scene);
 | |
|     }
 | |
| 
 | |
|     public static Scene getCurrentScene(ViewGroup viewGroup) {
 | |
|         return (Scene) viewGroup.getTag(R.id.transition_current_scene);
 | |
|     }
 | |
| }
 |