From ad0f4fc55b50d91ec0346f9ff5ca3e25175f6fcd Mon Sep 17 00:00:00 2001 From: 10cents Date: Fri, 28 Jun 2019 16:39:28 +0200 Subject: [PATCH 01/43] app_short_description --- app/src/main/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 989c32889..ef3fd5b38 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -237,7 +237,7 @@ Simpel kalender Pro - Begivenheder & påmindelser - A beautiful calendar without ads or weird permissions. + En skøn kalender uden reklamer og underlige tilladelser. Simpel kalender Pro kan tilpasses helt efter din smag, offline kalender er designet til at gøre præcis hvad en kalender skal kunne. Ingen indviklede funktioner, ingen overflødige tilladelser og ingen reklamer! From 4c9ae180cfb2b7073f6330637efeac39f021b0fb Mon Sep 17 00:00:00 2001 From: spkprs Date: Fri, 28 Jun 2019 18:28:09 +0300 Subject: [PATCH 02/43] UPD+FIX --- app/src/main/res/values-el/strings.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 7905bc467..8c9bcd801 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -1,6 +1,6 @@ - Simple Calendar + Απλό Ημερολόγιο Ημερολόγιο Αλλαγή προβολής Ημερήσια προβολή @@ -38,9 +38,9 @@ Εβδομαδιαία Μηνιαία Ετήσια - weeks - months - years + Εβδομάδες + Μήνες + Έτη Επανάληψη μέχρι Για πάντα Η εκδήλωση είναι επαναλαμβανόμενη @@ -53,7 +53,7 @@ Επαναλάβετε μέχρι μια ημερομηνία Παύση επαναλήψεων μετά από x εμφανίσεις Επαναλάβετε για πάντα - times + Φορές Επανάληψη Επανάληψη ενεργή Κάθε μέρα @@ -239,16 +239,16 @@ Απλό Ημερολόγιο Pro - Εκδηλώσεων & Ειδοποιήσεων - A beautiful calendar without ads or weird permissions. + Ένα όμορφο ημερολόγιο χωρίς διαφημίσεις ή περιττές άδειες. - Simple Calendar Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις! + Το Απλό Ημερολόγιο Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις! - Είτε οργανώνετε ένα ή επαναλαμβανόμενα γεγονότα, γενέθλια, επετείους, επαγγελματικές συναντήσεις, ραντεβού ή οτιδήποτε άλλο, το Simple Calendar Pro καθιστάται να παραμένει εύκολα οργανωμένο. Με μια απίστευτη ποικιλία επιλογών προσαρμογής μπορείτε να προσαρμόσετε τις υπενθυμίσεις συμβάντων, τους ήχους ειδοποιήσεων, τα γραφικά στοιχεία ημερολογίου και τον τρόπο εμφάνισης της εφαρμογής. + Είτε οργανώνετε ένα ή επαναλαμβανόμενα γεγονότα, γενέθλια, επετείους, επαγγελματικές συναντήσεις, ραντεβού ή οτιδήποτε άλλο, το Απλό Ημερολόγιο Pro καθιστάται να παραμένει εύκολα οργανωμένο. Με μια απίστευτη ποικιλία επιλογών προσαρμογής μπορείτε να προσαρμόσετε τις υπενθυμίσεις συμβάντων, τους ήχους ειδοποιήσεων, τα γραφικά στοιχεία ημερολογίου και τον τρόπο εμφάνισης της εφαρμογής. Καθημερινές, εβδομαδιαίες και μηνιαίες προβολές κάνουν τον έλεγχο των επερχόμενων εκδηλώσεων & ραντεβού παιχνιδάκι. Μπορείτε ακόμη και να δείτε τα πάντα ως μια απλή λίστα γεγονότων και όχι σε προβολή ημερολογίου, ώστε να γνωρίζετε ακριβώς τι έρχεται στη ζωή σας και πότε. ---------------------------------------------------------- - Simple Calendar Pro – Χαρακτηριστικά & Οφέλη + Απλό Ημερολόγιο Pro – Χαρακτηριστικά & Πλεονεκτήματα ---------------------------------------------------------- ✔️ Δεν υπάρχουν διαφημίσεις ή ενοχλητικά αναδυόμενα παράθυρα @@ -270,7 +270,7 @@ ✔️ Χρησιμοποιήστε το ως προσωπικό ή επιχειρηματικό ημερολόγιο ✔️ Επιλέξτε μεταξύ υπενθυμίσεων & email για να σας ειδοποιήσει για ένα συμβάν - ΛΗΨΗ SIMPLE CALENDAR PRO – ΕΚΤΟΣ ΣΥΝΔΕΣΗΣ ΚΑΙ ΧΩΡΊΣ ΔΙΑΦΗΜΗΣΕΙΣ! + ΛΗΨΗ ΑΠΛΟ ΗΜΕΡΟΛΟΓΙΟ Pro – ΕΚΤΟΣ ΣΥΝΔΕΣΗΣ ΚΑΙ ΧΩΡΊΣ ΔΙΑΦΗΜΗΣΕΙΣ! Δείτε την πλήρη σειρά των Simple Tools εδώ: https://www.simplemobiletools.com From f47ca78a04c63e7e83b17a7dc955678cde92ab29 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sat, 29 Jun 2019 01:16:53 +0200 Subject: [PATCH 03/43] Dutch --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a28acf141..1af8ff5b3 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -239,7 +239,7 @@ Eenvoudige Agenda Pro - Afspraken & Herinneringen - A beautiful calendar without ads or weird permissions. + Een stijlvolle agenda zonder advertenties of onnodige machtigingen. Eenvoudige Agenda Pro is een volledig aan te passen offline agenda, ontwikkeld om precies te doen waar een agenda voor bedoeld is. Geen ingewikkelde poespas of onnodige machtigingen, en zonder advertenties! From dd49dea351149ec5040293b29f419a5d75e6b59c Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 30 Jun 2019 23:12:08 +0200 Subject: [PATCH 04/43] reverting Room back to 2.0.0 --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5f502acde..ee40a0fc9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,7 +62,7 @@ dependencies { implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' - kapt 'androidx.room:room-compiler:2.1.0' - implementation 'androidx.room:room-runtime:2.1.0' - annotationProcessor 'androidx.room:room-compiler:2.1.0' + kapt 'androidx.room:room-compiler:2.0.0' + implementation 'androidx.room:room-runtime:2.0.0' + annotationProcessor 'androidx.room:room-compiler:2.0.0' } From aa16c1ee51b65fe376e4651e625d1de660bbda97 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 30 Jun 2019 23:16:49 +0200 Subject: [PATCH 05/43] properly show events starting and ending at midnight on the monthly view --- .../com/simplemobiletools/calendar/pro/views/MonthView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt index ddf7dffa6..9a1d52c60 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt @@ -346,6 +346,6 @@ class MonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(con private fun isDayValid(event: Event, code: String): Boolean { val date = Formatter.getDateTimeFromCode(code) - return Formatter.getDateTimeFromTS(event.endTS) == Formatter.getDateTimeFromTS(date.seconds()).withTimeAtStartOfDay() + return event.startTS != event.endTS && Formatter.getDateTimeFromTS(event.endTS) == Formatter.getDateTimeFromTS(date.seconds()).withTimeAtStartOfDay() } } From cbf4736ecc4152259033074bf5578f02dc0a51cd Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 30 Jun 2019 23:20:34 +0200 Subject: [PATCH 06/43] updating commons to 5.14.3 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ee40a0fc9..1b1998360 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.14.2' + implementation 'com.simplemobiletools:commons:5.14.3' implementation 'joda-time:joda-time:2.10.1' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' From 8123ff03574692160735f64f3cda400e415c5c55 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 30 Jun 2019 23:22:57 +0200 Subject: [PATCH 07/43] update version to 6.5.3 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1b1998360..c6f2914f5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 152 - versionName "6.5.2" + versionCode 153 + versionName "6.5.3" multiDexEnabled true setProperty("archivesBaseName", "calendar") } From b008b43dfad624d4b65e80b9b48cc6bb9414ec5d Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 30 Jun 2019 23:23:03 +0200 Subject: [PATCH 08/43] updating changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddf84b734..2cc282492 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog ========== +Version 6.5.3 *(2019-06-30)* +---------------------------- + + * Added some translation and stability improvements + Version 6.5.2 *(2019-06-28)* ---------------------------- From 3a2967a1465c681e4afbb015c591b829a39ec10c Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 1 Jul 2019 19:07:22 +0200 Subject: [PATCH 09/43] updating some event repetition exceptions handling --- app/build.gradle | 6 +++--- .../calendar/pro/helpers/Converters.kt | 10 +++++++++- .../calendar/pro/helpers/EventsHelper.kt | 3 ++- .../calendar/pro/interfaces/EventsDao.kt | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c6f2914f5..cb5c04df9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -62,7 +62,7 @@ dependencies { implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' - kapt 'androidx.room:room-compiler:2.0.0' - implementation 'androidx.room:room-runtime:2.0.0' - annotationProcessor 'androidx.room:room-compiler:2.0.0' + kapt 'androidx.room:room-compiler:2.1.0' + implementation 'androidx.room:room-runtime:2.1.0' + annotationProcessor 'androidx.room:room-compiler:2.1.0' } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Converters.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Converters.kt index 3ff78610d..45de469a6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Converters.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/Converters.kt @@ -9,7 +9,15 @@ class Converters { private val stringType = object : TypeToken>() {}.type @TypeConverter - fun jsonToStringList(value: String) = gson.fromJson>(value, stringType) + fun jsonToStringList(value: String): ArrayList { + val newValue = if (value.isNotEmpty() && !value.startsWith("[")) { + "[$value]" + } else { + value + } + + return gson.fromJson(newValue, stringType) + } @TypeConverter fun stringListToJson(list: ArrayList) = gson.toJson(list) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt index 3f488321e..356d9b660 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/EventsHelper.kt @@ -214,7 +214,8 @@ class EventsHelper(val context: Context) { var repetitionExceptions = parentEvent.repetitionExceptions repetitionExceptions.add(Formatter.getDayCodeFromTS(occurrenceTS)) repetitionExceptions = repetitionExceptions.distinct().toMutableList() as ArrayList - eventsDB.updateEventRepetitionExceptions(repetitionExceptions, parentEventId) + + eventsDB.updateEventRepetitionExceptions(repetitionExceptions.toString(), parentEventId) context.scheduleNextEventReminder(parentEvent, false) if (addToCalDAV && config.caldavSync) { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt index 0c6749744..5a06904ce 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt @@ -103,7 +103,7 @@ interface EventsDao { fun updateEventRepetitionLimit(repeatLimit: Long, id: Long) @Query("UPDATE events SET repetition_exceptions = :repetitionExceptions WHERE id = :id") - fun updateEventRepetitionExceptions(repetitionExceptions: ArrayList, id: Long) + fun updateEventRepetitionExceptions(repetitionExceptions: String, id: Long) @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertOrUpdate(event: Event): Long From ae5680f1d308e93388c599108426f34633ec2e84 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 1 Jul 2019 19:13:06 +0200 Subject: [PATCH 10/43] update version to 6.5.4 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cb5c04df9..42579494e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 153 - versionName "6.5.3" + versionCode 154 + versionName "6.5.4" multiDexEnabled true setProperty("archivesBaseName", "calendar") } From 29abfc542147ebce1a7e993a5c2676d637d19641 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 1 Jul 2019 19:13:14 +0200 Subject: [PATCH 11/43] updating changelog --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cc282492..c5e4838db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog ========== +Version 6.5.4 *(2019-07-01)* +---------------------------- + + * Adding some stability improvements + Version 6.5.3 *(2019-06-30)* ---------------------------- From 5826eaa8650ab0dbf545aa804aaffdda6341aa31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Marques?= Date: Mon, 1 Jul 2019 23:17:21 +0100 Subject: [PATCH 12/43] Update strings.xml --- app/src/main/res/values-pt/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index eb2c8087a..f5b7c6dae 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -237,9 +237,9 @@ - Simple Calendar Pro - Events & Reminders + Simple Calendar Pro - Eventos e lembretes - A beautiful calendar without ads or weird permissions. + Um calendário sem anúncios nem permissões desnecessárias. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! @@ -248,7 +248,7 @@ Daily, weekly and monthly views make checking your upcoming events & appointments a breeze. You can even view everything as a simple list of events rather than in calendar view, so you know exactly what’s coming up in your life and when. ---------------------------------------------------------- - Simple Calendar Pro – Features & Benefits + Simple Calendar Pro – Funcionalidades ---------------------------------------------------------- ✔️ No ads or annoying popups @@ -270,9 +270,9 @@ ✔️ Use as a personal calendar or a business calendar ✔️ Choose between reminders & email notifications to alert you about an event - DOWNLOAD SIMPLE CALENDAR PRO – THE SIMPLE OFFLINE CALENDAR WITH NO ADS! + DESCARREGUAR SIMPLE CALENDAR PRO – O CALENDÁRIO SIMPLES QUE NÃO TEM ANÚNCIOS! - Check out the full suite of Simple Tools here: + Consulte todas as aplicações Simple Tools aqui: https://www.simplemobiletools.com Facebook: From 35efd8675c3bf4cfc6a8e03491a4be1d03f7aa76 Mon Sep 17 00:00:00 2001 From: abc0922001 Date: Tue, 2 Jul 2019 13:57:57 +0800 Subject: [PATCH 13/43] Update Traditional Chinese language --- app/src/main/res/values-zh-rTW/strings.xml | 50 +++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 558a34814..c51523861 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -11,7 +11,7 @@ 你近期似乎沒有任何活動。 前往今天 前往日期 - 嘿\n\n你似乎從舊版免費應用程式升級了。你必須手動搬移儲存在本機端的活動,透過匯出.ics檔案再接著匯入。你可以在主畫面選單中,找到 匯出/匯入 兩個按鈕。\n\n然後你能解除安裝舊版了,在應用程式設定的頂端有個\'升級至專業版\'按鈕。你只需要重置你的應用程式設定。\n\n感謝! + 嘿\n\n你似乎從舊版免費應用程式升級了。你必須手動搬移儲存在本機端的活動,透過匯出 .ics 檔案再接著匯入。你可以在主畫面選單中,找到 匯出/匯入 兩個按鈕。\n\n然後你能解除安裝舊版了,在應用程式設定的頂端有個\'升級至專業版\'按鈕。你只需要重置你的應用程式設定。\n\n感謝! 月曆 @@ -51,13 +51,13 @@ 只更新選擇的事件 更新全部事件 重複直到某日 - 經過x次後停止重複 + 經過 x 次後停止重複 永遠重複 重複 重複於 每天 - On selected days + 在選定的日期 同一天 最後一天 重複每月同一天 @@ -112,12 +112,12 @@ 匯入活動 匯出活動 - 從.ics檔案匯入活動 - 匯出活動成.ics檔案 + 從 .ics 檔案匯入活動 + 匯出活動成 .ics 檔案 預設活動類型 也匯出過去的活動 包含活動類型 - 檔案名稱 (不含.ics) + 檔案名稱 (不含 .ics ) 覆寫檔案內的活動類型 @@ -140,14 +140,14 @@ 選擇活動類型 受影響的活動移到預設活動類型 受影響的活動永久移除 - 想移除CalDAV行事曆,你必須取消同步 + 想移除 CalDAV 行事曆,你必須取消同步 節日 添加節日 國定節日 宗教節日 - 節日已成功匯入"節日"活動類型 + 節日已成功匯入「節日」活動類型 匯入一些活動失敗 匯入節日失敗 @@ -225,30 +225,30 @@ 休息時間 - 我如何移除用[添加節日]按鈕所匯入的節日? + 我如何移除用「添加節日」按鈕所匯入的節日? 以這方式建立的節日,會被加進一個叫做「節日」的新活動類型。 你可以到[設定] -> [管理活動類型],長按特定的活動類型,然後選擇垃圾桶來刪除。 - 我可以透過Google日曆或其它支援CalDAV的服務來同步我的活動嗎? - 行的,只要打開程式設定內的[CalDAV同步],然後選擇你要同步的行事曆。然而你需要一些第三方應用程式來處理裝置和伺服器之間的同步。 - 如果你要同步Google日曆,他們官方的行事曆程式就能做到了。而其它行事曆,你需要有第三方同步工具才行,像是DAVdroid。 + 我可以透過 Google 日曆或其它支援 CalDAV 的服務來同步我的活動嗎? + 行的,只要打開程式設定內的「CalDAV 同步」,然後選擇你要同步的行事曆。然而你需要一些第三方應用程式來處理裝置和伺服器之間的同步。 + 如果你要同步 Google 日曆,他們官方的行事曆程式就能做到了。而其它行事曆,你需要有第三方同步工具才行,像是 DAVdroid。 我看到了視覺的提醒,但沒聽到音效。我能怎麼辦? 不只是顯示實際的提醒,播放音效也受到系統極大的影響。如果你聽不到任何聲音,試著到應用程式設定, 按\"用於提醒的音源串流\"選項,然後更改成不同數值。如果還是沒有用,檢查你的音量設定,指定串流是不是靜音的。 - 簡易行事曆 Pro - 活動&約會 + 簡易行事曆 Pro - 活動和約會 - A beautiful calendar without ads or weird permissions. + 一個沒有廣告或奇怪的權限而且美麗的日曆。 - 簡易行事曆Pro是一個高度自訂化,完全旨在於行事曆應該做什麼的離線行事曆。 沒有複雜的功能、非必要的權限和廣告! + 簡易行事曆Pro是一個高度自訂化,完全旨在於行事曆應該做什麼的離線行事曆。 沒有複雜的功能、非必要的權限和廣告! - 無論您是要安排單一還是反復的活動、生日、紀念日、業務會議、約會或任何其他活動,簡易行事曆Pro都能讓您輕鬆維持安排。透過多樣化的自訂選項,您可以自訂活動提醒、通知音效、行事曆小工具和應用程式外觀。 + 無論您是要安排單一還是反復的活動、生日、紀念日、業務會議、約會或任何其他活動,簡易行事曆 Pro 都能讓您輕鬆維持安排。透過多樣化的自訂選項,您可以自訂活動提醒、通知音效、行事曆小工具和應用程式外觀。 - 每日、每週、每月的檢視模式使您輕易就確認即將到來的活動&約會。您甚至能夠以簡單的活動列表來瀏覽全部,而不是行事曆畫面,所以您完全知道生活中何時會發生什麼事。 + 每日、每週、每月的檢視模式使您輕易就確認即將到來的活動和約會。您甚至能夠以簡單的活動列表來瀏覽全部,而不是行事曆畫面,所以您完全知道生活中何時會發生什麼事。 ---------------------------------------------------------- - 簡易行事曆Pro – 特色 & 優點 + 簡易行事曆 Pro – 特色和優點 ---------------------------------------------------------- ✔️ 沒有廣告和討厭的彈出畫面 @@ -256,12 +256,12 @@ ✔️ 只需要最低限度的權限 ✔️ 著重於簡單 – 做行事曆該做的! ✔️ 開放原始碼 - ✔️ 完整自訂化主題&行事曆/活動小工具 - ✔️ 翻譯成29種語言 - ✔️ 將設定匯出成.txt檔案,以匯入到別的裝置 - ✔️ 支援CalDAV行事曆同步,來跨裝置同步活動 + ✔️ 完整自訂化主題和行事曆/活動小工具 + ✔️ 翻譯成 29 種語言 + ✔️ 將設定匯出成 .txt 檔案,以匯入到別的裝置 + ✔️ 支援 CalDAV 行事曆同步,來跨裝置同步活動 ✔️ 在行事曆上有每日、每週、每月、每年及活動瀏覽的檢視方式 - ✔️ 支援透過.ics檔案來匯出&匯入活動 + ✔️ 支援透過 .ics 檔案來匯出和匯入活動 ✔️ 設置多個活動提醒,自訂活動提醒音效和震動 ✔️ 提醒有延遲選項 ✔️ 輕鬆添加假日、生日、紀念日和約會 @@ -270,9 +270,9 @@ ✔️ 用做於個人行事曆或業務行事曆 ✔️ 在提醒和電子信箱通知之間選擇,以提醒您關於活動的訊息 - 下載簡易行事曆PRO – 沒有廣告的簡易離線行事曆! + 下載簡易行事曆 PRO – 沒有廣告的簡易離線行事曆! - 於此查看簡易工具系列全套: + 於此查看簡易工具系列全套: https://www.simplemobiletools.com Facebook: From f694292a7b4becc08158479663c3b40a37744ef6 Mon Sep 17 00:00:00 2001 From: en2sv Date: Sun, 7 Jul 2019 20:24:13 +0200 Subject: [PATCH 14/43] Update Swedish translation --- app/src/main/res/values-sv/strings.xml | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index daff9cea1..d762e79d3 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -45,10 +45,10 @@ Alltid Händelsen är återkommande Markeringen innehåller återkommande händelser - Ta bara bort den markerade förekomsten + Ta bara bort den valda förekomsten Ta bort denna och alla framtida förekomster Ta bort alla förekomster - Uppdatera bara den markerade förekomsten + Uppdatera bara den valda förekomsten Uppdatera alla förekomster Upprepa till ett datum Sluta upprepa efter x förekomster @@ -57,7 +57,7 @@ Upprepa Upprepa på Varje dag - På markerade dagar + På valda dagar Samma dag Den sista dagen Upprepa på samma dag varje månad @@ -85,29 +85,29 @@ Födelsedagar Lägg till kontakters födelsedagar Inga födelsedagar hittades - No new birthdays have been found + Inga nya födelsedagar hittades Födelsedagarna har lagts till Årsdagar Lägg till kontakters årsdagar Inga årsdagar hittades - No new anniversaries have been found + Inga nya årsdagar hittades Årsdagarna har lagts till Påminnelse - före + innan Lägg till en annan påminnelse Händelsepåminnelser - Add another attendee - My status: - Going - Not going - Maybe going - Invited + Lägg till en annan deltagare + Min status: + Kommer + Kommer inte + Kommer kanske + Inbjuden Importera händelser @@ -188,7 +188,7 @@ Standardvaraktighet Senast använda Annan tid - Highlight weekends on some views + Markera veckoslut i vissa vyer CalDAV @@ -220,7 +220,7 @@ Möte med Johan I trädgården Biblioteket - Lunch med Marie + Lunch med Maria På stranden Kaffedags From 42e6d662e30bf81560f3f44daf746e368a28fde2 Mon Sep 17 00:00:00 2001 From: AO-LocLab <50411912+AO-LocLab@users.noreply.github.com> Date: Mon, 8 Jul 2019 17:34:26 -0400 Subject: [PATCH 15/43] Update strings.xml Typographical changes. Changed translated app name from "Agenda simple" to "Simple Agenda" to be consistent with other Simple app names and closer to the English name. Changed all "calendrier" to "agenda". Some string reviews. --- app/src/main/res/values-fr/strings.xml | 121 +++++++++++++------------ 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 91aaee56c..6c87d9ed0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,30 +1,31 @@ - Agenda simple + Simple agenda Agenda Changer de vue Vue quotidienne Vue hebdomadaire Vue mensuelle Vue annuelle - Liste simple d\'événements - Il semblerait que vous n\'ayez aucun événement à venir. - Aller à aujourd\'hui - Aller à un jour - Bonjour,\n\nIl semblerait que vous ayez mis à jour depuis l\'ancienne application gratuite. Vous devez déplacer les évènements enregistrés localement manuellement en exportant un fichier .ics, puis en l\'important. Vous pouvez trouver les boutons export/import dans le menu de l\'écran principal.\n\nVous pourrez ensuite désinstaller l\'ancienne version, qui a un bouton \'Mise à jour vers Pro\' en haut des paramètres de l\'application. Vous aurez ensuite juste à réinitialiser les paramètres de l\'application.\n\nMerci ! + Liste simple d\’événements + Il semblerait que vous n\’ayez aucun événement à venir. + Aller vers aujourd\’hui + Aller vers un date + Bonjour,\n\nIl semblerait que vous soyez passé de l\’ancienne appli gratuite à la Pro. Vous devez migrer manuellement les évènements enregistrés localement manuellement en exportant un fichier .ics, puis en l\’important. Vous trouverez les boutons Exporter/Importer dans le menu de l\’écran principal.\n\nVous pourrez ensuite désinstaller l\’ancienne version, qui présente un bouton \'Passer à la version + Pro\' en haut des paramètres de l\’appli. Vous n\’aurez ensuite qu\’à réinitialiser les paramètres de l\’appli.\n\nMerci ! - Calendrier mensuel - Liste d\'événements du calendrier + agenda mensuel + Liste d\’événements de l\’agenda Événement - Éditer l\'événement + Éditer l\’événement Nouvel événement Créer un nouvel événement - Dupliquer l\'événement + Dupliquer l\’événement Le titre ne peut pas être vide - L\'événement ne peut pas se terminer plus tôt qu\'il ne commence + L\’événement ne peut pas se terminer plus tôt qu\’il ne commence Événement ajouté avec succès Événement ajouté avec succès Filtrer les événements par type @@ -41,16 +42,16 @@ semaines mois années - Répéter jusqu\'à + Répéter jusqu\’à Pour toujours - L\'événement est répétable + L\’événement est répétable La sélection contient des événements avec répétition - Supprimer seulement l\'occurrence sélectionnée + Supprimer seulement l\’occurrence sélectionnée Supprimer ceci et toutes les occurrences futures Supprimer toutes les occurrences - Mettre à jour seulement l\'occurrence sélectionnée + Mettre à jour seulement l\’occurrence sélectionnée Mettre à jour toutes les occurrences - Répéter jusqu\'à une date + Répéter jusqu\’à une date Arrêter de répéter après x occurrences Répéter éternellement fois @@ -84,22 +85,22 @@ Anniversaires Ajouter les anniversaires des contacts - Aucun anniversaire n\'a été trouvé + Aucun anniversaire n\’a été trouvé No new birthdays have been found Anniversaires ajoutés avec succès - Anniversaires d\'évènements - Ajouter des anniversaires d\'évènements de contact - Aucun anniversaire d\'évènements n\'a été trouvé + Anniversaires d\’évènements + Ajouter des anniversaires d\’évènements de contact + Aucun anniversaire d\’évènements n\’a été trouvé No new anniversaries have been found - Anniversaires d\'évènements ajoutés avec succès + Anniversaires d\’évènements ajoutés avec succès Rappel avant Ajouter un autre rappel - Rappels d\'événements + Rappels d\’événements Ajouter un autre participant @@ -112,13 +113,13 @@ Importer des événements Exporter des événements - Importer des événements depuis un fichier .ics + Importer des événements d\’un fichier .ics Exporter des événements vers un fichier .ics - Type d\'événement par défaut + Type d\’événement par défaut Exporter aussi les événements passés - Inclure les types d\'événement + Inclure les types d\’événement Nom de fichier (sans .ics) - Remplacer les types d\'événement dans le fichier + Remplacer les types d\’événement dans le fichier Titre @@ -130,46 +131,46 @@ Semaine - Type d\'événement + Type d\’événement Ajouter un nouveau type Éditer le type Un type avec ce titre existe déjà Couleur Événement ordinaire - Le type d\'événement par défaut ne peut pas être supprimé - Sélectionner un type d\'événement - Déplacer les événements affectés dans le type d\'événement par défaut + Le type d\’événement par défaut ne peut pas être supprimé + Sélectionner un type d\’événement + Déplacer les événements affectés dans le type d\’événement par défaut Supprimer de façon permanente les événements affectés - Pour supprimer un calendrier CalDAV vous devez le désynchroniser + Pour supprimer un agenda CalDAV vous devez le désynchroniser Jours fériés Ajouter des jours fériés Jours fériés nationaux Jours fériés religieux - Les vacances ont été importées avec succès dans le type d\'événement \"Vacances\" - L\'import de certains événements a échoué - L\'import des jours fériés a échoué + Les vacances ont été importées avec succès dans le type d\’événement « Vacances » + Échec d\’importation de certains événements + Échec d\’importation des jours fériés - Gestion des types d\'événements + Gestion des types d\’événements Jour de début de la vue hebdomadaire Jour de fin de la vue hebdomadaire Afficher les numéros de semaine Vibrer à la notification de rappel Son de rappel - Aucune application capable de configurer la sonnerie trouvée + Aucune appli n\’a été trouvée pour définir la sonnerie Aucune - Le jour ne peut pas se terminer plus tôt qu\'il ne débute + Le jour ne peut pas se terminer plus tôt qu\’il ne débute Synchronisation CalDAV - Listes d\'événements + Listes d\’événements Afficher les événements du passé - Remplacer la description de l\'événement par l\'emplacement + Remplacer la description de l\’événement par l\’emplacement Supprimer tous les événements - Êtes-vous sûr de vouloir supprimer tous les événements ? Cela laissera vos types d\'événements et autres paramètres intacts. + Êtes-vous sûr de vouloir supprimer tous les événements ? Cela laissera vos types d\’événements et autres paramètres intacts. Afficher une grille - Boucles de rappel jusqu\'à ce qu\'il soit rejeté - Diminuer l\'affichage des événements passés + Boucles de rappel jusqu\’à ce qu\’il soit rejeté + Diminuer l\’affichage des événements passés Evénements Flux audio utilisé par les rappels System @@ -180,7 +181,7 @@ Rappel par défaut 1 Rappel par défaut 2 Rappel par défaut 3 - Affichage à ouvrir à partir du widget de liste d\'événements + Affichage à ouvrir à partir du widget de liste d\’événements Dernière vue Nouveaux évènements Début par défaut @@ -192,17 +193,17 @@ CalDAV - Seléctionner les calendriers à synchroniser - Gérer les calendriers synchronisés + Seléctionner les agendas à synchroniser + Gérer les agendas synchronisés Stocker uniquement localement - Rafraîchir les calendriers CalDAV - Rafraîchissement… - Rafraîchissement terminé - Édition du calendrier échouée + Rafraîchir les agendas CalDAV + Actualisation… + L’actualisation est terminée + Échec d\’édition de l\’agenda Synchronisation… - Synchronisation terminée + La synchronisation est terminée Sélectionnez une couleur différente (peut être appliqué localement uniquement) - Vous n\'êtes pas autorisé à écrire dans l\'agenda sélectionné + Vous n\’êtes pas autorisé à écrire dans l\’agenda sélectionné @@ -225,15 +226,15 @@ Heure du café - Comment supprimer les congés importés par le bouton « Ajouter des jours fériés » ? - Les jours fériés ajoutés de cette manière sont du type « Jours fériés ». Vous pouvez aller dans « Paramètres » puis « Gestion des types d\'événements », - faire un appui long sur « Jours fériés » et les supprimer en appuyant sur la corbeille. - Puis-je synchroniser mes événements via Google Agenda, ou tout autre service proposant la synchronisation CalDAV ? - Oui, il faut juste activer l\'option « Synchronisation CalDAV » dans les paramètres de l\'application puis choisir les calendriers à synchroniser. Une application tierce pour gérer la synchronisation entre votre appareil et les serveurs sera par contre nécessaire. - Dans le cas d\'un calendrier Google Agenda, l\'application officielle fera l\'affaire. Pour les autres calendriers, il vous faudra une application comme DAVdroid par exemple. - Je vois les rappels visuels, mais n\'entends aucun son. Que puis-je faire? - Pas seulement l\'affichage du rappel, mais la lecture de l\'audio est également énormément affectée par le système. Si vous n’entendez aucun son, essayez d’entrer dans les paramètres de l’application, - en appuyant sur l\'option "Flux audio utilisé par les rappels" et en la modifiant. Si cela ne fonctionne toujours pas, vérifiez vos paramètres audio, si le flux particulier n’est pas mis en sourdine. + Comment supprimer les congés importés par le bouton « Ajouter des jours fériés » ? + Les jours fériés ajoutés de cette manière sont du type « Jours fériés ». Vous pouvez aller dans « Paramètres » puis « Gestion des types d\’événements », + faire un appui long sur « Jours fériés » et les supprimer en appuyant sur la corbeille. + Puis-je synchroniser mes événements par Google Agenda, ou tout autre service proposant la synchronisation CalDAV ? + Oui, il faut juste activer l\’option « Synchronisation CalDAV » dans les paramètres de l\’appli, puis choisir les agendas à synchroniser. Une appli tierce pour gérer la synchronisation entre votre appareil et les serveurs sera par contre nécessaire. + Dans le cas d\’un agenda Google, l\’appli officielle fera l\’affaire. Pour les autres agendas, il vous faudra une appli comme DAVdroid par exemple. + Je vois les rappels visuels, mais n\’entends aucun son. Que puis-je faire ? + Pas seulement l\’affichage du rappel, mais la lecture de l\’audio est également énormément affectée par le système. Si vous n’entendez aucun son, essayez d’entrer dans les paramètres de l’appli, + en appuyant sur l\’option « Flux audio utilisé par les rappels » et en la modifiant. Si cela ne fonctionne toujours pas, vérifiez vos paramètres audio, si le flux particulier n’est pas mis en sourdine. From 64bc60c6b3d834c013525a3c1e88d6800969437e Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 16 Jul 2019 14:32:35 +0200 Subject: [PATCH 16/43] updating commons, gradle, kotlin --- app/build.gradle | 2 +- build.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 42579494e..b019110c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.14.3' + implementation 'com.simplemobiletools:commons:5.15.1' implementation 'joda-time:joda-time:2.10.1' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' diff --git a/build.gradle b/build.gradle index 40be1ea6f..256ea0838 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.40' + ext.kotlin_version = '1.3.41' repositories { google() @@ -10,7 +10,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "de.timfreiheit.resourceplaceholders:placeholders:0.3" From df19b4e12e08ca921a212ea2dbb12b5f56c0f5e5 Mon Sep 17 00:00:00 2001 From: zmni Date: Thu, 18 Jul 2019 22:44:45 +0700 Subject: [PATCH 17/43] Update Indonesian string translation --- app/src/main/res/values-id/strings.xml | 32 +++++++++++++------------- app/src/main/res/values-in/strings.xml | 32 +++++++++++++------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 88acaa520..fd3292fbd 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -3,19 +3,19 @@ Simple Calendar Kalender Ubah tampilan - Tampilan harian - Tampilan mingguan - Tampilan bulanan - Tampilan tahunan - Daftar acara sederhana + Tampilan hari + Tampilan minggu + Tampilan bulan + Tampilan tahun + Daftar acara Sepertinya anda tidak memiliki acara yang akan datang. Buka hari ini Buka tanggal Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih! - Kalender bulanan - Daftar acara kalender + Bulan + Daftar acara Acara @@ -46,7 +46,7 @@ Acara berulang Acara yang dipilih berisi acara yang berulang Hapus acara ini saja - Hapus acara ini dan semua perulangannya di masa depan + Hapus acara ini dan semua perulangannya Hapus semua perulangan acara Perbarui acara ini saja Perbarui semua perulangan acara @@ -144,7 +144,7 @@ Hari Libur - Tambah hari libur + Tambahkan hari libur Libur nasional Libur keagamaan Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\" @@ -153,8 +153,8 @@ Kelola kategori acara - Mulai hari pada - Akhir hari pada + Hari dimulai pada jam + Hari berakhir pada jam Tampilkan nomor minggu Getar pada notifikasi pengingat Suara pengingat @@ -168,10 +168,10 @@ Hapus semua acara Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya. Tampilkan grid - Ulangi pengingat sampai diberhentikan + Ulangi pengingat sampai dihentikan Redupkan acara yang sudah lewat Acara - Audio yang digunakan oleh pengingat + Audio yang digunakan pengingat Sistem Alarm Notifikasi @@ -184,9 +184,9 @@ Tampilan terakhir Acara baru Waktu mulai default - Seluruh jam berikutnya + Satu jam kedepan Durasi default - Yang terakhir digunakan + Terakhir digunakan Waktu lainnya Sorot akhir pekan pada beberapa tampilan @@ -239,7 +239,7 @@ Simple Calendar Pro - Acara & Pengingat - A beautiful calendar without ads or weird permissions. + Aplikasi kalender yang indah tanpa iklan dan perizinan yang tidak diperlukan. Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan! diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 88acaa520..fd3292fbd 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -3,19 +3,19 @@ Simple Calendar Kalender Ubah tampilan - Tampilan harian - Tampilan mingguan - Tampilan bulanan - Tampilan tahunan - Daftar acara sederhana + Tampilan hari + Tampilan minggu + Tampilan bulan + Tampilan tahun + Daftar acara Sepertinya anda tidak memiliki acara yang akan datang. Buka hari ini Buka tanggal Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih! - Kalender bulanan - Daftar acara kalender + Bulan + Daftar acara Acara @@ -46,7 +46,7 @@ Acara berulang Acara yang dipilih berisi acara yang berulang Hapus acara ini saja - Hapus acara ini dan semua perulangannya di masa depan + Hapus acara ini dan semua perulangannya Hapus semua perulangan acara Perbarui acara ini saja Perbarui semua perulangan acara @@ -144,7 +144,7 @@ Hari Libur - Tambah hari libur + Tambahkan hari libur Libur nasional Libur keagamaan Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\" @@ -153,8 +153,8 @@ Kelola kategori acara - Mulai hari pada - Akhir hari pada + Hari dimulai pada jam + Hari berakhir pada jam Tampilkan nomor minggu Getar pada notifikasi pengingat Suara pengingat @@ -168,10 +168,10 @@ Hapus semua acara Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya. Tampilkan grid - Ulangi pengingat sampai diberhentikan + Ulangi pengingat sampai dihentikan Redupkan acara yang sudah lewat Acara - Audio yang digunakan oleh pengingat + Audio yang digunakan pengingat Sistem Alarm Notifikasi @@ -184,9 +184,9 @@ Tampilan terakhir Acara baru Waktu mulai default - Seluruh jam berikutnya + Satu jam kedepan Durasi default - Yang terakhir digunakan + Terakhir digunakan Waktu lainnya Sorot akhir pekan pada beberapa tampilan @@ -239,7 +239,7 @@ Simple Calendar Pro - Acara & Pengingat - A beautiful calendar without ads or weird permissions. + Aplikasi kalender yang indah tanpa iklan dan perizinan yang tidak diperlukan. Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan! From 84b73517f178b0775880ca4aa836a7f23794e7da Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 18 Jul 2019 21:36:14 +0200 Subject: [PATCH 18/43] avoid a glitch with showing the current time view twice at weekly view --- .../calendar/pro/fragments/WeekFragment.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt index 2dad7c923..0c31b2875 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragment.kt @@ -56,6 +56,7 @@ class WeekFragment : Fragment(), WeeklyCalendar { private var wasExtraHeightAdded = false private var dimPastEvents = true private var selectedGrid: View? = null + private var currentTimeView: ImageView? = null private var events = ArrayList() private var allDayHolders = ArrayList() private var allDayRows = ArrayList>() @@ -372,7 +373,12 @@ class WeekFragment : Fragment(), WeeklyCalendar { if (todayColumnIndex != -1) { val minutes = DateTime().minuteOfDay val todayColumn = getColumnWithId(todayColumnIndex) - (inflater.inflate(R.layout.week_now_marker, null, false) as ImageView).apply { + if (currentTimeView != null) { + mView.week_events_holder.removeView(currentTimeView) + } + + currentTimeView = (inflater.inflate(R.layout.week_now_marker, null, false) as ImageView) + currentTimeView!!.apply { applyColorFilter(primaryColor) mView.week_events_holder.addView(this, 0) val extraWidth = (todayColumn.width * 0.3).toInt() From f9b51f0999de18aacaf9fbe9360b6cac95705330 Mon Sep 17 00:00:00 2001 From: 10cents Date: Sat, 20 Jul 2019 14:32:42 +0000 Subject: [PATCH 19/43] Update strings.xml --- app/src/main/res/values-da/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index ef3fd5b38..d3b2a6118 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -11,7 +11,7 @@ Du ser ikke ud til at have nogen forestående begivenheder. Gå til i dag Gå til dato - Hey,\n\nseems like you upgraded from the old free app. You have to migrate locally stored events manually via exporting in an .ics file, then importing. You can find both export/import buttons at the main screen menu.\n\nYou can then uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings. You will then only have to reset your app settings.\n\nThanks! + Hej!\n\nDet ser ud til at du har opgraderet fra den gamle, gratis app. Du skal flytte lokalt gemte begivenheder manuelt til en ics-fil via eksportfunktionen og bagefter importere. Både import og eksport finder du i hovedmenuen.\n\nDu kan nu afinstallere den gamle version, som har en \'Upgrade to Pro\'-knap øverst i app-indstillingerne. Du skal til sidst bare nulstille dine app-indstillinger.\n\nTak! Månedlig kalender @@ -51,7 +51,7 @@ Opdater kun denne forekomst Opdater alle forekomster Gentag indtil - Stop repeating after x occurrences + Stop gentagelse efter x gange For altid gange Gentag @@ -82,7 +82,7 @@ sidste - Fødselsdag + Fødselsdage Tilføj dine kontakters fødselsdage Der blev ikke fundet nogen fødselsdage Der blev ikke fundet nogen nye fødselsdage @@ -102,7 +102,7 @@ Påmindelser - Tilføj en anden deltager + Tilføj deltager Min status: Kommer Kommer ikke @@ -188,7 +188,7 @@ Standard varighed Senest brugte Anden tid - Highlight weekends on some views + Fremhæv weekender i visse visninger CalDAV @@ -229,7 +229,7 @@ Helligdage oprettet på den måde er indsat under begivenhedstypen \"Helligdage\". Gå til Indstillinger -> Håndter begivenhedstyper. Efter et par sekunders pres på en type kan du slette den ved at klikke på papirkurven. Kan jeg synkronisere mine begivenheder med Googles kalender eller en anden kalender der understøtter CalDAV? Ja, klik på \"CalDAV sync\" i appens indstillinger og vælg de kalendere du vil synkronisere. Det kræver dog at du har en app til at synkronisere mellem din enhed og kalenderservere. - Hvis du vil synkronisere en Googlekalender, kan deres officielle app klare det. For andre kalenderes vedkommende kan du bruge en 3. partsapp som for eksempel DAVdroid. + Hvis du vil synkronisere en Googlekalender, kan Googles officielle app klare det. For andre kalenderes vedkommende kan du bruge en 3. partsapp som for eksempel DAVdroid. Jeg kan se mine påmindelser, men der er ingen lyd på. Hvad kan jeg gøre ved det? Såvel visning af påmindelser som afspilning af lyd til dem, er afhængig af systemet. Hvis ikke du kan høre nogen lyd, kan du prøve at gå ind i appens indstillinger. Her kan du trykke på \"Audio-stream anvendt af påmindelser\" og vælge en anden indstilling. Virker det stadig ikke skal du tjekke i dine lydindstillinger om lyden i det aktuelle valg er slået fra. From e1986f3d581499fd895a0a121033541a50631478 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 22 Jul 2019 20:59:22 +0200 Subject: [PATCH 20/43] adding a Go To Today button at the list widget --- app/src/main/AndroidManifest.xml | 4 +++ .../pro/adapters/EventListWidgetAdapter.kt | 8 +++--- .../adapters/EventListWidgetAdapterEmpty.kt | 26 +++++++++++++++++++ .../pro/helpers/MyWidgetListProvider.kt | 22 ++++++++++++++++ .../pro/services/WidgetServiceEmpty.kt | 9 +++++++ app/src/main/res/layout/widget_event_list.xml | 24 ++++++++++++++--- 6 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapterEmpty.kt create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/pro/services/WidgetServiceEmpty.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5f80c7acf..71fecca98 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -176,6 +176,10 @@ android:name=".services.WidgetService" android:permission="android.permission.BIND_REMOTEVIEWS"/> + + context.launchNewEventIntent() LAUNCH_CAL -> launchCalenderInDefaultView(context) + GO_TO_TODAY -> goToToday(context) else -> super.onReceive(context, intent) } } @@ -87,4 +93,20 @@ class MyWidgetListProvider : AppWidgetProvider() { context.startActivity(this) } } + + // hacky solution for reseting the events list + private fun goToToday(context: Context) { + val appWidgetManager = AppWidgetManager.getInstance(context) + appWidgetManager.getAppWidgetIds(getComponentName(context)).forEach { + val views = RemoteViews(context.packageName, R.layout.widget_event_list) + Intent(context, WidgetServiceEmpty::class.java).apply { + data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME)) + views.setRemoteAdapter(R.id.widget_event_list, this) + } + + appWidgetManager.updateAppWidget(it, views) + } + + performUpdate(context) + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/services/WidgetServiceEmpty.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/services/WidgetServiceEmpty.kt new file mode 100644 index 000000000..f29ccd84a --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/services/WidgetServiceEmpty.kt @@ -0,0 +1,9 @@ +package com.simplemobiletools.calendar.pro.services + +import android.content.Intent +import android.widget.RemoteViewsService +import com.simplemobiletools.calendar.pro.adapters.EventListWidgetAdapterEmpty + +class WidgetServiceEmpty : RemoteViewsService() { + override fun onGetViewFactory(intent: Intent) = EventListWidgetAdapterEmpty(applicationContext) +} diff --git a/app/src/main/res/layout/widget_event_list.xml b/app/src/main/res/layout/widget_event_list.xml index f80e18dba..d1f62d1c7 100644 --- a/app/src/main/res/layout/widget_event_list.xml +++ b/app/src/main/res/layout/widget_event_list.xml @@ -1,6 +1,7 @@ @@ -9,15 +10,30 @@ android:id="@+id/widget_event_list_today" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_alignTop="@+id/widget_event_new_event" - android:layout_alignBottom="@+id/widget_event_new_event" - android:layout_toStartOf="@+id/widget_event_new_event" + android:layout_alignTop="@+id/widget_event_go_to_today" + android:layout_alignBottom="@+id/widget_event_go_to_today" + android:layout_toStartOf="@+id/widget_event_go_to_today" android:ellipsize="end" android:gravity="center_vertical" android:maxLines="1" android:paddingStart="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin" - android:textSize="@dimen/normal_text_size"/> + android:textSize="@dimen/normal_text_size" + tools:text="July 18"/> + + Date: Thu, 25 Jul 2019 14:25:23 +0200 Subject: [PATCH 21/43] updating commons to 5.15.9 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index b019110c3..683f38ec8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.15.1' + implementation 'com.simplemobiletools:commons:5.15.9' implementation 'joda-time:joda-time:2.10.1' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' From cc730ed9e79696a988b9c2805cd6ec09ade49018 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 25 Jul 2019 22:56:48 +0200 Subject: [PATCH 22/43] adding navigation bar customization in Whats New --- .../calendar/pro/activities/MainActivity.kt | 1 + app/src/main/res/values/donottranslate.xml | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt index 87b7979e0..dd95b5281 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt @@ -935,6 +935,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { add(Release(119, R.string.release_119)) add(Release(129, R.string.release_129)) add(Release(143, R.string.release_143)) + add(Release(155, R.string.release_155)) checkWhatsNew(this, BuildConfig.VERSION_CODE) } } diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 4a46b6a49..51d323a29 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -2,9 +2,8 @@ - - Added email reminders and attendees in CalDAV synced events - + Allow customizing the bottom navigation bar color + Added email reminders and attendees in CalDAV synced events Allow setting default start time/duration/event type for new events\n Allow exporting/importing settings From c0b5c4bb4c1f602ecc12b2a0ceeb8c8094865302 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 25 Jul 2019 22:56:54 +0200 Subject: [PATCH 23/43] update version to 6.5.5 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 683f38ec8..2719a0607 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 154 - versionName "6.5.4" + versionCode 155 + versionName "6.5.5" multiDexEnabled true setProperty("archivesBaseName", "calendar") } From b46777eb23414d7d62dc867954035ffd6e5ee526 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 25 Jul 2019 22:56:59 +0200 Subject: [PATCH 24/43] updating changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5e4838db..26445f003 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 6.5.5 *(2019-07-25)* +---------------------------- + + * Added some dark theme related improvements + * Allow customizing the bottom navigation bar color + * Added a Go To Today button at the event list widget + Version 6.5.4 *(2019-07-01)* ---------------------------- From e269f030b87b923ceee54dfe74038d7e9a46e3dc Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 26 Jul 2019 09:54:21 +0200 Subject: [PATCH 25/43] fixed some list widget loading issues --- .../calendar/pro/adapters/EventListWidgetAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt index 2f1bdadd3..848c00a45 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/adapters/EventListWidgetAdapter.kt @@ -145,7 +145,7 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi override fun getLoadingView() = null - override fun getViewTypeCount() = 2 + override fun getViewTypeCount() = 3 override fun onCreate() {} From ead64798cd03fd4532244f17da3a6ba661ab5cd5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 26 Jul 2019 10:33:56 +0200 Subject: [PATCH 26/43] properly handle birthday and anniversary updating --- .../calendar/pro/activities/MainActivity.kt | 22 +++++++++++++++++-- .../calendar/pro/interfaces/EventsDao.kt | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt index dd95b5281..8066921fe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt @@ -538,7 +538,11 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { if (cursor?.moveToFirst() == true) { val dateFormats = getDateFormats() val existingEvents = if (birthdays) eventsDB.getBirthdays() else eventsDB.getAnniversaries() - val importIDs = existingEvents.map { it.importId } + val importIDs = HashMap() + existingEvents.forEach { + importIDs[it.importId] = it.startTS + } + val eventTypeId = if (birthdays) getBirthdaysEventTypeId() else getAnniversariesEventTypeId() do { @@ -561,7 +565,21 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { reminder3Minutes = reminders[2], importId = contactId, flags = FLAG_ALL_DAY, repeatInterval = YEAR, repeatRule = REPEAT_SAME_DAY, eventType = eventTypeId, source = source, lastUpdated = lastUpdated) - if (!importIDs.contains(contactId)) { + val importIDsToDelete = ArrayList() + for ((key, value) in importIDs) { + if (key == contactId && value != timestamp) { + val deleted = eventsDB.deleteBirthdayAnniversary(source, key) + if (deleted == 1) { + importIDsToDelete.add(key) + } + } + } + + importIDsToDelete.forEach { + importIDs.remove(it) + } + + if (!importIDs.containsKey(contactId)) { eventsHelper.insertEvent(event, false, false) { eventsAdded++ } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt index 5a06904ce..5c19ea063 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/interfaces/EventsDao.kt @@ -110,4 +110,7 @@ interface EventsDao { @Query("DELETE FROM events WHERE id IN (:ids)") fun deleteEvents(ids: List) + + @Query("DELETE FROM events WHERE source = :source AND import_id = :importId") + fun deleteBirthdayAnniversary(source: String, importId: String): Int } From f6f3c50037b3fefab424083ff81f57f1e0a5216c Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 26 Jul 2019 10:35:17 +0200 Subject: [PATCH 27/43] update version to 6.5.6 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2719a0607..651dceff5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 155 - versionName "6.5.5" + versionCode 156 + versionName "6.5.6" multiDexEnabled true setProperty("archivesBaseName", "calendar") } From 13c769d086ccbd64f1fbb0b6d1232ffce14386a7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 26 Jul 2019 10:35:22 +0200 Subject: [PATCH 28/43] updating changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26445f003..44434ef30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 6.5.6 *(2019-07-26)* +---------------------------- + + * Properly handle birthday and anniversary updating + * Fixed a widget list related glitch + Version 6.5.5 *(2019-07-25)* ---------------------------- From 6779b4dfedc419e6321038b6dde7dba5fec3c078 Mon Sep 17 00:00:00 2001 From: Dmitrii Kargashin Date: Sun, 28 Jul 2019 18:59:16 -0400 Subject: [PATCH 29/43] Update strings.xml Typo fixed --- app/src/main/res/values-ru/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 79f35b1af..2b9cb7cb0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -268,7 +268,7 @@ ✔️ Настройка событий: время начала, продолжительность, напоминания и т.д. ✔️ Добавление участников мероприятия для каждого события ✔️ Использование как личного, так и рабочего календаря - ✔️ На выыбор напоминание или уведомление по электронной почте для предупреждения о событии + ✔️ На выбор напоминание или уведомление по электронной почте для предупреждения о событии СКАЧАЙТЕ SIMPLE CALENDAR PRO - ПРОСТОЙ АВТОНОМНЫЙ КАЛЕНДАРЬ БЕЗ РЕКЛАМЫ! From a83d0c73a8521dae67c427dcf994c81974711ff4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 30 Jul 2019 22:57:08 +0200 Subject: [PATCH 30/43] updating the app featureGraphic --- .../android/en-US/images/featureGraphic.jpg | Bin 0 -> 44611 bytes .../android/en-US/images/featureGraphic.png | Bin 46657 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 fastlane/metadata/android/en-US/images/featureGraphic.jpg delete mode 100644 fastlane/metadata/android/en-US/images/featureGraphic.png diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.jpg b/fastlane/metadata/android/en-US/images/featureGraphic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8da0325598625380b7ba63c2bef722fb16053dd GIT binary patch literal 44611 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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png deleted file mode 100644 index faa9471fe494e08546f73d9f66e5240dcc993620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46657 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

