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;