mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	-Added LeakCanary to debug build for memory detection on activities and fragments.
-Added LeakCanary no-op lib to release and beta builds.
This commit is contained in:
		| @@ -4,6 +4,10 @@ import android.content.Context; | ||||
| import android.support.multidex.MultiDex; | ||||
|  | ||||
| import com.facebook.stetho.Stetho; | ||||
| import com.squareup.leakcanary.LeakCanary; | ||||
| import com.squareup.leakcanary.RefWatcher; | ||||
|  | ||||
| import java.util.concurrent.TimeUnit; | ||||
|  | ||||
| public class DebugApp extends App { | ||||
|     private static final String TAG = DebugApp.class.toString(); | ||||
| @@ -41,4 +45,11 @@ public class DebugApp extends App { | ||||
|         // Initialize Stetho with the Initializer | ||||
|         Stetho.initialize(initializer); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected RefWatcher installLeakCanary() { | ||||
|         return LeakCanary.refWatcher(this) | ||||
|                 .watchDelay(5, TimeUnit.SECONDS) | ||||
|                 .buildAndInstall(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -10,6 +10,8 @@ import android.util.Log; | ||||
| import com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache; | ||||
| import com.nostra13.universalimageloader.core.ImageLoader; | ||||
| import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; | ||||
| import com.squareup.leakcanary.LeakCanary; | ||||
| import com.squareup.leakcanary.RefWatcher; | ||||
|  | ||||
| import org.acra.ACRA; | ||||
| import org.acra.config.ACRAConfiguration; | ||||
| @@ -54,6 +56,7 @@ import io.reactivex.plugins.RxJavaPlugins; | ||||
|  | ||||
| public class App extends Application { | ||||
|     protected static final String TAG = App.class.toString(); | ||||
|     private RefWatcher refWatcher; | ||||
|  | ||||
|     @SuppressWarnings("unchecked") | ||||
|     private static final Class<? extends ReportSenderFactory>[] reportSenderFactoryClasses = new Class[]{AcraReportSenderFactory.class}; | ||||
| @@ -69,6 +72,13 @@ public class App extends Application { | ||||
|     public void onCreate() { | ||||
|         super.onCreate(); | ||||
|  | ||||
|         if (LeakCanary.isInAnalyzerProcess(this)) { | ||||
|             // This process is dedicated to LeakCanary for heap analysis. | ||||
|             // You should not init your app in this process. | ||||
|             return; | ||||
|         } | ||||
|         refWatcher = installLeakCanary(); | ||||
|  | ||||
|         // Initialize settings first because others inits can use its values | ||||
|         SettingsActivity.initSettings(this); | ||||
|  | ||||
| @@ -157,4 +167,12 @@ public class App extends Application { | ||||
|         mNotificationManager.createNotificationChannel(mChannel); | ||||
|     } | ||||
|  | ||||
|     public static RefWatcher getRefWatcher(Context context) { | ||||
|         final App application = (App) context.getApplicationContext(); | ||||
|         return application.refWatcher; | ||||
|     } | ||||
|  | ||||
|     protected RefWatcher installLeakCanary() { | ||||
|         return RefWatcher.DISABLED; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import android.view.View; | ||||
| import com.nostra13.universalimageloader.core.DisplayImageOptions; | ||||
| import com.nostra13.universalimageloader.core.ImageLoader; | ||||
| import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; | ||||
| import com.squareup.leakcanary.RefWatcher; | ||||
|  | ||||
| import icepick.Icepick; | ||||
|  | ||||
| @@ -67,6 +68,13 @@ public abstract class BaseFragment extends Fragment { | ||||
|     protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onDestroy() { | ||||
|         super.onDestroy(); | ||||
|         RefWatcher refWatcher = App.getRefWatcher(getActivity()); | ||||
|         refWatcher.watch(this); | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|     // Init | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 John Zhen Mo
					John Zhen Mo