diff --git a/CHANGELOG.md b/CHANGELOG.md index 307b541c9..e21cd4365 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### 1.7.6 (July 18, 2017) + +* Fix bug that caused widgets not to render sometimes +* Fix other minor bugs +* Update translations + ### 1.7.3 (May 30, 2017) * Improve performance of 'sort by score' diff --git a/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java b/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java index f9284b58e..ea31c54c7 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/espresso/MainTest.java @@ -171,13 +171,13 @@ public void testArchiveHabits() clickMenuItem(R.string.archive); assertHabitsDontExist(names); - clickMenuItem(R.string.show_archived); + clickMenuItem(R.string.hide_archived); assertHabitsExist(names); selectHabits(names); clickMenuItem(R.string.unarchive); - clickMenuItem(R.string.show_archived); + clickMenuItem(R.string.hide_archived); assertHabitsExist(names); deleteHabits(names); diff --git a/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkListTest.java b/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkListTest.java index 32e6df853..45efec5e7 100644 --- a/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkListTest.java +++ b/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkListTest.java @@ -115,6 +115,41 @@ public void testInvalidateNewerThan() assertThat(records.get(0).timestamp, equalTo(today - 21 * day)); } + @Test + public void testFixRecords() throws Exception + { + long day = DateUtils.millisecondsInOneDay; + long from = DateUtils.getStartOfToday(); + long to = from + 5 * day; + + List original, actual, expected; + HabitRecord habit = new HabitRecord(); + + original = new ArrayList<>(); + original.add(new CheckmarkRecord(habit, from + 8*day, 2)); + original.add(new CheckmarkRecord(habit, from + 5*day, 0)); + original.add(new CheckmarkRecord(habit, from + 4*day, 0)); + original.add(new CheckmarkRecord(habit, from + 4*day, 2)); + original.add(new CheckmarkRecord(habit, from + 3*day, 2)); + original.add(new CheckmarkRecord(habit, from + 2*day, 1)); + original.add(new CheckmarkRecord(habit, from + 2*day + 100, 1)); + original.add(new CheckmarkRecord(habit, from, 0)); + original.add(new CheckmarkRecord(habit, from, 2)); + original.add(new CheckmarkRecord(habit, from - day, 2)); + + actual = SQLiteCheckmarkList.fixRecords(original, habit, from, to); + + expected = new ArrayList<>(); + expected.add(new CheckmarkRecord(habit, from + 5*day, 0)); + expected.add(new CheckmarkRecord(habit, from + 4*day, 2)); + expected.add(new CheckmarkRecord(habit, from + 3*day, 2)); + expected.add(new CheckmarkRecord(habit, from + 2*day, 1)); + expected.add(new CheckmarkRecord(habit, from + day, 0)); + expected.add(new CheckmarkRecord(habit, from, 2)); + + assertThat(actual, equalTo(expected)); + } + private List getAllRecords() { return new Select() diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9e7185d46..8491ec533 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,8 +21,8 @@ + android:versionCode="33" + android:versionName="1.7.6"> diff --git a/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java b/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java index 620a2d59f..0a2e0d407 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java +++ b/app/src/main/java/org/isoron/uhabits/activities/common/views/HistoryChart.java @@ -32,7 +32,8 @@ import java.text.*; import java.util.*; -import static org.isoron.uhabits.models.Checkmark.*; +import static org.isoron.uhabits.models.Checkmark.CHECKED_EXPLICITLY; +import static org.isoron.uhabits.models.Checkmark.UNCHECKED; public class HistoryChart extends ScrollableChart { @@ -112,10 +113,21 @@ public boolean onSingleTapUp(MotionEvent e) if (!isEditable) return false; performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP); + float x, y; - int pointerId = e.getPointerId(0); - float x = e.getX(pointerId); - float y = e.getY(pointerId); + try + { + int pointerId = e.getPointerId(0); + x = e.getX(pointerId); + y = e.getY(pointerId); + } + catch (RuntimeException ex) + { + // Android often throws IllegalArgumentException here. Apparently, + // the pointer id may become invalid shortly after calling + // e.getPointerId. + return false; + } final Long timestamp = positionToTimestamp(x, y); if (timestamp == null) return false; diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java index 1245668a0..e036f859c 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListAdapter.java @@ -105,11 +105,10 @@ public void clearSelection() * Returns the item that occupies a certain position on the list * * @param position position of the item - * @return the item at given position - * @throws IndexOutOfBoundsException if position is not valid + * @return the item at given position or null if position is invalid */ @Deprecated - @NonNull + @Nullable public Habit getItem(int position) { return cache.getHabitByPosition(position); @@ -314,6 +313,8 @@ public void setOrder(HabitList.Order order) public void toggleSelection(int position) { Habit h = getItem(position); + if (h == null) return; + int k = selected.indexOf(h); if (k < 0) selected.add(h); else selected.remove(h); diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java index fbb4e51a6..228700768 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/model/HabitCardListCache.java @@ -93,12 +93,12 @@ public int[] getCheckmarks(long habitId) * Returns the habits that occupies a certain position on the list. * * @param position the position of the habit - * @return the habit at given position - * @throws IndexOutOfBoundsException if position is not valid + * @return the habit at given position or null if position is invalid */ - @NonNull - public Habit getHabitByPosition(int position) + @Nullable + public synchronized Habit getHabitByPosition(int position) { + if(position < 0 || position >= data.habits.size()) return null; return data.habits.get(position); } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.java index 8aeba9685..dd0e744fe 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/views/HabitCardView.java @@ -143,12 +143,13 @@ public void setSelected(boolean isSelected) updateBackground(isSelected); } - public void triggerRipple(long timestamp) + public synchronized void triggerRipple(long timestamp) { long today = DateUtils.getStartOfToday(); long day = DateUtils.millisecondsInOneDay; int offset = (int) ((today - timestamp) / day) - dataOffset; CheckmarkButtonView button = checkmarkPanel.indexToButton(offset); + if (button == null) return; float y = button.getHeight() / 2.0f; float x = checkmarkPanel.getX() + button.getX() + button.getWidth() / 2; diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkList.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkList.java index a9c9ae871..d41a8684a 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkList.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteCheckmarkList.java @@ -53,38 +53,27 @@ public class SQLiteCheckmarkList extends CheckmarkList @Nullable private CachedData cache; - @NonNull - private final SQLiteStatement invalidateStatement; - - @NonNull - private final SQLiteStatement addStatement; - - @NonNull - private final SQLiteDatabase db; - public SQLiteCheckmarkList(Habit habit) { super(habit); sqlite = new SQLiteUtils<>(CheckmarkRecord.class); - - db = Cache.openDatabase(); - addStatement = db.compileStatement(ADD_QUERY); - invalidateStatement = db.compileStatement(INVALIDATE_QUERY); } @Override public void add(List checkmarks) { check(habit.getId()); + SQLiteDatabase db = Cache.openDatabase(); + SQLiteStatement statement = db.compileStatement(ADD_QUERY); db.beginTransaction(); try { for (Checkmark c : checkmarks) { - addStatement.bindLong(1, habit.getId()); - addStatement.bindLong(2, c.getTimestamp()); - addStatement.bindLong(3, c.getValue()); - addStatement.execute(); + statement.bindLong(1, habit.getId()); + statement.bindLong(2, c.getTimestamp()); + statement.bindLong(3, c.getValue()); + statement.execute(); } db.setTransactionSuccessful(); @@ -115,14 +104,7 @@ public List getByInterval(long fromTimestamp, long toTimestamp) List records = sqlite.query(query, params); for (CheckmarkRecord record : records) record.habit = habitRecord; - int nDays = DateUtils.getDaysBetween(fromTimestamp, toTimestamp) + 1; - if (records.size() != nDays) - { - throw new InconsistentDatabaseException( - String.format("habit=%s, %d expected, %d found", - habit.getName(), nDays, records.size())); - } - + records = fixRecords(records, habitRecord, fromTimestamp, toTimestamp); return toCheckmarks(records); } @@ -139,9 +121,11 @@ public int getTodayValue() public void invalidateNewerThan(long timestamp) { cache = null; - invalidateStatement.bindLong(1, habit.getId()); - invalidateStatement.bindLong(2, timestamp); - invalidateStatement.execute(); + SQLiteDatabase db = Cache.openDatabase(); + SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY); + statement.bindLong(1, habit.getId()); + statement.bindLong(2, timestamp); + statement.execute(); observable.notifyListeners(); } @@ -198,6 +182,28 @@ private List toCheckmarks(@NonNull List records) return checkmarks; } + public static List fixRecords(List original, + HabitRecord habit, + long fromTimestamp, + long toTimestamp) + { + long day = DateUtils.millisecondsInOneDay; + ArrayList records = new ArrayList<>(); + + for (long t = toTimestamp; t >= fromTimestamp; t -= day) + records.add(new CheckmarkRecord(habit, t, Checkmark.UNCHECKED)); + + for (CheckmarkRecord record : original) + { + if ((toTimestamp - record.timestamp) % day != 0) continue; + int offset = (int) ((toTimestamp - record.timestamp) / day); + if (offset < 0 || offset >= records.size()) continue; + records.set(offset, record); + } + + return records; + } + private static class CachedData { int todayValue; diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteScoreList.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteScoreList.java index 7bf739cd2..bfd1af1da 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteScoreList.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteScoreList.java @@ -49,14 +49,6 @@ public class SQLiteScoreList extends ScoreList @NonNull private final SQLiteUtils sqlite; - @NonNull - private final SQLiteStatement invalidateStatement; - - @NonNull - private final SQLiteStatement addStatement; - - private final SQLiteDatabase db; - @Nullable private CachedData cache = null; @@ -69,25 +61,23 @@ public SQLiteScoreList(@NonNull Habit habit) { super(habit); sqlite = new SQLiteUtils<>(ScoreRecord.class); - - db = Cache.openDatabase(); - addStatement = db.compileStatement(ADD_QUERY); - invalidateStatement = db.compileStatement(INVALIDATE_QUERY); } @Override public void add(List scores) { check(habit.getId()); + SQLiteDatabase db = Cache.openDatabase(); + SQLiteStatement statement = db.compileStatement(ADD_QUERY); db.beginTransaction(); try { for (Score s : scores) { - addStatement.bindLong(1, habit.getId()); - addStatement.bindLong(2, s.getTimestamp()); - addStatement.bindLong(3, s.getValue()); - addStatement.execute(); + statement.bindLong(1, habit.getId()); + statement.bindLong(2, s.getTimestamp()); + statement.bindLong(3, s.getValue()); + statement.execute(); } db.setTransactionSuccessful(); @@ -150,9 +140,11 @@ public synchronized int getTodayValue() public synchronized void invalidateNewerThan(long timestamp) { cache = null; - invalidateStatement.bindLong(1, habit.getId()); - invalidateStatement.bindLong(2, timestamp); - invalidateStatement.execute(); + SQLiteDatabase db = Cache.openDatabase(); + SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY); + statement.bindLong(1, habit.getId()); + statement.bindLong(2, timestamp); + statement.execute(); getObservable().notifyListeners(); } diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteStreakList.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteStreakList.java index 8d6068579..a14811b45 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteStreakList.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/SQLiteStreakList.java @@ -37,22 +37,19 @@ */ public class SQLiteStreakList extends StreakList { + + private static final String INVALIDATE_QUERY = + "delete from Streak where habit = ? and end >= ?"; + private HabitRecord habitRecord; @NonNull private final SQLiteUtils sqlite; - private final SQLiteStatement invalidateStatement; - public SQLiteStreakList(Habit habit) { super(habit); sqlite = new SQLiteUtils<>(StreakRecord.class); - - SQLiteDatabase db = Cache.openDatabase(); - String invalidateQuery = "delete from Streak where habit = ? " + - "and end >= ?"; - invalidateStatement = db.compileStatement(invalidateQuery); } @Override @@ -81,9 +78,11 @@ public Streak getNewestComputed() @Override public void invalidateNewerThan(long timestamp) { - invalidateStatement.bindLong(1, habit.getId()); - invalidateStatement.bindLong(2, timestamp - DateUtils.millisecondsInOneDay); - invalidateStatement.execute(); + SQLiteDatabase db = Cache.openDatabase(); + SQLiteStatement statement = db.compileStatement(INVALIDATE_QUERY); + statement.bindLong(1, habit.getId()); + statement.bindLong(2, timestamp - DateUtils.millisecondsInOneDay); + statement.execute(); observable.notifyListeners(); } diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/records/CheckmarkRecord.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/records/CheckmarkRecord.java index 6938b505d..31dd8f35d 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/records/CheckmarkRecord.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/records/CheckmarkRecord.java @@ -24,6 +24,7 @@ import com.activeandroid.*; import com.activeandroid.annotation.*; +import org.apache.commons.lang3.builder.*; import org.isoron.uhabits.models.*; /** @@ -53,6 +54,17 @@ public class CheckmarkRecord extends Model implements SQLiteRecord @Column(name = "value") public Integer value; + public CheckmarkRecord() + { + } + + public CheckmarkRecord(HabitRecord habit, Long timestamp, Integer value) + { + this.habit = habit; + this.timestamp = timestamp; + this.value = value; + } + @Override public void copyFrom(Cursor c) { @@ -64,4 +76,40 @@ public Checkmark toCheckmark() { return new Checkmark(timestamp, value); } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + + if (o == null || getClass() != o.getClass()) return false; + + CheckmarkRecord that = (CheckmarkRecord) o; + + return new EqualsBuilder() + .append(habit, that.habit) + .append(timestamp, that.timestamp) + .append(value, that.value) + .isEquals(); + } + + @Override + public int hashCode() + { + return new HashCodeBuilder(17, 37) + .append(habit) + .append(timestamp) + .append(value) + .toHashCode(); + } + + @Override + public String toString() + { + return new ToStringBuilder(this) + .append("habit", habit) + .append("timestamp", timestamp) + .append("value", value) + .toString(); + } } diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml index 2f7ca5cb0..1768b2c4c 100644 --- a/app/src/main/res/layout/about.xml +++ b/app/src/main/res/layout/about.xml @@ -146,6 +146,14 @@ style="@style/About.Item" android:text="Angga Rifandi (Bahasa Indonesia)"/> + + + + @@ -230,6 +238,10 @@ style="@style/About.Item" android:text="Jelle den Butter (Nederlands)"/> + + @@ -256,7 +268,7 @@ + android:text="Alexander Jansson (Svenska)"/> + + @@ -314,6 +330,10 @@ style="@style/About.Item" android:text="Josh Graham (한국어 )"/> + + @@ -326,6 +346,10 @@ style="@style/About.Item" android:text="Yoav Argov (עברית‎)"/> + + diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index fc043bc6a..85d70798d 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -37,7 +37,7 @@ Промяната на навика е отменена. Навиците са архивирани Навиците са разархивирани - Обобщение + Обзор Сила на навика История Изчистване @@ -65,8 +65,8 @@ Създайте нови навици Всеки ден, след изпълнението на навика, поставете отметка в приложението. Продължавайте да го изпълнявате - Навици изпълнявани редовно за дълго време ще получат пълна звезда. - Следете прогреса си + Навици изпълнявани редовно за дълго време ще ви спечелят пълна звезда. + Следете напредъка си Подробни диаграми ви показват как вашите навици са се подобрили с времето. 15 минути 30 минути diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 14b5a64ff..2b783e1d3 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -57,7 +57,7 @@ Můžete mít maximálně jedno označení denně. Vytvořit zvyk Upravit zvyk - Označeno + Hotovo Odložit Vítejte diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 61d6bada5..79910b24b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -48,26 +48,26 @@ Erinnerung Verwerfen Speichern - Strähnen + Serien Du hast keine aktiven Gewohnheiten Tippe und halte um aus- bzw. abzuwählen Aus Name darf nicht leer sein. Zahl muss positiv sein. - Du musst wenigstens eine Wiederholung pro Tag haben + Du kannst höchstens eine Wiederholung pro Tag haben Gewohnheit erstellen Gewohnheit bearbeiten - Abhaken + Markieren Später Willkommen - Loop Habit Tracker hilft dir gute Gewohnheiten implementieren. + Loop Habit Tracker hilft dir gute Gewohnheiten anzueignen. Erstelle neue Gewohnheiten - Jeden Tag, nachdem du die Gewohnheit gemacht hast, hake sie in der App ab. + Hake die Gewohnheit jeden Tag in der App ab, nachdem du sie erledigt hast. Bleib dran Gewohnheiten, die über einen längeren Zeitraum absolviert werden, bekommen einen ganzen Stern. Verfolge deinen Fortschritt - Detaillierte Diagramme zeigen dir an wie sich deine Gewohnheiten entwickelt haben. + Detaillierte Diagramme zeigen dir an, wie sich deine Gewohnheiten entwickelt haben. 15 Minuten 30 Minuten 1 Stunde @@ -75,29 +75,29 @@ 4 Stunden 8 Stunden 24 Stunden - Gewohnheiten durch kurzes Tippen abhaken - Abhaken durch einfaches Tippen, anstatt durch Tippen und Halten. Bequemer, kann aber eine falsche Auswahl verursachen. + Markierung durch kurzes Tippen ändern + Markierungen durch einfaches Tippen setzen anstatt durch Tippen und Halten. Bequemer, kann aber versehentlich eine Markierung ändern. \"Später erinnern\"-Intervall bei Erinnerungen Bewerte diese App auf Google Play Sende dem Entwickler Feedback Zeige den Quellcode auf GitHub - Zeige die Anleitung + Zeige die App-Einführung Links Verhalten Name Einstellungen \"Später erinnern\"-Intervall Wusstest du? - Um Einträge umzusortieren, tippe und ziehe sie an die richtige Stelle. + Um Einträge umzusortieren, tippe, halte und ziehe sie an die richtige Stelle. Du kannst mehr Tage sehen, wenn du dein Smartphone quer hältst. - Gewohnheiten löschen - Diese Gewohnheit wird permanent gelöscht. Dies kann nicht rückgängig gemacht werden. + Lösche Gewohnheiten + Die Gewohnheit wird für immer gelöscht. Dies kann nicht rückgängig gemacht werden. Gewohnheit gelöscht / nicht gefunden An Wochenenden Werktags Jeden Tag - Wähle die Tage - als CSV exportieren + Wähle Tage aus + Exportiere als CSV Fertig Löschen Wähle Stunden @@ -106,11 +106,11 @@ Übersetzer Entwickler Version %s - Frequenz + Häufigkeit Häkchen Stärke - Beste Strähnen - Derzeitige Strähne + Beste Serien + Derzeitige Serie Anzahl der Wiederholungen Letzten %d Tage Letzten %d Wochen @@ -123,25 +123,25 @@ 5 Mal pro Woche Benutzerdefiniert Hilfe & FAQ - Der Export von Daten ist fehlgeschlagen. - Der Import von Daten ist fehlgeschlagen. + Fehler beim Exportieren der Daten. + Fehler beim Importieren der Daten. Datei nicht erkannt. - Gewohnheiten wurden erfolgreich importiert. + Gewohnheiten erfolgreich importiert. Vollständige Sicherung erfolgreich exportiert. Importiere Daten Exportiere vollständige Sicherung - Unterstützt vollständige Sicherungen dieser App, sowie erstellte Sicherungen von Tickmate, HabitBull oder Rewire. Siehe FAQ für mehr Information. - Erzeugt Dateien, die von Tabellenkalkulationsprogrammen, wie Microsoft Excel oder LibreOffice Calc, geöffnet werden können. Diese Dateien können nicht wieder importiert werden. - Erzeugt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden. - Fehlermeldung konnte nicht erstellt werden. - Einen Fehler melden + Unterstützt vollständige Sicherungen dieser App sowie Sicherungen von Tickmate, HabitBull und Rewire. Siehe FAQ für weitere Informationen. + Erstellt Dateien, die von Tabellenkalkulationsprogrammen wie Microsoft Excel oder LibreOffice Calc geöffnet werden können. Diese Dateien können nicht wieder importiert werden. + Erstellt eine Datei, die alle deine Daten enthält. Diese Datei kann wieder importiert werden. + Fehler beim Erstellen eines Fehlerberichts. + Erstelle einen Fehlerbericht Fehlerbehebung - Hilf diese App zu übersetzen + Hilf mit, diese App zu übersetzen Nachtmodus - Reines Schwarz im Nachtmodus verwenden - Ersetzt das Grau im Hintergrund durch ein reines Schwarz im Nachtmodus. Reduziert den Stromverbrauch von Smartphones mit einem AMOLED Display. + Verwende reines Schwarz im Nachtmodus + Ersetzt im Nachtmodus das Grau im Hintergrund durch ein reines Schwarz. Reduziert den Stromverbrauch von Smartphones mit einem AMOLED Display. Oberfläche - Die Reihenfolge der Tage umkehren + Kehre die Tagesreihenfolge um Zeigt die Tage im Hauptfenster in umgekehrter Reihenfolge an Tag Woche @@ -151,18 +151,18 @@ Gesamt Mal in - Jeden %d Tag - Jede %d Woche - Jeden %d Monat + Alle %d Tage + Alle %d Wochen + Alle %d Monate Wertung - Benachrichtigungston - Kein Ton + Erinnerungston + Keiner Filter - Erledigte Gewohnheiten ausblenden - Archivierte Gewohnheiten ausblenden - Permanente Benachrichtigungen + Abgeschlossene verbergen + Archivierte verbergen + Fixiere Benachrichtigungen Verhindert das Wegwischen von Benachrichtigungen. - Datenbank reparieren + Repariere Datenbank Datenbank repariert. Abwählen Umschalten @@ -174,5 +174,5 @@ Nach Farbe Nach Wertung Runterladen - Export + Exportieren diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d95d59bfe..75e38eb2c 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -19,6 +19,7 @@ ~ with this program. If not, see . --> + Ohitura Tracker Loop Ohiturak Ezarpenak Editatu @@ -149,6 +150,7 @@ Urtea Guztira + denbora %d egunero %d astero %d hilabetero diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index efddd8c5c..c3512ccde 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -19,34 +19,34 @@ ~ with this program. If not, see . --> - عادت‌سنج + عادت‌سنج لوپ عادت‌ها تنظیمات ویرایش - حذف - آرشیو کردن - خارج کردن از آرشیو + حذف کن + بایگانی کن + خارج کردن از بایگانی افزودن عادت تغییر رنگ عادت ساخته شد. عادت حذف شد. عادت بازگردانده شد. - چیزی برای واکردن وجود ندارد. - چیزی برای برگشت وجود ندارد. + چیزی برای بازگرداندن به حالت قبلی وجود ندارد + چیزی برای انجام مجدد وجود ندارد عادت تغییر کرد. - عادت به حالت قبل برگشت. - عادت آرشیو شد. - عادت از آرشیو خارج شد. + عادت به حالت قبل برگشت + عادات بایگانی شدند + عادت از بایگانی خارج شدند مرور - قوت عادت + قدرت عادت تاریخچه - حذف + بی‌خیال سوال (آیا امروز شما…؟) تکرار بار در هر - روزها + روز یادآور - حذف تغییرات + بی‌خیال ذخیره روزهای پیوسته شما هیچ عادت فعالی ندارید @@ -55,18 +55,18 @@ جای اسم نمی‌تواند خالی باشد. عدد بایستی مثبت باشد. شما در نهایت می‌توانید یک تکرار در یک روز داشته باشید. - ساخت عادت + درج عادت جدید ویرایش عادت تیک زدن - بعدا + بعداً خوش آمدید - رهگیر عادت به شما کمک می‌کند تا برای خودتان عادت‌های خوبی بسازید. + رهگیر عادت لوپ به شما کمک می‌کند تا برای خودتان عادت‌های خوبی بسازید. ساخت چند عادت جدید - هر روز، بعد از اینکه کار مربوط به عادت را انجام دادید، تیک مربوط به آن در برنامه را بزنید. + هر روز، بعد از انجام عادت، آن را در برنامه تیک بزنید. ادامه دهید عادت‌هایی که به صورت پیوسته برای مدت طولانی انجام شده‌اند یک ستاره‌ی کامل دریافت می‌کنند. - پشرفت خود را رهگیری کنید + پیشرفت خود را رهگیری کنید نمودار جزئیات به شما نشان می‌دهد که چطور عادت‌هایتان با گذشت زمان بهبود پیدا کرده‌اند. ۱۵ دقیقه ۳۰ دقیقه @@ -74,30 +74,40 @@ ۲ ساعت ۴ ساعت ۸ ساعت + ۲۴ ساعت با اشاره‌ی کوتاه‌مدت وضعیت عادت را تغییر بده - راحت‌تر است ولی ممکن است باعث شود اشتباهی عادتی را تیک بزنید. - دادن امتیاز به اپ در گوگل‌پلی + تیک زدن با تک‌ضربه در مقابل ضربه‌زدن و نگه‌داشتن راحت‌تر است ولی ممکن است باعث شود اشتباهی عادتی را تیک بزنید. + بازه به تعویق انداختن یادآورها + به این برنامه در گوگل‌پلی امتیاز بدهید ارسال بازخورد به توسعه‌دهنده - دیدن سورس اپ در گیت‌هاب - دیدن معرفی اپ + دیدن منبع برنامه در گیت‌هاب + مشاهده معرفی برنامه لینک‌ها رفتار نام تنظیمات - آیا می‌دانید؟ + بازه به تعویق انداختن + آیا می دانستید؟ + برای جابجایی عناوین، انگشتتان را روی نام عادت مورد نظر بگذارید و نگه دارید، سپس آن را به محل صحیح بکشید. + با قرار دادن گوشی در حالت افقی می‌توانید روزهای بیشتری را ببینید. حذف عادت‌ها + عادت‌ها برای همیشه حذف خواهد شد. این عمل قابل بازگشت نیست. + عادت حذف شده/ پیدا نشد آخر هفته‌ها دوشنبه تا جمعه - هر روز از هفته + هر روز هفته انتخاب روزها - دخیره به عنوان فایل CSV - انجام شده - حذف - انتخاب ساعت‌ها + صدور فایل CSV + انجام شد + بی‌خیال + انتخاب ساعت + انتخاب دقیقه درباره - مترجمین + مترجمان توسعه‌دهندگان نسخه %s + تناوب + علامت قدرت بهترین استمرار استمرار فعلی @@ -106,20 +116,39 @@ %d هفته اخیر %d ماه اخیر %d سال اخیر + همیشه هر روز هر هفته ۲ بار در هفته ۵ بار در هفته سفارشی‌سازی ... راهنما و سوالات متداول + خطا در صدور اطلاعات. + خطا در وارد کردن اطلاعات. + پرونده شناخته شده نیست. + عادت‌ها با موفقیت وارد شدند. + پرونده پشتیبان کامل، با موفقیت صادر شد. + ورود اطلاعات + پشتیبان گیری کامل + علاوه بر پشتیبان کامل تهیه شده توسط این برنامه، از پرونده‌های تولید شده توسط Tickmate، HabitbBull و یا Rewire هم پشتیبانی می‌شود. برای اطلاعات بیشتر سوالات متداول را ببینید. + پرونده‌ای تولید می‌کند که می‌توان توسط برنامه‌های صفحه گسترده مانند Microsoft Excel و یا OpenOffice Calc بازشان کرد. این پرونده قابلیت وارد کردن مجدد به این برنامه را ندارد. + پرونده‌ای تولید می‌کند که شامل تمام اطلاعات شما است. این پرونده قابل بازیابی توسط این برنامه می‌باشد. + خطایی در تولید گزارش مشکلات بوجود آمد. + ایجاد گزارش مشکلات ایرادیابی - حالت شبانه + کمک برای ترجمه این برنامه + حالت شب استفاده از رنگ سیاه خالص در حالت شبانه + جایگزینی پس زمینه خاکستری با سیاه خالص در حالت شب. استفاده از باتری در گوشی‌های با صفحه نمایش AMOLED را کاهش می‌دهد. + رابط کاربری + معکوس کردن ترتیب روزها + روزها را در صفحه اصلی با ترتیب معکوس نمایش می‌دهد روز هفته ماه فصل سال + مجموع بار در هر هر %d روز یک‌بار @@ -128,4 +157,22 @@ امتیاز صدای یادآور هیچ‌کدام + فیلتر + مخفی کردن کامل شده‌ها + مخفی کردن بایگانی شده‌ها + چسبناک کردن اعلان‌ها + از رد کردن اعلان با کشیدن جلوگیری می‌کند. + تعمیر پایگاه داده + پایگاه داده تعمیر شد. + برداشتن تیک + تغییر وضعیت + اقدام + عادت + مرتب‌سازی + دستی + بر اساس نام + بر اساس رنگ + بر اساس امتیاز + بارگيری + صدور diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml deleted file mode 100644 index 4602cbfd6..000000000 --- a/app/src/main/res/values-id/strings.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - Loop Habit Tracker - Kebiasaan - Pengaturan - Ubah - Hapus - Arsip - Keluarkan dari arsip - Tambah Kebiasaan - Ganti warna - Kebiasaan ditambahkan. - Kebiasaan dihapus. - Kebiasaan dikembalikan. - Tidak ada aksi sebelumnya. - Tidak ada aksi sesudahnya. - Kebiasaan diubah. - Kebiasaan telah dikembalikan. - Kebiasaan diarsipkan. - Kebiasaan dikeluarkan dari arsip. - Keseluruhan - Kekuatan Kebiasaan - Riwayat - Bersihkan - Pertanyaan (Apakah kamu ... hari ini?) - Ulangi - kali dalam - hari - Pengingat - Batalkan - Simpan - Rentetan - Anda tidak memiliki Kebiasaan yang aktif - Tekan dan tahan untuk menambah atau menghapus tanda cek - Mati - Nama tidak boleh kosong. - Angka harus positif. - Maksimal satu kali pengulangan dalam satu hari - Buat Kebiasaan - Ubah Kebiasaan - Tanda cek - Tunda - - Selamat datang - Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda. - Buat beberapa Kebiasaan baru - Berikan tanda cek setiap kali Anda selesai melakukannya. - Terus lakukan - Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh. - Catat perkembangan Anda - Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu. - 15 menit - 30 menit - 1 jam - 2 jam - 4 jam - 8 jam - 24 jam - Tandai dengan cepat. - Lebih nyaman namun memungkinkan kesalahan. - Durasi tunda sejenak pada pengingat - Berikan rating aplikasi ini di Google Play - Kirimkan umpan balik kepada Developer - Lihat kode aplikasi di GitHub - Perkenalan aplikasi - Tautan - Kebiasaan - Nama - Pengaturan - Durasi tunda sejenak - Tahukah kamu? - Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan. - Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape. - Hapus Kebiasaan - Kebiasaan ini akan dihapus permanen. Tidak dapat dikembalikan. - Akhir pekan - Senin - Jumat - Seluruh hari dalam satu minggu - Pilih hari - Ekspor (CSV) - Selesai - Hapus - Pilih jam - Pilih menit - Tentang - Penerjemah - Developer - Versi %s - Frekuensi - Cek - Kekuatan - Rentetan terbaik - Rentetan saat ini - Jumlah pengulangan - %d hari terakhir - %d minggu terakhir - %d bulan terakhir - %d tahun terakhir - Seluruh waktu - Setiap hari - Setiap minggu - 2 kali setiap minggu - 5 kali setiap minggu - Tersuai ... - Bantuan & FAQ - Ekspor data gagal. - Impor data gagal. - File tidak dikenali. - Impor data berhasil. - Ekspor data berhasil. - Impor data - Ekspor data - Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut. - Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali. - Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali. - Gagal membuat laporan masalah. - Membuat laporan masalah - Troubleshoot - Bantu terjemahkan - Mode malam - Gunakan warna hitam pada mode malam - Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED. - Antar muka - Ubah urutan hari - Tampilkan hari dalam urutan terbalik pada layar utama - Hari - Minggu - Bulan - Perempat - Tahun - - kali dalam - Setiap %d hari - Setiap %d minggu - Setiap %d bulan - Nilai - Suara pengingat - Hening - diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 92602f02f..0b1435380 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -1,181 +1,178 @@ + + -"Loop Habit Tracker" -"Kebiasaan" -"Pengaturan" -"Ubah" -"Hapus" -"Arsip" -"Keluarkan dari arsip" -"Tambah Kebiasaan" -"Ganti warna" -"Kebiasaan ditambahkan." -"Kebiasaan dihapus." -"Kebiasaan dikembalikan." -"Tidak ada aksi sebelumnya." -"Tidak ada aksi sesudahnya." -"Kebiasaan diubah." - - -"Kebiasaan telah dikembalikan." -"Kebiasaan diarsipkan." -"Kebiasaan dikeluarkan dari arsip." -"Keseluruhan" -"Kekuatan Kebiasaan" -"Riwayat" -"Bersihkan" -"Pertanyaan (Apakah kamu ... hari ini?)" - - -"Ulangi" -"kali dalam" -"hari" -"Pengingat" -"Batalkan" -"Simpan" - - -"Rentetan" -"Anda tidak memiliki Kebiasaan yang aktif" -"Tekan dan tahan untuk menambah atau menghapus tanda cek" -"Mati" -"Nama tidak boleh kosong." -"Angka harus positif." -"Maksimal satu kali pengulangan dalam satu hari" -"Buat Kebiasaan" -"Ubah Kebiasaan" -"Tanda cek" -"Tunda" - - -"Selamat datang" -"Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda." -"Buat beberapa Kebiasaan baru" -"Berikan tanda cek setiap kali Anda selesai melakukannya." -"Terus lakukan" -"Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh." -"Catat perkembangan Anda" -"Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu." -"15 menit" -"30 menit" -"1 jam" -"2 jam" -"4 jam" -"8 jam" -"Tandai dengan cepat." -"Lebih nyaman namun memungkinkan kesalahan." -"Durasi tunda sejenak pada pengingat" -"Berikan rating aplikasi ini di Google Play" -"Kirimkan umpan balik kepada Developer" -"Lihat kode aplikasi di GitHub" -"Perkenalan aplikasi" -"Tautan" -"Kebiasaan" -"Nama" -"Tampilkan arsip" -"Pengaturan" -"Durasi tunda sejenak" -"Tahukah kamu?" -"Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan." -"Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape." -"Hapus Kebiasaan" -"Kebiasaan ini akan dihapus permanen. Tidak dapat dikembalikan." -"Akhir pekan" -"Senin - Jumat" -"Seluruh hari dalam satu minggu" -"Pilih hari" -"Ekspor (CSV)" -"Selesai" -"Hapus" -"Pilih jam" -"Pilih menit" - - -"Buat Kebiasaan baik dan catat perkembangannya setiap waktu (bebas iklan)" -"Loop membantu Anda untuk membuat dan mengelola Kebiasaan baik, memungkinkan Anda mencapai gol jangka panjang. Grafik detail dan statistik menampilkan perkembangan Kebiasaan Anda dari waktu ke waktu. Aplikasi ini bebas iklan dan open-source." -"<b>Sederhana, minimalis dengan balutan antarmuka yang modern</b> -Loop memiliki tampilan minimalis yang mudah digunakan dan mengikuti panduan material design." -"<b>Skor Kebiasaan</b> -Algoritma Loop akan menghitung kekuatan Kebiasaan Anda. Setiap kali Anda melakukan pengulangan maka skor Anda akan bertambah, sebaliknya jika Anda tidak mengerjakan Kebiasaan maka nilai akan dikurangi. Beberapa hari yang terlewat tidak akan menghapus seluruh perkembangan Kebiasaan Anda." -"<b>Detail Grafik dan Statistik</b> -Lihat perkembangan Kebiasaan dari waktu ke waktu dengan tampilan yang menarik dan detail. Geser ke bawah untuk melihat seluruh catatan Kebiasaan Anda." -"<b>Pengaturan jadwal fleksibel</b> -Mendukung kebiasaan harian dan kebiasaan dengan penjadwalan yang kompleks, seperti 3 kali dalam setiap minggu; 2 minggu sekali; hingga 2 hari sekali." -"<b>Pengingat</b> -Anda dapat membuat pengingat untuk setiap Kebiasaan, dengan waktu yang telah Anda tentukan setiap harinya. Mudah untuk di-cek, batalkan ataupun tunda melalui panel notifikasi tanpa perlu membuka aplikasi." -"<b>Bebas dari iklan dan open-source</b> -Tidak ada iklan, notifikasi menyebalkan dan juga hak akses yang tidak dibutuhkan. -Kode aplikasi tersedia dengan lisensi GPLv3" -"<b>Mendukung Smartwatch</b> -Anda dapat dengan mudah mengecek, menunda ataupun membatalkan pengingat melalui smartwatch Anda." -"Tentang" -"Penerjemah" -"Developer" - - -"Versi %s" -"Frekuensi" -"Cek" - - -"Kekuatan" -"Rentetan terbaik" -"Rentetan saat ini" -"Jumlah pengulangan" -"%d hari terakhir" -"%d minggu terakhir" -"%d bulan terakhir" -"%d tahun terakhir" - - -"Seluruh waktu" -"Setiap hari" -"Setiap minggu" -"2 kali setiap minggu" -"5 kali setiap minggu" -"Tersuai ..." -"Bantuan & FAQ" -"Ekspor data gagal." -"Impor data gagal." - - -"File tidak dikenali." -"Impor data berhasil." -"Ekspor data berhasil." -"Impor data" -"Ekspor data" -"Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut." -"Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali." -"Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali." -"Gagal membuat laporan masalah." -"Membuat laporan masalah" -"Troubleshoot" -"Bantu terjemahkan" -"Mode malam" -"Gunakan warna hitam pada mode malam" -"Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED." -"Antar muka" -"Ubah urutan hari" -"Tampilkan hari dalam urutan terbalik pada layar utama" -"Hari" -"Minggu" -"Bulan" - - -"Perempat" -"Tahun" - - - -"kali dalam" -"Setiap %d hari" -"Setiap %d minggu" -"Setiap %d bulan" - - -"Nilai" -"Suara pengingat" - - -"Hening" - \ No newline at end of file + Loop Habit Tracker + Kebiasaan + Pengaturan + Sunting + Hapus + Arsip + Keluarkan dari arsip + Tambah Kebiasaan + Ganti warna + Kebiasaan ditambahkan. + Kebiasaan dihapus. + Kebiasaan dipulihkan + Tidak ada aksi sebelumnya. + Tidak ada aksi sesudahnya. + Kebiasaan diubah. + Kebiasaan telah dikembalikan. + Kebiasaan diarsipkan. + Kebiasaan dikeluarkan dari arsip. + Keseluruhan + Kekuatan Kebiasaan + Riwayat + Bersihkan + Pertanyaan (Sudahkah Anda ... hari ini?) + Ulangi + kali dalam + hari + Pengingat + Batalkan + Simpan + Rentetan + Anda tidak memiliki Kebiasaan yang aktif + Tekan dan tahan untuk menambah atau menghapus tanda cek + Mati + Nama tidak boleh kosong. + Angka harus positif. + Maksimal satu kali pengulangan dalam satu hari + Buat Kebiasaan + Sunting Kebiasaan + Tanda cek + Tunda + + Selamat datang + Loop Habit Tracker membantu mencatat dan mengelola Kebiasaan baik Anda. + Buat beberapa Kebiasaan baru + Berikan tanda cek setiap kali Anda selesai melakukannya. + Terus lakukan + Kebiasaan yang dilakukan secara konsisten dalam jangka waktu panjang akan mendapatkan tanda bintang penuh. + Catat perkembangan Anda + Detail grafik menampilkan perkembangan Kebiasaanmu dari waktu ke waktu. + 15 menit + 30 menit + 1 jam + 2 jam + 4 jam + 8 jam + 24 jam + Tandai dengan cepat. + Lebih nyaman namun memungkinkan kesalahan. + Durasi tunda sejenak pada pengingat + Berikan rating aplikasi ini di Google Play + Kirimkan umpan balik kepada Developer + Lihat kode aplikasi di GitHub + Perkenalan aplikasi + Tautan + Kebiasaan + Nama + Pengaturan + Durasi tunda sejenak + Sudahkah Anda tahu? + Untuk mengatur urutan, tekan dan tahan judul Kebiasaan lalu tempatkan pada posisi yang Anda inginkan. + Anda dapat melihat tampilan hari dengan merubah posisi menjadi mode landscape. + Hapus Kebiasaan + Kebiasaan ini akan dihapus secara permanen. Tindakan ini tidak dapat dibatalkan. + Kebiasaan telah dihapus / tidak ditemukan + Akhir pekan + Senin - Jumat + Seluruh hari dalam satu minggu + Pilih hari + Ekspor (CSV) + Selesai + Hapus + Pilih jam + Pilih menit + Tentang + Penerjemah + Developer + Versi %s + Frekuensi + Cek + Kekuatan + Rentetan terbaik + Rentetan saat ini + Jumlah pengulangan + %d hari terakhir + %d minggu terakhir + %d bulan terakhir + %d tahun terakhir + Seluruh waktu + Setiap hari + Setiap minggu + 2 kali per minggu + 5 kali per minggu + Sesuaikan … + Bantuan & FAQ + Gagal mengekspor data. + Gagal mengimpor data. + File tidak dikenali. + Impor data berhasil. + Ekspor data berhasil. + Impor data + Ekspor data + Mendukung ekspor data dan file dari aplikasi Tickmate, HabitBull atau Rewire. Lihat FAQ untuk informasi lebih lanjut. + Menghasilkan lembar kerja yang dapat dibuka menggunakan aplikasi seperti Microsoft Excel atau OpenOffice Calc. File ini tidak dapat di-impor kembali. + Menghasilkan file yang berisikan seluruh data. File ini dapat di-impor kembali. + Gagal membuat laporan masalah. + Membuat laporan masalah + Troubleshoot + Bantu menerjemahkan aplikasi ini + Mode malam + Gunakan warna hitam pada mode malam + Ganti warna latar abu-abu dengan warna hitam pada mode malam. Mengurangi penggunaan baterai pada layar AMOLED. + Antar muka + Ubah urutan hari + Tampilkan hari dalam urutan terbalik pada layar utama + Hari + Minggu + Bulan + Kuartal + Tahun + Total + + kali dalam + Setiap %d hari + Setiap %d minggu + Setiap %d bulan + Skor + Suara pengingat + Hening + Saring + Sembunyikan yang selesai + Sembunyikan arsip + Jadikan notifikasi lengket + Cegah pemberitahuan dari sapuan. + Perbaiki Basis Data + Basis Data diperbaiki. + Hapus centang + Alih + Tindakan + Kebiasaan + Urutkan + Secara manual + Berdasarkan nama + Berdasarkan Warna + Berdasarkan Skor + Unduh + Ekspor + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 1290477c9..a213fa211 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -25,21 +25,21 @@ 수정 삭제 보관 - 제거 - 습관 만들기 - 색상 정하기 - 습관을 시작합니다. - 습관을 지웠습니다. - 습관을 복원합니다. - 복원할 것이 없습니다. + 보관 해제 + 습관 추가하기 + 색상 변경 + 습관이 생성되었습니다. + 습관이 삭제되었습니다. + 습관이 복원되었습니다. + 취소할 것이 없습니다. 복원할 것이 없습니다. - 습관을 수정했습니다. - 습관을 복원했습니다. - 습관을 보관합니다. - 습관을 제거합니다. - - 습관 완성정도 - 기록 + 습관이 수정되었습니다. + 습관이 복원되었습니다. + 습관이 보관되었습니다. + 습관 보관이 해제되었습니다. + 개요 + 습관 강도 + 이력 지우기 질문 (오늘 ... 했나요?) 반복 @@ -49,64 +49,66 @@ 취소 저장 길게 이은 기록 - 습관이 없습니다 - 길게 눌러 기록 + 활성화된 습관이 없습니다. + 체크하거나 해제하려면 길게 누르세요. 제목을 적어주세요. 숫자는 0보다 커야합니다. - 하루에 한 번 반복만 가능합니다. + 하루에 한 번만 반복 가능합니다. 습관 만들기 습관 수정하기 선택 나중에 - 안녕하세요 + 환영합니다 Loop은 당신이 좋은 습관을 만들고 유지하도록 도와줍니다. 새로운 습관을 만들어 보세요. - 매일매일, 습관을 수행한 뒤에, 앱에 기록하세요. + 매일 습관을 수행하고 앱에 기록하세요. 계속 반복하세요 - 일정 시간동안 유지된 습관은 참잘했어요도장을 얻습니다. + 오랫동안 지속적으로 유지한 습관은 별표를 얻습니다. 습관을 관리하세요 - 그래프를 보고 습관이 유지되는지를 체크할 수 있습니다. + 자세한 그래프로 시간에 따라 당신의 습관이 어떻게 향상되었는지 보여줍니다. 15분 30분 1시간 2시간 4시간 8시간 - 짧게 터치해 기록 하세요. - 실수로 체크가 될 수 있지만, 더 편한 체크박스. - 반복알림을 미루기 + 24시간 + 짧게 눌러서 전환하기 + 길게 누르고 있는 대신에 짧은 탭 한 번으로 체크합니다. 더 편리하지만, 실수로 전환될 수도 있습니다. + 알림 스누즈 간격 Google Play에서 평가 - 계발자에게 피드백 + 개발자에게 피드백 보내기 Github에서 소스보기 앱 안내메시지 보기 링크 행동 제목 설정 - 미루기 - 알고 계시나요? - 습관 순서를 조정하려면, 습관을 길게 눌러 끌어당겨서 다른 위치로 옮길 수 있습니다. - 화면을 눕혀서 보면 더 많은 날들을 볼 수 있씁니다. + 스누즈 간격 + 아시나요? + 목록의 순서를 재배치하려면, 습관의 제목을 길게 누르고 다른 위치로 드래그하면 됩니다. + 가로 모드에서는 더 많은 날짜를 볼 수 있습니다. 습관 삭제 - 습관을 삭제합니다. 삭제하면 다시 복원할 수 없습니다. + 습관을 영구적으로 삭제합니다. 이 작업은 취소할 수 없습니다. + 습관 삭제 / 찾을 수 없음 주말 주중 매일 - 몇일 선택 - 정보 내보내기 (CSV) + 요일 선택 + CSV로 내보내기 완료 지우기 시간 선택 분 선택 정보 - 번역가 - 계발자 + 번역자 + 개발자 버전 %s - 반복수 - 습관기록 - 습관 완성정도 + 빈도 + 체크 + 강도 가장 길게 이은 기록 현재 기록 반복한 횟수 @@ -121,37 +123,56 @@ 일주일에 5번 직접 정하기 도움 & FAQ - 내보내기 오류. - 가져오기 오류. - 지원하지 않는 파일입니다. - 가져오기 완료. - 백업 완료. + 데이터 내보내기에 실패했습니다. + 데이터 가져오기에 실패했습니다. + 파일을 인식할 수 없습니다. + 습관 가져오기에 성공했습니다. + 전체 백업 내보내기에 성공했습니다. 데이터 가져오기 백업 내보내기 - Tickmate, HabitBull, Rewire의 백업파일도 지원합니다. 더 자세한 설명은 FAQ에 있습니다. - Microsoft Excel 혹은, OpenOffice Calc 같은 스프레드시트 프로그램으로 열 수 있는 CSV파일로 내보냅니다. 다만, CSV파일을 다시 가져올 수는 없습니다. - 모든 데이터를 백업합니다. 나중에 이 파일을 가져올 수 있습니다. - 오류보고서를 작성하지 못했습니다. + Tickmate, HabitBull, Rewire에서 생성된 파일도 지원합니다. 더 자세한 설명은 FAQ에 있습니다. + Microsoft Excel나 OpenOffice Calc 같은 스프레드시트 소프트웨어로 열 수 있는 파일을 생성합니다. 이 파일은 다시 가져올 수 없습니다. + 모든 데이터를 포함한 파일을 생성합니다. 이 파일은 다시 가져올 수 있습니다. + 오류보고서 작성에 실패했습니다. 오류보고서 작성하기 - 문제가 있나요? - 변역을 도와주세요 - 어두운 배경 - 검정색 배경 - 야간모드의 회색 바탕을 검정 바탕색으로 바꿉니다. AMOLED를 사용하는 기기는 검정바탕으로 배터리를 절약할 수 있습니다. - 바탕화면 설정 + 문제 해결 + 이 앱의 번역을 도와주세요 + 야간 모드 + 야간 모드에서 검정색 사용하기 + 야간 모드의 회색 배경을 검정색으로 대체합니다. AMOLED 디스플레이를 사용하는 기기에서 배터리 사용량을 감소시킵니다. + 인터페이스 날짜 순서 뒤집기 - 날짜 순서를 뒤바꾸어 보여줍니다. + 메인 화면의 날짜를 역순으로 보여줍니다. - 4분기-1년 + 분기 + 전체 - %d 일 마다 - %d 주 마다 - %d 개월 마다 - 습관점수 - 알림 소리 + %d일 마다 + %d주 마다 + %d개월 마다 + 점수 + 알림음 무음 + 필터 + 완료된 항목 숨기기 + 보관된 항목 숨기기 + 알림 고정하기 + 알림을 스와이프해서 제거하는 것을 방지합니다. + 데이터베이스 복구 + 데이터베이스가 복구되었습니다. + 선택 해제 + 전환 + 동작 + 습관 + 정렬 + 수동으로 + 이름 순으로 + 색상 순으로 + 점수 순으로 + 다운로드 + 내보내기 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index e268a137e..d6fd34d0d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -26,29 +26,28 @@ Verwijder Archiveer Dearchiveren - Voeg gewoonte toe + Nieuwe gewoonte Verander kleur Gewoonte aangemaakt. Gewoonte verwijderd. - Gewoonte hersteld. + Gewoontes hersteld Niets om ongedaan te maken. Niets om over te doen. Gewoonte gewijzigd. Wijziging gewoonte ongedaan gemaakt. - Gewoonte gearchiveerd. - Gewoonte hersteld uit archief. + Gewoontes gearchiveerd + Gewoontes hersteld uit archief Overzicht Gewoonte-sterkte Geschiedenis Wis - Vraag (Heb jij vandaag .... ?) + Vraag (Heb je vandaag .... ?) Herhaal keer in dagen Herinnering Verwijder - \"Opslaan -\" + Opslaan Reeksen Je hebt geen actieve gewoontes Houdt ingedrukt om te selecteren of deselecteren @@ -77,7 +76,7 @@ 8 uur 24 uur Wijzig herhalingen door kort indrukken - Handiger, maar kan onbedoelde wijzigingen veroorzaken. + Zet vinkjes met een enkel tikje in plaats van ingedrukt houden. Handiger, maar kan onbedoelde wijzigingen veroorzaken. Snooze interval voor herinneringen Beoordeel deze app in Google Play Stuur feedback aan de ontwikkelaar @@ -87,14 +86,14 @@ Gedrag Naam Instellingen - Later interval + Snooze interval Wist je dat? - Om de rijen te ordenen houdt de gewoonte ingedrukt en sleep het naar de gewenste plek. - Je kunt meer dagen zien door de telefoon in landschapmodus te zetten. + Om de rijen te ordenen, houdt de gewoonte ingedrukt en sleep het naar de gewenste plek. + Je kunt meer dagen zien door de telefoon in horizontale modus te zetten. Verwijder gewoontes De gewoontes zullen permanent verwijderd worden. Deze actie kan niet ongedaan gemaakt worden. Gewoonte verwijderd / niet gevonden - In het weekend + Weekends Maandag tot vrijdag Elke dag van de week Selecteer dagen @@ -109,7 +108,7 @@ Versie %s Frequentie Vinkje - Sterkte + Kracht Beste reeksen Huidige reeks Aantal herhalingen @@ -122,7 +121,7 @@ Iedere week 2 keer per week 5 keer per week - Aangepast + Aangepast … Hulp en veelgestelde vragen Het exporteren van de data is mislukt. Importeren van data mislukt. @@ -141,7 +140,7 @@ Nachtmodus Gebruik puur zwart in nachtmodus Vervangt grijze achtergronden door puur zwart in nachtmodus. Vermindert batterijgebruik in telefoons met AMOLED scherm. - Uiterlijk + Interface Omgekeerde volgorde van dagen Toon dagen in omgekeerde volgorde op het hoofdscherm Dag diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index d994b3aca..b16128dc0 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -19,6 +19,160 @@ ~ with this program. If not, see . --> + Loop Vaneoversikt + Vaner + Innstillinger + Redigér + Slett + Arkivér + Uarkivér + Legg til vane + Endr farge + Vane laget + Vaner slettet + Vaner gjenopprettet + Ingenting å angre + Ingenting å ta tilbake + Vane endret + Vane tilbakeendret + Vaner arkivert + Vaner uarkivert + Oversikt + Vanestyrke + Historie + Fjern + Spørsmål (Gjorde du … i dag?) + Gjenta + ganger på + dager + Påminnelse + Kast + Lagr + Gjentakelser + Du har ingen aktive vaner + Trykk og hold for å sjekke eller usjekke + Av + Navnet kan ikke stå tomt. + Nummeret må være positivt. + Du kan maks ha én repetisjon om dagen + Lag vane + Redigér vane + Sjekk + Senere + Velkommen + Loop Vaneoversikt hjelper deg med å lage og beholde gode vaner. + Lag noen nye vaner + Hver dag, etter du utfører vanen din, sett en hake på appen. + Fortsett med å gjøre det + Vaner utført konsekvent over lang tid vil få en hel stjerne. + Hold oversikt over fremgangen din + Detaljerte grafer viser deg hvordan vanene dine forbedrer seg over tid. + 15 minutter + 30 minutter + 1 time + 2 timer + 4 timer + 8 timer + 1 døgn + Veksl med enkelttrykk + Sett på haker med et enkelttrykk i stedet for å tykke og holde. Mer praktisk, men kan forårsake utilsiktede vekslinger. + Snooze-intervall på påminnelser + Vurdér denne appen på Google Play + Send tilbakemelding til utviklerne + Vis kildekode på GitHub + Se på appintroduksjon + Lenker + Oppførsel + Navn + Innstillinger + Snooze-intervall + Visste du at? + For å sortere innleggene, trykk og hold på navnet til vanen, deretter dra den til det korrekte stedet. + Du kan se flere dager ved å sette telefonen din i landskapsmodus. + Slett vaner + Vanene vil bli slettet permanent. Denne handlingen kan ikke angres. + Vane slettet / ikke funnet + Helger + Hverdager + Hvilken som helst dag i uken + Velg dager + Eksportér som CSV + Ferdig + Fjern + Velg timer + Velg minutter + Om + Translatører + Utviklere + Versjon %s + Hyppighet + Hake + Styrke + Beste gjentakelser + Nåværende gjentakelse + Repetisjonsantall + Siste %d dager + Siste %d uker + Siste %d måneder + Siste %d år + Alltid + Hver dag + Hver uke + 2 ganger i uken + 5 ganger i uken + Tilpasset … + Hjelp og FAQ + Mislyktes i å eksportere data. + Mislyktes i å importere data. + Fil ikke gjenkjent. + Vaner suksessfullt importert. + Hel sikkerhetskopi suksessfullt eksportert. + Importér data + Eksportér hel sikkerhetskopi + Støtter hele sikkerhetskopier eksportert av denne appen, i tillegg til filer generert av Tickmate, HabitBull, og Rewire. Sjekk ut FAQ for mer informasjon. + Genererer filer som kan bli åpnet av regnearkprogrammer som Microsoft Excel og OpenOffice Calc. Disse filene kan ikke importeres tilbake. + Genererer en fil som inneholder all dataen din. Denne filen kan ikke importeres tilbake. + Mislyktes i å generere feilrapport. + Generér feilrapport + Feilsøkning + Hjelp med å oversette denne appen + Nattmodus + Bruk batterisparing i nattmodus + Bytter ut grå bakgunner med helt svarte i nattmodus. Reduserer betteribruk hos telefoner med AMOLED-skjerm. + Grensesnitt + Omvendt dagsrekkefølge + Vis dager i omvendt rekkefølge på hovedmenyen + Dag + Uke + Måned + Kvarter + År + Totalt + gang på + Hver %d. dag + Hver %d. uke + Hver %d. måned + Poengsum + Påminnelseslyd + Ingen + Filtrér + Gjem fullførte + Gjem arkiverte + Gjør varslinger klebrige + Forhindrer varslinger fra å bli sveipet vekk. + Reparér database + Database reparert. + Usjekk + Veksl + Handling + Vane + Sortér + Manuelt + Etter navn + Etter farge + Etter poengsum + Last ned + Eksportér diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 00942bfa6..352e98215 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -43,7 +43,7 @@ Очистить Вопрос (пример: \"Делали ли вы сегодня зарядку?\") Повторять - раза за + раз в дней Напоминание Отменить diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index e1b2983eb..dc6217f97 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -19,79 +19,82 @@ ~ with this program. If not, see . --> + Loop Habit Tracker Vanor Inställningar Redigera Ta bort Arkivera - Avarkivera + Ångra arkivering Lägg till vana Byt färg Vana skapad - Vana borttagen - Vana återställd + Vanor borttagna + Vanor återställda Inget att ångra - Inget att göra om + Inget att ångra Vana ändrad - Vana ändrad tillbaka + Vana ändrad Vanor arkiverade - Vanor avakriverade + Vanor återställda Översikt Vanestyrka Historik Rensa Fråga (Har du ... idag?) Upprepa - gånger under - dag + gånger i + dagar Påminnelse Avbryt Spara - Framgångar + Streaks Du har inga aktiva vanor - Tryck och håll in för att markera och avmarkera + Tryck-och-håll för att markera eller avmarkera Av - Namn får inte vara blank. - Nummer måste vara positiv. - Du kan ha max en upprepning per dag + Namn får inte vara tomt. + Talet måste vara positivt. + Du kan ha högst en repetition per dag Skapa vana Redigera vana Markera Senare Välkommen - Loop Habit Tracker Hjälper dig att skapa och underhålla bra vanor. + Loop Habit Tracker hjälper dig att skapa och bibehålla goda vanor. Skapa några nya vanor - Varje dag, efter att du utfört dina vanor, lägg till en markering i appen. - Fortsätt göra det - Vanor som utförs konstant över en lång period kommer att tjäna dig en full stjärna. + Efter varje dag när du utfört din vana så markerar du den i appen. + Fortsätt att göra det + Vanor som du utför konsekvent över en lång period ger dig en stjärna. Följ dina framsteg - Detaljerade grafer visar dig hur dina vanor har utvecklats över tid. + Detaljerade grafer visar dig hur dina vanor förbättras över tid. 15 minuter 30 minuter 1 timme 2 timmar 4 timmar 8 timmar - Aktivera repetitioner med kort tryckning - Mer bekvämt, men kan orsaka oavsiktliga aktiveringar. - Snooza intervall på påminnelsen - Betygsätt denna app på Google Play - Skicka feedback till utvecklaren - Visa källkod på Github - Visa appintroduktion + 24 timmar + Växla med snabb tryckning + Markera genom att trycka snabbt istället för att hålla ner. Mer bekvämt, men kan orsaka oavsiktliga aktiveringar. + Standard tid på snooze + Betygsätt oss på Google Play + Skicka feedback till utvecklarna + Visa källkod på GitHub + Visa introduktion till appen Länkar Beteende Namn Inställningar - Snooze intervall - Visste du? - För att arrangera inlägg, tryck och håll in på namnet av inlägget, dra den sedan till rätt plats. - Du kan se fler dagar genom att hålla telefon i landskapsläge. + Intervall snooze + Visste du att? + För att flytta på poster - tryck och håll nere på den vana du vill flytta, sedan flytta den till önskad plats. + Du kan se mer dagar genom att hålla telefonen i landskapsläge. Ta bort vanor - Vanorna kommer att tas bort permanent. Denna åtgärd kan inte ångras. + Vanorna kommer att tas bort permanent. Du kan inte ångra detta. + Vana borttagen / hittades inte Helger - Veckodagar + Måndag till fredag Vilken dag som helst Välj dagar Exportera data (CSV) @@ -102,11 +105,12 @@ Om Översättare Utvecklare + Version %s Frekvens - Check + Avklarat/ej avklarat Styrka - Bästa framgångar - Nuvarande framgång + Bästa streak + Nuvarande streak Antal repetitioner Sista %d dagarna Sista %d veckorna @@ -119,18 +123,56 @@ 5 gånger per vecka Anpassa ... Hjälp och FAQ - Misslyckades med att exportera data. - Misslyckades med att importera data. - Fil inte igenkänd. - Vanor importerade. - Backup har exporterats. + Det gick inte att exportera. + Det gick inte att importera. + Kunde inte känna igen filen. + Import av dina vanor lyckades. + Fullständig backup har exporterats. Importera data Exportera backup - Stöder backuper exporterade av den här appen, så väl filer genererade av Tickmate, Habitbull eller Rewire. Läs FAQ för mer information. - Genererade filer kan öppnas av mjukvara som Microsoft Excel eller Openoffice Calc. Denna filen kan inte importeras tillbaka. - Genererar en fil som innehåller all din data. Den här filen kan importeras tillbaka. - Misslyckades med att generera bugrapport. - Generera bugrapport + Appen har stöd att importera data från denna app, men även backuper från Tickmate, Habitbull eller Rewire. Läs FAQ om du vill meta mer. + Filerna genererade kan öppnas i Microsoft Excel eller OpenOffice Calc. Däremot kan denna fil inte importeras tillbaka till appen. + Generera en fil som innehåller all din data. Denna fil kan importas tillbaka till appen. + Det gick inte att generera felrapport. + Generera felrapport Felsökning + Hjälp till att översätta appen + Nattläge + Använd svart färg i nattläge + Ersätter gråa bakgrunder med svart färg i nattläge. Reducerar batterianvändningen för telefoner med AMOLED-skärm. + Gränssnitt + Omvänd ordning på dagar + Visar dagar i omvänd ordning i appen + Dag + Vecka + Månad + Kvartal + År + Totalt + gånger var + Var %d:e dag + Var %d:e vecka + Var %d:e månad + Poäng + Påminnelseljud + Inget + Filtrera + Dölj slutförda + Dölj arkiverade + Gör notifikationer permanenta + Förhindrar att notifikationer stängs. + Reparera databas + Databasen reparerad. + Avmarkera + Växla + Åtgärd + Vana + Sortera + Manuellt + Efter namn + Efter färg + Efter poäng + Ladda ner + Exportera diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index f0ba8ce69..b9f926409 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -19,7 +19,7 @@ ~ with this program. If not, see . --> - Loop Alışkanlık Takip + Döngü Alışkanlık Takibi Alışkanlıklar Ayarlar Düzenle @@ -30,11 +30,11 @@ Renk Değiştir Alışkanlık oluşturuldu. Alışkanlık silindi. - Alışkanlık - Geri alınacak birşey yok. - Tekrar yapılacak birşey yok. - Alışkanlık değişti. - Alışkanlık eski haline getirildi. + Alışkanlıklar geri getirildi + Geri alınacak bir şey yok + Tekrar edilecek bir şey yok + Alışkanlık değişti + Alışkanlık eski haline getirildi Alışkanlık arşivlendi. Alışkanlık arşivden çıkarıldı. Genel bakış @@ -92,6 +92,7 @@ Cihazını yatay tutarak daha fazla gün görebilirsin. Alışkanlıkları Sil Alışkanlıklar kalıcı olarak silinecek. Bu eylem geri alınamaz. + Alışkanlık silinmiş yada bulunamadı Hafta sonları Pazartesinden Cumaya Haftanın herhangi bir günü @@ -147,6 +148,7 @@ Ay 3 Ay Yıl + Tümü kez Her %d gün @@ -155,11 +157,15 @@ Puan Hatırlatma sesi Sessiz + Filtre Tamamlananları gizle Arşivlenenleri gizle + Bildirimleri kalıcı yap + Bildirimin kaydırılarak götürülmesini engelle. Verıtabanını onar Verıtabanı onarıldı. Yapmadım + Değiştir Eylem Alışkanlık Sırala diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 33bead31d..0937c381a 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -25,7 +25,7 @@ Змінити Вилучити Архівувати - Повернути з архіву + Розархівувати Додати звичку Змінити колір Звичку створено diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 185e48d64..585663c45 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -46,7 +46,7 @@ 次每 提醒 - 放棄 + 取消 保存 記錄 你還沒有任何習慣 @@ -74,6 +74,7 @@ 2小時 4小時 8小時 + 24 小時 短按來記錄習慣 但有可能造成意外記錄 提醒延遲間隔 @@ -91,6 +92,7 @@ 把手機橫放可以看到更多天數 刪除 習慣會被永久刪除,而且該操作不可恢復 + 習慣已刪除/找不到 周末 工作日 每天 @@ -120,7 +122,7 @@ 每週兩次 每週五次 自訂週期 - 幫助&amp;常見問題 + 幫助& 常見問題 輸出資料失敗 輸入資料失敗 無法辨識 @@ -146,6 +148,7 @@ + 總計 次每 每 %d 天 @@ -154,4 +157,22 @@ 分數 提醒音效 + 篩選 + 隱藏已完成的習慣 + 隱藏已封存習慣 + 使提醒保持常駐 + 防止提醒被滑動移除 + 修復資料庫 + 資料庫已修復 + 取消選取 + 切換 + 操作 + 習慣 + 排序 + 手動 + 根據名稱 + 根據顏色 + 根據分數 + 下載 + 匯出 diff --git a/app/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java b/app/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java index aabf6527a..ae229f1b1 100644 --- a/app/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java +++ b/app/src/test/java/org/isoron/uhabits/receivers/ReminderControllerTest.java @@ -65,7 +65,7 @@ public void testOnSnooze() throws Exception { Habit habit = mock(Habit.class); long now = timestamp(2015, 1, 1); - DateUtils.setFixedLocalTime(now); + DateUtils.setFixedLocalTime(DateUtils.removeTimezone(now)); when(preferences.getSnoozeInterval()).thenReturn(15L); controller.onSnooze(habit);