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 ReminderScheduler reminderScheduler,
|
||||||
@NonNull TaskRunner taskRunner,
|
@NonNull TaskRunner taskRunner,
|
||||||
@NonNull WidgetUpdater widgetUpdater,
|
@NonNull WidgetUpdater widgetUpdater,
|
||||||
@NonNull ImportDataTaskFactory importTaskFactory,
|
@NonNull
|
||||||
|
ImportDataTaskFactory importTaskFactory,
|
||||||
@NonNull ExportCSVTaskFactory exportCSVFactory)
|
@NonNull ExportCSVTaskFactory exportCSVFactory)
|
||||||
{
|
{
|
||||||
this.adapter = adapter;
|
this.adapter = adapter;
|
||||||
@@ -155,6 +156,18 @@ public class ListHabitsController
|
|||||||
screen.showMessage(R.string.long_press_to_toggle);
|
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()
|
public void onSendBugReport()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ public class ListHabitsScreen extends BaseScreen
|
|||||||
|
|
||||||
public static final int RESULT_EXPORT_DB = 3;
|
public static final int RESULT_EXPORT_DB = 3;
|
||||||
|
|
||||||
|
public static final int RESULT_REPAIR_DB = 5;
|
||||||
|
|
||||||
public static final int RESULT_IMPORT_DATA = 1;
|
public static final int RESULT_IMPORT_DATA = 1;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -143,6 +145,10 @@ public class ListHabitsScreen extends BaseScreen
|
|||||||
case RESULT_BUG_REPORT:
|
case RESULT_BUG_REPORT:
|
||||||
controller.onSendBugReport();
|
controller.onSendBugReport();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RESULT_REPAIR_DB:
|
||||||
|
controller.onRepairDB();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
|||||||
setResultOnPreferenceClick("importData", ListHabitsScreen.RESULT_IMPORT_DATA);
|
setResultOnPreferenceClick("importData", ListHabitsScreen.RESULT_IMPORT_DATA);
|
||||||
setResultOnPreferenceClick("exportCSV", ListHabitsScreen.RESULT_EXPORT_CSV);
|
setResultOnPreferenceClick("exportCSV", ListHabitsScreen.RESULT_EXPORT_CSV);
|
||||||
setResultOnPreferenceClick("exportDB", ListHabitsScreen.RESULT_EXPORT_DB);
|
setResultOnPreferenceClick("exportDB", ListHabitsScreen.RESULT_EXPORT_DB);
|
||||||
|
setResultOnPreferenceClick("repairDB", ListHabitsScreen.RESULT_REPAIR_DB);
|
||||||
setResultOnPreferenceClick("bugReport", ListHabitsScreen.RESULT_BUG_REPORT);
|
setResultOnPreferenceClick("bugReport", ListHabitsScreen.RESULT_BUG_REPORT);
|
||||||
|
|
||||||
updateRingtoneDescription();
|
updateRingtoneDescription();
|
||||||
|
|||||||
@@ -188,4 +188,6 @@
|
|||||||
|
|
||||||
<string name="sticky_notifications">Make notifications sticky</string>
|
<string name="sticky_notifications">Make notifications sticky</string>
|
||||||
<string name="sticky_notifications_description">Prevents notifications from being swiped away.</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>
|
</resources>
|
||||||
@@ -100,8 +100,11 @@
|
|||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="bugReport"
|
android:key="bugReport"
|
||||||
android:title="@string/generate_bug_report">
|
android:title="@string/generate_bug_report"/>
|
||||||
</Preference>
|
|
||||||
|
<Preference
|
||||||
|
android:key="repairDB"
|
||||||
|
android:title="@string/repair_database"/>
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|||||||
@@ -139,9 +139,12 @@ public class DateUtilsTest extends BaseUnitTest
|
|||||||
public void test_getDaysBetween()
|
public void test_getDaysBetween()
|
||||||
{
|
{
|
||||||
long t1 = timestamp(2016, JANUARY, 1);
|
long t1 = timestamp(2016, JANUARY, 1);
|
||||||
long t2 = timestamp(2016, DECEMBER, 31);
|
long t2 = timestamp(2016, JANUARY, 10);
|
||||||
int expected = 365;
|
long t3 = timestamp(2016, DECEMBER, 31);
|
||||||
assertThat(DateUtils.getDaysBetween(t1, t2), equalTo(expected));
|
|
||||||
assertThat(DateUtils.getDaysBetween(t2, t1), equalTo(expected));
|
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