diff options
| author | fupduck <fupduck@riseup.net> | 2018-01-19 08:42:32 -0800 | 
|---|---|---|
| committer | fupduck <fupduck@riseup.net> | 2018-01-19 08:42:32 -0800 | 
| commit | dbda5fbf23ccad615e932be6b8869fe34a6b440d (patch) | |
| tree | 4579483020300b393895248e06395a6d22fd3579 /app/src | |
| parent | 7d4129b2854e25c42b6df766d30671c91fc699ae (diff) | |
| parent | f7dfa7bc000b802570dddc19e8f274193e25b336 (diff) | |
Merge branch '#8822_add_leakCanary_to_project' into '0.9.8'
#8822 adds leakCanary library to Bitmask for analyzing memory leaks
See merge request leap/bitmask_android!27
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java | 26 | ||||
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java | 7 | 
2 files changed, 32 insertions, 1 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java b/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java index 88a01b62..f9e45b79 100644 --- a/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java +++ b/app/src/main/java/se/leap/bitmaskclient/BitmaskApp.java @@ -1,6 +1,10 @@  package se.leap.bitmaskclient;  import android.app.Application; +import android.content.Context; + +import com.squareup.leakcanary.LeakCanary; +import com.squareup.leakcanary.RefWatcher;  /**   * Created by cyberta on 24.10.17. @@ -8,11 +12,31 @@ import android.app.Application;  public class BitmaskApp extends Application { +    private RefWatcher refWatcher; +      @Override      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 = LeakCanary.install(this); +        // Normal app init code...*/          PRNGFixes.apply(); -        //TODO: add LeakCanary!      } +    /** +     * Use this method to get a RefWatcher object that checks for memory leaks in the given context. +     * Call refWatcher.watch(this) to check if all references get garbage collected. +     * @param context +     * @return the RefWatcher object +     */ +    public static RefWatcher getRefWatcher(Context context) { +        BitmaskApp application = (BitmaskApp) context.getApplicationContext(); +        return application.refWatcher; +    } + +  } diff --git a/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java b/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java index 566134dd..84c407d7 100644 --- a/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/drawer/NavigationDrawerFragment.java @@ -36,6 +36,7 @@ import se.leap.bitmaskclient.fragments.LogFragment;  import se.leap.bitmaskclient.userstatus.User;  import se.leap.bitmaskclient.userstatus.UserStatusFragment; +import static se.leap.bitmaskclient.BitmaskApp.getRefWatcher;  import static se.leap.bitmaskclient.Constants.REQUEST_CODE_SWITCH_PROVIDER;  import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES; @@ -287,6 +288,12 @@ public class NavigationDrawerFragment extends Fragment {          return super.onOptionsItemSelected(item);      } +    @Override +    public void onDestroy() { +        super.onDestroy(); +        getRefWatcher(getActivity()).watch(this); +    } +      /**       * Per the navigation drawer design guidelines, updates the action bar to show the global app       * 'context', rather than just what's in the current screen.  | 
