mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-23 16:53:04 +02:00
Reopen database after import to have migrations run if needed
This commit is contained in:
@@ -84,6 +84,26 @@ public class OpenScale {
|
|||||||
alarmHandler = new AlarmHandler();
|
alarmHandler = new AlarmHandler();
|
||||||
btCom = null;
|
btCom = null;
|
||||||
fragmentList = new ArrayList<>();
|
fragmentList = new ArrayList<>();
|
||||||
|
|
||||||
|
reopenDatabase();
|
||||||
|
|
||||||
|
migrateSQLtoRoom();
|
||||||
|
updateScaleData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OpenScale getInstance(Context context) {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new OpenScale(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reopenDatabase() {
|
||||||
|
if (appDB != null) {
|
||||||
|
appDB.close();
|
||||||
|
}
|
||||||
|
|
||||||
appDB = Room.databaseBuilder(context, AppDatabase.class, "openScale.db")
|
appDB = Room.databaseBuilder(context, AppDatabase.class, "openScale.db")
|
||||||
.allowMainThreadQueries()
|
.allowMainThreadQueries()
|
||||||
.addCallback(new RoomDatabase.Callback() {
|
.addCallback(new RoomDatabase.Callback() {
|
||||||
@@ -97,17 +117,6 @@ public class OpenScale {
|
|||||||
.build();
|
.build();
|
||||||
measurementDAO = appDB.measurementDAO();
|
measurementDAO = appDB.measurementDAO();
|
||||||
userDAO = appDB.userDAO();
|
userDAO = appDB.userDAO();
|
||||||
|
|
||||||
migrateSQLtoRoom();
|
|
||||||
updateScaleData();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static OpenScale getInstance(Context context) {
|
|
||||||
if (instance == null) {
|
|
||||||
instance = new OpenScale(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
return instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void migrateSQLtoRoom() {
|
private void migrateSQLtoRoom() {
|
||||||
|
@@ -119,12 +119,15 @@ public class BackupPreferences extends PreferenceFragment {
|
|||||||
|
|
||||||
importBackup("openScale.db", exportDir);
|
importBackup("openScale.db", exportDir);
|
||||||
|
|
||||||
List<ScaleUser> scaleUserList = OpenScale.getInstance(getActivity().getApplicationContext()).getScaleUserList();
|
OpenScale openScale = OpenScale.getInstance(getActivity().getApplicationContext());
|
||||||
|
openScale.reopenDatabase();
|
||||||
|
|
||||||
|
List<ScaleUser> scaleUserList = openScale.getScaleUserList();
|
||||||
|
|
||||||
if (!scaleUserList.isEmpty()) {
|
if (!scaleUserList.isEmpty()) {
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
|
||||||
prefs.edit().putInt("selectedUserId", scaleUserList.get(0).getId()).commit();
|
prefs.edit().putInt("selectedUserId", scaleUserList.get(0).getId()).commit();
|
||||||
OpenScale.getInstance(getActivity().getApplicationContext()).updateScaleData();
|
openScale.updateScaleData();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user