diff --git a/commons/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/commons/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index d6e1de079..320a1e5d9 100644 --- a/commons/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/commons/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -45,7 +45,6 @@ import com.android.volley.toolbox.*; ) public class CommonsApplication extends Application { - private DBOpenHelper dbOpenHelper; public static String APPLICATION_VERSION; // Populated in onCreate. Race conditions theoretically possible, but practically not? private MWApi api; @@ -87,15 +86,6 @@ public class CommonsApplication extends Application { return new MWApi(API_URL, createHttpClient()); } - - public DBOpenHelper getDbOpenHelper() { - if(dbOpenHelper == null) { - dbOpenHelper = new DBOpenHelper(this); - } - return dbOpenHelper; - } - - @Override public void onCreate() { ACRA.init(this); diff --git a/commons/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java b/commons/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java index 0878b8f2e..ed7e0e743 100644 --- a/commons/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java +++ b/commons/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java @@ -37,7 +37,7 @@ public class CategoryContentProvider extends ContentProvider { private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); + dbOpenHelper = DBOpenHelper.getInstance(getContext()); return false; } diff --git a/commons/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java b/commons/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java index 0bf8a440e..633279805 100644 --- a/commons/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java +++ b/commons/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java @@ -34,7 +34,7 @@ public class ContributionsContentProvider extends ContentProvider{ private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); + dbOpenHelper = DBOpenHelper.getInstance(getContext()); return false; } diff --git a/commons/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java b/commons/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java index b3a9c231a..341a41895 100644 --- a/commons/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java +++ b/commons/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java @@ -11,8 +11,16 @@ public class DBOpenHelper extends SQLiteOpenHelper{ private static final String DATABASE_NAME = "commons.db"; private static final int DATABASE_VERSION = 6; + private static DBOpenHelper singleton = null; - public DBOpenHelper(Context context) { + public static synchronized DBOpenHelper getInstance(Context context) { + if ( singleton == null ) { + singleton = new DBOpenHelper(context); + } + return singleton; + } + + private DBOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } diff --git a/commons/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java b/commons/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java index 32449128d..d3d11a339 100644 --- a/commons/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java +++ b/commons/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java @@ -34,7 +34,7 @@ public class ModificationsContentProvider extends ContentProvider{ private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); + dbOpenHelper = DBOpenHelper.getInstance(getContext()); return false; }