diff --git a/app/app.iml b/app/app.iml index 6d8f35a..a3a5ea0 100644 --- a/app/app.iml +++ b/app/app.iml @@ -98,6 +98,7 @@ + @@ -117,17 +118,21 @@ - - + + + + + + + + + - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 65fd94d..55332e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,9 +55,14 @@ dependencies { // Only Lightning Plus needs the proxy libraries lightningPlusCompile 'net.i2p.android:client:0.7' - lightningPlusCompile(project(':libnetcipher')) - provided 'javax.annotation:jsr250-api:1.0' + // Use the following code to update the libnetcipher submodule // git submodule foreach git reset --hard // git submodule update --remote + lightningPlusCompile(project(':libnetcipher')) + + debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' + releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' + + provided 'javax.annotation:jsr250-api:1.0' } \ No newline at end of file diff --git a/app/src/LightningPlus/java/acr/browser/lightning/utils/ProxyUtils.java b/app/src/LightningPlus/java/acr/browser/lightning/utils/ProxyUtils.java index 973f40c..bef4311 100644 --- a/app/src/LightningPlus/java/acr/browser/lightning/utils/ProxyUtils.java +++ b/app/src/LightningPlus/java/acr/browser/lightning/utils/ProxyUtils.java @@ -29,7 +29,7 @@ public class ProxyUtils { private ProxyUtils(Context context) { mPreferences = PreferenceManager.getInstance(); - mI2PHelper = new I2PAndroidHelper(context); + mI2PHelper = new I2PAndroidHelper(context.getApplicationContext()); } public static ProxyUtils getInstance(@NonNull Context context) { diff --git a/app/src/main/java/acr/browser/lightning/app/BrowserApp.java b/app/src/main/java/acr/browser/lightning/app/BrowserApp.java index 081f8f4..5120f45 100644 --- a/app/src/main/java/acr/browser/lightning/app/BrowserApp.java +++ b/app/src/main/java/acr/browser/lightning/app/BrowserApp.java @@ -3,6 +3,8 @@ package acr.browser.lightning.app; import android.app.Application; import android.content.Context; +import com.squareup.leakcanary.LeakCanary; + public class BrowserApp extends Application { private static Context context; @@ -12,6 +14,7 @@ public class BrowserApp extends Application { public void onCreate() { super.onCreate(); context = getApplicationContext(); + LeakCanary.install(this); buildDepencyGraph(); } diff --git a/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java b/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java index ab5637f..8e36029 100644 --- a/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java +++ b/app/src/main/java/acr/browser/lightning/database/BookmarkManager.java @@ -51,7 +51,7 @@ public class BookmarkManager { private final String DEFAULT_BOOKMARK_TITLE; - private Map mBookmarksMap = new HashMap<>(); + private final Map mBookmarksMap = new HashMap<>(); // private final List mBookmarkList = new ArrayList<>(); private String mCurrentFolder = ""; private final ExecutorService mExecutor; @@ -84,8 +84,8 @@ public class BookmarkManager { } /** - * Initialize the Bookmaneger, it's a one-time operation and will be executed asynchronously. - * When done, mReady flag will been setted to true. + * Initialize the BookmarkManager, it's a one-time operation and will be executed asynchronously. + * When done, mReady flag will been set to true. */ private class BookmarkInitializer implements Runnable{ private final Context mContext; @@ -131,7 +131,8 @@ public class BookmarkManager { } finally { Utils.close(bookmarksReader); } - mBookmarksMap = bookmarks; + mBookmarksMap.clear(); + mBookmarksMap.putAll(bookmarks); mReady = true; } } @@ -282,7 +283,8 @@ public class BookmarkManager { bookmarks.put(url, item); } } - mBookmarksMap = bookmarks; + mBookmarksMap.clear(); + mBookmarksMap.putAll(bookmarks); mExecutor.execute(new BookmarksWriter(new LinkedList<>(mBookmarksMap.values()))); } diff --git a/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java b/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java index 3438445..3c2418d 100644 --- a/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java +++ b/app/src/main/java/acr/browser/lightning/object/SearchAdapter.java @@ -353,11 +353,11 @@ public class SearchAdapter extends BaseAdapter implements Filterable { } private File downloadSuggestionsForQuery(String query) { - File cacheFile = new File(mContext.getCacheDir(), query.hashCode() + CACHE_FILE_TYPE); + File cacheFile = new File(BrowserApp.getAppContext().getCacheDir(), query.hashCode() + CACHE_FILE_TYPE); if (System.currentTimeMillis() - INTERVAL_DAY < cacheFile.lastModified()) { return cacheFile; } - if (!isNetworkConnected(mContext)) { + if (!isNetworkConnected(BrowserApp.getAppContext())) { return cacheFile; } InputStream in = null;