mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-23 08:43:15 +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();
|
||||
btCom = null;
|
||||
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")
|
||||
.allowMainThreadQueries()
|
||||
.addCallback(new RoomDatabase.Callback() {
|
||||
@@ -97,17 +117,6 @@ public class OpenScale {
|
||||
.build();
|
||||
measurementDAO = appDB.measurementDAO();
|
||||
userDAO = appDB.userDAO();
|
||||
|
||||
migrateSQLtoRoom();
|
||||
updateScaleData();
|
||||
}
|
||||
|
||||
public static OpenScale getInstance(Context context) {
|
||||
if (instance == null) {
|
||||
instance = new OpenScale(context);
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
private void migrateSQLtoRoom() {
|
||||
|
@@ -119,12 +119,15 @@ public class BackupPreferences extends PreferenceFragment {
|
||||
|
||||
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()) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
|
||||
prefs.edit().putInt("selectedUserId", scaleUserList.get(0).getId()).commit();
|
||||
OpenScale.getInstance(getActivity().getApplicationContext()).updateScaleData();
|
||||
openScale.updateScaleData();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user