-h<16un#}k?v?6=7= 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 From 0010c5df2585c26e68d59d8daeb6cf74636596f8 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 16:14:25 +0200 Subject: [PATCH 31/43] updating commons with the sideloading check --- app/build.gradle | 2 +- .../calendar/pro/activities/EventActivity.kt | 4 ++++ .../calendar/pro/activities/SplashActivity.kt | 2 -- app/src/main/res/values/donottranslate.xml | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 651dceff5..9cb9bb953 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.15.9' + implementation 'com.simplemobiletools:commons:5.15.23' implementation 'joda-time:joda-time:2.10.1' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index a15438cc9..48aec00bb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -90,6 +90,10 @@ class EventActivity : SimpleActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_event) + if (checkAppSideloading()) { + return + } + supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross) val intent = intent ?: return mDialogTheme = getDialogTheme() diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SplashActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SplashActivity.kt index 506520e21..3cb6b6ad4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SplashActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SplashActivity.kt @@ -7,8 +7,6 @@ import com.simplemobiletools.commons.activities.BaseSplashActivity import org.joda.time.DateTime class SplashActivity : BaseSplashActivity() { - override fun getAppPackageName() = packageName - override fun initActivity() { when { intent.extras?.containsKey(DAY_CODE) == true -> Intent(this, MainActivity::class.java).apply { diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 51d323a29..b48cf4953 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -1,5 +1,6 @@ + com.simplemobiletools.calendar.pro Allow customizing the bottom navigation bar color From 969f860d63a3de6937f2238e16c92d6d38cfb573 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 16:33:54 +0200 Subject: [PATCH 32/43] if the current week is shown, use Today as the default date at weekly view --- .../calendar/pro/fragments/WeekFragmentsHolder.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt index 257785003..d626af001 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt @@ -181,7 +181,14 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { setupWeeklyActionbarTitle(currentWeekTS) } - override fun getNewEventDayCode() = Formatter.getDayCodeFromTS(currentWeekTS) + override fun getNewEventDayCode(): String { + val currentTS = System.currentTimeMillis() / 1000 + return if (currentTS > currentWeekTS && currentTS < currentWeekTS + WEEK_SECONDS) { + Formatter.getTodayCode() + } else { + Formatter.getDayCodeFromTS(currentWeekTS) + } + } override fun scrollTo(y: Int) { weekHolder!!.week_view_hours_scrollview.scrollY = y From 5b42f5adf358042c2f18f1a32b4b63efbec79da5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 18:12:56 +0200 Subject: [PATCH 33/43] fix #951, fix some glitch related to setting a default --- .../calendar/pro/activities/EventActivity.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index 48aec00bb..9b6baf9df 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -80,6 +80,7 @@ class EventActivity : SimpleActivity() { private var mAttendeeAutoCompleteViews = ArrayList() private var mAvailableContacts = ArrayList() private var mSelectedContacts = ArrayList() + private var mStoredEventTypes = ArrayList() private lateinit var mAttendeePlaceholder: Drawable private lateinit var mEventStartDateTime: DateTime @@ -103,13 +104,14 @@ class EventActivity : SimpleActivity() { val eventId = intent.getLongExtra(EVENT_ID, 0L) ensureBackgroundThread { + mStoredEventTypes = eventTypesDB.getEventTypes().toMutableList() as ArrayList val event = eventsDB.getEventWithId(eventId) if (eventId != 0L && event == null) { finish() return@ensureBackgroundThread } - val localEventType = eventTypesDB.getEventTypeWithId(config.lastUsedLocalEventTypeId) + val localEventType = mStoredEventTypes.firstOrNull { it.id == config.lastUsedLocalEventTypeId } runOnUiThread { gotEvent(savedInstanceState, localEventType, event) } @@ -342,6 +344,10 @@ class EventActivity : SimpleActivity() { window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) event_title.requestFocus() updateActionBarTitle(getString(R.string.new_event)) + if (config.defaultEventTypeId != -1L) { + config.lastUsedCaldavCalendarId = mStoredEventTypes.firstOrNull { it.id == config.defaultEventTypeId }?.caldavCalendarId ?: 0 + } + val isLastCaldavCalendarOK = config.caldavSync && config.getSyncedCalendarIdsAsList().contains(config.lastUsedCaldavCalendarId) mEventCalendarId = if (isLastCaldavCalendarOK) config.lastUsedCaldavCalendarId else STORED_LOCALLY_ONLY From 5f24e81b098f6e8ef7fe72494253c392b5c19eec Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 19:11:38 +0200 Subject: [PATCH 34/43] updating the app short description to mention refunding --- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-az/strings.xml | 2 +- app/src/main/res/values-br/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-gl/strings.xml | 2 +- app/src/main/res/values-he/strings.xml | 2 +- app/src/main/res/values-hi-rIN/strings.xml | 2 +- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-id/strings.xml | 2 +- app/src/main/res/values-in/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-iw/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-no/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 36 files changed, 36 insertions(+), 36 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5e6370386..9e0cd9801 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 01617d5e0..e3728f00e 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index 890cb10ef..cb9af6086 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 868b972fe..29182cc8d 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index d3b2a6118..64b876b6b 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -237,7 +237,7 @@ Simpel kalender Pro - Begivenheder & påmindelser - En skøn kalender uden reklamer og underlige tilladelser. + A beautiful calendar without ads, 100% money back guarantee. Simpel kalender Pro kan tilpasses helt efter din smag, offline kalender er designet til at gøre præcis hvad en kalender skal kunne. Ingen indviklede funktioner, ingen overflødige tilladelser og ingen reklamer! diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index eacfb3fd9..77738b128 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -240,7 +240,7 @@ Simple Calendar Pro - Termine & Erinnerungen - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro ist ein vollständig anpassbarer Offline-Kalender, der genau das bietet, was man von einem Kalender erwartet. Keine umständlichen Funktionen, keine unnötigen Berechtigungen und keine Werbung! diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 8c9bcd801..ed23643d7 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -239,7 +239,7 @@ Απλό Ημερολόγιο Pro - Εκδηλώσεων & Ειδοποιήσεων - Ένα όμορφο ημερολόγιο χωρίς διαφημίσεις ή περιττές άδειες. + A beautiful calendar without ads, 100% money back guarantee. Το Απλό Ημερολόγιο Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις! diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 4ce96e1cd..08250b4e3 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6c87d9ed0..f6eae13f2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -240,7 +240,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 0650e898a..0671774aa 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index 66f9bdd81..08a38c68d 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - יומן פשוט - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 9eb0f5ce1..d7c7a35a7 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index e26f980e7..b4225c5c6 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3765322ce..b477ada5b 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index fd3292fbd..2d03a8e71 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Acara & Pengingat - Aplikasi kalender yang indah tanpa iklan dan perizinan yang tidak diperlukan. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan! diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index fd3292fbd..2d03a8e71 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Acara & Pengingat - Aplikasi kalender yang indah tanpa iklan dan perizinan yang tidak diperlukan. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan! diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 4e23f20ab..2b0924997 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -239,7 +239,7 @@ Semplice Calendario Pro - Eventi & Promemoria - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Semplice Calendario Pro è un calendario offline completamente personalizzabile progettato per fare esattamente quello che un calendario dovrebbe fare. Non ci sono funzionalità complicate, permessi non necessari e senza pubblicità! diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 5072ea1d0..6f6627920 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - יומן פשוט - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index c80abd94e..c749f07ac 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index a0d72bfa3..d7b62b05f 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 31df3e2aa..0391a12b5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 5dd06f262..12080b729 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 1af8ff5b3..5d8bf58e1 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -239,7 +239,7 @@ Eenvoudige Agenda Pro - Afspraken & Herinneringen - Een stijlvolle agenda zonder advertenties of onnodige machtigingen. + A beautiful calendar without ads, 100% money back guarantee. Eenvoudige Agenda Pro is een volledig aan te passen offline agenda, ontwikkeld om precies te doen waar een agenda voor bedoeld is. Geen ingewikkelde poespas of onnodige machtigingen, en zonder advertenties! diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index d86145a5e..6aa628233 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 60752c701..12f1774f2 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -237,7 +237,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 01dabafa0..ea92b14f7 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -239,7 +239,7 @@ selecionando a opção \"Fonte de áudio usada pelos lembretes\" e modificando o Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index f5b7c6dae..0dd304ee3 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Eventos e lembretes - Um calendário sem anúncios nem permissões desnecessárias. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2b9cb7cb0..1f1edb326 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - события и напоминания - Красивый календарь без рекламы и ненужных разрешений. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro — это полностью настраиваемый автономный календарь, предназначенный для выполнения именно того, что должен делать календарь. Никаких непонятных функций, ненужных разрешений и рекламы! diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 7650a7f5a..c91510e28 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -239,7 +239,7 @@ Jednoduchý kalendár Pro - Udalosti a pripomienky - Krásny kalendár bez reklám a čudných oprávnení. + Krásny kalendár bez reklám so 100% garanciou vrátenia peňazí. Jednoduchý kalendár Pro je prispôsobiteľný offline kalendár vytvorený presne na to, čo by kalendáre mali zvládať.Nenachádzajú sa tu žiadne nepotrebné funkcie, nepotrebné oprávnenia, ani reklamy! diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index d762e79d3..a2d8bec80 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index ae25c054f..75aa87d8b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -238,7 +238,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index d8fe81d29..8e163ef73 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -239,7 +239,7 @@ Простий Календар Pro - Події і Нагадування - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Простий Календар Pro - це офлайн-календар з дуже гнучкими налаштуваннями, призначений робити саме те, що календар повинен робити. Не містить складних особливостей, лише необхідні дозволи та без реклами! diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f75e8f0d2..a0783dcfd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -239,7 +239,7 @@          简易行事历 Pro - 活动&约会      -    A beautiful calendar without ads or weird permissions. +    A beautiful calendar without ads, 100% money back guarantee.              简易行事历Pro是一个高度自定义,完全旨在于行事历应该做什么的离线行事历。 没有复杂的功能、非必要的权限和广告! diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index dc8bb4dd4..c6fa5ee96 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -239,7 +239,7 @@ 簡易行事曆 Pro - 活動&約會 - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. 簡易行事曆Pro是一個高度自訂化,完全旨在於行事曆應該做什麼的離線行事曆。 沒有複雜的功能、非必要的權限和廣告! diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c51523861..f4efe755c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -239,7 +239,7 @@ 簡易行事曆 Pro - 活動和約會 - 一個沒有廣告或奇怪的權限而且美麗的日曆。 + A beautiful calendar without ads, 100% money back guarantee. 簡易行事曆Pro是一個高度自訂化,完全旨在於行事曆應該做什麼的離線行事曆。 沒有複雜的功能、非必要的權限和廣告! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4def3c4b5..7478012ad 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -239,7 +239,7 @@ Simple Calendar Pro - Events & Reminders - A beautiful calendar without ads or weird permissions. + A beautiful calendar without ads, 100% money back guarantee. Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. No complicated features, unnecessary permissions and no ads! From 8e14adb83f0a044bd7c15b87f62fe7a654888ceb Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 19:27:45 +0200 Subject: [PATCH 35/43] update version to 6.5.7 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9cb9bb953..e95b4d8b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 156 - versionName "6.5.6" + versionCode 157 + versionName "6.5.7" multiDexEnabled true setProperty("archivesBaseName", "calendar") } From c7c254e1c592dc212d8cf28a78a72ba9a67f246c Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Aug 2019 19:27:50 +0200 Subject: [PATCH 36/43] updating changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44434ef30..5ae841143 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 6.5.7 *(2019-08-07)* +---------------------------- + + * Properly use the selected default event calendar, even at CalDAV synced ones + * Fixing invisible buttons at the date/time pickers with light theme + * Fixed a couple other smaller glitches and added some translation improvements + Version 6.5.6 *(2019-07-26)* ---------------------------- From 0a0ebc640657f3c1bf6d1b2fd5c446638a16e726 Mon Sep 17 00:00:00 2001 From: 10cents Date: Wed, 7 Aug 2019 19:53:40 +0200 Subject: [PATCH 37/43] Update strings.xml --- app/src/main/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 64b876b6b..589f1efde 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -237,7 +237,7 @@ Simpel kalender Pro - Begivenheder & påmindelser - A beautiful calendar without ads, 100% money back guarantee. + En skøn kalender uden reklamer, med fuld tilfredshed eller pengene tilbage! Simpel kalender Pro kan tilpasses helt efter din smag, offline kalender er designet til at gøre præcis hvad en kalender skal kunne. Ingen indviklede funktioner, ingen overflødige tilladelser og ingen reklamer! From 0d9171542847f63755dc9932164395ddaf4e169d Mon Sep 17 00:00:00 2001 From: Guillaume Date: Wed, 7 Aug 2019 21:16:10 +0200 Subject: [PATCH 38/43] Dutch --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 5d8bf58e1..03f6d51e7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -239,7 +239,7 @@ Eenvoudige Agenda Pro - Afspraken & Herinneringen - A beautiful calendar without ads, 100% money back guarantee. + Stijlvolle agenda zonder advertenties. 100% niet-goed-geld-teruggarantie. Eenvoudige Agenda Pro is een volledig aan te passen offline agenda, ontwikkeld om precies te doen waar een agenda voor bedoeld is. Geen ingewikkelde poespas of onnodige machtigingen, en zonder advertenties! From 1ef5baeb0686bebc89c1852bb338b8cff5be00fb Mon Sep 17 00:00:00 2001 From: spkprs Date: Wed, 7 Aug 2019 22:30:18 +0300 Subject: [PATCH 39/43] Update strings.xml --- app/src/main/res/values-el/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index ed23643d7..49f741c42 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -239,7 +239,7 @@ Απλό Ημερολόγιο Pro - Εκδηλώσεων & Ειδοποιήσεων - A beautiful calendar without ads, 100% money back guarantee. + Ένα όμορφο Ημερολόγιο χωρίς διαφημίσεις, 100% εγγύηση επιστροφής χρημάτων. Το Απλό Ημερολόγιο Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις! From b272c9826b6c53cf8436d132611c2e1559428440 Mon Sep 17 00:00:00 2001 From: fricyo <30796677+fricyo@users.noreply.github.com> Date: Sun, 11 Aug 2019 08:36:15 +0800 Subject: [PATCH 40/43] Update Translation --- app/src/main/res/values-zh-rTW/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index f4efe755c..edb52d5a8 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -239,7 +239,7 @@ 簡易行事曆 Pro - 活動和約會 - A beautiful calendar without ads, 100% money back guarantee. + 一個沒有廣告而且美麗的日曆,100%保證退款。 簡易行事曆Pro是一個高度自訂化,完全旨在於行事曆應該做什麼的離線行事曆。 沒有複雜的功能、非必要的權限和廣告! From 1a7a4eb1d513cde9c3befef4260a7aebd648dc20 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 14 Aug 2019 22:53:25 +0200 Subject: [PATCH 41/43] updating Commons to the new vector icons --- app/build.gradle | 2 +- .../calendar/pro/activities/EventActivity.kt | 4 ++-- .../calendar/pro/extensions/Context.kt | 2 +- .../calendar/pro/helpers/MyWidgetListProvider.kt | 2 +- .../pro/helpers/MyWidgetMonthlyProvider.kt | 2 +- .../res/drawable/attendee_circular_background.xml | 2 +- app/src/main/res/layout/activity_day.xml | 2 +- app/src/main/res/layout/activity_event.xml | 14 +++++++------- app/src/main/res/layout/activity_main.xml | 2 +- app/src/main/res/layout/dialog_set_reminders.xml | 2 +- app/src/main/res/layout/fragment_month_widget.xml | 2 +- app/src/main/res/layout/item_attendee.xml | 2 +- app/src/main/res/layout/week_grid_item.xml | 2 +- app/src/main/res/layout/widget_event_list.xml | 2 +- app/src/main/res/menu/cab_day.xml | 4 ++-- app/src/main/res/menu/cab_event_list.xml | 4 ++-- app/src/main/res/menu/cab_event_type.xml | 2 +- app/src/main/res/menu/menu_event.xml | 6 +++--- app/src/main/res/menu/menu_event_types.xml | 2 +- app/src/main/res/menu/menu_main.xml | 6 +++--- 20 files changed, 33 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e95b4d8b7..b10ca4bdc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.15.23' + implementation 'com.simplemobiletools:commons:5.16.7' implementation 'joda-time:joda-time:2.10.1' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index 9b6baf9df..004c9aea7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -95,7 +95,7 @@ class EventActivity : SimpleActivity() { return } - supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross) + supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross_vector) val intent = intent ?: return mDialogTheme = getDialogTheme() mWasContactsPermissionChecked = hasPermission(PERMISSION_READ_CONTACTS) @@ -716,7 +716,7 @@ class EventActivity : SimpleActivity() { private fun updateReminderTypeImage(view: ImageView, reminder: Reminder) { view.beVisibleIf(reminder.minutes != REMINDER_OFF && mEventCalendarId != STORED_LOCALLY_ONLY) - val drawable = if (reminder.type == REMINDER_NOTIFICATION) R.drawable.ic_bell else R.drawable.ic_email + val drawable = if (reminder.type == REMINDER_NOTIFICATION) R.drawable.ic_bell_vector else R.drawable.ic_email_vector val icon = resources.getColoredDrawableWithColor(drawable, config.textColor) view.setImageDrawable(icon) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index f73c05670..c48ce8fa0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -257,7 +257,7 @@ fun Context.getNotification(pendingIntent: PendingIntent, event: Event, content: .setAutoCancel(true) .setSound(Uri.parse(soundUri), config.reminderAudioStream) .setChannelId(channelId) - .addAction(R.drawable.ic_snooze, getString(R.string.snooze), getSnoozePendingIntent(this, event)) + .addAction(R.drawable.ic_snooze_vector, getString(R.string.snooze), getSnoozePendingIntent(this, event)) if (config.vibrateOnReminder) { val vibrateArray = LongArray(2) { 500 } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt index d117eba31..5f03fd6b8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt @@ -44,7 +44,7 @@ class MyWidgetListProvider : AppWidgetProvider() { val todayText = Formatter.getLongestDate(getNowSeconds()) views.setText(R.id.widget_event_list_today, todayText) - views.setImageViewBitmap(R.id.widget_event_new_event, context.resources.getColoredBitmap(R.drawable.ic_plus, textColor)) + views.setImageViewBitmap(R.id.widget_event_new_event, context.resources.getColoredBitmap(R.drawable.ic_plus_vector, textColor)) setupIntent(context, views, NEW_EVENT, R.id.widget_event_new_event) setupIntent(context, views, LAUNCH_CAL, R.id.widget_event_list_today) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt index 474eafded..0e0aeeb63 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt @@ -181,7 +181,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { bmp = resources.getColoredBitmap(R.drawable.ic_today, textColor) views.setImageViewBitmap(R.id.top_go_to_today, bmp) - bmp = resources.getColoredBitmap(R.drawable.ic_plus, textColor) + bmp = resources.getColoredBitmap(R.drawable.ic_plus_vector, textColor) views.setImageViewBitmap(R.id.top_new_event, bmp) val shouldGoToTodayBeVisible = currTargetDate.withTime(0, 0, 0, 0) != DateTime.now().withDayOfMonth(1).withTime(0, 0, 0, 0) diff --git a/app/src/main/res/drawable/attendee_circular_background.xml b/app/src/main/res/drawable/attendee_circular_background.xml index 4b622c6eb..8101204b6 100644 --- a/app/src/main/res/drawable/attendee_circular_background.xml +++ b/app/src/main/res/drawable/attendee_circular_background.xml @@ -8,7 +8,7 @@ diff --git a/app/src/main/res/layout/activity_day.xml b/app/src/main/res/layout/activity_day.xml index 84de6d093..8f6045c82 100644 --- a/app/src/main/res/layout/activity_day.xml +++ b/app/src/main/res/layout/activity_day.xml @@ -18,7 +18,7 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/activity_margin" - android:src="@drawable/ic_plus" + android:src="@drawable/ic_plus_vector" app:backgroundTint="@color/color_primary" app:rippleColor="@color/pressed_item_foreground"/> diff --git a/app/src/main/res/layout/activity_event.xml b/app/src/main/res/layout/activity_event.xml index f1d3cf14c..cf4d2385f 100644 --- a/app/src/main/res/layout/activity_event.xml +++ b/app/src/main/res/layout/activity_event.xml @@ -54,7 +54,7 @@ android:background="?attr/selectableItemBackgroundBorderless" android:paddingStart="@dimen/small_margin" android:paddingEnd="@dimen/small_margin" - android:src="@drawable/ic_place"/> + android:src="@drawable/ic_place_vector"/> + android:src="@drawable/ic_clock_vector"/> + android:src="@drawable/ic_bell_vector"/> + android:src="@drawable/ic_bell_vector"/> + android:src="@drawable/ic_bell_vector"/> + android:src="@drawable/ic_bell_vector"/> + android:src="@drawable/ic_repeat_vector"/> diff --git a/app/src/main/res/layout/dialog_set_reminders.xml b/app/src/main/res/layout/dialog_set_reminders.xml index 09b8597af..83295b799 100644 --- a/app/src/main/res/layout/dialog_set_reminders.xml +++ b/app/src/main/res/layout/dialog_set_reminders.xml @@ -17,7 +17,7 @@ android:layout_marginStart="@dimen/normal_margin" android:alpha="0.8" android:padding="@dimen/medium_margin" - android:src="@drawable/ic_bell"/> + android:src="@drawable/ic_bell_vector"/> + android:src="@drawable/ic_plus_vector"/> + android:src="@drawable/ic_cross_vector"/> + android:src="@drawable/ic_plus_vector"/> diff --git a/app/src/main/res/layout/widget_event_list.xml b/app/src/main/res/layout/widget_event_list.xml index d1f62d1c7..9994ff342 100644 --- a/app/src/main/res/layout/widget_event_list.xml +++ b/app/src/main/res/layout/widget_event_list.xml @@ -47,7 +47,7 @@ android:paddingEnd="@dimen/medium_margin" android:paddingBottom="@dimen/small_margin" android:scaleType="fitCenter" - android:src="@drawable/ic_plus"/> + android:src="@drawable/ic_plus_vector"/> diff --git a/app/src/main/res/menu/cab_event_list.xml b/app/src/main/res/menu/cab_event_list.xml index 6da3de415..096697b44 100644 --- a/app/src/main/res/menu/cab_event_list.xml +++ b/app/src/main/res/menu/cab_event_list.xml @@ -3,12 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/app/src/main/res/menu/cab_event_type.xml b/app/src/main/res/menu/cab_event_type.xml index af34568ba..642b5e421 100644 --- a/app/src/main/res/menu/cab_event_type.xml +++ b/app/src/main/res/menu/cab_event_type.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/app/src/main/res/menu/menu_event.xml b/app/src/main/res/menu/menu_event.xml index 801cf45bc..550370dc3 100644 --- a/app/src/main/res/menu/menu_event.xml +++ b/app/src/main/res/menu/menu_event.xml @@ -3,12 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/app/src/main/res/menu/menu_event_types.xml b/app/src/main/res/menu/menu_event_types.xml index 22289485b..035fbcacd 100644 --- a/app/src/main/res/menu/menu_event_types.xml +++ b/app/src/main/res/menu/menu_event_types.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 2adc71e60..004babae7 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> @@ -19,12 +19,12 @@ app:showAsAction="ifRoom"/> Date: Wed, 14 Aug 2019 23:14:49 +0200 Subject: [PATCH 42/43] replacing the remaining icons with vectors --- .../calendar/pro/fragments/DayFragment.kt | 4 ++-- .../calendar/pro/fragments/MonthFragment.kt | 4 ++-- .../calendar/pro/helpers/MyWidgetListProvider.kt | 2 +- .../pro/helpers/MyWidgetMonthlyProvider.kt | 6 +++--- app/src/main/res/drawable-hdpi/ic_change_view.png | Bin 528 -> 0 bytes app/src/main/res/drawable-hdpi/ic_color.png | Bin 439 -> 0 bytes app/src/main/res/drawable-hdpi/ic_people.png | Bin 260 -> 0 bytes .../main/res/drawable-hdpi/ic_pointer_left.png | Bin 399 -> 0 bytes .../main/res/drawable-hdpi/ic_pointer_right.png | Bin 392 -> 0 bytes app/src/main/res/drawable-hdpi/ic_today.png | Bin 197 -> 0 bytes .../main/res/drawable-xhdpi/ic_change_view.png | Bin 521 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_color.png | Bin 480 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_people.png | Bin 313 -> 0 bytes .../main/res/drawable-xhdpi/ic_pointer_left.png | Bin 498 -> 0 bytes .../main/res/drawable-xhdpi/ic_pointer_right.png | Bin 500 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_today.png | Bin 191 -> 0 bytes .../main/res/drawable-xxhdpi/ic_change_view.png | Bin 883 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_color.png | Bin 703 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_people.png | Bin 425 -> 0 bytes .../main/res/drawable-xxhdpi/ic_pointer_left.png | Bin 820 -> 0 bytes .../main/res/drawable-xxhdpi/ic_pointer_right.png | Bin 828 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_today.png | Bin 257 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_change_view.png | Bin 796 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_color.png | Bin 932 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_people.png | Bin 554 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_pointer_left.png | Bin 884 -> 0 bytes .../res/drawable-xxxhdpi/ic_pointer_right.png | Bin 897 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_today.png | Bin 328 -> 0 bytes .../main/res/drawable/ic_change_view_vector.xml | 9 +++++++++ .../main/res/drawable/ic_chevron_left_vector.xml | 9 +++++++++ .../main/res/drawable/ic_chevron_right_vector.xml | 9 +++++++++ app/src/main/res/drawable/ic_color_vector.xml | 9 +++++++++ app/src/main/res/drawable/ic_group_vector.xml | 9 +++++++++ app/src/main/res/drawable/ic_today_vector.xml | 9 +++++++++ app/src/main/res/layout/activity_event.xml | 4 ++-- app/src/main/res/layout/fragment_month_widget.xml | 6 +++--- app/src/main/res/layout/top_navigation.xml | 4 ++-- app/src/main/res/layout/widget_event_list.xml | 2 +- app/src/main/res/menu/menu_main.xml | 4 ++-- 39 files changed, 72 insertions(+), 18 deletions(-) delete mode 100644 app/src/main/res/drawable-hdpi/ic_change_view.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_color.png delete mode 100755 app/src/main/res/drawable-hdpi/ic_people.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_pointer_left.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_pointer_right.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_today.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_change_view.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_color.png delete mode 100755 app/src/main/res/drawable-xhdpi/ic_people.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_pointer_left.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_pointer_right.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_today.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_change_view.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_color.png delete mode 100755 app/src/main/res/drawable-xxhdpi/ic_people.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_pointer_left.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_pointer_right.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_today.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_change_view.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_color.png delete mode 100755 app/src/main/res/drawable-xxxhdpi/ic_people.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_pointer_left.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_pointer_right.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_today.png create mode 100644 app/src/main/res/drawable/ic_change_view_vector.xml create mode 100644 app/src/main/res/drawable/ic_chevron_left_vector.xml create mode 100644 app/src/main/res/drawable/ic_chevron_right_vector.xml create mode 100644 app/src/main/res/drawable/ic_color_vector.xml create mode 100644 app/src/main/res/drawable/ic_group_vector.xml create mode 100644 app/src/main/res/drawable/ic_today_vector.xml diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/DayFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/DayFragment.kt index 5ed1a9be8..b78b2265a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/DayFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/DayFragment.kt @@ -57,7 +57,7 @@ class DayFragment : Fragment() { mListener?.goLeft() } - val pointerLeft = context!!.getDrawable(R.drawable.ic_pointer_left) + val pointerLeft = context!!.getDrawable(R.drawable.ic_chevron_left_vector) pointerLeft?.isAutoMirrored = true setImageDrawable(pointerLeft) } @@ -69,7 +69,7 @@ class DayFragment : Fragment() { mListener?.goRight() } - val pointerRight = context!!.getDrawable(R.drawable.ic_pointer_right) + val pointerRight = context!!.getDrawable(R.drawable.ic_chevron_right_vector) pointerRight?.isAutoMirrored = true setImageDrawable(pointerRight) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthFragment.kt index e83e21e08..1722c199e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/MonthFragment.kt @@ -112,7 +112,7 @@ class MonthFragment : Fragment(), MonthlyCalendar { listener?.goLeft() } - val pointerLeft = context!!.getDrawable(R.drawable.ic_pointer_left) + val pointerLeft = context!!.getDrawable(R.drawable.ic_chevron_left_vector) pointerLeft?.isAutoMirrored = true setImageDrawable(pointerLeft) } @@ -124,7 +124,7 @@ class MonthFragment : Fragment(), MonthlyCalendar { listener?.goRight() } - val pointerRight = context!!.getDrawable(R.drawable.ic_pointer_right) + val pointerRight = context!!.getDrawable(R.drawable.ic_chevron_right_vector) pointerRight?.isAutoMirrored = true setImageDrawable(pointerRight) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt index 5f03fd6b8..ae5e4b6c2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetListProvider.kt @@ -48,7 +48,7 @@ class MyWidgetListProvider : AppWidgetProvider() { setupIntent(context, views, NEW_EVENT, R.id.widget_event_new_event) setupIntent(context, views, LAUNCH_CAL, R.id.widget_event_list_today) - views.setImageViewBitmap(R.id.widget_event_go_to_today, context.resources.getColoredBitmap(R.drawable.ic_today, textColor)) + views.setImageViewBitmap(R.id.widget_event_go_to_today, context.resources.getColoredBitmap(R.drawable.ic_today_vector, textColor)) setupIntent(context, views, GO_TO_TODAY, R.id.widget_event_go_to_today) Intent(context, WidgetService::class.java).apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt index 0e0aeeb63..a4dfe3dd1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/MyWidgetMonthlyProvider.kt @@ -172,13 +172,13 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() { views.setTextColor(R.id.top_value, textColor) views.setTextSize(R.id.top_value, largerFontSize) - var bmp = resources.getColoredBitmap(R.drawable.ic_pointer_left, textColor) + var bmp = resources.getColoredBitmap(R.drawable.ic_chevron_left_vector, textColor) views.setImageViewBitmap(R.id.top_left_arrow, bmp) - bmp = resources.getColoredBitmap(R.drawable.ic_pointer_right, textColor) + bmp = resources.getColoredBitmap(R.drawable.ic_chevron_right_vector, textColor) views.setImageViewBitmap(R.id.top_right_arrow, bmp) - bmp = resources.getColoredBitmap(R.drawable.ic_today, textColor) + bmp = resources.getColoredBitmap(R.drawable.ic_today_vector, textColor) views.setImageViewBitmap(R.id.top_go_to_today, bmp) bmp = resources.getColoredBitmap(R.drawable.ic_plus_vector, textColor) diff --git a/app/src/main/res/drawable-hdpi/ic_change_view.png b/app/src/main/res/drawable-hdpi/ic_change_view.png deleted file mode 100644 index cc86415c0c93e724c0420f3b7d02db061ffec749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 zcmV+r0`L8aP)2V zEwC7P`6^ogUIgAYaBzy8=f{6{>a(KMsb2%P1Aki5d~%-xj{@(Dr0L{60GZO>)iSejd6)%N8)L(i?UHc%67peE|)ApGr%2RzqqEGs^RbbEQKZhOzI)b3-bIi;Of-c~z#lu5AqDFiffPTC+ zh`ude-k~QzvL+$K3sl{Z?UOlv#UnlX((t$NQ zxlpMKxvy5{qnUbWMY-!jJv48m%vSC%^3wEvxG&^FH%;Ta_qLoB@}U`T<$Q2XIP9d? zOU5R zF_zfdvE)Eb&XJ|qe-Rco4jvv3_VX>+XkEq%mm3wjiYqRwdNIT|bRARnlt@Z;%+zkg z-PCKW$!U|bR@<$)E1c=#QXjzB6$-j2)OKv{3LQ!7&p*`b{hbG%8)r2idh+}L0000< KMNUMnLSTXndu`PK diff --git a/app/src/main/res/drawable-hdpi/ic_pointer_left.png b/app/src/main/res/drawable-hdpi/ic_pointer_left.png deleted file mode 100644 index e8fdcb49c8cf48e60f80fac1c2eac1f8ca6131e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmV;A0dW3_P)45EvZ^az}4YH4%{9iyS4CWmm4qCuxfEU~heL#InalL%jg z-}?a^UL3yX%SpPrx-MZ@#l31rk_3KNiHH!msVQy2k7@b~}#002ovPDHLkV1me$slosN diff --git a/app/src/main/res/drawable-hdpi/ic_pointer_right.png b/app/src/main/res/drawable-hdpi/ic_pointer_right.png deleted file mode 100644 index 95856c86c365f57448ae56b4142fa8d41ea45020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392 zcmV;30eAk1P)M zYY1`=f(CIC)aPI{IQ1limIeo(KuepOQ=7ImNJEZ-AcTJ=2_z7*%w7$ib`|9N8}1wK zcrP!$oO91fy1KghFpOiN+L0u|Lwv-~enP#*C64g4+7tA!hQHXsM71dx#wT3iJqD^x z!4rIIsFi9@k_2=3(Vn?#Pm%<0+LZS3xY`p8;6q#F+Ze1i1!MT!Q0wSbn}Qh};sUR# zJxLNQ;y1qI`EB37kFlO4`ITfO$)kJt{>{S_zTyv7OMjMlfDPAeVz>;`K&x#sdl;|A zEVZ3=iWk+GXE<)xk>zU4B)+tD^R9Xk_u6rBg)Iz~VH)WFfqH=HYRo*&afX-Gm{IJu mE#5bmvRS;Xc64=h-KBp>d{YoMSr%~s0000|k0wldT1B8K8kEe@cNCo5DsexRF3 zrDD;Pa(VkN9D8qeybF(He%Z8WiShi#pIpB$u{-JqA3m0SD0_?3v2rKj)-Ho97X-Ll z|LB<%rt6z;;ulq#Q@cWF;jalD3mBc1N>}~o>Eumr?YqF4`{(NX+7_{SYgSy|TKY%d wWk#(AJKLvM?3aSfZq|mS+22fT=dfi+cslo~|H>yXf$n1PboFyt=akR{01(DZtpET3 diff --git a/app/src/main/res/drawable-xhdpi/ic_change_view.png b/app/src/main/res/drawable-xhdpi/ic_change_view.png deleted file mode 100644 index 6c49e916745979b2b31518b25d595d72cec1bbb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oVGw3ym^DX&fq`+i zr;B4qM&sKV`?EwHMcVh@H|<*D<&!KdsLK_Jiyf)}Y@^nL*1o^iK#Ah*xs? z#Gdo!Xo8T(2R0|Bq)F8}cTVg&_oS!y@S&dx-E;5er_~jFpZCx~fMu`SN=M__%wk-B zwol@VzQ>(#s_Ggn;lQj%zXAK z!t-tE1gST|f(y(bXfOYS)kiKLSj_Z)@si8a%=vq)&+&W8N1d}Uh~IE+-jegI?^*v( zz2l$3&?EXo{CfMQs3&GSS#-pIoNs*lTH3gp-KK0#azfyx6@_w4??3u4&R5y{j_(=M z9oBc2!cm9nnQTh;G#`oD{Dbk`a<=OK=2DDV!eBIcHFNucu*UjpJLQ?&`#!HNu0Of{ z(X+yNQeV1`+h3G%ykn^vTe>Hj^>Tlfd~}n@&dV=Y>beCI;xB!lX3l%3aE`ZUeAKzz z2aX4$)F-vEzWQ6VKDDUsaMrj@TPrTly#HIGSboa$rSn!F@V@lhN&w07 z-3L}ZmZ~q8xOTFHKWfgWbY4lb?8?%F!mdKI;Vst E04B}gkN^Mx diff --git a/app/src/main/res/drawable-xhdpi/ic_color.png b/app/src/main/res/drawable-xhdpi/ic_color.png deleted file mode 100644 index 4af10a4d003116a3ed8f3fa9802edf2203a1f64f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480 zcmV<60U!Q}P)Zxcg^iUl|A29VY3u|$!9pa8jUZN%B9*PBg%VI> z8c`F8SVfQ!J2MeIRz4Wboj37At2wv3@4|t{=l%~RB^)K8%a9pMzA@)DkGRSSD!5QW zgNO!w6jN?+$RgNfOo%0S+5b0!O&(B`Pn=y>P-6f9e5J`2+axSNc0ahbj-bYfUo?H& z%I)A*QNbny@ND^hM|GYn#RS>E-}Ze~b)N5>3=4M2lK7Xl?mX{_^92!OvMgw^LzOnE z>M~r;7c{W)feKncA3LYC;F!2`f!N;Ef<)Z8Ky06AL08& zTwq;NCiJKi#lICe4)PYwm<_AI zae(J&?$`y64ep`%VifqC<_)Wun*}}*=XuKSbnJp`4s(%*yyP<}b2`L!LGhG=Qt%UD WrRBF~<*IuC0000uc|!O1F%tWwd?k%L@YBi=(a^-b&B4D={9k7jk%0zJlwd5&W}z_WR}u^!;lJRh+h zU?e?|?xnBjA==A6@=>e@sCzQ2s~+tEw)9NvX~uhqhPE6GbTk6}|EO58>&%r`00Y-f z?OD!#ux~uulPo!OV{AS~ZXH<4ChYi1^l55Zh9ZVqQ-8yGs!v#VkGMMIEgG&+`Wcs(}SjsZ_oJVz)}TpYPoV00000 LNkvXXu0mjf6+(i- diff --git a/app/src/main/res/drawable-xhdpi/ic_pointer_left.png b/app/src/main/res/drawable-xhdpi/ic_pointer_left.png deleted file mode 100644 index 932903fa4510ee64b3d74e4dc1b88ec9c4659ff5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV-BiT*8;WB=e_^&vT-P9XSVyndez@_Y_-Y|ysYU$k0ZVJI_6~CI@6M|b+{5r<7 zn|i~=vfkl4W`=qF(E*%ev+KI;ay;2}-I)QLbGWd8pXDxWVmiAi40o!1@D^j)O<{Oi z4e=zqCk*4*s6OD9vYWzi3g4=?@qBhu7_L;`L!WUxyD1EJtNrjAgLq^Q7uKpF9%c80 zVFK^V0DBJOA6htzoifA@&Sf`+;YPUw@BtIqO<{Og?T6>tJz*Hdt7?dq?4~dr!7f9l*OoIuqs)UNoG-ZQ8tlQ zo#~wa(>ZVFJ*Ske>$rcp?9Ofq!#Vt}L#$vvyD1Den)PryyC)2r@wge{Vs=v)cHl!D;5&|HH-+I? zjfeMG`rmU-d)N53l(JTjmr5zSrhNU4v;M*Jq*({&vztP2vx&cz-4lWfP5jfDdKchG z^EUp7o!L#JVLRT<w_=@>ni3a^SM|>elR{LuCG%UOyFQ{`}+CE pOtWpS%}1B&w<}u3U7oayp)lP+a^s-`WOp(`vXoc8-fI-56(|aUcUF5(ls+i zVV344!lrC%LpZvmlxOh^mv27)Xq_V8=IVDo(>%V|6wI!EzR&n~(f4y_s`)MY9$WN% z?pF$94t=X}S+8t$$CcR`Woa)MueiD>SLMn-&X4Lcv)aeTlU`!Sc}HyGO^0HM9V~A= zu0%7v>pYRM;5vH@OW)+YOCklqF4KhGN59?U9r`}osx(wK@M^Q*+2U2d44pskUKJM_ z%K3#YZ-h@W!ln0nh$LWQ!nq_WsudRFfKneMPQwArZgfX5>KnFu)~|hW zJRnbsrsa$9*U9|> zA@jbfXX!D?D+y-uR@{|HeifH9=|_8O=)W+z5XJQqY64yA*s5NiY+j{gG{0~@F!4UN cm_0w9TPr-TVO`7%U@l_tboFyt=akR{0Kd6=$N&HU diff --git a/app/src/main/res/drawable-xxhdpi/ic_color.png b/app/src/main/res/drawable-xxhdpi/ic_color.png deleted file mode 100644 index 119b1fd8cb6dd205a8d1822eeadc85a247141841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 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 Hu0mjf96xC- diff --git a/app/src/main/res/drawable-xxxhdpi/ic_change_view.png b/app/src/main/res/drawable-xxxhdpi/ic_change_view.png deleted file mode 100644 index fa45db74cab924e38fdca6af2d19ca0cb8b98c15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGooCO|{#S9GG!XV7ZFl&wk0|V1J zPZ!6KiaBrZ+GdL+iX8p;zc(;h;Gk1yQ^(Y@MG2Y7iqp#KI1g&oHB4!0otBim@&}{N znCJhCzG^K{&e&(oNPJUQuEWB;+d?*V6b_v%C9*( znf~|ZXKoM^Y;IfQnGhay%|IzkdXrkiUC&6DBVN~w)pyU+$khM9G2`Zm?x^Fw5Asfb z?DmXYuM*qYvDNUnKEw8tKOaX;D$!K3E4SQP%y@vMfXQOt!s%bt8QG)H&1CdbO<}BA z{PWp6c0Z$Evc{XN?qBb5xXmISaE4W+nDJTSHgo38n`T$bO$ul2*?QRP@{R|77k4(y zU)sO)*uTvX-^T4 z>e+2i?)smawB-4uV|@3$cIjkJn6g#lWyba2uf8{R?QBTWTQGxL;~5iS=2uzYJ?_7q z&308?Ec&Bdxw!MaM6Pe&W{y36r=pmS*-m{b|NrfURonhmI!=Cahu`(c_mvc3Q{*vi|F&1agTe~DWM4fk5^x+ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_color.png b/app/src/main/res/drawable-xxxhdpi/ic_color.png deleted file mode 100644 index dba40d4eb533bc747459496772626051c1747418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcmV;V16%xwP)7{`zA_2xD`2_LP5>M<)BhPQa{O}LZ@5fWFfOHqhykqpWc2_wWsAc~151c61X zTt$J4gdoDrYtv+4g{214G*Zgs+>vJdwayND?sxCZIg9iAw*T{Sf6n24A6%8kcZ$5a(8CYnH$pTxkBP+5hEo)WkV} zPq@(xflgyA*bivWCgNR&=cs_i%2;=uOugMn_XzR zKu9hjfh)(>1MP`?#GIZYw~`R(-0}&SbyTzeBS*r%aIzrpRknw%7t4{6$h!nByL)R{zi3Ba&g4 z3`$;dfq7b#3f@_;3<9}4k5~}fTD|2tcmdGA;-xhQt@?djb~(6n&f`qu_>sqKh3QeCvvUBF+1*OauAR7x~GB zX`ql-ib?*&oX2(r^z}3|{DB$c_679yB(L)IwG*Of^)+fx&+#UkoS~=4vla%Kpq}6b zUSpXr_>Lpas8i)J;{+)81!Uy~?3EYr0$#uicmXfq1^xx+GP?DcQlTgS0000eGS{%h^n zWRS@SRDMYAM=PJA%;c4V=T ztAO1#7Lu8ifmXb;_6Ag99(O6PyUe3fQVQCTm%cZkIxG2z%12g~_LoI}V;@H)R*;Qa zHY-YglI%6~arEU4Kg%2XmU!`zZRpF!C{zr0U@SKGC1Wghf)%Jro?r#~@vHPt0&F+; zA*%42U*$Dbg6X5peTcdIN^^thEzEt0OQ;!cV5nv8LuB(SWe3wMnEMdFSb69B0tUW- sFCgFx_yTIaz<`F1W;Owh5Bw6OaK4?07*qoM6N<$f*=3}KL7v# diff --git a/app/src/main/res/drawable-xxxhdpi/ic_pointer_left.png b/app/src/main/res/drawable-xxxhdpi/ic_pointer_left.png deleted file mode 100644 index ef5bc95b0f732faed072d86b709a214405e55ce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(hLmDVxBIJAr*7p-Z|erHB{n2Vf}6Xo)ssQnBTH*;WQGMxX4v^(gIgk zX~AqoQNeB6OhZk z=Y8#iInO_f*HoU{`<~~y?eld}p0cQ3j0j?VcX zbL8Kfb$JhDAJ03Pmn}DstL?w?x|8p+Z=I6A+pT;!{=m04`<5jd*KyhX{rYFV+M46b z4}RcJ{cg(N-t=((fi{q2zQLc(I}~@X&%DuT@80%bybLJK8=h?UciB?c9z_`Z z`M&x0toHEchvy%D0&01fsMF8$Km5*=yVp(bw0%}S{GWX{P(hpT53`Cddu9Md*Bo;{ z_`&|zt2f7%J#0<*p3d4bx@~jv2XP^Ji%FQD8hk?XD^_#h|2b2#o z%{e;l%|5*cXA=bX9a6nnd-kxE48PdJwLmcmzH4sjHQ!Rdmoi%O{I;Dewn2IKdhQCP zA7W=7-va4*n;_Vi99tIunJ53yJ|3}$TY-WJ-4DB7E=jckh6wAO_WkZ+4{hF^c=wuV z9=Dw9{ng==3y4nJ z@ErkR#;MwT(hLmD%APKcAr*7p-tk?rELq~f$M19X<9l0pBuyVL&Y2Q;*<>OscaWHe z=OHJLB==JqOOJFdQ%iL;+ca@gz-9x@O*5{{nc3QU%)PJQZ>GsIL*u@mkv7UQ=eO3J z3;kaEcU$`B_xtXBw|s8%{jbgDNX?~Fg1ivKOMbn>-4T=TUXs1jG@rLD^?M0(_6F|L z|2FnmZ@Rs!LAvnPf7yf6-t5zRuyi8h0j6_j-(|~Pd$c%#<9*8aQbzGdw-Y%0L9FYK zf1F_Od-M#X^5KK%4K3Q6e(!3qJt$yzyzR}tXAgC1#CQ_R%i_g1aNcKk-eJFcJ@<{y zU}a{Dw$~tq%bW8LhVM`SidL9Q9BO}c?&X&PIX+hB3PqsM4z~S$JP-U!pO=(A@cX|v z_wRP)9ay3*E85Jud!04MeBa!k*4xs7UgBrF z-{hKe>fLLmdmL>W_<`=6)xPNqy80tG<>U0iXrRghJ3hAQ^PU5ZPqPsG?zrK{`_;mQmk)hD z_^7_K_hzl{;kRwcFSKQkZUwQYrvKX&`O@Uwxp&#K9-f@h`ry*%qO$nUN6xpsJ$mcS zzGV+rCVUjXy6w>xp7ZSUWg`D1-mvYuKYJ~sKaDRSJ1ek{yJYD@<);T3K0RU!3%Ju*N diff --git a/app/src/main/res/drawable-xxxhdpi/ic_today.png b/app/src/main/res/drawable-xxxhdpi/ic_today.png deleted file mode 100644 index 37e5996b69d33949bb8c721803bb1014ae3cb42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7z{v0E;uuoF`1ZD~-(d#mRTx+Xp7IP7rFVd9D73pW3}>F(cL=B|?b<=&TV`-+y#U8iUKI6bzY>HhD>@>~K6 z4h;>}Zfaud?jAaFLV)>;P2i5yR^?jl1{+JQ!HC^cMasbE_7M5qy)#;m0eoHQ# Q4GbX$Pgg&ebxsLQ029xIVgLXD diff --git a/app/src/main/res/drawable/ic_change_view_vector.xml b/app/src/main/res/drawable/ic_change_view_vector.xml new file mode 100644 index 000000000..4f0f114cd --- /dev/null +++ b/app/src/main/res/drawable/ic_change_view_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_chevron_left_vector.xml b/app/src/main/res/drawable/ic_chevron_left_vector.xml new file mode 100644 index 000000000..2a62ae815 --- /dev/null +++ b/app/src/main/res/drawable/ic_chevron_left_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_chevron_right_vector.xml b/app/src/main/res/drawable/ic_chevron_right_vector.xml new file mode 100644 index 000000000..eeed48730 --- /dev/null +++ b/app/src/main/res/drawable/ic_chevron_right_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_color_vector.xml b/app/src/main/res/drawable/ic_color_vector.xml new file mode 100644 index 000000000..929631494 --- /dev/null +++ b/app/src/main/res/drawable/ic_color_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_group_vector.xml b/app/src/main/res/drawable/ic_group_vector.xml new file mode 100644 index 000000000..120218d2c --- /dev/null +++ b/app/src/main/res/drawable/ic_group_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_today_vector.xml b/app/src/main/res/drawable/ic_today_vector.xml new file mode 100644 index 000000000..bac56e0ed --- /dev/null +++ b/app/src/main/res/drawable/ic_today_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_event.xml b/app/src/main/res/layout/activity_event.xml index cf4d2385f..66a5004bc 100644 --- a/app/src/main/res/layout/activity_event.xml +++ b/app/src/main/res/layout/activity_event.xml @@ -381,7 +381,7 @@ android:layout_marginStart="@dimen/normal_margin" android:layout_marginTop="@dimen/small_margin" android:padding="@dimen/medium_margin" - android:src="@drawable/ic_people"/> + android:src="@drawable/ic_group_vector"/> + android:src="@drawable/ic_color_vector"/> + android:src="@drawable/ic_chevron_left_vector"/> + android:src="@drawable/ic_today_vector"/> + android:src="@drawable/ic_chevron_right_vector"/> + android:src="@drawable/ic_chevron_left_vector"/> + android:src="@drawable/ic_chevron_right_vector"/> diff --git a/app/src/main/res/layout/widget_event_list.xml b/app/src/main/res/layout/widget_event_list.xml index 9994ff342..24245066f 100644 --- a/app/src/main/res/layout/widget_event_list.xml +++ b/app/src/main/res/layout/widget_event_list.xml @@ -33,7 +33,7 @@ android:paddingEnd="@dimen/medium_margin" android:paddingBottom="@dimen/small_margin" android:scaleType="fitCenter" - android:src="@drawable/ic_today"/> + android:src="@drawable/ic_today_vector"/> Date: Wed, 14 Aug 2019 23:19:50 +0200 Subject: [PATCH 43/43] properly update top menu colors --- .../calendar/pro/activities/EventActivity.kt | 1 + .../calendar/pro/activities/MainActivity.kt | 2 ++ .../calendar/pro/activities/ManageEventTypesActivity.kt | 1 + .../calendar/pro/activities/SettingsActivity.kt | 7 +++++++ .../pro/activities/WidgetListConfigureActivity.kt | 8 ++------ 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt index 004c9aea7..bb384e878 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/EventActivity.kt @@ -222,6 +222,7 @@ class EventActivity : SimpleActivity() { menu.findItem(R.id.share).isVisible = mEvent.id != null menu.findItem(R.id.duplicate).isVisible = mEvent.id != null } + updateMenuItemColors(menu) return true } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt index 8066921fe..82f931ca3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt @@ -147,6 +147,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { search_holder.background = ColorDrawable(config.backgroundColor) checkSwipeRefreshAvailability() checkShortcuts() + invalidateOptionsMenu() } override fun onPause() { @@ -176,6 +177,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { } setupSearch(menu) + updateMenuItemColors(menu) return true } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/ManageEventTypesActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/ManageEventTypesActivity.kt index 4f797fa40..6740d4427 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/ManageEventTypesActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/ManageEventTypesActivity.kt @@ -41,6 +41,7 @@ class ManageEventTypesActivity : SimpleActivity(), DeleteEventTypesListener { override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_event_types, menu) + updateMenuItemColors(menu) return true } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt index 076407c24..29463bd01 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SettingsActivity.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.content.res.Resources import android.media.AudioManager import android.os.Bundle +import android.view.Menu import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog @@ -77,6 +78,7 @@ class SettingsActivity : SimpleActivity() { setupSectionColors() setupExportSettings() setupImportSettings() + invalidateOptionsMenu() } override fun onPause() { @@ -92,6 +94,11 @@ class SettingsActivity : SimpleActivity() { config.defaultReminder3 = reminders.getOrElse(2) { REMINDER_OFF } } + override fun onCreateOptionsMenu(menu: Menu): Boolean { + updateMenuItemColors(menu) + return super.onCreateOptionsMenu(menu) + } + override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { super.onActivityResult(requestCode, resultCode, resultData) if (requestCode == GET_RINGTONE_URI && resultCode == RESULT_OK && resultData != null) { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/WidgetListConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/WidgetListConfigureActivity.kt index 73a605e30..8c76bb403 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/WidgetListConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/WidgetListConfigureActivity.kt @@ -166,12 +166,8 @@ class WidgetListConfigureActivity : SimpleActivity() { updateBgColor() } - override fun onStartTrackingTouch(seekBar: SeekBar) { + override fun onStartTrackingTouch(seekBar: SeekBar) {} - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - - } + override fun onStopTrackingTouch(seekBar: SeekBar) {} } }