22
33package  com .facebook .react ;
44
5- import  java .util .Collections ;
6- import  java .util .LinkedHashSet ;
7- import  java .util .Set ;
8- 
9- import  android .annotation .TargetApi ;
10- import  android .app .Application ;
115import  android .content .ComponentCallbacks2 ;
126import  android .content .Context ;
137import  android .content .res .Configuration ;
14- import  android .os .Build ;
15- 
16- import  com .facebook .react .bridge .MemoryPressure ;
178import  com .facebook .react .bridge .MemoryPressureListener ;
18- 
19- import  static  android .content .ComponentCallbacks2 .TRIM_MEMORY_BACKGROUND ;
20- import  static  android .content .ComponentCallbacks2 .TRIM_MEMORY_COMPLETE ;
21- import  static  android .content .ComponentCallbacks2 .TRIM_MEMORY_MODERATE ;
22- import  static  android .content .ComponentCallbacks2 .TRIM_MEMORY_RUNNING_CRITICAL ;
23- import  static  android .content .ComponentCallbacks2 .TRIM_MEMORY_UI_HIDDEN ;
9+ import  java .util .Collections ;
10+ import  java .util .LinkedHashSet ;
11+ import  java .util .Set ;
2412
2513/** 
2614 * Translates and routes memory pressure events to the current catalyst instance. 
2715 */ 
2816public  class  MemoryPressureRouter  implements  ComponentCallbacks2  {
29-   // Trigger this by sending an intent to your activity with adb shell: 
30-   // am broadcast -a com.facebook.react.ACTION_TRIM_MEMORY_MODERATE 
31-   private  static  final  String  ACTION_TRIM_MEMORY_UI_HIDDEN  =
32-     "com.facebook.react.ACTION_TRIM_MEMORY_UI_HIDDEN" ;
33-   private  static  final  String  ACTION_TRIM_MEMORY_MODERATE  =
34-     "com.facebook.react.ACTION_TRIM_MEMORY_MODERATE" ;
35-   private  static  final  String  ACTION_TRIM_MEMORY_CRITICAL  =
36-     "com.facebook.react.ACTION_TRIM_MEMORY_CRITICAL" ;
37- 
3817  private  final  Set <MemoryPressureListener > mListeners  =
3918    Collections .synchronizedSet (new  LinkedHashSet <MemoryPressureListener >());
4019
41-   @ TargetApi (Build .VERSION_CODES .JELLY_BEAN )
42-   public  static  boolean  handleDebugIntent (Application  application , String  action ) {
43-     switch  (action ) {
44-       case  ACTION_TRIM_MEMORY_UI_HIDDEN :
45-         simulateTrimMemory (application , ComponentCallbacks2 .TRIM_MEMORY_UI_HIDDEN );
46-         break ;
47-       case  ACTION_TRIM_MEMORY_MODERATE :
48-         simulateTrimMemory (application , TRIM_MEMORY_MODERATE );
49-         break ;
50-       case  ACTION_TRIM_MEMORY_CRITICAL :
51-         simulateTrimMemory (application , TRIM_MEMORY_COMPLETE );
52-       default :
53-         return  false ;
54-     }
55- 
56-     return  true ;
57-   }
58- 
5920  MemoryPressureRouter (Context  context ) {
6021    context .getApplicationContext ().registerComponentCallbacks (this );
6122  }
@@ -80,13 +41,7 @@ public void removeMemoryPressureListener(MemoryPressureListener listener) {
8041
8142  @ Override 
8243  public  void  onTrimMemory (int  level ) {
83-     if  (level  >= TRIM_MEMORY_COMPLETE ) {
84-       dispatchMemoryPressure (MemoryPressure .CRITICAL );
85-     } else  if  (level  >= TRIM_MEMORY_BACKGROUND  || level  == TRIM_MEMORY_RUNNING_CRITICAL ) {
86-       dispatchMemoryPressure (MemoryPressure .MODERATE );
87-     } else  if  (level  == TRIM_MEMORY_UI_HIDDEN ) {
88-       dispatchMemoryPressure (MemoryPressure .UI_HIDDEN );
89-     }
44+     dispatchMemoryPressure (level );
9045  }
9146
9247  @ Override 
@@ -97,7 +52,7 @@ public void onConfigurationChanged(Configuration newConfig) {
9752  public  void  onLowMemory () {
9853  }
9954
100-   private  void  dispatchMemoryPressure (MemoryPressure  level ) {
55+   private  void  dispatchMemoryPressure (int  level ) {
10156    // copy listeners array to avoid ConcurrentModificationException if any of the listeners remove 
10257    // themselves in handleMemoryPressure() 
10358    MemoryPressureListener [] listeners  =
@@ -106,8 +61,4 @@ private void dispatchMemoryPressure(MemoryPressure level) {
10661      listener .handleMemoryPressure (level );
10762    }
10863  }
109- 
110-   private  static  void  simulateTrimMemory (Application  application , int  level ) {
111-     application .onTrimMemory (level );
112-   }
11364}
0 commit comments