ADD week 5
This commit is contained in:
		
							
								
								
									
										270
									
								
								02-Easy5/E5/sources/androidx/coordinatorlayout/R.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										270
									
								
								02-Easy5/E5/sources/androidx/coordinatorlayout/R.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,270 @@ | ||||
| package androidx.coordinatorlayout; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class R { | ||||
|  | ||||
|     public static final class attr { | ||||
|         public static final int alpha = 0x7f03002e; | ||||
|         public static final int coordinatorLayoutStyle = 0x7f03014a; | ||||
|         public static final int font = 0x7f0301fb; | ||||
|         public static final int fontProviderAuthority = 0x7f0301fd; | ||||
|         public static final int fontProviderCerts = 0x7f0301fe; | ||||
|         public static final int fontProviderFetchStrategy = 0x7f0301ff; | ||||
|         public static final int fontProviderFetchTimeout = 0x7f030200; | ||||
|         public static final int fontProviderPackage = 0x7f030201; | ||||
|         public static final int fontProviderQuery = 0x7f030202; | ||||
|         public static final int fontStyle = 0x7f030204; | ||||
|         public static final int fontVariationSettings = 0x7f030205; | ||||
|         public static final int fontWeight = 0x7f030206; | ||||
|         public static final int keylines = 0x7f030262; | ||||
|         public static final int layout_anchor = 0x7f03026e; | ||||
|         public static final int layout_anchorGravity = 0x7f03026f; | ||||
|         public static final int layout_behavior = 0x7f030270; | ||||
|         public static final int layout_dodgeInsetEdges = 0x7f0302a1; | ||||
|         public static final int layout_insetEdge = 0x7f0302ab; | ||||
|         public static final int layout_keyline = 0x7f0302ac; | ||||
|         public static final int statusBarBackground = 0x7f0303f1; | ||||
|         public static final int ttcIndex = 0x7f0304b6; | ||||
|  | ||||
|         private attr() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class color { | ||||
|         public static final int notification_action_color_filter = 0x7f0502e9; | ||||
|         public static final int notification_icon_bg_color = 0x7f0502ea; | ||||
|         public static final int ripple_material_light = 0x7f0502f7; | ||||
|         public static final int secondary_text_default_material_light = 0x7f0502f9; | ||||
|  | ||||
|         private color() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class dimen { | ||||
|         public static final int compat_button_inset_horizontal_material = 0x7f060058; | ||||
|         public static final int compat_button_inset_vertical_material = 0x7f060059; | ||||
|         public static final int compat_button_padding_horizontal_material = 0x7f06005a; | ||||
|         public static final int compat_button_padding_vertical_material = 0x7f06005b; | ||||
|         public static final int compat_control_corner_material = 0x7f06005c; | ||||
|         public static final int compat_notification_large_icon_max_height = 0x7f06005d; | ||||
|         public static final int compat_notification_large_icon_max_width = 0x7f06005e; | ||||
|         public static final int notification_action_icon_size = 0x7f060307; | ||||
|         public static final int notification_action_text_size = 0x7f060308; | ||||
|         public static final int notification_big_circle_margin = 0x7f060309; | ||||
|         public static final int notification_content_margin_start = 0x7f06030a; | ||||
|         public static final int notification_large_icon_height = 0x7f06030b; | ||||
|         public static final int notification_large_icon_width = 0x7f06030c; | ||||
|         public static final int notification_main_column_padding_top = 0x7f06030d; | ||||
|         public static final int notification_media_narrow_margin = 0x7f06030e; | ||||
|         public static final int notification_right_icon_size = 0x7f06030f; | ||||
|         public static final int notification_right_side_padding_top = 0x7f060310; | ||||
|         public static final int notification_small_icon_background_padding = 0x7f060311; | ||||
|         public static final int notification_small_icon_size_as_large = 0x7f060312; | ||||
|         public static final int notification_subtext_size = 0x7f060313; | ||||
|         public static final int notification_top_pad = 0x7f060314; | ||||
|         public static final int notification_top_pad_large_text = 0x7f060315; | ||||
|  | ||||
|         private dimen() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class drawable { | ||||
|         public static final int notification_action_background = 0x7f0700d0; | ||||
|         public static final int notification_bg = 0x7f0700d1; | ||||
|         public static final int notification_bg_low = 0x7f0700d2; | ||||
|         public static final int notification_bg_low_normal = 0x7f0700d3; | ||||
|         public static final int notification_bg_low_pressed = 0x7f0700d4; | ||||
|         public static final int notification_bg_normal = 0x7f0700d5; | ||||
|         public static final int notification_bg_normal_pressed = 0x7f0700d6; | ||||
|         public static final int notification_icon_background = 0x7f0700d7; | ||||
|         public static final int notification_template_icon_bg = 0x7f0700d8; | ||||
|         public static final int notification_template_icon_low_bg = 0x7f0700d9; | ||||
|         public static final int notification_tile_bg = 0x7f0700da; | ||||
|         public static final int notify_panel_notification_icon_bg = 0x7f0700db; | ||||
|  | ||||
|         private drawable() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class id { | ||||
|         public static final int accessibility_action_clickable_span = 0x7f08000f; | ||||
|         public static final int accessibility_custom_action_0 = 0x7f080010; | ||||
|         public static final int accessibility_custom_action_1 = 0x7f080011; | ||||
|         public static final int accessibility_custom_action_10 = 0x7f080012; | ||||
|         public static final int accessibility_custom_action_11 = 0x7f080013; | ||||
|         public static final int accessibility_custom_action_12 = 0x7f080014; | ||||
|         public static final int accessibility_custom_action_13 = 0x7f080015; | ||||
|         public static final int accessibility_custom_action_14 = 0x7f080016; | ||||
|         public static final int accessibility_custom_action_15 = 0x7f080017; | ||||
|         public static final int accessibility_custom_action_16 = 0x7f080018; | ||||
|         public static final int accessibility_custom_action_17 = 0x7f080019; | ||||
|         public static final int accessibility_custom_action_18 = 0x7f08001a; | ||||
|         public static final int accessibility_custom_action_19 = 0x7f08001b; | ||||
|         public static final int accessibility_custom_action_2 = 0x7f08001c; | ||||
|         public static final int accessibility_custom_action_20 = 0x7f08001d; | ||||
|         public static final int accessibility_custom_action_21 = 0x7f08001e; | ||||
|         public static final int accessibility_custom_action_22 = 0x7f08001f; | ||||
|         public static final int accessibility_custom_action_23 = 0x7f080020; | ||||
|         public static final int accessibility_custom_action_24 = 0x7f080021; | ||||
|         public static final int accessibility_custom_action_25 = 0x7f080022; | ||||
|         public static final int accessibility_custom_action_26 = 0x7f080023; | ||||
|         public static final int accessibility_custom_action_27 = 0x7f080024; | ||||
|         public static final int accessibility_custom_action_28 = 0x7f080025; | ||||
|         public static final int accessibility_custom_action_29 = 0x7f080026; | ||||
|         public static final int accessibility_custom_action_3 = 0x7f080027; | ||||
|         public static final int accessibility_custom_action_30 = 0x7f080028; | ||||
|         public static final int accessibility_custom_action_31 = 0x7f080029; | ||||
|         public static final int accessibility_custom_action_4 = 0x7f08002a; | ||||
|         public static final int accessibility_custom_action_5 = 0x7f08002b; | ||||
|         public static final int accessibility_custom_action_6 = 0x7f08002c; | ||||
|         public static final int accessibility_custom_action_7 = 0x7f08002d; | ||||
|         public static final int accessibility_custom_action_8 = 0x7f08002e; | ||||
|         public static final int accessibility_custom_action_9 = 0x7f08002f; | ||||
|         public static final int action_container = 0x7f08003a; | ||||
|         public static final int action_divider = 0x7f08003c; | ||||
|         public static final int action_image = 0x7f08003d; | ||||
|         public static final int action_text = 0x7f080043; | ||||
|         public static final int actions = 0x7f080044; | ||||
|         public static final int async = 0x7f080052; | ||||
|         public static final int blocking = 0x7f08005c; | ||||
|         public static final int bottom = 0x7f08005d; | ||||
|         public static final int chronometer = 0x7f080071; | ||||
|         public static final int dialog_button = 0x7f080095; | ||||
|         public static final int end = 0x7f0800ae; | ||||
|         public static final int forever = 0x7f0800c2; | ||||
|         public static final int icon = 0x7f0800d4; | ||||
|         public static final int icon_group = 0x7f0800d5; | ||||
|         public static final int info = 0x7f0800dd; | ||||
|         public static final int italic = 0x7f0800e0; | ||||
|         public static final int left = 0x7f0800e6; | ||||
|         public static final int line1 = 0x7f0800e9; | ||||
|         public static final int line3 = 0x7f0800ea; | ||||
|         public static final int none = 0x7f080138; | ||||
|         public static final int normal = 0x7f080139; | ||||
|         public static final int notification_background = 0x7f08013b; | ||||
|         public static final int notification_main_column = 0x7f08013c; | ||||
|         public static final int notification_main_column_container = 0x7f08013d; | ||||
|         public static final int right = 0x7f080169; | ||||
|         public static final int right_icon = 0x7f08016b; | ||||
|         public static final int right_side = 0x7f08016c; | ||||
|         public static final int start = 0x7f0801a1; | ||||
|         public static final int tag_accessibility_actions = 0x7f0801ad; | ||||
|         public static final int tag_accessibility_clickable_spans = 0x7f0801ae; | ||||
|         public static final int tag_accessibility_heading = 0x7f0801af; | ||||
|         public static final int tag_accessibility_pane_title = 0x7f0801b0; | ||||
|         public static final int tag_screen_reader_focusable = 0x7f0801b4; | ||||
|         public static final int tag_transition_group = 0x7f0801b6; | ||||
|         public static final int tag_unhandled_key_event_manager = 0x7f0801b7; | ||||
|         public static final int tag_unhandled_key_listeners = 0x7f0801b8; | ||||
|         public static final int text = 0x7f0801ba; | ||||
|         public static final int text2 = 0x7f0801bb; | ||||
|         public static final int time = 0x7f0801ca; | ||||
|         public static final int title = 0x7f0801cb; | ||||
|         public static final int top = 0x7f0801cf; | ||||
|  | ||||
|         private id() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class integer { | ||||
|         public static final int status_bar_notification_info_maxnum = 0x7f090043; | ||||
|  | ||||
|         private integer() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class layout { | ||||
|         public static final int custom_dialog = 0x7f0b001d; | ||||
|         public static final int notification_action = 0x7f0b0060; | ||||
|         public static final int notification_action_tombstone = 0x7f0b0061; | ||||
|         public static final int notification_template_custom_big = 0x7f0b0062; | ||||
|         public static final int notification_template_icon_group = 0x7f0b0063; | ||||
|         public static final int notification_template_part_chronometer = 0x7f0b0064; | ||||
|         public static final int notification_template_part_time = 0x7f0b0065; | ||||
|  | ||||
|         private layout() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class string { | ||||
|         public static final int status_bar_notification_info_overflow = 0x7f0f00a8; | ||||
|  | ||||
|         private string() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class style { | ||||
|         public static final int TextAppearance_Compat_Notification = 0x7f1001c3; | ||||
|         public static final int TextAppearance_Compat_Notification_Info = 0x7f1001c4; | ||||
|         public static final int TextAppearance_Compat_Notification_Line2 = 0x7f1001c5; | ||||
|         public static final int TextAppearance_Compat_Notification_Time = 0x7f1001c6; | ||||
|         public static final int TextAppearance_Compat_Notification_Title = 0x7f1001c7; | ||||
|         public static final int Widget_Compat_NotificationActionContainer = 0x7f10032d; | ||||
|         public static final int Widget_Compat_NotificationActionText = 0x7f10032e; | ||||
|         public static final int Widget_Support_CoordinatorLayout = 0x7f10045c; | ||||
|  | ||||
|         private style() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static final class styleable { | ||||
|         public static final int ColorStateListItem_alpha = 0x00000003; | ||||
|         public static final int ColorStateListItem_android_alpha = 0x00000001; | ||||
|         public static final int ColorStateListItem_android_color = 0x00000000; | ||||
|         public static final int ColorStateListItem_android_lStar = 0x00000002; | ||||
|         public static final int ColorStateListItem_lStar = 0x00000004; | ||||
|         public static final int CoordinatorLayout_Layout_android_layout_gravity = 0x00000000; | ||||
|         public static final int CoordinatorLayout_Layout_layout_anchor = 0x00000001; | ||||
|         public static final int CoordinatorLayout_Layout_layout_anchorGravity = 0x00000002; | ||||
|         public static final int CoordinatorLayout_Layout_layout_behavior = 0x00000003; | ||||
|         public static final int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 0x00000004; | ||||
|         public static final int CoordinatorLayout_Layout_layout_insetEdge = 0x00000005; | ||||
|         public static final int CoordinatorLayout_Layout_layout_keyline = 0x00000006; | ||||
|         public static final int CoordinatorLayout_keylines = 0x00000000; | ||||
|         public static final int CoordinatorLayout_statusBarBackground = 0x00000001; | ||||
|         public static final int FontFamilyFont_android_font = 0x00000000; | ||||
|         public static final int FontFamilyFont_android_fontStyle = 0x00000002; | ||||
|         public static final int FontFamilyFont_android_fontVariationSettings = 0x00000004; | ||||
|         public static final int FontFamilyFont_android_fontWeight = 0x00000001; | ||||
|         public static final int FontFamilyFont_android_ttcIndex = 0x00000003; | ||||
|         public static final int FontFamilyFont_font = 0x00000005; | ||||
|         public static final int FontFamilyFont_fontStyle = 0x00000006; | ||||
|         public static final int FontFamilyFont_fontVariationSettings = 0x00000007; | ||||
|         public static final int FontFamilyFont_fontWeight = 0x00000008; | ||||
|         public static final int FontFamilyFont_ttcIndex = 0x00000009; | ||||
|         public static final int FontFamily_fontProviderAuthority = 0x00000000; | ||||
|         public static final int FontFamily_fontProviderCerts = 0x00000001; | ||||
|         public static final int FontFamily_fontProviderFetchStrategy = 0x00000002; | ||||
|         public static final int FontFamily_fontProviderFetchTimeout = 0x00000003; | ||||
|         public static final int FontFamily_fontProviderPackage = 0x00000004; | ||||
|         public static final int FontFamily_fontProviderQuery = 0x00000005; | ||||
|         public static final int FontFamily_fontProviderSystemFontFamily = 0x00000006; | ||||
|         public static final int GradientColorItem_android_color = 0x00000000; | ||||
|         public static final int GradientColorItem_android_offset = 0x00000001; | ||||
|         public static final int GradientColor_android_centerColor = 0x00000007; | ||||
|         public static final int GradientColor_android_centerX = 0x00000003; | ||||
|         public static final int GradientColor_android_centerY = 0x00000004; | ||||
|         public static final int GradientColor_android_endColor = 0x00000001; | ||||
|         public static final int GradientColor_android_endX = 0x0000000a; | ||||
|         public static final int GradientColor_android_endY = 0x0000000b; | ||||
|         public static final int GradientColor_android_gradientRadius = 0x00000005; | ||||
|         public static final int GradientColor_android_startColor = 0x00000000; | ||||
|         public static final int GradientColor_android_startX = 0x00000008; | ||||
|         public static final int GradientColor_android_startY = 0x00000009; | ||||
|         public static final int GradientColor_android_tileMode = 0x00000006; | ||||
|         public static final int GradientColor_android_type = 0x00000002; | ||||
|         public static final int[] ColorStateListItem = {android.R.attr.color, android.R.attr.alpha, android.R.attr.lStar, ch.mod_p.sre24.e5.R.attr.alpha, ch.mod_p.sre24.e5.R.attr.lStar}; | ||||
|         public static final int[] CoordinatorLayout = {ch.mod_p.sre24.e5.R.attr.keylines, ch.mod_p.sre24.e5.R.attr.statusBarBackground}; | ||||
|         public static final int[] CoordinatorLayout_Layout = {android.R.attr.layout_gravity, ch.mod_p.sre24.e5.R.attr.layout_anchor, ch.mod_p.sre24.e5.R.attr.layout_anchorGravity, ch.mod_p.sre24.e5.R.attr.layout_behavior, ch.mod_p.sre24.e5.R.attr.layout_dodgeInsetEdges, ch.mod_p.sre24.e5.R.attr.layout_insetEdge, ch.mod_p.sre24.e5.R.attr.layout_keyline}; | ||||
|         public static final int[] FontFamily = {ch.mod_p.sre24.e5.R.attr.fontProviderAuthority, ch.mod_p.sre24.e5.R.attr.fontProviderCerts, ch.mod_p.sre24.e5.R.attr.fontProviderFetchStrategy, ch.mod_p.sre24.e5.R.attr.fontProviderFetchTimeout, ch.mod_p.sre24.e5.R.attr.fontProviderPackage, ch.mod_p.sre24.e5.R.attr.fontProviderQuery, ch.mod_p.sre24.e5.R.attr.fontProviderSystemFontFamily}; | ||||
|         public static final int[] FontFamilyFont = {android.R.attr.font, android.R.attr.fontWeight, android.R.attr.fontStyle, android.R.attr.ttcIndex, android.R.attr.fontVariationSettings, ch.mod_p.sre24.e5.R.attr.font, ch.mod_p.sre24.e5.R.attr.fontStyle, ch.mod_p.sre24.e5.R.attr.fontVariationSettings, ch.mod_p.sre24.e5.R.attr.fontWeight, ch.mod_p.sre24.e5.R.attr.ttcIndex}; | ||||
|         public static final int[] GradientColor = {android.R.attr.startColor, android.R.attr.endColor, android.R.attr.type, android.R.attr.centerX, android.R.attr.centerY, android.R.attr.gradientRadius, android.R.attr.tileMode, android.R.attr.centerColor, android.R.attr.startX, android.R.attr.startY, android.R.attr.endX, android.R.attr.endY}; | ||||
|         public static final int[] GradientColorItem = {android.R.attr.color, android.R.attr.offset}; | ||||
|  | ||||
|         private styleable() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private R() { | ||||
|     } | ||||
| } | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,122 @@ | ||||
| package androidx.coordinatorlayout.widget; | ||||
|  | ||||
| import androidx.collection.SimpleArrayMap; | ||||
| import androidx.core.util.Pools; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class DirectedAcyclicGraph<T> { | ||||
|     private final Pools.Pool<ArrayList<T>> mListPool = new Pools.SimplePool(10); | ||||
|     private final SimpleArrayMap<T, ArrayList<T>> mGraph = new SimpleArrayMap<>(); | ||||
|     private final ArrayList<T> mSortResult = new ArrayList<>(); | ||||
|     private final HashSet<T> mSortTmpMarked = new HashSet<>(); | ||||
|  | ||||
|     public void addNode(T t) { | ||||
|         if (this.mGraph.containsKey(t)) { | ||||
|             return; | ||||
|         } | ||||
|         this.mGraph.put(t, null); | ||||
|     } | ||||
|  | ||||
|     public boolean contains(T t) { | ||||
|         return this.mGraph.containsKey(t); | ||||
|     } | ||||
|  | ||||
|     public void addEdge(T t, T t2) { | ||||
|         if (!this.mGraph.containsKey(t) || !this.mGraph.containsKey(t2)) { | ||||
|             throw new IllegalArgumentException("All nodes must be present in the graph before being added as an edge"); | ||||
|         } | ||||
|         ArrayList<T> arrayList = this.mGraph.get(t); | ||||
|         if (arrayList == null) { | ||||
|             arrayList = getEmptyList(); | ||||
|             this.mGraph.put(t, arrayList); | ||||
|         } | ||||
|         arrayList.add(t2); | ||||
|     } | ||||
|  | ||||
|     public List getIncomingEdges(T t) { | ||||
|         return this.mGraph.get(t); | ||||
|     } | ||||
|  | ||||
|     public List<T> getOutgoingEdges(T t) { | ||||
|         int size = this.mGraph.size(); | ||||
|         ArrayList arrayList = null; | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             ArrayList<T> valueAt = this.mGraph.valueAt(i); | ||||
|             if (valueAt != null && valueAt.contains(t)) { | ||||
|                 if (arrayList == null) { | ||||
|                     arrayList = new ArrayList(); | ||||
|                 } | ||||
|                 arrayList.add(this.mGraph.keyAt(i)); | ||||
|             } | ||||
|         } | ||||
|         return arrayList; | ||||
|     } | ||||
|  | ||||
|     public boolean hasOutgoingEdges(T t) { | ||||
|         int size = this.mGraph.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             ArrayList<T> valueAt = this.mGraph.valueAt(i); | ||||
|             if (valueAt != null && valueAt.contains(t)) { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public void clear() { | ||||
|         int size = this.mGraph.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             ArrayList<T> valueAt = this.mGraph.valueAt(i); | ||||
|             if (valueAt != null) { | ||||
|                 poolList(valueAt); | ||||
|             } | ||||
|         } | ||||
|         this.mGraph.clear(); | ||||
|     } | ||||
|  | ||||
|     public ArrayList<T> getSortedList() { | ||||
|         this.mSortResult.clear(); | ||||
|         this.mSortTmpMarked.clear(); | ||||
|         int size = this.mGraph.size(); | ||||
|         for (int i = 0; i < size; i++) { | ||||
|             dfs(this.mGraph.keyAt(i), this.mSortResult, this.mSortTmpMarked); | ||||
|         } | ||||
|         return this.mSortResult; | ||||
|     } | ||||
|  | ||||
|     private void dfs(T t, ArrayList<T> arrayList, HashSet<T> hashSet) { | ||||
|         if (arrayList.contains(t)) { | ||||
|             return; | ||||
|         } | ||||
|         if (hashSet.contains(t)) { | ||||
|             throw new RuntimeException("This graph contains cyclic dependencies"); | ||||
|         } | ||||
|         hashSet.add(t); | ||||
|         ArrayList<T> arrayList2 = this.mGraph.get(t); | ||||
|         if (arrayList2 != null) { | ||||
|             int size = arrayList2.size(); | ||||
|             for (int i = 0; i < size; i++) { | ||||
|                 dfs(arrayList2.get(i), arrayList, hashSet); | ||||
|             } | ||||
|         } | ||||
|         hashSet.remove(t); | ||||
|         arrayList.add(t); | ||||
|     } | ||||
|  | ||||
|     int size() { | ||||
|         return this.mGraph.size(); | ||||
|     } | ||||
|  | ||||
|     private ArrayList<T> getEmptyList() { | ||||
|         ArrayList<T> acquire = this.mListPool.acquire(); | ||||
|         return acquire == null ? new ArrayList<>() : acquire; | ||||
|     } | ||||
|  | ||||
|     private void poolList(ArrayList<T> arrayList) { | ||||
|         arrayList.clear(); | ||||
|         this.mListPool.release(arrayList); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,56 @@ | ||||
| package androidx.coordinatorlayout.widget; | ||||
|  | ||||
| import android.graphics.Matrix; | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.RectF; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
| import android.view.ViewParent; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class ViewGroupUtils { | ||||
|     private static final ThreadLocal<Matrix> sMatrix = new ThreadLocal<>(); | ||||
|     private static final ThreadLocal<RectF> sRectF = new ThreadLocal<>(); | ||||
|  | ||||
|     static void offsetDescendantRect(ViewGroup viewGroup, View view, Rect rect) { | ||||
|         ThreadLocal<Matrix> threadLocal = sMatrix; | ||||
|         Matrix matrix = threadLocal.get(); | ||||
|         if (matrix == null) { | ||||
|             matrix = new Matrix(); | ||||
|             threadLocal.set(matrix); | ||||
|         } else { | ||||
|             matrix.reset(); | ||||
|         } | ||||
|         offsetDescendantMatrix(viewGroup, view, matrix); | ||||
|         ThreadLocal<RectF> threadLocal2 = sRectF; | ||||
|         RectF rectF = threadLocal2.get(); | ||||
|         if (rectF == null) { | ||||
|             rectF = new RectF(); | ||||
|             threadLocal2.set(rectF); | ||||
|         } | ||||
|         rectF.set(rect); | ||||
|         matrix.mapRect(rectF); | ||||
|         rect.set((int) (rectF.left + 0.5f), (int) (rectF.top + 0.5f), (int) (rectF.right + 0.5f), (int) (rectF.bottom + 0.5f)); | ||||
|     } | ||||
|  | ||||
|     public static void getDescendantRect(ViewGroup viewGroup, View view, Rect rect) { | ||||
|         rect.set(0, 0, view.getWidth(), view.getHeight()); | ||||
|         offsetDescendantRect(viewGroup, view, rect); | ||||
|     } | ||||
|  | ||||
|     private static void offsetDescendantMatrix(ViewParent viewParent, View view, Matrix matrix) { | ||||
|         Object parent = view.getParent(); | ||||
|         if ((parent instanceof View) && parent != viewParent) { | ||||
|             offsetDescendantMatrix(viewParent, (View) parent, matrix); | ||||
|             matrix.preTranslate(-r0.getScrollX(), -r0.getScrollY()); | ||||
|         } | ||||
|         matrix.preTranslate(view.getLeft(), view.getTop()); | ||||
|         if (view.getMatrix().isIdentity()) { | ||||
|             return; | ||||
|         } | ||||
|         matrix.preConcat(view.getMatrix()); | ||||
|     } | ||||
|  | ||||
|     private ViewGroupUtils() { | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user