Add option to repair database

pull/175/head
Alinson S. Xavier 9 years ago
parent 518ade3165
commit b1d00598eb

@ -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));
}
}

Loading…
Cancel
Save