mirror of
https://github.com/iSoron/uhabits.git
synced 2025-12-06 09:08:52 -06:00
Add option to repair database
This commit is contained in:
@@ -80,7 +80,8 @@ public class ListHabitsController
|
||||
@NonNull ReminderScheduler reminderScheduler,
|
||||
@NonNull TaskRunner taskRunner,
|
||||
@NonNull WidgetUpdater widgetUpdater,
|
||||
@NonNull ImportDataTaskFactory importTaskFactory,
|
||||
@NonNull
|
||||
ImportDataTaskFactory importTaskFactory,
|
||||
@NonNull ExportCSVTaskFactory exportCSVFactory)
|
||||
{
|
||||
this.adapter = adapter;
|
||||
@@ -155,6 +156,18 @@ public class ListHabitsController
|
||||
screen.showMessage(R.string.long_press_to_toggle);
|
||||
}
|
||||
|
||||
public void onRepairDB()
|
||||
{
|
||||
taskRunner.execute(() -> {
|
||||
for(Habit h : habitList) {
|
||||
h.getCheckmarks().invalidateNewerThan(0);
|
||||
h.getStreaks().invalidateNewerThan(0);
|
||||
h.getScores().invalidateNewerThan(0);
|
||||
}
|
||||
screen.showMessage(R.string.database_repaired);
|
||||
});
|
||||
}
|
||||
|
||||
public void onSendBugReport()
|
||||
{
|
||||
try
|
||||
|
||||
@@ -46,6 +46,8 @@ public class ListHabitsScreen extends BaseScreen
|
||||
|
||||
public static final int RESULT_EXPORT_DB = 3;
|
||||
|
||||
public static final int RESULT_REPAIR_DB = 5;
|
||||
|
||||
public static final int RESULT_IMPORT_DATA = 1;
|
||||
|
||||
@Nullable
|
||||
@@ -143,6 +145,10 @@ public class ListHabitsScreen extends BaseScreen
|
||||
case RESULT_BUG_REPORT:
|
||||
controller.onSendBugReport();
|
||||
break;
|
||||
|
||||
case RESULT_REPAIR_DB:
|
||||
controller.onRepairDB();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
||||
setResultOnPreferenceClick("importData", ListHabitsScreen.RESULT_IMPORT_DATA);
|
||||
setResultOnPreferenceClick("exportCSV", ListHabitsScreen.RESULT_EXPORT_CSV);
|
||||
setResultOnPreferenceClick("exportDB", ListHabitsScreen.RESULT_EXPORT_DB);
|
||||
setResultOnPreferenceClick("repairDB", ListHabitsScreen.RESULT_REPAIR_DB);
|
||||
setResultOnPreferenceClick("bugReport", ListHabitsScreen.RESULT_BUG_REPORT);
|
||||
|
||||
updateRingtoneDescription();
|
||||
|
||||
@@ -188,4 +188,6 @@
|
||||
|
||||
<string name="sticky_notifications">Make notifications sticky</string>
|
||||
<string name="sticky_notifications_description">Prevents notifications from being swiped away.</string>
|
||||
<string name="repair_database">Repair database</string>
|
||||
<string name="database_repaired">Database repaired.</string>
|
||||
</resources>
|
||||
@@ -100,8 +100,11 @@
|
||||
|
||||
<Preference
|
||||
android:key="bugReport"
|
||||
android:title="@string/generate_bug_report">
|
||||
</Preference>
|
||||
android:title="@string/generate_bug_report"/>
|
||||
|
||||
<Preference
|
||||
android:key="repairDB"
|
||||
android:title="@string/repair_database"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
@@ -139,9 +139,12 @@ public class DateUtilsTest extends BaseUnitTest
|
||||
public void test_getDaysBetween()
|
||||
{
|
||||
long t1 = timestamp(2016, JANUARY, 1);
|
||||
long t2 = timestamp(2016, DECEMBER, 31);
|
||||
int expected = 365;
|
||||
assertThat(DateUtils.getDaysBetween(t1, t2), equalTo(expected));
|
||||
assertThat(DateUtils.getDaysBetween(t2, t1), equalTo(expected));
|
||||
long t2 = timestamp(2016, JANUARY, 10);
|
||||
long t3 = timestamp(2016, DECEMBER, 31);
|
||||
|
||||
assertThat(DateUtils.getDaysBetween(t1, t1), equalTo(0));
|
||||
assertThat(DateUtils.getDaysBetween(t1, t2), equalTo(9));
|
||||
assertThat(DateUtils.getDaysBetween(t1, t3), equalTo(365));
|
||||
assertThat(DateUtils.getDaysBetween(t3, t1), equalTo(365));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user