Skip to content

Commit d00e1c0

Browse files
Merge pull request #139 from whym/dbopenhelper-singleton
Make DbOpenHelper a singleton class accessible from different content provides
2 parents a5ac7ce + d8f85e2 commit d00e1c0

File tree

5 files changed

+12
-14
lines changed

5 files changed

+12
-14
lines changed

commons/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
)
4646
public class CommonsApplication extends Application {
4747

48-
private DBOpenHelper dbOpenHelper;
4948
public static String APPLICATION_VERSION; // Populated in onCreate. Race conditions theoretically possible, but practically not?
5049

5150
private MWApi api;
@@ -87,15 +86,6 @@ public static MWApi createMWApi() {
8786
return new MWApi(API_URL, createHttpClient());
8887
}
8988

90-
91-
public DBOpenHelper getDbOpenHelper() {
92-
if(dbOpenHelper == null) {
93-
dbOpenHelper = new DBOpenHelper(this);
94-
}
95-
return dbOpenHelper;
96-
}
97-
98-
9989
@Override
10090
public void onCreate() {
10191
ACRA.init(this);

commons/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static Uri uriForId(int id) {
3737
private DBOpenHelper dbOpenHelper;
3838
@Override
3939
public boolean onCreate() {
40-
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper();
40+
dbOpenHelper = DBOpenHelper.getInstance(getContext());
4141
return false;
4242
}
4343

commons/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static Uri uriForId(int id) {
3434
private DBOpenHelper dbOpenHelper;
3535
@Override
3636
public boolean onCreate() {
37-
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper();
37+
dbOpenHelper = DBOpenHelper.getInstance(getContext());
3838
return false;
3939
}
4040

commons/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,16 @@ public class DBOpenHelper extends SQLiteOpenHelper{
1111

1212
private static final String DATABASE_NAME = "commons.db";
1313
private static final int DATABASE_VERSION = 6;
14+
private static DBOpenHelper singleton = null;
1415

15-
public DBOpenHelper(Context context) {
16+
public static synchronized DBOpenHelper getInstance(Context context) {
17+
if ( singleton == null ) {
18+
singleton = new DBOpenHelper(context);
19+
}
20+
return singleton;
21+
}
22+
23+
private DBOpenHelper(Context context) {
1624
super(context, DATABASE_NAME, null, DATABASE_VERSION);
1725
}
1826

commons/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static Uri uriForId(int id) {
3434
private DBOpenHelper dbOpenHelper;
3535
@Override
3636
public boolean onCreate() {
37-
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper();
37+
dbOpenHelper = DBOpenHelper.getInstance(getContext());
3838
return false;
3939
}
4040

0 commit comments

Comments
 (0)