ADD week 5
This commit is contained in:
		
							
								
								
									
										97
									
								
								02-Easy5/E5/sources/androidx/transition/Scene.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								02-Easy5/E5/sources/androidx/transition/Scene.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,97 @@ | ||||
| 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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user