Make DbOpenHelper a singleton class accessible from different content providers

This commit is contained in:
Yusuke Matsubara 2016-06-21 21:52:49 +09:00
parent de93330970
commit d8f85e22da
5 changed files with 12 additions and 14 deletions

View file

@ -45,7 +45,6 @@ import com.android.volley.toolbox.*;
) )
public class CommonsApplication extends Application { public class CommonsApplication extends Application {
private DBOpenHelper dbOpenHelper;
public static String APPLICATION_VERSION; // Populated in onCreate. Race conditions theoretically possible, but practically not? public static String APPLICATION_VERSION; // Populated in onCreate. Race conditions theoretically possible, but practically not?
private MWApi api; private MWApi api;
@ -87,15 +86,6 @@ public class CommonsApplication extends Application {
return new MWApi(API_URL, createHttpClient()); return new MWApi(API_URL, createHttpClient());
} }
public DBOpenHelper getDbOpenHelper() {
if(dbOpenHelper == null) {
dbOpenHelper = new DBOpenHelper(this);
}
return dbOpenHelper;
}
@Override @Override
public void onCreate() { public void onCreate() {
ACRA.init(this); ACRA.init(this);

View file

@ -37,7 +37,7 @@ public class CategoryContentProvider extends ContentProvider {
private DBOpenHelper dbOpenHelper; private DBOpenHelper dbOpenHelper;
@Override @Override
public boolean onCreate() { public boolean onCreate() {
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); dbOpenHelper = DBOpenHelper.getInstance(getContext());
return false; return false;
} }

View file

@ -34,7 +34,7 @@ public class ContributionsContentProvider extends ContentProvider{
private DBOpenHelper dbOpenHelper; private DBOpenHelper dbOpenHelper;
@Override @Override
public boolean onCreate() { public boolean onCreate() {
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); dbOpenHelper = DBOpenHelper.getInstance(getContext());
return false; return false;
} }

View file

@ -11,8 +11,16 @@ public class DBOpenHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "commons.db"; private static final String DATABASE_NAME = "commons.db";
private static final int DATABASE_VERSION = 6; 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); super(context, DATABASE_NAME, null, DATABASE_VERSION);
} }

View file

@ -34,7 +34,7 @@ public class ModificationsContentProvider extends ContentProvider{
private DBOpenHelper dbOpenHelper; private DBOpenHelper dbOpenHelper;
@Override @Override
public boolean onCreate() { public boolean onCreate() {
dbOpenHelper = ((CommonsApplication)this.getContext().getApplicationContext()).getDbOpenHelper(); dbOpenHelper = DBOpenHelper.getInstance(getContext());
return false; return false;
} }