11package com .bumptech .glide ;
22
33import android .app .Activity ;
4- import android .app .Application ;
54import android .content .ComponentCallbacks2 ;
65import android .content .Context ;
76import android .content .res .Configuration ;
87import android .graphics .Bitmap ;
9- import android .os .Bundle ;
108import android .os .MessageQueue .IdleHandler ;
119import android .util .Log ;
1210import android .view .View ;
3533import com .bumptech .glide .request .RequestOptions ;
3634import com .bumptech .glide .request .target .ImageViewTargetFactory ;
3735import com .bumptech .glide .request .target .Target ;
38- import com .bumptech .glide .util .GlideSuppliers ;
3936import com .bumptech .glide .util .GlideSuppliers .GlideSupplier ;
4037import com .bumptech .glide .util .Preconditions ;
4138import com .bumptech .glide .util .Util ;
@@ -84,13 +81,6 @@ public class Glide implements ComponentCallbacks2 {
8481 @ Nullable
8582 private BitmapPreFiller bitmapPreFiller ;
8683
87- private boolean inBackground = false ;
88- private MemoryCategory memoryCategoryInBackground = null ;
89- private MemoryCategory memoryCategoryInForeground = MemoryCategory .NORMAL ;
90-
91- private final GlideSupplier <SetMemoryCategoryOnLifecycleCallbacks > setMemoryCategoryCallbacks =
92- GlideSuppliers .memorize (SetMemoryCategoryOnLifecycleCallbacks ::new );
93-
9484 /**
9585 * Returns a directory with a default name in the private cache directory of the application to
9686 * use to store retrieved media and thumbnails.
@@ -215,9 +205,7 @@ public static void enableHardwareBitmaps() {
215205 public static void tearDown () {
216206 synchronized (Glide .class ) {
217207 if (glide != null ) {
218- Application application = (Application ) glide .getContext ().getApplicationContext ();
219- application .unregisterComponentCallbacks (glide );
220- glide .unregisterActivityLifecycleCallbacks ();
208+ glide .getContext ().getApplicationContext ().unregisterComponentCallbacks (glide );
221209 glide .engine .shutdown ();
222210 }
223211 glide = null ;
@@ -236,7 +224,7 @@ private static void initializeGlide(
236224 @ NonNull Context context ,
237225 @ NonNull GlideBuilder builder ,
238226 @ Nullable GeneratedAppGlideModule annotationGeneratedModule ) {
239- Application applicationContext = ( Application ) context .getApplicationContext ();
227+ Context applicationContext = context .getApplicationContext ();
240228 List <GlideModule > manifestModules = Collections .emptyList ();
241229 if (annotationGeneratedModule == null || annotationGeneratedModule .isManifestParsingEnabled ()) {
242230 manifestModules = new ManifestParser (applicationContext ).parse ();
@@ -277,7 +265,6 @@ private static void initializeGlide(
277265 }
278266 Glide glide = builder .build (applicationContext , manifestModules , annotationGeneratedModule );
279267 applicationContext .registerComponentCallbacks (glide );
280- glide .registerActivityLifecycleCallbacks ();
281268 Glide .glide = glide ;
282269 }
283270
@@ -345,12 +332,6 @@ private static void throwIncorrectGlideModule(Exception e) {
345332 this .connectivityMonitorFactory = connectivityMonitorFactory ;
346333 this .defaultRequestOptionsFactory = defaultRequestOptionsFactory ;
347334
348- GlideBuilder .MemoryCategoryInBackground memoryCategoryInBackground =
349- experiments .get (GlideBuilder .MemoryCategoryInBackground .class );
350- if (memoryCategoryInBackground != null ) {
351- this .memoryCategoryInBackground = memoryCategoryInBackground .value ();
352- }
353-
354335 // This has a circular relationship with Glide and GlideContext in that it depends on both,
355336 // but it's created by Glide's constructor. In practice this shouldn't matter because the
356337 // supplier holding the registry should never be initialized before this constructor finishes.
@@ -373,20 +354,6 @@ private static void throwIncorrectGlideModule(Exception e) {
373354 logLevel );
374355 }
375356
376- private void registerActivityLifecycleCallbacks () {
377- if (memoryCategoryInBackground != null ) {
378- Application context = (Application ) getContext ().getApplicationContext ();
379- context .registerActivityLifecycleCallbacks (setMemoryCategoryCallbacks .get ());
380- }
381- }
382-
383- private void unregisterActivityLifecycleCallbacks () {
384- if (memoryCategoryInBackground != null ) {
385- Application context = (Application ) getContext ().getApplicationContext ();
386- context .unregisterActivityLifecycleCallbacks (setMemoryCategoryCallbacks .get ());
387- }
388- }
389-
390357 /**
391358 * Returns the {@link com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool} used to
392359 * temporarily store {@link android.graphics.Bitmap}s so they can be reused to avoid garbage
@@ -708,30 +675,9 @@ void unregisterRequestManager(RequestManager requestManager) {
708675 }
709676 }
710677
711- private void setMemoryCategoryWhenInBackground () {
712- if (memoryCategoryInBackground == null || inBackground ) {
713- return ;
714- }
715- inBackground = true ;
716- memoryCategoryInForeground = setMemoryCategory (memoryCategoryInBackground );
717- }
718-
719- private void setMemoryCategoryWhenInForeground () {
720- if (memoryCategoryInBackground == null || !inBackground ) {
721- return ;
722- }
723- inBackground = false ;
724- setMemoryCategory (memoryCategoryInForeground );
725- }
726-
727678 @ Override
728679 public void onTrimMemory (int level ) {
729680 trimMemory (level );
730- // when level is TRIM_MEMORY_UI_HIDDEN or higher, it indicates that the app is
731- // in the background, limit the memory usage by memoryCategoryInBackground.
732- if (level >= TRIM_MEMORY_UI_HIDDEN ) {
733- setMemoryCategoryWhenInBackground ();
734- }
735681 }
736682
737683 @ Override
@@ -751,44 +697,4 @@ public interface RequestOptionsFactory {
751697 @ NonNull
752698 RequestOptions build ();
753699 }
754-
755- private final class SetMemoryCategoryOnLifecycleCallbacks
756- implements Application .ActivityLifecycleCallbacks {
757- @ Override
758- public void onActivityStarted (Activity activity ) {
759- // Do nothing.
760- }
761-
762- @ Override
763- public void onActivityResumed (Activity activity ) {
764- // Any activity resumed indicates that the app is no longer in the background,
765- // and we should restore the memory usage to normal.
766- setMemoryCategoryWhenInForeground ();
767- }
768-
769- @ Override
770- public void onActivityCreated (Activity activity , Bundle savedInstanceState ) {
771- // Do nothing.
772- }
773-
774- @ Override
775- public void onActivityDestroyed (Activity activity ) {
776- // Do nothing.
777- }
778-
779- @ Override
780- public void onActivityStopped (Activity activity ) {
781- // Do nothing.
782- }
783-
784- @ Override
785- public void onActivitySaveInstanceState (Activity activity , Bundle outState ) {
786- // Do nothing.
787- }
788-
789- @ Override
790- public void onActivityPaused (Activity activity ) {
791- // Do nothing.
792- }
793- }
794700}
0 commit comments