From 7ec164ae42277bf01a52a93654f7cb84b9664b07 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 23 Apr 2023 12:54:37 +0530 Subject: [PATCH 01/53] Fix permission issue with export files --- .../calendar/pro/extensions/Context.kt | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) 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 de9e5ad25..85d524e9e 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 @@ -50,6 +50,7 @@ import org.joda.time.DateTime import org.joda.time.DateTimeZone import org.joda.time.LocalDate import java.io.File +import java.io.FileOutputStream import java.util.* val Context.config: Config get() = Config.newInstance(applicationContext) @@ -222,6 +223,7 @@ fun Context.checkAndBackupEventsOnBoot() { } fun Context.backupEventsAndTasks() { + require(isRPlus()) ensureBackgroundThread { val config = config val events = eventsHelper.getEventsToExport( @@ -258,8 +260,17 @@ fun Context.backupEventsAndTasks() { } val exportFile = File(outputFolder, "$filename.ics") + val exportFilePath = exportFile.absolutePath val outputStream = try { - exportFile.outputStream() + if (hasProperStoredFirstParentUri(exportFilePath)) { + val exportFileUri = createDocumentUriUsingFirstParentTreeUri(exportFilePath) + if (!getDoesFilePathExist(exportFilePath)) { + createSAFFileSdk30(exportFilePath) + } + applicationContext.contentResolver.openOutputStream(exportFileUri, "wt") ?: FileOutputStream(exportFile) + } else { + FileOutputStream(exportFile) + } } catch (e: Exception) { showErrorToast(e) null @@ -273,8 +284,8 @@ fun Context.backupEventsAndTasks() { } MediaScannerConnection.scanFile( this, - arrayOf(exportFile.absolutePath), - arrayOf(exportFile.getMimeType()) + arrayOf(exportFilePath), + arrayOf(exportFilePath.getMimeType()) ) { _, _ -> } config.lastAutoBackupTime = getNowSeconds() @@ -522,6 +533,7 @@ fun Context.getNewEventTimestampFromCode(dayCode: String, allowChangingDay: Bool val currMinutes = calendar.get(Calendar.MINUTE) dateTime.withMinuteOfHour(currMinutes).seconds() } + DEFAULT_START_TIME_NEXT_FULL_HOUR -> newDateTime.seconds() else -> { val hours = defaultStartTime / 60 @@ -682,11 +694,13 @@ fun Context.handleEventDeleting(eventIds: List, timestamps: List, ac eventsHelper.addEventRepetitionException(value, timestamps[index], true) } } + DELETE_FUTURE_OCCURRENCES -> { eventIds.forEachIndexed { index, value -> eventsHelper.addEventRepeatLimit(value, timestamps[index]) } } + DELETE_ALL_OCCURRENCES -> { eventsHelper.deleteEvents(eventIds.toMutableList(), true) } From 710a87f2269a44167827e5b4ef267bab43f2bec9 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 23 Apr 2023 15:04:29 +0530 Subject: [PATCH 02/53] Use a numbered file when destination already exists Only applicable in cases when we don't have access to the parent folder (e.g. Downloads) --- .../calendar/pro/extensions/Context.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 85d524e9e..56a52fed9 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 @@ -259,8 +259,8 @@ fun Context.backupEventsAndTasks() { mkdirs() } - val exportFile = File(outputFolder, "$filename.ics") - val exportFilePath = exportFile.absolutePath + var exportFile = File(outputFolder, "$filename.ics") + var exportFilePath = exportFile.absolutePath val outputStream = try { if (hasProperStoredFirstParentUri(exportFilePath)) { val exportFileUri = createDocumentUriUsingFirstParentTreeUri(exportFilePath) @@ -269,6 +269,12 @@ fun Context.backupEventsAndTasks() { } applicationContext.contentResolver.openOutputStream(exportFileUri, "wt") ?: FileOutputStream(exportFile) } else { + var num = 0 + while (getDoesFilePathExist(exportFilePath) && !exportFile.canWrite()) { + num++ + exportFile = File(outputFolder, "${filename}_${num}.ics") + exportFilePath = exportFile.absolutePath + } FileOutputStream(exportFile) } } catch (e: Exception) { From 38c414e98cccf2a947378ff37e62677c9ac27b55 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Mon, 24 Apr 2023 14:47:39 +0200 Subject: [PATCH 03/53] removing some empty lines at switch/case --- .../com/simplemobiletools/calendar/pro/extensions/Context.kt | 3 --- 1 file changed, 3 deletions(-) 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 56a52fed9..ad7a1f3e8 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 @@ -539,7 +539,6 @@ fun Context.getNewEventTimestampFromCode(dayCode: String, allowChangingDay: Bool val currMinutes = calendar.get(Calendar.MINUTE) dateTime.withMinuteOfHour(currMinutes).seconds() } - DEFAULT_START_TIME_NEXT_FULL_HOUR -> newDateTime.seconds() else -> { val hours = defaultStartTime / 60 @@ -700,13 +699,11 @@ fun Context.handleEventDeleting(eventIds: List, timestamps: List, ac eventsHelper.addEventRepetitionException(value, timestamps[index], true) } } - DELETE_FUTURE_OCCURRENCES -> { eventIds.forEachIndexed { index, value -> eventsHelper.addEventRepeatLimit(value, timestamps[index]) } } - DELETE_ALL_OCCURRENCES -> { eventsHelper.deleteEvents(eventIds.toMutableList(), true) } From d3ac26202e58b5aec3b090163ea122fc39e5faa4 Mon Sep 17 00:00:00 2001 From: en2sv Date: Sat, 15 Apr 2023 19:10:53 +0000 Subject: [PATCH 04/53] Translated using Weblate (Swedish) Currently translated at 100.0% (245 of 245 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/sv/ --- app/src/main/res/values-sv/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 1b23cbcd9..c49eb4c9d 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -31,8 +31,8 @@ Du har en kommande händelse Sparar... Men den valda händelsetypen filtreras bort i den översta menyn - Filter Du har filtrerat bort alla händelsetyper - Event color - Default calendar color + Händelsens färg + Kalenderns standardfärg Uppgift Uppgifter @@ -266,7 +266,7 @@ Hur kan jag ta bort helgdagar som importerats via knappen \"Lägg till helgdagar\"\? Helgdagar som skapas på detta sätt läggs in i en ny händelsetyp som kallas \"Helgdagar\". Du kan gå till Inställningar -> Hantera händelsetyper, trycka länge på den aktuella händelsetypen och ta bort den genom att välja papperskorgen. - Kan jag synkronisera mina evenemang via Google Calendar eller en annan tjänst som stöder CalDAV\? + Kan jag synkronisera mina händelser via Google Kalender eller en annan tjänst som stöder CalDAV\? Kanske även dela kalendrar med andra\? Ja, det är bara att slå på \"CalDAV-synkronisering\" i appens inställningar och välja de kalendrar du vill synkronisera. Du behöver dock någon tredjepartsapp som hanterar synkroniseringen mellan enheten och servrarna. Om du vill synkronisera en Google-kalender kan deras officiella kalenderapp göra jobbet. För andra kalendrar behöver du en tredjepartssynkroniseringsadapter, till exempel DAVx5. Jag ser de visuella påminnelserna, men hör inget ljud. Vad kan jag göra\? @@ -281,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From d38126a226bb3e17333cc3f3c93bb6c5449c9d6b Mon Sep 17 00:00:00 2001 From: atilluF <110931720+atilluF@users.noreply.github.com> Date: Fri, 21 Apr 2023 17:06:39 +0000 Subject: [PATCH 05/53] Translated using Weblate (Italian) Currently translated at 100.0% (14 of 14 strings) Translation: Simple Mobile Tools/Simple Calendar metadata Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar-metadata/it/ --- fastlane/metadata/android/it-IT/short_description.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/metadata/android/it-IT/short_description.txt b/fastlane/metadata/android/it-IT/short_description.txt index 1f83d343f..16f9a180a 100644 --- a/fastlane/metadata/android/it-IT/short_description.txt +++ b/fastlane/metadata/android/it-IT/short_description.txt @@ -1 +1 @@ -Widget calendario. Programma e pianifica appuntamenti. Calendario per il lavoro +Calendario widget 2023 per Android. Programma appuntamenti, piani e promemoria From 4e0ff5f6e54f4f55b7c97aadb9760db7044115d4 Mon Sep 17 00:00:00 2001 From: Naveen Date: Tue, 25 Apr 2023 15:51:20 +0530 Subject: [PATCH 06/53] Use `adjustResize` flag --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5eca4365f..4e82229fd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -132,6 +132,7 @@ android:name=".activities.EventActivity" android:exported="true" android:label="@string/new_event" + android:windowSoftInputMode="adjustResize" android:launchMode="singleTask" android:parentActivityName=".activities.MainActivity"> From 13f5b857c10499a23b0d694d7af3dfffca61d85e Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 25 Apr 2023 03:13:51 +0000 Subject: [PATCH 07/53] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (14 of 14 strings) Translation: Simple Mobile Tools/Simple Calendar metadata Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar-metadata/zh_Hans/ --- fastlane/metadata/android/zh-CN/short_description.txt | 2 +- fastlane/metadata/android/zh-CN/title.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/metadata/android/zh-CN/short_description.txt b/fastlane/metadata/android/zh-CN/short_description.txt index d6e5ff249..3a6bc7b69 100644 --- a/fastlane/metadata/android/zh-CN/short_description.txt +++ b/fastlane/metadata/android/zh-CN/short_description.txt @@ -1 +1 @@ -简单移动日历 2023 。每一天的行程计划 & 约会提醒 +Android 系统 2023 日历小部件 。预约规划、计划和提醒 diff --git a/fastlane/metadata/android/zh-CN/title.txt b/fastlane/metadata/android/zh-CN/title.txt index 4aaaa2d22..6433648ab 100644 --- a/fastlane/metadata/android/zh-CN/title.txt +++ b/fastlane/metadata/android/zh-CN/title.txt @@ -1 +1 @@ -简单日历 Pro \ No newline at end of file +简单日历 Pro From 186470440fe6903d5935d3b86df9642a4b1b0adf Mon Sep 17 00:00:00 2001 From: Deleted User Date: Thu, 27 Apr 2023 19:38:17 +0000 Subject: [PATCH 08/53] Translated using Weblate (Latvian) Currently translated at 92.8% (13 of 14 strings) Translation: Simple Mobile Tools/Simple Calendar metadata Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar-metadata/lv/ --- fastlane/metadata/android/lv/title.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/metadata/android/lv/title.txt b/fastlane/metadata/android/lv/title.txt index f37164864..ff21a31ee 100644 --- a/fastlane/metadata/android/lv/title.txt +++ b/fastlane/metadata/android/lv/title.txt @@ -1 +1 @@ -Vienkāršs kalendārs Pro \ No newline at end of file +Vienkāršs kalendārs Pro From 2b77894bed0ba71cb5c1d70e9ee6f04161bd4a32 Mon Sep 17 00:00:00 2001 From: Alex Gabilondo Date: Fri, 28 Apr 2023 22:11:57 +0000 Subject: [PATCH 09/53] Translated using Weblate (Basque) Currently translated at 100.0% (245 of 245 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/eu/ --- app/src/main/res/values-eu/strings.xml | 96 +++++++++++++------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d105afe51..8f6a612b6 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -9,7 +9,7 @@ Hilabeteko + eguneko ikuspegia Urteko ikuspegia Gertaera-zerrenda sinplea - No upcoming events. + Ez dago hurbileko gertaerarik. Joan gaurko egunera Joan data zehatz batera @@ -29,19 +29,19 @@ Iragazi gertaerak motaren arabera Bete kokalekua mapan erakusteko Gertaera bat dator - Saving… But the selected event type is filtered out in the top Menu - Filter - You have filtered out all event types + Gordetzen… Baina hautatutako gertaera mota goiko menuko - Iragazkia-ren bidez iragazten da + Gertaera mota guztiak iragazi dituzu Event color Default calendar color - Task - Tasks - Edit Task - New Task - Create a new task - Duplicate task - Mark completed - Mark incomplete + Zeregina + Zereginak + Editatu zeregina + Zeregin berria + Sortu zeregin berri bat + Bikoiztu zeregina + Burutu gisa markatu + Markatu burutu gabeko gisa Errepikapena Errepikapenik ez @@ -55,7 +55,7 @@ Noiz arte errepikatu Betiko Gertaera errepikagarria da - The task is repeatable + Zeregina errepika daiteke Hautaketak errepikatzen diren gertaerak ditu Ezabatu hautatutako gertaera soilik Ezabatu gertaera hau eta datozen guztiak @@ -68,7 +68,7 @@ Errepikatu betiko aldiz Errepikatu - Errepikatu egun hauetan: + Errepikatu egun hauetan Hautatutako egunetan Egun bera Azken eguna @@ -76,7 +76,7 @@ Errepikatu hilabeteko azken egunean Errepikatu urtero egun berean Errepikatze-maiztasuna - Maiztasuna: + Maiztasuna lehenengo bigarren hirugarren @@ -85,8 +85,8 @@ azken - Erepikatze-maiztasuna: - Maiztasuna: + Errepikatze-maiztasuna + Maiztasuna lehenengo bigarren hirugarren @@ -99,20 +99,20 @@ Urtebetetzerik ez da aurkitu Urtebetetze berririk ez da aurkitu Urtebetetzeak ondo gehitu dira - Add new birthdays automatically + Gehitu urtebetetze berriak automatikoki Urteurrenak Gehitu kontaktuen urteurrenak Urteurrenik ez da aurkitu Urteurren berririk ez da aurkitu Urteurrenak ondo gehitu dira - Add new anniversaries automatically + Gehitu urtebetetze berriak automatikoki Abisua - hau baino lehen: + hau baino lehen Gehitu beste abisu bat Gertaera-abisua - Reminders + Oroigarriak Gehitu beste parte-hartzaile bat Nire egoera: @@ -130,18 +130,18 @@ Esportatu gertaerak .ics fitxategi batetik Lehenetsitako gertaera mota Esportatu iraganeko gertaerak ere bai - Export tasks - Export past entries too + Esportatu zereginak + Esportatu iraganeko sarrerak ere Gehitu gertaera motak Fitxategi-izena (.ics gabe) - Ignore event types in the file, always use the default one + Ez ikusi gertaera motak fitxategian, erabili beti lehenetsitakoa Kokalekua Deskripzioa Egun osokoa Astea - Start week with the current day + Hasi astea uneko egunarekin Gertaera motak Gehitu mota berria @@ -178,14 +178,14 @@ Gertaera-zerrendak Bistaratu iraganeko gertaerak Ordeztu gertaeraren deskripzioa kokalekuarekin - Display description or location + Bistaratu deskribapena edo kokapena Ezabatu gertaera guztiak - Delete all events and tasks + Ezabatu gertaera eta zeregin guztiak Ziur zaude gertaera guztiak ezabatu nahi dituzula\? Honek gertaera motak eta bestelako ezarpenak berdin utziko ditu. Erakutsi sareta Errepikatu abisuak baztertu arte Lausotu iraganeko gertaerak - Dim completed tasks + Indargabetu burututako zereginak Gertaerak Abisuek erabilitako audio-transmisioa Sistema @@ -206,10 +206,10 @@ Erabilitako azkena Bestelako denbora Nabarmendu asteburuak ikuspegi batzuetan - Color of highlighted weekends + Nabarmendutako asteburuen kolorea Baimendu gertaeren ordu-zonak aldatzea - Manage quick filter event types - Allow creating tasks + Kudeatu iragazki bizkorreko gertaera motak + Baimendu zereginak sortzea CalDAV Hautatu sinkronizatu nahi dituzun egutegiak @@ -226,8 +226,8 @@ Gertaera ez da aurkitu. Gaitu egutegi aproposerako CalDAV sinkronizazioa aplikazioaren ezarpenetan. Sinkronizatu daitekeen egutegirik ez da aurkitu Free - Busy - Fetching event %s failed + Lanpetuta + %s gertaera eskuratzeak huts egin du astelehenean @@ -247,38 +247,38 @@ Garraxi Kafea hartu - Show events happening: - Within the next 1 year - Today only - Within the next… + Erakutsi gertatzen ari diren gertaerak: + Hurrengo urtean + Gaur bakarrik + Hurrengo zeraren barruan… - Within the next %d day - Within the next %d days + Hurrengo %d egunean + Hurrengo %d egunetan - Within the next %d week - Within the next %d weeks + Hurrengo %d astean + Hurrengo %d astetan - Within the next %d month - Within the next %d months + Hurrengo %d hilabetean + Hurrengo %d hilabetetan Nola kendu ditzaket \"Gehitu jaiegunak\" botoiarekin inportatutako jaiegunak\? Modu horretan sortutako jaiegunak \"Jaiegunak\" deituriko gertaera mota berrian sartzen dira. Joan Ezarpenak -> Kudeatu gertaera motak atalera, sakatu luze gertaera mota hori eta ezabatu zakarrontzia hautatuz. Gertaerak Google Calendar bidez sinkronizatu ditzaket, edo CalDAV onartzen duen bestelako zerbitzurik\? - Maybe even share calendars with other people? + Agian egutegiak beste pertsona batzuekin partekatu ere\? Bai, aldatu \"CalDAVekin sinkronizatu\" aplikazioaren ezarpenetan eta hautatu sinkronizatu nahi dituzun egutegiak. Hala ere, gailuaren eta zerbitzarien arteko sinkronizazioa maneiatzen duen hirugarrenen aplikazioren bat beharko duzu. Googlen egutegiren bat sinkronizatu nahi izanez gero, beren egutegiaren aplikazio ofizialak egingo du lana. Bestelako egutegientzat sinkronizazio-moldagailua duen hirugarrenen aplikazio bat beharko duzu, DAVx5, esate baterako. Abisu bisualak ikusten ditut, baina audiorik ez dut entzuten. Zer egin dezaket\? Abisua bistaratzeari eta audioa erreproduzitzeari sistemak eragiten dio. Soinurik ez baduzu entzuten, saiatu aplikazioaren ezarpenetara joaten, \"Abisuek erabilitako audio-transmisioa\" aukera sakatu eta balio ezberdina jarri. Oraindik ez badabil, egiaztatu soinu-ezarpenak, transmisio jakina mututua ez badago. Aplikazioak ordu-zonak onartzen ditu\? Bai, onartzen ditu. Gertaera guztiak zure ordu-zonaren arabera sortzen dira modu lehenetsian. Gertaera baten ordu-zona aldatu nahi baduzu, lehenengo ordu-zonaren hautatzailea gaitu behar duzu aplikazioaren ezarpenetan eta, ondoren, Gartaeraren xehetasunen pantailan aldatu. Modu lehenetsian desgaituta dago, jende gehienak ez duelako behar. - The app shows no notifications, why is that\? - Check your device battery and notification settings, if there is nothing blocking the reminders, or killing the app in the background. You might also want to take a look at <a href=https://dontkillmyapp.com>https://dontkillmyapp.com</a>, it has some useful tips. - How can I modify or delete an existing event type\? - You can do both of those in the app Settings - Manage event types. Just click on the wanted one for changing the label and color, or select the wanted one by long pressing it and use the trashbin at the top menu for deleting. + Aplikazioak ez du jakinarazpenik erakusten, zergatik\? + Egiaztatu gailuaren bateria eta jakinarazpenen ezarpenak, egiaztatu abisuak ez daudela blokeatuta edo aplikazioa bigarren planoan exekutatzea galarazten duen ezer ez dagoela. Baliteke <a href=https://dontkillmyapp.com>https://dontkillmyapp.com</a> helbidera ere begiratu nahi izatea, aholku erabilgarriak ditu. + Nola aldatu edo ezabatu dezaket lehendik dagoen gertaera mota bat\? + Gauza biak egin ditzakezu Ezarpenak - Kudeatu gertaera motak aplikazioan. Egin klik nahi duzun elementuan etiketa eta kolorea aldatzeko, edo hautatu nahi duzuna luze sakatuz eta erabili goiko menuko zakarrontzia ezabatzeko. - + \ No newline at end of file From 4503281860948343674423f813b0fb9b033a61ad Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 14:40:05 +0530 Subject: [PATCH 10/53] Allow color customization of local events as well --- .../calendar/pro/activities/EventActivity.kt | 78 ++++-- .../calendar/pro/dialogs/ColorPickerDialog.kt | 247 ++++++++++++++++++ .../main/res/layout/dialog_color_picker.xml | 163 ++++++++++++ 3 files changed, 469 insertions(+), 19 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt create mode 100644 app/src/main/res/layout/dialog_color_picker.xml 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 e067183de..a93f7babe 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 @@ -31,7 +31,6 @@ import com.simplemobiletools.calendar.pro.adapters.AutoCompleteTextViewAdapter import com.simplemobiletools.calendar.pro.dialogs.* import com.simplemobiletools.calendar.pro.extensions.* import com.simplemobiletools.calendar.pro.helpers.* -import com.simplemobiletools.calendar.pro.helpers.Formatter import com.simplemobiletools.calendar.pro.models.* import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog @@ -40,11 +39,13 @@ import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.views.MyAutoCompleteTextView import kotlinx.android.synthetic.main.activity_event.* -import kotlinx.android.synthetic.main.activity_event.view.* +import kotlinx.android.synthetic.main.activity_event.view.event_reminder_2 +import kotlinx.android.synthetic.main.activity_event.view.event_reminder_3 import kotlinx.android.synthetic.main.item_attendee.view.* import org.joda.time.DateTime import org.joda.time.DateTimeZone -import java.util.* +import java.util.Calendar +import java.util.TimeZone import java.util.regex.Pattern class EventActivity : SimpleActivity() { @@ -834,25 +835,55 @@ class EventActivity : SimpleActivity() { private fun showEventColorDialog() { hideKeyboard() ensureBackgroundThread { - val eventType = eventsHelper.getEventTypeWithCalDAVCalendarId(calendarId = mEventCalendarId)!! - val eventColors = getEventColors(eventType) - runOnUiThread { - val currentColor = if (mEventColor == 0) { - eventType.color - } else { - mEventColor - } + val isLocalEvent = mEventCalendarId == STORED_LOCALLY_ONLY + if (isLocalEvent) { + showCustomEventColorDialog() + } else { + showCalDAVEventColorDialog() + } + } + } - SelectEventColorDialog(activity = this, colors = eventColors, currentColor = currentColor) { newColor -> - if (newColor != currentColor) { - mEventColor = newColor - updateEventColorInfo(defaultColor = eventType.color) - } + private fun showCustomEventColorDialog() { + val eventType = eventTypesDB.getEventTypeWithId(mEventTypeId)!! + val currentColor = if (mEventColor == 0) { + eventType.color + } else { + mEventColor + } + + runOnUiThread { + ColorPickerDialog(activity = this, color = currentColor) { wasPositivePressed, newColor -> + if (wasPositivePressed) { + gotNewEventColor(newColor, currentColor, eventType.color) } } } } + private fun showCalDAVEventColorDialog() { + val eventType = eventsHelper.getEventTypeWithCalDAVCalendarId(calendarId = mEventCalendarId)!! + val eventColors = getEventColors(eventType) + val currentColor = if (mEventColor == 0) { + eventType.color + } else { + mEventColor + } + + runOnUiThread { + SelectEventColorDialog(activity = this, colors = eventColors, currentColor = currentColor) { newColor -> + gotNewEventColor(newColor, currentColor, eventType.color) + } + } + } + + private fun gotNewEventColor(newColor: Int, currentColor: Int, defaultColor: Int) { + if (newColor != currentColor) { + mEventColor = newColor + updateEventColorInfo(defaultColor = defaultColor) + } + } + private fun checkReminderTexts() { updateReminder1Text() updateReminder2Text() @@ -1018,9 +1049,17 @@ class EventActivity : SimpleActivity() { setPadding(paddingLeft, mediumMargin, paddingRight, mediumMargin) } - event_caldav_color_image.beGone() - event_caldav_color_holder.beGone() - event_caldav_color_divider.beGone() + ensureBackgroundThread { + val eventType = eventTypesDB.getEventTypeWithId(mEventTypeId) + if (eventType != null) { + runOnUiThread { + event_caldav_color_image.beVisible() + event_caldav_color_holder.beVisible() + event_caldav_color_divider.beVisible() + updateEventColorInfo(eventType.color) + } + } + } } else { event_caldav_calendar_email.text = currentCalendar.accountName @@ -1326,6 +1365,7 @@ class EventActivity : SimpleActivity() { } } } + 1 -> { ensureBackgroundThread { eventsHelper.addEventRepeatLimit(mEvent.id!!, mEventOccurrenceTS) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt new file mode 100644 index 000000000..d39809364 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt @@ -0,0 +1,247 @@ +package com.simplemobiletools.calendar.pro.dialogs + +import android.app.Activity +import android.graphics.Color +import android.view.MotionEvent +import android.view.View +import android.view.View.OnTouchListener +import android.view.ViewGroup +import android.view.WindowManager +import android.widget.EditText +import android.widget.ImageView +import androidx.appcompat.app.AlertDialog +import com.simplemobiletools.calendar.pro.R +import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.isQPlus +import com.simplemobiletools.commons.views.ColorPickerSquare +import kotlinx.android.synthetic.main.dialog_color_picker.view.* +import java.util.LinkedList + +private const val RECENT_COLORS_NUMBER = 5 + +// forked from https://github.com/yukuku/ambilwarna +class ColorPickerDialog( + val activity: Activity, + color: Int, + val removeDimmedBackground: Boolean = false, + val currentColorCallback: ((color: Int) -> Unit)? = null, + val callback: (wasPositivePressed: Boolean, color: Int) -> Unit +) { + var viewHue: View + var viewSatVal: ColorPickerSquare + var viewCursor: ImageView + var viewNewColor: ImageView + var viewTarget: ImageView + var newHexField: EditText + var viewContainer: ViewGroup + private val baseConfig = activity.baseConfig + private val currentColorHsv = FloatArray(3) + private val backgroundColor = baseConfig.backgroundColor + private var isHueBeingDragged = false + private var wasDimmedBackgroundRemoved = false + private var dialog: AlertDialog? = null + + init { + Color.colorToHSV(color, currentColorHsv) + + val view = activity.layoutInflater.inflate(R.layout.dialog_color_picker, null).apply { + if (isQPlus()) { + isForceDarkAllowed = false + } + + viewHue = color_picker_hue + viewSatVal = color_picker_square + viewCursor = color_picker_hue_cursor + + viewNewColor = color_picker_new_color + viewTarget = color_picker_cursor + viewContainer = color_picker_holder + newHexField = color_picker_new_hex + + viewSatVal.setHue(getHue()) + + viewNewColor.setFillWithStroke(getColor(), backgroundColor) + color_picker_old_color.setFillWithStroke(color, backgroundColor) + + val hexCode = getHexCode(color) + color_picker_old_hex.text = "#$hexCode" + color_picker_old_hex.setOnLongClickListener { + activity.copyToClipboard(hexCode) + true + } + newHexField.setText(hexCode) + setupRecentColors() + } + + viewHue.setOnTouchListener(OnTouchListener { v, event -> + if (event.action == MotionEvent.ACTION_DOWN) { + isHueBeingDragged = true + } + + if (event.action == MotionEvent.ACTION_MOVE || event.action == MotionEvent.ACTION_DOWN || event.action == MotionEvent.ACTION_UP) { + var y = event.y + if (y < 0f) + y = 0f + + if (y > viewHue.measuredHeight) { + y = viewHue.measuredHeight - 0.001f // to avoid jumping the cursor from bottom to top. + } + var hue = 360f - 360f / viewHue.measuredHeight * y + if (hue == 360f) + hue = 0f + + currentColorHsv[0] = hue + updateHue() + newHexField.setText(getHexCode(getColor())) + + if (event.action == MotionEvent.ACTION_UP) { + isHueBeingDragged = false + } + return@OnTouchListener true + } + false + }) + + viewSatVal.setOnTouchListener(OnTouchListener { v, event -> + if (event.action == MotionEvent.ACTION_MOVE || event.action == MotionEvent.ACTION_DOWN || event.action == MotionEvent.ACTION_UP) { + var x = event.x + var y = event.y + + if (x < 0f) + x = 0f + if (x > viewSatVal.measuredWidth) + x = viewSatVal.measuredWidth.toFloat() + if (y < 0f) + y = 0f + if (y > viewSatVal.measuredHeight) + y = viewSatVal.measuredHeight.toFloat() + + currentColorHsv[1] = 1f / viewSatVal.measuredWidth * x + currentColorHsv[2] = 1f - 1f / viewSatVal.measuredHeight * y + + moveColorPicker() + viewNewColor.setFillWithStroke(getColor(), backgroundColor) + newHexField.setText(getHexCode(getColor())) + return@OnTouchListener true + } + false + }) + + newHexField.onTextChangeListener { + if (it.length == 6 && !isHueBeingDragged) { + try { + val newColor = Color.parseColor("#$it") + Color.colorToHSV(newColor, currentColorHsv) + updateHue() + moveColorPicker() + } catch (ignored: Exception) { + } + } + } + + val textColor = activity.getProperTextColor() + val builder = activity.getAlertDialogBuilder() + .setPositiveButton(R.string.ok) { _, _ -> confirmNewColor() } + .setNeutralButton(R.string.default_color) { _, _ -> confirmDefaultColor() } + .setOnCancelListener { dialogDismissed() } + + builder.apply { + activity.setupDialogStuff(view, this) { alertDialog -> + dialog = alertDialog + view.color_picker_arrow.applyColorFilter(textColor) + view.color_picker_hex_arrow.applyColorFilter(textColor) + viewCursor.applyColorFilter(textColor) + } + } + + view.onGlobalLayout { + moveHuePicker() + moveColorPicker() + } + } + + private fun View.setupRecentColors() { + val recentColors = baseConfig.colorPickerRecentColors + if (recentColors.isNotEmpty()) { + recent_colors.beVisible() + val squareSize = context.resources.getDimensionPixelSize(R.dimen.colorpicker_hue_width) + recentColors.take(RECENT_COLORS_NUMBER).forEach { recentColor -> + val recentColorView = ImageView(context) + recentColorView.id = View.generateViewId() + recentColorView.layoutParams = ViewGroup.LayoutParams(squareSize, squareSize) + recentColorView.setFillWithStroke(recentColor, backgroundColor) + recentColorView.setOnClickListener { newHexField.setText(getHexCode(recentColor)) } + recent_colors.addView(recentColorView) + recent_colors_flow.addView(recentColorView) + } + } + } + + private fun dialogDismissed() { + callback(false, 0) + } + + private fun confirmDefaultColor() { + callback(true, 0) + } + + private fun confirmNewColor() { + val hexValue = newHexField.value + val newColor = if (hexValue.length == 6) { + Color.parseColor("#$hexValue") + } else { + getColor() + } + + addRecentColor(newColor) + callback(true, newColor) + } + + private fun addRecentColor(color: Int) { + var recentColors = baseConfig.colorPickerRecentColors + + recentColors.remove(color) + if (recentColors.size >= RECENT_COLORS_NUMBER) { + val numberOfColorsToDrop = recentColors.size - RECENT_COLORS_NUMBER + 1 + recentColors = LinkedList(recentColors.dropLast(numberOfColorsToDrop)) + } + recentColors.addFirst(color) + + baseConfig.colorPickerRecentColors = recentColors + } + + private fun getHexCode(color: Int) = color.toHex().substring(1) + + private fun updateHue() { + viewSatVal.setHue(getHue()) + moveHuePicker() + viewNewColor.setFillWithStroke(getColor(), backgroundColor) + if (removeDimmedBackground && !wasDimmedBackgroundRemoved) { + dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) + wasDimmedBackgroundRemoved = true + } + + currentColorCallback?.invoke(getColor()) + } + + private fun moveHuePicker() { + var y = viewHue.measuredHeight - getHue() * viewHue.measuredHeight / 360f + if (y == viewHue.measuredHeight.toFloat()) + y = 0f + + viewCursor.x = (viewHue.left - viewCursor.width).toFloat() + viewCursor.y = viewHue.top + y - viewCursor.height / 2 + } + + private fun moveColorPicker() { + val x = getSat() * viewSatVal.measuredWidth + val y = (1f - getVal()) * viewSatVal.measuredHeight + viewTarget.x = viewSatVal.left + x - viewTarget.width / 2 + viewTarget.y = viewSatVal.top + y - viewTarget.height / 2 + } + + private fun getColor() = Color.HSVToColor(currentColorHsv) + private fun getHue() = currentColorHsv[0] + private fun getSat() = currentColorHsv[1] + private fun getVal() = currentColorHsv[2] +} diff --git a/app/src/main/res/layout/dialog_color_picker.xml b/app/src/main/res/layout/dialog_color_picker.xml new file mode 100644 index 000000000..1b5c7043e --- /dev/null +++ b/app/src/main/res/layout/dialog_color_picker.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From dc44935795f8f330216b05ab38731d4f98f6ac9b Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 14:44:33 +0530 Subject: [PATCH 11/53] Remove local event type color indicator --- .../calendar/pro/activities/EventActivity.kt | 1 - app/src/main/res/layout/activity_event.xml | 10 ---------- 2 files changed, 11 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 a93f7babe..da9e520e4 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 @@ -984,7 +984,6 @@ class EventActivity : SimpleActivity() { if (eventType != null) { runOnUiThread { event_type.text = eventType.title - event_type_color.setFillWithStroke(eventType.color, getProperBackgroundColor()) } } } diff --git a/app/src/main/res/layout/activity_event.xml b/app/src/main/res/layout/activity_event.xml index 5f5382cf9..b4f112915 100644 --- a/app/src/main/res/layout/activity_event.xml +++ b/app/src/main/res/layout/activity_event.xml @@ -645,20 +645,10 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/small_margin" android:layout_marginEnd="@dimen/medium_margin" - android:layout_toStartOf="@+id/event_type_color" android:paddingTop="@dimen/normal_margin" android:paddingBottom="@dimen/normal_margin" android:textSize="@dimen/day_text_size" /> - - Date: Sun, 30 Apr 2023 15:13:17 +0530 Subject: [PATCH 12/53] Use custom event colors in the top bar --- .../calendar/pro/fragments/WeekFragment.kt | 6 +++++- 1 file changed, 5 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 7418548a9..3f4c344b0 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 @@ -713,7 +713,11 @@ class WeekFragment : Fragment(), WeeklyCalendar { @SuppressLint("NewApi") private fun addAllDayEvent(event: Event) { (inflater.inflate(R.layout.week_all_day_event_marker, null, false) as ConstraintLayout).apply { - var backgroundColor = eventTypeColors.get(event.eventType, primaryColor) + var backgroundColor = if (event.color == 0) { + eventTypeColors.get(event.eventType, primaryColor) + } else { + event.color + } var textColor = backgroundColor.getContrastColor() val adjustAlpha = if (event.isTask()) { From 3a8a250844c65378079cebbaea1fff0c729fa7a8 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 15:18:33 +0530 Subject: [PATCH 13/53] Minor readability improvement --- .../calendar/pro/activities/EventActivity.kt | 18 +++++++-------- app/src/main/res/layout/activity_event.xml | 22 +++++++++---------- 2 files changed, 20 insertions(+), 20 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 da9e520e4..e4b21ed40 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 @@ -1018,7 +1018,7 @@ class EventActivity : SimpleActivity() { } } - event_caldav_color_holder.setOnClickListener { + event_color_holder.setOnClickListener { showEventColorDialog() } } else { @@ -1052,9 +1052,9 @@ class EventActivity : SimpleActivity() { val eventType = eventTypesDB.getEventTypeWithId(mEventTypeId) if (eventType != null) { runOnUiThread { - event_caldav_color_image.beVisible() - event_caldav_color_holder.beVisible() - event_caldav_color_divider.beVisible() + event_color_image.beVisible() + event_color_holder.beVisible() + event_color_divider.beVisible() updateEventColorInfo(eventType.color) } } @@ -1081,9 +1081,9 @@ class EventActivity : SimpleActivity() { setPadding(paddingLeft, 0, paddingRight, 0) } - event_caldav_color_image.beVisibleIf(canCustomizeColors) - event_caldav_color_holder.beVisibleIf(canCustomizeColors) - event_caldav_color_divider.beVisibleIf(canCustomizeColors) + event_color_image.beVisibleIf(canCustomizeColors) + event_color_holder.beVisibleIf(canCustomizeColors) + event_color_divider.beVisibleIf(canCustomizeColors) if (canCustomizeColors) { updateEventColorInfo(calendarColor) } @@ -1098,7 +1098,7 @@ class EventActivity : SimpleActivity() { } else { mEventColor } - event_caldav_color.setFillWithStroke(eventColor, getProperBackgroundColor()) + event_color.setFillWithStroke(eventColor, getProperBackgroundColor()) } private fun getEventColors(eventType: EventType): IntArray { @@ -1891,7 +1891,7 @@ class EventActivity : SimpleActivity() { val textColor = getProperTextColor() arrayOf( event_time_image, event_time_zone_image, event_repetition_image, event_reminder_image, event_type_image, event_caldav_calendar_image, - event_reminder_1_type, event_reminder_2_type, event_reminder_3_type, event_attendees_image, event_availability_image, event_caldav_color_image + event_reminder_1_type, event_reminder_2_type, event_reminder_3_type, event_attendees_image, event_availability_image, event_color_image ).forEach { it.applyColorFilter(textColor) } diff --git a/app/src/main/res/layout/activity_event.xml b/app/src/main/res/layout/activity_event.xml index b4f112915..d1d4292e3 100644 --- a/app/src/main/res/layout/activity_event.xml +++ b/app/src/main/res/layout/activity_event.xml @@ -507,24 +507,24 @@ android:importantForAccessibility="no" /> @@ -563,7 +563,7 @@ android:id="@+id/event_caldav_calendar_image" android:layout_width="@dimen/smaller_icon_size" android:layout_height="@dimen/smaller_icon_size" - android:layout_below="@+id/event_caldav_color_divider" + android:layout_below="@+id/event_color_divider" android:layout_alignTop="@+id/event_caldav_calendar_holder" android:layout_alignEnd="@+id/event_time_image" android:layout_alignBottom="@+id/event_caldav_calendar_holder" @@ -576,7 +576,7 @@ android:id="@+id/event_caldav_calendar_holder" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@+id/event_caldav_color_divider" + android:layout_below="@+id/event_color_divider" android:layout_toEndOf="@+id/event_caldav_calendar_image" android:background="?attr/selectableItemBackground" android:visibility="gone"> From c4eeaeebc494683f3a5bffd3ed7b7adf01c97252 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 16:07:58 +0530 Subject: [PATCH 14/53] Change event type setting icon --- app/src/main/res/drawable/ic_category_vector.xml | 9 +++++++++ app/src/main/res/layout/activity_event.xml | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable/ic_category_vector.xml diff --git a/app/src/main/res/drawable/ic_category_vector.xml b/app/src/main/res/drawable/ic_category_vector.xml new file mode 100644 index 000000000..342258f37 --- /dev/null +++ b/app/src/main/res/drawable/ic_category_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 d1d4292e3..7110125c6 100644 --- a/app/src/main/res/layout/activity_event.xml +++ b/app/src/main/res/layout/activity_event.xml @@ -627,7 +627,7 @@ android:layout_alignBottom="@+id/event_type_holder" android:layout_marginStart="@dimen/normal_margin" android:padding="@dimen/medium_margin" - android:src="@drawable/ic_color_vector" /> + android:src="@drawable/ic_category_vector" /> Date: Sun, 30 Apr 2023 16:18:48 +0530 Subject: [PATCH 15/53] Minor UX improvement --- .../calendar/pro/activities/EventActivity.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 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 e4b21ed40..3ca922570 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 @@ -647,11 +647,13 @@ class EventActivity : SimpleActivity() { event_repetition_limit_label.text = getString(R.string.repeat) resources.getString(R.string.forever) } + mRepeatLimit > 0 -> { event_repetition_limit_label.text = getString(R.string.repeat_till) val repeatLimitDateTime = Formatter.getDateTimeFromTS(mRepeatLimit) Formatter.getFullDate(this, repeatLimitDateTime) } + else -> { event_repetition_limit_label.text = getString(R.string.repeat) "${-mRepeatLimit} ${getString(R.string.times)}" @@ -665,12 +667,14 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> RepeatRuleWeeklyDialog(this, mRepeatRule) { setRepeatRule(it) } + mRepeatInterval.isXMonthlyRepetition() -> { val items = getAvailableMonthlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { setRepeatRule(it as Int) } } + mRepeatInterval.isXYearlyRepetition() -> { val items = getAvailableYearlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { @@ -787,6 +791,7 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> { event_repetition_rule.text = if (mRepeatRule == EVERY_DAY_BIT) getString(R.string.every_day) else getSelectedDaysString(mRepeatRule) } + mRepeatInterval.isXMonthlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on @@ -794,6 +799,7 @@ class EventActivity : SimpleActivity() { event_repetition_rule_label.text = getString(repeatString) event_repetition_rule.text = getMonthlyRepetitionRuleText() } + mRepeatInterval.isXYearlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on @@ -1050,11 +1056,11 @@ class EventActivity : SimpleActivity() { ensureBackgroundThread { val eventType = eventTypesDB.getEventTypeWithId(mEventTypeId) + event_color_image.beVisibleIf(eventType != null) + event_color_holder.beVisibleIf(eventType != null) + event_color_divider.beVisibleIf(eventType != null) if (eventType != null) { runOnUiThread { - event_color_image.beVisible() - event_color_holder.beVisible() - event_color_divider.beVisible() updateEventColorInfo(eventType.color) } } From a9577adaa30c7c0759a31c244c86fe2a94303816 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 16:23:48 +0530 Subject: [PATCH 16/53] Add "Task color" string --- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-be/strings.xml | 1 + app/src/main/res/values-bg/strings.xml | 1 + app/src/main/res/values-bn/strings.xml | 1 + app/src/main/res/values-br/strings.xml | 1 + app/src/main/res/values-ca/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-el/strings.xml | 1 + app/src/main/res/values-eo/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-et/strings.xml | 1 + app/src/main/res/values-eu/strings.xml | 1 + app/src/main/res/values-fi/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-hi-rIN/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-in/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-iw/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-ko/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-lv/strings.xml | 1 + app/src/main/res/values-mk/strings.xml | 1 + app/src/main/res/values-ml/strings.xml | 1 + app/src/main/res/values-nb-rNO/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pa-rPK/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ro/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-si/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sl/strings.xml | 1 + app/src/main/res/values-sr/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 3 ++- app/src/main/res/values-th/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rHK/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 50 files changed, 51 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index df5438240..50138e813 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -42,6 +42,7 @@ تكرار المهمة وضع علامة \"مكتمل\" وضع علامة غير مكتملة + Task color تكرار بدون تكرار diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 0c4e5586c..ea0aa0042 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Təkrarlama Təkrarlama yoxdur diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 603802866..170bed6f4 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -42,6 +42,7 @@ Дубляваць заданне Адзначыць выкананае Пазначыць як незавершанае + Task color Паўтарэнне Без паўтарэння diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 2e3ac6425..3ef151ea7 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -42,6 +42,7 @@ Дублиране на задача Означете като завършено Означете като незавършено + Task color Повторение Без повторение diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 7b28d4e03..6cdda6fa0 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color পুনরাবৃত্তি পুনরাবৃত্তি নেই diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index f0148cbd6..624f03f9f 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Addegouezh Addegouezh ebet diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 5e8d61aac..83f0fd241 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -42,6 +42,7 @@ Duplica la tasca Marca com a completada Marca com a no completada + Task color Repetició Sense repetició diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 08f14f1a6..70a3eac2b 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -42,6 +42,7 @@ Zkopírovat úkol Označit jako dokončený Označit jako nedokončený + Task color Opakování Neopakuje se diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 5178d9838..91d6bf280 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -42,6 +42,7 @@ Kopier opgave Marker som afsluttet Marker som uafsluttet + Task color Gentagelse Gentages ikke diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f9c01293e..dfe42c79c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -42,6 +42,7 @@ Aufgabe duplizieren Als abgeschlossen markieren Als unvollständig markieren + Task color Wiederholung Keine Wiederholung diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 0e28490ae..adec96b6f 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -42,6 +42,7 @@ Διπλή εργασία Σήμανση ολοκλ/μένη Σήμανση μη ολοκλ/μένη + Task color Επανάληψη Χωρίς Επανάληψη diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 8523b6c5f..ac2af0b0f 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition No repetition diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 744ac96b3..fab53cb2b 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -42,6 +42,7 @@ Duplicar tarea Marcar como completada Marcar como no completada + Task color Repetir No repetir diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 33be1a952..531e70c0c 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -42,6 +42,7 @@ Tee ülesandest koopia Märgi tehtuks Märgi poolikuks + Task color Kordus Ära korda diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d105afe51..cd961c536 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Errepikapena Errepikapenik ez diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 875cc1da4..f578950e2 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -42,6 +42,7 @@ Monista tehtävä Merkkaa valmiiksi Merkkaa keskeneräiseksi + Task color Toisto Ei toistoa diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9b0f23c38..f56d05471 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -42,6 +42,7 @@ Dupliquer la tâche Marquer comme terminé Marquer comme non terminé + Task color Répétition Aucune répétition diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 2b9794025..66aabafe7 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -42,6 +42,7 @@ Tarefa duplicada Marcar como feita Marcar como sen facer + Task color Repetición Sen repetición diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index 7a558dcde..860c844e5 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color दुहराव No repetition diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 39aabfa43..21da7dc87 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -42,6 +42,7 @@ Dupliciraj zadatak Označi kao završeno Označi kao nezavršeno + Task color Ponavljanje Bez ponavljanja diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index c2649339a..05b471af9 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -42,6 +42,7 @@ Feladat kettőzése Megjelölés befejezettként Megjelölés nem befejezettként + Task color Ismétlés Nincs ismétlés diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 51b080d94..26c7d9838 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -42,6 +42,7 @@ Gandakan tugas Tandai sebagai selesai Tandai sebagai belum selesai + Task color Perulangan Tidak ada perulangan diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3d6c30276..4a6e9c800 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -42,6 +42,7 @@ Duplica il compito Segna come completato Segno come incompleto + Task color Ripeti Non ripetere diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 4cf037946..44d2296d6 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -42,6 +42,7 @@ משימה כפולה סימן הושלם סמן כלא שלם + Task color אירוע חוזר אין חזרה diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 5534a6183..8943e80a5 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -42,6 +42,7 @@ タスクのコピー 完了にする 未完了にする + Task color 繰り返し 繰り返さない diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d80cf0f43..13783175f 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color 반복 반복 없음 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index a99ad081b..3708f730d 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -42,6 +42,7 @@ Dubliuoti užduotį Žymėti kaip įvykdytą Žymėti kaip neįvykdytą + Task color Pasikartojimas Be pasikartojimo diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index cba212028..183bcf0ab 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Atkārtojošs Bez atkārtošanās diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index dc32e80da..4a7cd07ba 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -42,6 +42,7 @@ Дупликатна задача Марк е завршен Означи нецелосен + Task color Повторување diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 9574fe401..e47ae6e54 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition No repetition diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 8b1e50cfb..9ca7af2c9 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -42,6 +42,7 @@ Dupliser oppgave Marker som fullført Marker som ufullstendig + Task color Gjentagelse Ingen gjentagelse diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index f3b69c1fa..54b08f904 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -42,6 +42,7 @@ Taak dupliceren Als voltooid markeren Als onvoltooid markeren + Task color Herhaling Niet herhalen diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml index e1513ccd5..d44da62ec 100644 --- a/app/src/main/res/values-pa-rPK/strings.xml +++ b/app/src/main/res/values-pa-rPK/strings.xml @@ -71,6 +71,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition No repetition Daily diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index afd07d47b..8cc33cccd 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -42,6 +42,7 @@ Powiel zadanie Oznacz jako ukończone Oznacz jako nieukończone + Task color Powtarzanie Brak powtarzania diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 6c2fcd36b..cb2a91f6e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -42,6 +42,7 @@ Duplicar tarefa Marcar como concluída Marcar como incompleta + Task color Repetição Sem repetição diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 2c9c89add..025bf9425 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -42,6 +42,7 @@ Duplicar tarefa Marcar como terminado Marcar como não terminado + Task color Repetição Sem repetição diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 61af0234f..aeddc5919 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -42,6 +42,7 @@ Duplicați sarcina Marcare finalizată Marcare incompletă + Task color Repetiție Fără repetiție diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 91401d6ed..5ad1767b2 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -42,6 +42,7 @@ Дублировать задачу Пометить завершённой Пометить незавершённой + Task color Повторять Без повторения diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index ce94f8420..0447dc069 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -45,6 +45,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 3465c3e5c..2312dd7d5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -42,6 +42,7 @@ Duplikovať úlohu Označiť ako dokončenú Označiť ako nedokončenú + Task color Opakovanie Neopakuje sa diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index fd561a7ba..ddee1adb3 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -42,6 +42,7 @@ Podvojeno opravilo Označi dokončano Označi nepopolno + Task color Ponavljanje Brez ponavljanja diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index f8f93ab6d..7ac81025d 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -42,6 +42,7 @@ Дуплирани задатак Означи као довршено Означи као непотпуно + Task color Понављање Без понављања diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index c49eb4c9d..76a6e7bfc 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -42,6 +42,7 @@ Duplicera uppgift Markera avklarad Markera ofullständig + Task color Upprepning Ingen upprepning @@ -281,4 +282,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 2a7983395..31f633882 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition No repetition diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e8c962e82..61e466428 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -42,6 +42,7 @@ Görevi çoğalt Tamamlandı olarak işaretle Tamamlanmadı olarak işaretle + Task color Tekrarla Tekrarlama yok diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index cee579b75..58fc74626 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -42,6 +42,7 @@ Дублювати завдання Позначити завершеним Позначити незавершеним + Task color Повторювати Без повторень diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ce1fd9d1a..10064e1fd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -42,6 +42,7 @@ 重复任务 标记已完成 标记未完成 + Task color 重复 不重复 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index f451e0b5d..ccf39bdd4 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -42,6 +42,7 @@ Duplicate task Mark completed Mark incomplete + Task color 重複 不重複 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d0fc848b1..5d2d3094f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -42,6 +42,7 @@ Duplicate task 標為已完成 標為未完成 + Task color 重複 不重複 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ce94f8420..0447dc069 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -45,6 +45,7 @@ Duplicate task Mark completed Mark incomplete + Task color Repetition From 40beaa60e3f51d35f91d27f6de473a69bff99996 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sun, 30 Apr 2023 16:34:27 +0530 Subject: [PATCH 17/53] Change event type setting icon (tasks) --- app/src/main/res/layout/activity_task.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/activity_task.xml b/app/src/main/res/layout/activity_task.xml index ae6bfde1f..7b5dbe19d 100644 --- a/app/src/main/res/layout/activity_task.xml +++ b/app/src/main/res/layout/activity_task.xml @@ -324,7 +324,7 @@ android:layout_alignBottom="@+id/task_type_holder" android:layout_marginStart="@dimen/normal_margin" android:padding="@dimen/medium_margin" - android:src="@drawable/ic_color_vector" /> + android:src="@drawable/ic_category_vector" /> Date: Sun, 30 Apr 2023 16:52:45 +0530 Subject: [PATCH 18/53] Allow task color customization as well --- .../calendar/pro/activities/EventActivity.kt | 6 -- .../calendar/pro/activities/TaskActivity.kt | 47 ++++++++++++- app/src/main/res/layout/activity_task.xml | 67 +++++++++++++++---- 3 files changed, 99 insertions(+), 21 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 3ca922570..f5fb4ee67 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 @@ -647,13 +647,11 @@ class EventActivity : SimpleActivity() { event_repetition_limit_label.text = getString(R.string.repeat) resources.getString(R.string.forever) } - mRepeatLimit > 0 -> { event_repetition_limit_label.text = getString(R.string.repeat_till) val repeatLimitDateTime = Formatter.getDateTimeFromTS(mRepeatLimit) Formatter.getFullDate(this, repeatLimitDateTime) } - else -> { event_repetition_limit_label.text = getString(R.string.repeat) "${-mRepeatLimit} ${getString(R.string.times)}" @@ -667,14 +665,12 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> RepeatRuleWeeklyDialog(this, mRepeatRule) { setRepeatRule(it) } - mRepeatInterval.isXMonthlyRepetition() -> { val items = getAvailableMonthlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { setRepeatRule(it as Int) } } - mRepeatInterval.isXYearlyRepetition() -> { val items = getAvailableYearlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { @@ -791,7 +787,6 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> { event_repetition_rule.text = if (mRepeatRule == EVERY_DAY_BIT) getString(R.string.every_day) else getSelectedDaysString(mRepeatRule) } - mRepeatInterval.isXMonthlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on @@ -799,7 +794,6 @@ class EventActivity : SimpleActivity() { event_repetition_rule_label.text = getString(repeatString) event_repetition_rule.text = getMonthlyRepetitionRuleText() } - mRepeatInterval.isXYearlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index 473903d2f..7e12ca7d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -13,7 +13,6 @@ import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.dialogs.* import com.simplemobiletools.calendar.pro.extensions.* import com.simplemobiletools.calendar.pro.helpers.* -import com.simplemobiletools.calendar.pro.helpers.Formatter import com.simplemobiletools.calendar.pro.models.Event import com.simplemobiletools.calendar.pro.models.EventType import com.simplemobiletools.calendar.pro.models.Reminder @@ -24,7 +23,7 @@ import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.RadioItem import kotlinx.android.synthetic.main.activity_task.* import org.joda.time.DateTime -import java.util.* +import java.util.Calendar import kotlin.math.pow class TaskActivity : SimpleActivity() { @@ -46,6 +45,7 @@ class TaskActivity : SimpleActivity() { private var mTaskCompleted = false private var mLastSavePromptTS = 0L private var mIsNewTask = true + private var mEventColor = 0 override fun onCreate(savedInstanceState: Bundle?) { isMaterialActivity = true @@ -130,6 +130,7 @@ class TaskActivity : SimpleActivity() { mRepeatInterval != mTask.repeatInterval || mRepeatRule != mTask.repeatRule || mEventTypeId != mTask.eventType || + mEventColor != mTask.color || hasTimeChanged ) { return true @@ -175,6 +176,7 @@ class TaskActivity : SimpleActivity() { putLong(EVENT_TYPE_ID, mEventTypeId) putBoolean(IS_NEW_EVENT, mIsNewTask) putLong(ORIGINAL_START_TS, mOriginalStartTS) + putInt(EVENT_COLOR, mEventColor) } } @@ -201,6 +203,7 @@ class TaskActivity : SimpleActivity() { mEventTypeId = getLong(EVENT_TYPE_ID) mIsNewTask = getBoolean(IS_NEW_EVENT) mOriginalStartTS = getLong(ORIGINAL_START_TS) + mEventColor = getInt(EVENT_COLOR) } updateEventType() @@ -270,6 +273,7 @@ class TaskActivity : SimpleActivity() { task_reminder_2.setOnClickListener { showReminder2Dialog() } task_reminder_3.setOnClickListener { showReminder3Dialog() } + task_color_holder.setOnClickListener { showTaskColorDialog() } refreshMenuItems() setupMarkCompleteButton() @@ -297,6 +301,7 @@ class TaskActivity : SimpleActivity() { mRepeatInterval = mTask.repeatInterval mRepeatLimit = mTask.repeatLimit mRepeatRule = mTask.repeatRule + mEventColor = mTask.color task_title.setText(mTask.title) task_description.setText(mTask.description) @@ -416,6 +421,7 @@ class TaskActivity : SimpleActivity() { repeatInterval = mRepeatInterval repeatLimit = if (repeatInterval == 0) 0 else mRepeatLimit repeatRule = mRepeatRule + color = mEventColor } if (mTask.getReminders().isNotEmpty()) { @@ -762,12 +768,47 @@ class TaskActivity : SimpleActivity() { if (eventType != null) { runOnUiThread { task_type.text = eventType.title - task_type_color.setFillWithStroke(eventType.color, getProperBackgroundColor()) + updateTaskColorInfo(eventType.color) + } + } + task_color_image.beVisibleIf(eventType != null) + task_color_holder.beVisibleIf(eventType != null) + task_color_divider.beVisibleIf(eventType != null) + } + } + + private fun showTaskColorDialog() { + hideKeyboard() + ensureBackgroundThread { + val eventType = eventTypesDB.getEventTypeWithId(mEventTypeId)!! + val currentColor = if (mEventColor == 0) { + eventType.color + } else { + mEventColor + } + + runOnUiThread { + ColorPickerDialog(activity = this, color = currentColor) { wasPositivePressed, newColor -> + if (wasPositivePressed) { + if (newColor != currentColor) { + mEventColor = newColor + updateTaskColorInfo(defaultColor = eventType.color) + } + } } } } } + private fun updateTaskColorInfo(defaultColor: Int) { + val taskColor = if (mEventColor == 0) { + defaultColor + } else { + mEventColor + } + task_color.setFillWithStroke(taskColor, getProperBackgroundColor()) + } + private fun updateColors() { updateTextColors(task_nested_scrollview) val textColor = getProperTextColor() diff --git a/app/src/main/res/layout/activity_task.xml b/app/src/main/res/layout/activity_task.xml index 7b5dbe19d..1b3a33e3f 100644 --- a/app/src/main/res/layout/activity_task.xml +++ b/app/src/main/res/layout/activity_task.xml @@ -316,10 +316,63 @@ android:importantForAccessibility="no" /> + + + + + + + + + + + + - - Date: Sun, 30 Apr 2023 20:57:53 +0530 Subject: [PATCH 19/53] Apply proper icon color --- .../simplemobiletools/calendar/pro/activities/TaskActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index 7e12ca7d5..bb1527fe7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -813,7 +813,7 @@ class TaskActivity : SimpleActivity() { updateTextColors(task_nested_scrollview) val textColor = getProperTextColor() arrayOf( - task_time_image, task_reminder_image, task_type_image, task_repetition_image + task_time_image, task_reminder_image, task_type_image, task_repetition_image, task_color_image ).forEach { it.applyColorFilter(textColor) } From 6e0dd7bd4794c5d5f381926a52bcf9a7927f7422 Mon Sep 17 00:00:00 2001 From: 10cents Date: Tue, 2 May 2023 11:00:24 +0200 Subject: [PATCH 20/53] Update strings.xml --- app/src/main/res/values-da/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 5178d9838..2c0b78ef7 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -31,8 +31,8 @@ En begivenhed er forestående Gemmer - men den valgte begivenhedstype er filtreret fra under Menu - Filter Du har filtreret alle typer begivenheder fra - Event color - Default calendar color + Farve på begivenhed + Kalenderens standardfarve Opgave Opgaver From 2943b5a618c3ac82c5ed673e9dec25a240c851d7 Mon Sep 17 00:00:00 2001 From: ismailnurudeen Date: Wed, 3 May 2023 13:13:36 +0100 Subject: [PATCH 21/53] feat: added required notification permission dialog. --- .../calendar/pro/activities/EventActivity.kt | 5 ++++- .../calendar/pro/activities/MainActivity.kt | 5 ++++- .../calendar/pro/activities/SimpleActivity.kt | 7 +++++-- .../calendar/pro/activities/TaskActivity.kt | 5 ++++- .../calendar/pro/dialogs/SetRemindersDialog.kt | 5 ++++- 5 files changed, 21 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 e067183de..34f7dec48 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 @@ -34,6 +34,7 @@ import com.simplemobiletools.calendar.pro.helpers.* import com.simplemobiletools.calendar.pro.helpers.Formatter import com.simplemobiletools.calendar.pro.models.* import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog +import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -1271,7 +1272,9 @@ class EventActivity : SimpleActivity() { storeEvent(wasRepeatable) } } else { - toast(R.string.no_post_notifications_permissions) + PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { + openNotificationSettings() + } } } } else { 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 9d8ffb22c..76f00b5d1 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 @@ -38,6 +38,7 @@ import com.simplemobiletools.calendar.pro.models.ListItem import com.simplemobiletools.calendar.pro.models.ListSectionDay import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.FilePickerDialog +import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -1066,7 +1067,9 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { } } } else { - toast(R.string.no_post_notifications_permissions) + PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { + openNotificationSettings() + } } } } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt index 84b5e4cdf..b31fad016 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt @@ -10,7 +10,8 @@ import com.simplemobiletools.calendar.pro.extensions.config import com.simplemobiletools.calendar.pro.extensions.refreshCalDAVCalendars import com.simplemobiletools.commons.activities.BaseSimpleActivity import com.simplemobiletools.commons.dialogs.ConfirmationDialog -import com.simplemobiletools.commons.extensions.toast +import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog +import com.simplemobiletools.commons.extensions.openNotificationSettings import com.simplemobiletools.commons.helpers.ensureBackgroundThread open class SimpleActivity : BaseSimpleActivity() { @@ -84,7 +85,9 @@ open class SimpleActivity : BaseSimpleActivity() { } } } else { - toast(R.string.no_post_notifications_permissions) + PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { + openNotificationSettings() + } } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index 473903d2f..3e17239e7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -18,6 +18,7 @@ import com.simplemobiletools.calendar.pro.models.Event import com.simplemobiletools.calendar.pro.models.EventType import com.simplemobiletools.calendar.pro.models.Reminder import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog +import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.* @@ -425,7 +426,9 @@ class TaskActivity : SimpleActivity() { storeTask(wasRepeatable) } } else { - toast(R.string.no_post_notifications_permissions) + PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { + openNotificationSettings() + } } } } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt index 17c9bb256..5ab81d478 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt @@ -8,6 +8,7 @@ import com.simplemobiletools.calendar.pro.helpers.ANNIVERSARY_EVENT import com.simplemobiletools.calendar.pro.helpers.BIRTHDAY_EVENT import com.simplemobiletools.calendar.pro.helpers.OTHER_EVENT import com.simplemobiletools.calendar.pro.helpers.REMINDER_OFF +import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog import com.simplemobiletools.commons.extensions.* import kotlinx.android.synthetic.main.dialog_set_reminders.view.* @@ -35,7 +36,9 @@ class SetRemindersDialog(val activity: SimpleActivity, val eventType: Int, val c } } } else { - activity.toast(R.string.no_post_notifications_permissions) + PermissionRequiredDialog(activity, messageId = R.string.no_post_notifications_permissions) { + activity.openNotificationSettings() + } } } } From 71e93d7d32423149de49e6f6fa0a7f03f6d7b185 Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 25 Apr 2023 03:13:51 +0000 Subject: [PATCH 22/53] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (14 of 14 strings) Translation: Simple Mobile Tools/Simple Calendar metadata Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar-metadata/zh_Hans/ --- fastlane/metadata/android/zh-CN/short_description.txt | 2 +- fastlane/metadata/android/zh-CN/title.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/metadata/android/zh-CN/short_description.txt b/fastlane/metadata/android/zh-CN/short_description.txt index d6e5ff249..3a6bc7b69 100644 --- a/fastlane/metadata/android/zh-CN/short_description.txt +++ b/fastlane/metadata/android/zh-CN/short_description.txt @@ -1 +1 @@ -简单移动日历 2023 。每一天的行程计划 & 约会提醒 +Android 系统 2023 日历小部件 。预约规划、计划和提醒 diff --git a/fastlane/metadata/android/zh-CN/title.txt b/fastlane/metadata/android/zh-CN/title.txt index 4aaaa2d22..6433648ab 100644 --- a/fastlane/metadata/android/zh-CN/title.txt +++ b/fastlane/metadata/android/zh-CN/title.txt @@ -1 +1 @@ -简单日历 Pro \ No newline at end of file +简单日历 Pro From a26bc2e1ea53c5bdd0f942b0da9f33df83288adf Mon Sep 17 00:00:00 2001 From: Deleted User Date: Thu, 27 Apr 2023 19:38:17 +0000 Subject: [PATCH 23/53] Translated using Weblate (Latvian) Currently translated at 92.8% (13 of 14 strings) Translation: Simple Mobile Tools/Simple Calendar metadata Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar-metadata/lv/ --- fastlane/metadata/android/lv/title.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/metadata/android/lv/title.txt b/fastlane/metadata/android/lv/title.txt index f37164864..ff21a31ee 100644 --- a/fastlane/metadata/android/lv/title.txt +++ b/fastlane/metadata/android/lv/title.txt @@ -1 +1 @@ -Vienkāršs kalendārs Pro \ No newline at end of file +Vienkāršs kalendārs Pro From 782a28900c11aded37432a4366d4e8a4becd652f Mon Sep 17 00:00:00 2001 From: Alex Gabilondo Date: Fri, 28 Apr 2023 22:11:57 +0000 Subject: [PATCH 24/53] Translated using Weblate (Basque) Currently translated at 100.0% (245 of 245 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/eu/ --- app/src/main/res/values-eu/strings.xml | 96 +++++++++++++------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index d105afe51..8f6a612b6 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -9,7 +9,7 @@ Hilabeteko + eguneko ikuspegia Urteko ikuspegia Gertaera-zerrenda sinplea - No upcoming events. + Ez dago hurbileko gertaerarik. Joan gaurko egunera Joan data zehatz batera @@ -29,19 +29,19 @@ Iragazi gertaerak motaren arabera Bete kokalekua mapan erakusteko Gertaera bat dator - Saving… But the selected event type is filtered out in the top Menu - Filter - You have filtered out all event types + Gordetzen… Baina hautatutako gertaera mota goiko menuko - Iragazkia-ren bidez iragazten da + Gertaera mota guztiak iragazi dituzu Event color Default calendar color - Task - Tasks - Edit Task - New Task - Create a new task - Duplicate task - Mark completed - Mark incomplete + Zeregina + Zereginak + Editatu zeregina + Zeregin berria + Sortu zeregin berri bat + Bikoiztu zeregina + Burutu gisa markatu + Markatu burutu gabeko gisa Errepikapena Errepikapenik ez @@ -55,7 +55,7 @@ Noiz arte errepikatu Betiko Gertaera errepikagarria da - The task is repeatable + Zeregina errepika daiteke Hautaketak errepikatzen diren gertaerak ditu Ezabatu hautatutako gertaera soilik Ezabatu gertaera hau eta datozen guztiak @@ -68,7 +68,7 @@ Errepikatu betiko aldiz Errepikatu - Errepikatu egun hauetan: + Errepikatu egun hauetan Hautatutako egunetan Egun bera Azken eguna @@ -76,7 +76,7 @@ Errepikatu hilabeteko azken egunean Errepikatu urtero egun berean Errepikatze-maiztasuna - Maiztasuna: + Maiztasuna lehenengo bigarren hirugarren @@ -85,8 +85,8 @@ azken - Erepikatze-maiztasuna: - Maiztasuna: + Errepikatze-maiztasuna + Maiztasuna lehenengo bigarren hirugarren @@ -99,20 +99,20 @@ Urtebetetzerik ez da aurkitu Urtebetetze berririk ez da aurkitu Urtebetetzeak ondo gehitu dira - Add new birthdays automatically + Gehitu urtebetetze berriak automatikoki Urteurrenak Gehitu kontaktuen urteurrenak Urteurrenik ez da aurkitu Urteurren berririk ez da aurkitu Urteurrenak ondo gehitu dira - Add new anniversaries automatically + Gehitu urtebetetze berriak automatikoki Abisua - hau baino lehen: + hau baino lehen Gehitu beste abisu bat Gertaera-abisua - Reminders + Oroigarriak Gehitu beste parte-hartzaile bat Nire egoera: @@ -130,18 +130,18 @@ Esportatu gertaerak .ics fitxategi batetik Lehenetsitako gertaera mota Esportatu iraganeko gertaerak ere bai - Export tasks - Export past entries too + Esportatu zereginak + Esportatu iraganeko sarrerak ere Gehitu gertaera motak Fitxategi-izena (.ics gabe) - Ignore event types in the file, always use the default one + Ez ikusi gertaera motak fitxategian, erabili beti lehenetsitakoa Kokalekua Deskripzioa Egun osokoa Astea - Start week with the current day + Hasi astea uneko egunarekin Gertaera motak Gehitu mota berria @@ -178,14 +178,14 @@ Gertaera-zerrendak Bistaratu iraganeko gertaerak Ordeztu gertaeraren deskripzioa kokalekuarekin - Display description or location + Bistaratu deskribapena edo kokapena Ezabatu gertaera guztiak - Delete all events and tasks + Ezabatu gertaera eta zeregin guztiak Ziur zaude gertaera guztiak ezabatu nahi dituzula\? Honek gertaera motak eta bestelako ezarpenak berdin utziko ditu. Erakutsi sareta Errepikatu abisuak baztertu arte Lausotu iraganeko gertaerak - Dim completed tasks + Indargabetu burututako zereginak Gertaerak Abisuek erabilitako audio-transmisioa Sistema @@ -206,10 +206,10 @@ Erabilitako azkena Bestelako denbora Nabarmendu asteburuak ikuspegi batzuetan - Color of highlighted weekends + Nabarmendutako asteburuen kolorea Baimendu gertaeren ordu-zonak aldatzea - Manage quick filter event types - Allow creating tasks + Kudeatu iragazki bizkorreko gertaera motak + Baimendu zereginak sortzea CalDAV Hautatu sinkronizatu nahi dituzun egutegiak @@ -226,8 +226,8 @@ Gertaera ez da aurkitu. Gaitu egutegi aproposerako CalDAV sinkronizazioa aplikazioaren ezarpenetan. Sinkronizatu daitekeen egutegirik ez da aurkitu Free - Busy - Fetching event %s failed + Lanpetuta + %s gertaera eskuratzeak huts egin du astelehenean @@ -247,38 +247,38 @@ Garraxi Kafea hartu - Show events happening: - Within the next 1 year - Today only - Within the next… + Erakutsi gertatzen ari diren gertaerak: + Hurrengo urtean + Gaur bakarrik + Hurrengo zeraren barruan… - Within the next %d day - Within the next %d days + Hurrengo %d egunean + Hurrengo %d egunetan - Within the next %d week - Within the next %d weeks + Hurrengo %d astean + Hurrengo %d astetan - Within the next %d month - Within the next %d months + Hurrengo %d hilabetean + Hurrengo %d hilabetetan Nola kendu ditzaket \"Gehitu jaiegunak\" botoiarekin inportatutako jaiegunak\? Modu horretan sortutako jaiegunak \"Jaiegunak\" deituriko gertaera mota berrian sartzen dira. Joan Ezarpenak -> Kudeatu gertaera motak atalera, sakatu luze gertaera mota hori eta ezabatu zakarrontzia hautatuz. Gertaerak Google Calendar bidez sinkronizatu ditzaket, edo CalDAV onartzen duen bestelako zerbitzurik\? - Maybe even share calendars with other people? + Agian egutegiak beste pertsona batzuekin partekatu ere\? Bai, aldatu \"CalDAVekin sinkronizatu\" aplikazioaren ezarpenetan eta hautatu sinkronizatu nahi dituzun egutegiak. Hala ere, gailuaren eta zerbitzarien arteko sinkronizazioa maneiatzen duen hirugarrenen aplikazioren bat beharko duzu. Googlen egutegiren bat sinkronizatu nahi izanez gero, beren egutegiaren aplikazio ofizialak egingo du lana. Bestelako egutegientzat sinkronizazio-moldagailua duen hirugarrenen aplikazio bat beharko duzu, DAVx5, esate baterako. Abisu bisualak ikusten ditut, baina audiorik ez dut entzuten. Zer egin dezaket\? Abisua bistaratzeari eta audioa erreproduzitzeari sistemak eragiten dio. Soinurik ez baduzu entzuten, saiatu aplikazioaren ezarpenetara joaten, \"Abisuek erabilitako audio-transmisioa\" aukera sakatu eta balio ezberdina jarri. Oraindik ez badabil, egiaztatu soinu-ezarpenak, transmisio jakina mututua ez badago. Aplikazioak ordu-zonak onartzen ditu\? Bai, onartzen ditu. Gertaera guztiak zure ordu-zonaren arabera sortzen dira modu lehenetsian. Gertaera baten ordu-zona aldatu nahi baduzu, lehenengo ordu-zonaren hautatzailea gaitu behar duzu aplikazioaren ezarpenetan eta, ondoren, Gartaeraren xehetasunen pantailan aldatu. Modu lehenetsian desgaituta dago, jende gehienak ez duelako behar. - The app shows no notifications, why is that\? - Check your device battery and notification settings, if there is nothing blocking the reminders, or killing the app in the background. You might also want to take a look at <a href=https://dontkillmyapp.com>https://dontkillmyapp.com</a>, it has some useful tips. - How can I modify or delete an existing event type\? - You can do both of those in the app Settings - Manage event types. Just click on the wanted one for changing the label and color, or select the wanted one by long pressing it and use the trashbin at the top menu for deleting. + Aplikazioak ez du jakinarazpenik erakusten, zergatik\? + Egiaztatu gailuaren bateria eta jakinarazpenen ezarpenak, egiaztatu abisuak ez daudela blokeatuta edo aplikazioa bigarren planoan exekutatzea galarazten duen ezer ez dagoela. Baliteke <a href=https://dontkillmyapp.com>https://dontkillmyapp.com</a> helbidera ere begiratu nahi izatea, aholku erabilgarriak ditu. + Nola aldatu edo ezabatu dezaket lehendik dagoen gertaera mota bat\? + Gauza biak egin ditzakezu Ezarpenak - Kudeatu gertaera motak aplikazioan. Egin klik nahi duzun elementuan etiketa eta kolorea aldatzeko, edo hautatu nahi duzuna luze sakatuz eta erabili goiko menuko zakarrontzia ezabatzeko. - + \ No newline at end of file From 1733f30bb08ed3e1ea8a421a68d54f39abb3a0c2 Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 4 May 2023 22:49:33 +0530 Subject: [PATCH 25/53] Update simple-commons library --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 83fb75922..2f083dd72 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:a98c3fa30f' + implementation 'com.github.SimpleMobileTools:Simple-Commons:b93edd37d4' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From b64ba644d8f43f879e82cb53b4b6ea7f4b017f2d Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 4 May 2023 23:14:22 +0530 Subject: [PATCH 26/53] Update simple-commons library --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 83fb75922..2f083dd72 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:a98c3fa30f' + implementation 'com.github.SimpleMobileTools:Simple-Commons:b93edd37d4' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 6322a9a1d3202d615ecfe099de03b663d9adfadc Mon Sep 17 00:00:00 2001 From: Naveen Date: Thu, 4 May 2023 23:16:00 +0530 Subject: [PATCH 27/53] Shrink vector drawable using avocado --- app/src/main/res/drawable/ic_category_vector.xml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/drawable/ic_category_vector.xml b/app/src/main/res/drawable/ic_category_vector.xml index 342258f37..bcbd37d7d 100644 --- a/app/src/main/res/drawable/ic_category_vector.xml +++ b/app/src/main/res/drawable/ic_category_vector.xml @@ -1,9 +1,3 @@ - - + + From 4fe6f4fbfc9465798eed5ff8a460ecf07c89090f Mon Sep 17 00:00:00 2001 From: Naveen Date: Fri, 5 May 2023 00:17:52 +0530 Subject: [PATCH 28/53] Move ColorPickerDialog modifications to commons --- .../calendar/pro/activities/EventActivity.kt | 3 +- .../calendar/pro/activities/TaskActivity.kt | 3 +- .../calendar/pro/dialogs/ColorPickerDialog.kt | 247 ------------------ .../main/res/layout/dialog_color_picker.xml | 163 ------------ 4 files changed, 4 insertions(+), 412 deletions(-) delete mode 100644 app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt delete mode 100644 app/src/main/res/layout/dialog_color_picker.xml 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 f5fb4ee67..7a79e1150 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 @@ -32,6 +32,7 @@ import com.simplemobiletools.calendar.pro.dialogs.* import com.simplemobiletools.calendar.pro.extensions.* import com.simplemobiletools.calendar.pro.helpers.* import com.simplemobiletools.calendar.pro.models.* +import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* @@ -853,7 +854,7 @@ class EventActivity : SimpleActivity() { } runOnUiThread { - ColorPickerDialog(activity = this, color = currentColor) { wasPositivePressed, newColor -> + ColorPickerDialog(activity = this, color = currentColor, addDefaultColorButton = true) { wasPositivePressed, newColor -> if (wasPositivePressed) { gotNewEventColor(newColor, currentColor, eventType.color) } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index bb1527fe7..ac8da3a8c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -16,6 +16,7 @@ import com.simplemobiletools.calendar.pro.helpers.* import com.simplemobiletools.calendar.pro.models.Event import com.simplemobiletools.calendar.pro.models.EventType import com.simplemobiletools.calendar.pro.models.Reminder +import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* @@ -788,7 +789,7 @@ class TaskActivity : SimpleActivity() { } runOnUiThread { - ColorPickerDialog(activity = this, color = currentColor) { wasPositivePressed, newColor -> + ColorPickerDialog(activity = this, color = currentColor, addDefaultColorButton = true) { wasPositivePressed, newColor -> if (wasPositivePressed) { if (newColor != currentColor) { mEventColor = newColor diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt deleted file mode 100644 index d39809364..000000000 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/ColorPickerDialog.kt +++ /dev/null @@ -1,247 +0,0 @@ -package com.simplemobiletools.calendar.pro.dialogs - -import android.app.Activity -import android.graphics.Color -import android.view.MotionEvent -import android.view.View -import android.view.View.OnTouchListener -import android.view.ViewGroup -import android.view.WindowManager -import android.widget.EditText -import android.widget.ImageView -import androidx.appcompat.app.AlertDialog -import com.simplemobiletools.calendar.pro.R -import com.simplemobiletools.commons.extensions.* -import com.simplemobiletools.commons.helpers.isQPlus -import com.simplemobiletools.commons.views.ColorPickerSquare -import kotlinx.android.synthetic.main.dialog_color_picker.view.* -import java.util.LinkedList - -private const val RECENT_COLORS_NUMBER = 5 - -// forked from https://github.com/yukuku/ambilwarna -class ColorPickerDialog( - val activity: Activity, - color: Int, - val removeDimmedBackground: Boolean = false, - val currentColorCallback: ((color: Int) -> Unit)? = null, - val callback: (wasPositivePressed: Boolean, color: Int) -> Unit -) { - var viewHue: View - var viewSatVal: ColorPickerSquare - var viewCursor: ImageView - var viewNewColor: ImageView - var viewTarget: ImageView - var newHexField: EditText - var viewContainer: ViewGroup - private val baseConfig = activity.baseConfig - private val currentColorHsv = FloatArray(3) - private val backgroundColor = baseConfig.backgroundColor - private var isHueBeingDragged = false - private var wasDimmedBackgroundRemoved = false - private var dialog: AlertDialog? = null - - init { - Color.colorToHSV(color, currentColorHsv) - - val view = activity.layoutInflater.inflate(R.layout.dialog_color_picker, null).apply { - if (isQPlus()) { - isForceDarkAllowed = false - } - - viewHue = color_picker_hue - viewSatVal = color_picker_square - viewCursor = color_picker_hue_cursor - - viewNewColor = color_picker_new_color - viewTarget = color_picker_cursor - viewContainer = color_picker_holder - newHexField = color_picker_new_hex - - viewSatVal.setHue(getHue()) - - viewNewColor.setFillWithStroke(getColor(), backgroundColor) - color_picker_old_color.setFillWithStroke(color, backgroundColor) - - val hexCode = getHexCode(color) - color_picker_old_hex.text = "#$hexCode" - color_picker_old_hex.setOnLongClickListener { - activity.copyToClipboard(hexCode) - true - } - newHexField.setText(hexCode) - setupRecentColors() - } - - viewHue.setOnTouchListener(OnTouchListener { v, event -> - if (event.action == MotionEvent.ACTION_DOWN) { - isHueBeingDragged = true - } - - if (event.action == MotionEvent.ACTION_MOVE || event.action == MotionEvent.ACTION_DOWN || event.action == MotionEvent.ACTION_UP) { - var y = event.y - if (y < 0f) - y = 0f - - if (y > viewHue.measuredHeight) { - y = viewHue.measuredHeight - 0.001f // to avoid jumping the cursor from bottom to top. - } - var hue = 360f - 360f / viewHue.measuredHeight * y - if (hue == 360f) - hue = 0f - - currentColorHsv[0] = hue - updateHue() - newHexField.setText(getHexCode(getColor())) - - if (event.action == MotionEvent.ACTION_UP) { - isHueBeingDragged = false - } - return@OnTouchListener true - } - false - }) - - viewSatVal.setOnTouchListener(OnTouchListener { v, event -> - if (event.action == MotionEvent.ACTION_MOVE || event.action == MotionEvent.ACTION_DOWN || event.action == MotionEvent.ACTION_UP) { - var x = event.x - var y = event.y - - if (x < 0f) - x = 0f - if (x > viewSatVal.measuredWidth) - x = viewSatVal.measuredWidth.toFloat() - if (y < 0f) - y = 0f - if (y > viewSatVal.measuredHeight) - y = viewSatVal.measuredHeight.toFloat() - - currentColorHsv[1] = 1f / viewSatVal.measuredWidth * x - currentColorHsv[2] = 1f - 1f / viewSatVal.measuredHeight * y - - moveColorPicker() - viewNewColor.setFillWithStroke(getColor(), backgroundColor) - newHexField.setText(getHexCode(getColor())) - return@OnTouchListener true - } - false - }) - - newHexField.onTextChangeListener { - if (it.length == 6 && !isHueBeingDragged) { - try { - val newColor = Color.parseColor("#$it") - Color.colorToHSV(newColor, currentColorHsv) - updateHue() - moveColorPicker() - } catch (ignored: Exception) { - } - } - } - - val textColor = activity.getProperTextColor() - val builder = activity.getAlertDialogBuilder() - .setPositiveButton(R.string.ok) { _, _ -> confirmNewColor() } - .setNeutralButton(R.string.default_color) { _, _ -> confirmDefaultColor() } - .setOnCancelListener { dialogDismissed() } - - builder.apply { - activity.setupDialogStuff(view, this) { alertDialog -> - dialog = alertDialog - view.color_picker_arrow.applyColorFilter(textColor) - view.color_picker_hex_arrow.applyColorFilter(textColor) - viewCursor.applyColorFilter(textColor) - } - } - - view.onGlobalLayout { - moveHuePicker() - moveColorPicker() - } - } - - private fun View.setupRecentColors() { - val recentColors = baseConfig.colorPickerRecentColors - if (recentColors.isNotEmpty()) { - recent_colors.beVisible() - val squareSize = context.resources.getDimensionPixelSize(R.dimen.colorpicker_hue_width) - recentColors.take(RECENT_COLORS_NUMBER).forEach { recentColor -> - val recentColorView = ImageView(context) - recentColorView.id = View.generateViewId() - recentColorView.layoutParams = ViewGroup.LayoutParams(squareSize, squareSize) - recentColorView.setFillWithStroke(recentColor, backgroundColor) - recentColorView.setOnClickListener { newHexField.setText(getHexCode(recentColor)) } - recent_colors.addView(recentColorView) - recent_colors_flow.addView(recentColorView) - } - } - } - - private fun dialogDismissed() { - callback(false, 0) - } - - private fun confirmDefaultColor() { - callback(true, 0) - } - - private fun confirmNewColor() { - val hexValue = newHexField.value - val newColor = if (hexValue.length == 6) { - Color.parseColor("#$hexValue") - } else { - getColor() - } - - addRecentColor(newColor) - callback(true, newColor) - } - - private fun addRecentColor(color: Int) { - var recentColors = baseConfig.colorPickerRecentColors - - recentColors.remove(color) - if (recentColors.size >= RECENT_COLORS_NUMBER) { - val numberOfColorsToDrop = recentColors.size - RECENT_COLORS_NUMBER + 1 - recentColors = LinkedList(recentColors.dropLast(numberOfColorsToDrop)) - } - recentColors.addFirst(color) - - baseConfig.colorPickerRecentColors = recentColors - } - - private fun getHexCode(color: Int) = color.toHex().substring(1) - - private fun updateHue() { - viewSatVal.setHue(getHue()) - moveHuePicker() - viewNewColor.setFillWithStroke(getColor(), backgroundColor) - if (removeDimmedBackground && !wasDimmedBackgroundRemoved) { - dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - wasDimmedBackgroundRemoved = true - } - - currentColorCallback?.invoke(getColor()) - } - - private fun moveHuePicker() { - var y = viewHue.measuredHeight - getHue() * viewHue.measuredHeight / 360f - if (y == viewHue.measuredHeight.toFloat()) - y = 0f - - viewCursor.x = (viewHue.left - viewCursor.width).toFloat() - viewCursor.y = viewHue.top + y - viewCursor.height / 2 - } - - private fun moveColorPicker() { - val x = getSat() * viewSatVal.measuredWidth - val y = (1f - getVal()) * viewSatVal.measuredHeight - viewTarget.x = viewSatVal.left + x - viewTarget.width / 2 - viewTarget.y = viewSatVal.top + y - viewTarget.height / 2 - } - - private fun getColor() = Color.HSVToColor(currentColorHsv) - private fun getHue() = currentColorHsv[0] - private fun getSat() = currentColorHsv[1] - private fun getVal() = currentColorHsv[2] -} diff --git a/app/src/main/res/layout/dialog_color_picker.xml b/app/src/main/res/layout/dialog_color_picker.xml deleted file mode 100644 index 1b5c7043e..000000000 --- a/app/src/main/res/layout/dialog_color_picker.xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 758c724f5b361eccc579f05815cc92c1a2b1d57d Mon Sep 17 00:00:00 2001 From: Naveen Date: Fri, 5 May 2023 13:17:52 +0530 Subject: [PATCH 29/53] Update simple-commons library --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 2f083dd72..802df5d71 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:b93edd37d4' + implementation 'com.github.SimpleMobileTools:Simple-Commons:5d5e4e1ac5' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 8bba1eb4db629a25fc8a2c2e716074eb091c8a4b Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 5 May 2023 16:24:11 +0200 Subject: [PATCH 30/53] updating commons and room --- app/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 83fb75922..25634f6da 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,13 +70,13 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:a98c3fa30f' + implementation 'com.github.SimpleMobileTools:Simple-Commons:5d5e4e1ac5' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation "androidx.print:print:1.0.0" - kapt 'androidx.room:room-compiler:2.5.0' - implementation 'androidx.room:room-runtime:2.5.0' - annotationProcessor 'androidx.room:room-compiler:2.5.0' + kapt 'androidx.room:room-compiler:2.5.1' + implementation 'androidx.room:room-runtime:2.5.1' + annotationProcessor 'androidx.room:room-compiler:2.5.1' } From 207bb615d0bd55f09796e1da19e1d4e124194f6f Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 6 May 2023 23:26:01 +0530 Subject: [PATCH 31/53] Always set event color click listener --- .../calendar/pro/activities/EventActivity.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 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 4d42c86ac..e329ed1c4 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 @@ -342,6 +342,10 @@ class EventActivity : SimpleActivity() { event_all_day.toggle() } + event_color_holder.setOnClickListener { + showEventColorDialog() + } + updateTextColors(event_nested_scrollview) updateIconColors() refreshMenuItems() @@ -649,11 +653,13 @@ class EventActivity : SimpleActivity() { event_repetition_limit_label.text = getString(R.string.repeat) resources.getString(R.string.forever) } + mRepeatLimit > 0 -> { event_repetition_limit_label.text = getString(R.string.repeat_till) val repeatLimitDateTime = Formatter.getDateTimeFromTS(mRepeatLimit) Formatter.getFullDate(this, repeatLimitDateTime) } + else -> { event_repetition_limit_label.text = getString(R.string.repeat) "${-mRepeatLimit} ${getString(R.string.times)}" @@ -667,12 +673,14 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> RepeatRuleWeeklyDialog(this, mRepeatRule) { setRepeatRule(it) } + mRepeatInterval.isXMonthlyRepetition() -> { val items = getAvailableMonthlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { setRepeatRule(it as Int) } } + mRepeatInterval.isXYearlyRepetition() -> { val items = getAvailableYearlyRepetitionRules() RadioGroupDialog(this, items, mRepeatRule) { @@ -789,6 +797,7 @@ class EventActivity : SimpleActivity() { mRepeatInterval.isXWeeklyRepetition() -> { event_repetition_rule.text = if (mRepeatRule == EVERY_DAY_BIT) getString(R.string.every_day) else getSelectedDaysString(mRepeatRule) } + mRepeatInterval.isXMonthlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on @@ -796,6 +805,7 @@ class EventActivity : SimpleActivity() { event_repetition_rule_label.text = getString(repeatString) event_repetition_rule.text = getMonthlyRepetitionRuleText() } + mRepeatInterval.isXYearlyRepetition() -> { val repeatString = if (mRepeatRule == REPEAT_ORDER_WEEKDAY_USE_LAST || mRepeatRule == REPEAT_ORDER_WEEKDAY) R.string.repeat else R.string.repeat_on @@ -1019,10 +1029,6 @@ class EventActivity : SimpleActivity() { updateAvailabilityImage() } } - - event_color_holder.setOnClickListener { - showEventColorDialog() - } } else { updateCurrentCalendarInfo(null) } From e1af5c962412d5bfd6387776281a28ed8da2ddad Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 6 May 2023 23:26:11 +0530 Subject: [PATCH 32/53] Update simple-commons library --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 25634f6da..5e367f4a8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:5d5e4e1ac5' + implementation 'com.github.SimpleMobileTools:Simple-Commons:5a860f5e21' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 66a0dd88b16975673e40df6c56999202fa3a46a4 Mon Sep 17 00:00:00 2001 From: Naveen Date: Sat, 6 May 2023 23:31:42 +0530 Subject: [PATCH 33/53] Use `adjustResize` with TaskActivity as well --- app/src/main/AndroidManifest.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4e82229fd..8577f5b44 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -132,9 +132,9 @@ android:name=".activities.EventActivity" android:exported="true" android:label="@string/new_event" - android:windowSoftInputMode="adjustResize" android:launchMode="singleTask" - android:parentActivityName=".activities.MainActivity"> + android:parentActivityName=".activities.MainActivity" + android:windowSoftInputMode="adjustResize"> @@ -158,7 +158,8 @@ android:exported="false" android:label="@string/new_task" android:launchMode="singleTask" - android:parentActivityName=".activities.MainActivity" /> + android:parentActivityName=".activities.MainActivity" + android:windowSoftInputMode="adjustResize" /> Date: Sat, 6 May 2023 22:21:10 +0200 Subject: [PATCH 34/53] updating a slovak translation --- app/src/main/res/values-sk/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 2312dd7d5..218a968d4 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -42,7 +42,7 @@ Duplikovať úlohu Označiť ako dokončenú Označiť ako nedokončenú - Task color + Farba úlohy Opakovanie Neopakuje sa From e844db71d58f0b5ff17a02fba4ebfa2999acc21b Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 May 2023 18:23:49 +0200 Subject: [PATCH 35/53] updating commons --- app/build.gradle | 2 +- .../calendar/pro/activities/EventActivity.kt | 11 ++++------- .../calendar/pro/activities/MainActivity.kt | 8 ++++---- .../calendar/pro/activities/SimpleActivity.kt | 4 +--- .../calendar/pro/activities/TaskActivity.kt | 4 +--- .../calendar/pro/dialogs/SetRemindersDialog.kt | 4 +--- 6 files changed, 12 insertions(+), 21 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5e367f4a8..8b5b4034c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:5a860f5e21' + implementation 'com.github.SimpleMobileTools:Simple-Commons:6ed2cb04b7' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' 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 e329ed1c4..5b2a7c295 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 @@ -31,6 +31,7 @@ import com.simplemobiletools.calendar.pro.adapters.AutoCompleteTextViewAdapter import com.simplemobiletools.calendar.pro.dialogs.* import com.simplemobiletools.calendar.pro.extensions.* import com.simplemobiletools.calendar.pro.helpers.* +import com.simplemobiletools.calendar.pro.helpers.Formatter import com.simplemobiletools.calendar.pro.models.* import com.simplemobiletools.commons.dialogs.ColorPickerDialog import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog @@ -41,13 +42,11 @@ import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.views.MyAutoCompleteTextView import kotlinx.android.synthetic.main.activity_event.* -import kotlinx.android.synthetic.main.activity_event.view.event_reminder_2 -import kotlinx.android.synthetic.main.activity_event.view.event_reminder_3 +import kotlinx.android.synthetic.main.activity_event.view.* import kotlinx.android.synthetic.main.item_attendee.view.* import org.joda.time.DateTime import org.joda.time.DateTimeZone -import java.util.Calendar -import java.util.TimeZone +import java.util.* import java.util.regex.Pattern class EventActivity : SimpleActivity() { @@ -1317,9 +1316,7 @@ class EventActivity : SimpleActivity() { storeEvent(wasRepeatable) } } else { - PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { - openNotificationSettings() - } + PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } } } else { 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 76f00b5d1..0fd713a1e 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 @@ -157,12 +157,14 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { addBirthdaysAnniversariesAtStart() if (isPackageInstalled("com.simplemobiletools.calendar")) { - ConfirmationDialog(this, "", R.string.upgraded_to_pro_calendar, R.string.ok, 0, false) {} + ConfirmationDialog(this, "", R.string.upgraded_from_free_calendar, R.string.ok, 0, false) {} } addImportIdsToTasks { refreshViewPager() } + + PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } override fun onResume() { @@ -1067,9 +1069,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { } } } else { - PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { - openNotificationSettings() - } + PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } } } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt index b31fad016..d656cede8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/SimpleActivity.kt @@ -85,9 +85,7 @@ open class SimpleActivity : BaseSimpleActivity() { } } } else { - PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { - openNotificationSettings() - } + PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt index bde5251b6..02652bbb2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/TaskActivity.kt @@ -433,9 +433,7 @@ class TaskActivity : SimpleActivity() { storeTask(wasRepeatable) } } else { - PermissionRequiredDialog(this, messageId = R.string.no_post_notifications_permissions) { - openNotificationSettings() - } + PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } } } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt index 5ab81d478..bdb38ac80 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/dialogs/SetRemindersDialog.kt @@ -36,9 +36,7 @@ class SetRemindersDialog(val activity: SimpleActivity, val eventType: Int, val c } } } else { - PermissionRequiredDialog(activity, messageId = R.string.no_post_notifications_permissions) { - activity.openNotificationSettings() - } + PermissionRequiredDialog(activity, R.string.allow_notifications_reminders) } } } From c0403cdf5a106bddff6881c41d93f4f97993258d Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 10 May 2023 19:58:37 +0200 Subject: [PATCH 36/53] updating commons, list supported languages --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 8b5b4034c..c1b80cdfa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:6ed2cb04b7' + implementation 'com.github.SimpleMobileTools:Simple-Commons:11f9bfd8b4' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8577f5b44..81c0faa74 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -41,6 +41,7 @@ android:appCategory="productivity" android:icon="@mipmap/ic_launcher" android:label="@string/app_launcher_name" + android:localeConfig="@xml/locale_config" android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/AppTheme"> From c0025dc4d5fdd09760767a2aa25cc842dc04b665 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 10 May 2023 19:58:47 +0200 Subject: [PATCH 37/53] removing a copypaste error --- .../simplemobiletools/calendar/pro/activities/MainActivity.kt | 2 -- 1 file changed, 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 0fd713a1e..0f675a185 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 @@ -163,8 +163,6 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { addImportIdsToTasks { refreshViewPager() } - - PermissionRequiredDialog(this, R.string.allow_notifications_reminders) } override fun onResume() { From 11a715c33db7225d1c79b676c5f6565d63ec745b Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 10 May 2023 20:25:40 +0200 Subject: [PATCH 38/53] updating commons --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c1b80cdfa..1a0cd17fc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:11f9bfd8b4' + implementation 'com.github.SimpleMobileTools:Simple-Commons:adcc36b343' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 329b1981bb2b53ee2141478a364e07f19b443204 Mon Sep 17 00:00:00 2001 From: VfBFan Date: Sun, 7 May 2023 08:38:17 +0000 Subject: [PATCH 39/53] Translated using Weblate (German) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/de/ --- app/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index dfe42c79c..d1b6dfda3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -42,7 +42,7 @@ Aufgabe duplizieren Als abgeschlossen markieren Als unvollständig markieren - Task color + Aufgabenfarbe Wiederholung Keine Wiederholung @@ -282,4 +282,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From 8ae994d3f493c716ab4e2a15b5f92897f79f0e80 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sun, 7 May 2023 12:37:30 +0000 Subject: [PATCH 40/53] Translated using Weblate (Dutch) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/nl/ --- app/src/main/res/values-nl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 54b08f904..a4fc072d2 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -42,7 +42,7 @@ Taak dupliceren Als voltooid markeren Als onvoltooid markeren - Task color + Taakkleur Herhaling Niet herhalen @@ -282,4 +282,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From 316cd8b2822d4e612027c995488e9d7845ab4183 Mon Sep 17 00:00:00 2001 From: Agnieszka C Date: Sat, 6 May 2023 20:38:50 +0000 Subject: [PATCH 41/53] Translated using Weblate (Polish) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/pl/ --- app/src/main/res/values-pl/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8cc33cccd..9088eac77 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -42,7 +42,7 @@ Powiel zadanie Oznacz jako ukończone Oznacz jako nieukończone - Task color + Kolor zadania Powtarzanie Brak powtarzania @@ -288,4 +288,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From 96c5ee34ae0dcc41b22151f9d9cde89a8c35e944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuz=20Ersen?= Date: Sun, 7 May 2023 17:53:37 +0000 Subject: [PATCH 42/53] Translated using Weblate (Turkish) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/tr/ --- app/src/main/res/values-tr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 61e466428..1bc7156ef 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -42,7 +42,7 @@ Görevi çoğalt Tamamlandı olarak işaretle Tamamlanmadı olarak işaretle - Task color + Görev rengi Tekrarla Tekrarlama yok @@ -282,4 +282,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From 85b0fca7de37c814617e1127417553a74e5bdcd3 Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 7 May 2023 03:53:18 +0000 Subject: [PATCH 43/53] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/zh_Hans/ --- app/src/main/res/values-zh-rCN/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 10064e1fd..ac21f18fe 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -42,7 +42,7 @@ 重复任务 标记已完成 标记未完成 - Task color + 任务颜色 重复 不重复 @@ -279,4 +279,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From cd57efa8c6ac3ecbd0c8296f3c432905e3fed275 Mon Sep 17 00:00:00 2001 From: "Josep M. Ferrer" Date: Sun, 7 May 2023 21:11:25 +0000 Subject: [PATCH 44/53] Translated using Weblate (Catalan) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/ca/ --- app/src/main/res/values-ca/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 83f0fd241..163ca3816 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -42,7 +42,7 @@ Duplica la tasca Marca com a completada Marca com a no completada - Task color + Color de la tasca Repetició Sense repetició @@ -282,4 +282,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From 8ca14490e2512f27a2bac189dd2ebee3212ca3c0 Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Tue, 9 May 2023 15:32:39 +0000 Subject: [PATCH 45/53] Translated using Weblate (Arabic) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/ar/ --- app/src/main/res/values-ar/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 50138e813..15279f43e 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -42,7 +42,7 @@ تكرار المهمة وضع علامة \"مكتمل\" وضع علامة غير مكتملة - Task color + لون المهمة تكرار بدون تكرار @@ -294,4 +294,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From fe6fdab9580e2d4968b95135c53328ea7bd241dd Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 10 May 2023 21:50:19 +0200 Subject: [PATCH 46/53] updating commons --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 1a0cd17fc..21b9bdaf1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:adcc36b343' + implementation 'com.github.SimpleMobileTools:Simple-Commons:94b616f462' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 385bb3b220f306ebc096e0fa16e6c27c6f674303 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 11 May 2023 22:38:21 +0200 Subject: [PATCH 47/53] updating commons --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 21b9bdaf1..eb8110430 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -70,7 +70,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:94b616f462' + implementation 'com.github.SimpleMobileTools:Simple-Commons:79c7cde543' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' From 3135232eeacb75241752cd7d016b1dd10068ef4f Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 11 May 2023 22:42:10 +0200 Subject: [PATCH 48/53] update version to 6.21.8 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index eb8110430..d72290108 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 23 targetSdkVersion 33 - versionCode 233 - versionName "6.21.7" + versionCode 234 + versionName "6.21.8" multiDexEnabled true setProperty("archivesBaseName", "calendar") vectorDrawables.useSupportLibrary = true From 4939ed958569101c44a38871b6545873c2a9c643 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 11 May 2023 22:42:18 +0200 Subject: [PATCH 49/53] updating changelog --- CHANGELOG.md | 7 +++++++ fastlane/metadata/android/en-US/changelogs/234.txt | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/234.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 396644010..75a036d59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 6.21.8 *(2023-05-11)* +---------------------------- + + * Allow customizing individual event colors stored locally + * Fix a glitch with scheduled backups + * Added some translation, stability and UX improvements + Version 6.21.7 *(2023-04-12)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/234.txt b/fastlane/metadata/android/en-US/changelogs/234.txt new file mode 100644 index 000000000..93e6a9195 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/234.txt @@ -0,0 +1,3 @@ + * Allow customizing individual event colors stored locally + * Fix a glitch with scheduled backups + * Added some translation, stability and UX improvements From 85ce5b088781f4447cec037c7adba126e3b940f0 Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Fri, 12 May 2023 09:22:07 +0200 Subject: [PATCH 50/53] Fixed color change in event editor --- .../simplemobiletools/calendar/pro/activities/EventActivity.kt | 1 + 1 file changed, 1 insertion(+) 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 5b2a7c295..cc00ff4b4 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 @@ -995,6 +995,7 @@ class EventActivity : SimpleActivity() { if (eventType != null) { runOnUiThread { event_type.text = eventType.title + updateEventColorInfo(eventType.color) } } } From 9dea36a24d362f9debc16e83843910b00551ba38 Mon Sep 17 00:00:00 2001 From: solokot Date: Fri, 12 May 2023 05:30:34 +0000 Subject: [PATCH 51/53] Translated using Weblate (Russian) Currently translated at 100.0% (246 of 246 strings) Translation: Simple Mobile Tools/Simple Calendar Translate-URL: https://hosted.weblate.org/projects/simple-mobile-tools/simple-calendar/ru/ --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5ad1767b2..ef3e1b538 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -42,7 +42,7 @@ Дублировать задачу Пометить завершённой Пометить незавершённой - Task color + Цвет задачи Повторять Без повторения @@ -288,4 +288,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - + \ No newline at end of file From dfc122942e9c98491cc59a975d791e69006161d0 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 12 May 2023 09:38:53 +0200 Subject: [PATCH 52/53] update version to 6.21.9 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d72290108..fa2755e9b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 23 targetSdkVersion 33 - versionCode 234 - versionName "6.21.8" + versionCode 235 + versionName "6.21.9" multiDexEnabled true setProperty("archivesBaseName", "calendar") vectorDrawables.useSupportLibrary = true From d268c2910e04e17ae66490cd11a56085638bbe38 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 12 May 2023 09:39:01 +0200 Subject: [PATCH 53/53] updating changelog --- CHANGELOG.md | 7 +++++++ fastlane/metadata/android/en-US/changelogs/235.txt | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/235.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 75a036d59..80db77553 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ Changelog ========== +Version 6.21.9 *(2023-05-11)* +---------------------------- + + * Allow customizing individual event colors stored locally + * Fix a glitch with scheduled backups + * Added some translation, stability and UX improvements + Version 6.21.8 *(2023-05-11)* ---------------------------- diff --git a/fastlane/metadata/android/en-US/changelogs/235.txt b/fastlane/metadata/android/en-US/changelogs/235.txt new file mode 100644 index 000000000..93e6a9195 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/235.txt @@ -0,0 +1,3 @@ + * Allow customizing individual event colors stored locally + * Fix a glitch with scheduled backups + * Added some translation, stability and UX improvements