Merge pull request #14 from SimpleMobileTools/master

upd
This commit is contained in:
solokot
2018-09-29 16:52:49 +03:00
committed by GitHub
72 changed files with 1446 additions and 408 deletions

View File

@@ -1,6 +1,23 @@
Changelog Changelog
========== ==========
Version 4.2.1 *(2018-09-22)*
----------------------------
* Fixed some crashes related to specific invalid times in some timezones
* Added some holidays in Malaysia and Australia by youdly
* Added a new warning if the app notifications are disabled by the system
* Some other translation improvements and bugfixes
Version 4.2.0 *(2018-09-10)*
----------------------------
* Replaced colored event type dots with bars for better visibility
* Fixed some wrong reminder date data
* Properly highlight running all-day events
* Fix a glitch with CalDAV events being saved in the wrong calendar
* Couple other smaller UX and translation improvements
Version 4.1.3 *(2018-08-06)* Version 4.1.3 *(2018-08-06)*
---------------------------- ----------------------------

View File

@@ -3,15 +3,15 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
android { android {
compileSdkVersion 27 compileSdkVersion 28
buildToolsVersion "27.0.3" buildToolsVersion "28.0.2"
defaultConfig { defaultConfig {
applicationId "com.simplemobiletools.calendar" applicationId "com.simplemobiletools.calendar"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 27 targetSdkVersion 28
versionCode 127 versionCode 129
versionName "4.1.3" versionName "4.2.1"
multiDexEnabled true multiDexEnabled true
setProperty("archivesBaseName", "calendar") setProperty("archivesBaseName", "calendar")
} }
@@ -41,18 +41,11 @@ android {
} }
} }
ext {
leakCanaryVersion = '1.5.4'
}
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:4.6.10' implementation 'com.simplemobiletools:commons:4.7.17'
implementation 'joda-time:joda-time:2.9.9' implementation 'joda-time:joda-time:2.9.9'
implementation 'com.facebook.stetho:stetho:1.5.0' implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'com.android.support:multidex:1.0.3' implementation 'com.android.support:multidex:1.0.3'
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"
} }
Properties props = new Properties() Properties props = new Properties()

View File

@@ -1,89 +1,295 @@
BEGIN:VCALENDAR BEGIN:VCALENDAR
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:New Year's Day DTSTART;VALUE=DATE:20180507
UID:aus-123 DTEND;VALUE=DATE:20180508
DTSTART;VALUE=DATE:20180101 UID:20180507_60o30chicko36e1g60o30dr568@google.com
DTEND;VALUE=DATE:20180102
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=1MO
SUMMARY:May Day (Northern Territory)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Australia Day DTSTART;VALUE=DATE:20180312
UID:aus-127 DTEND;VALUE=DATE:20180313
DTSTART;VALUE=DATE:20180126 UID:20180312_60o30chicko3ie1g60o30dr568@google.com
DTEND;VALUE=DATE:20180127
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=2MO
SUMMARY:Labour Day (Victoria)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Good Friday DTSTART;VALUE=DATE:20180305
UID:aus-129 DTEND;VALUE=DATE:20180306
DTSTART;VALUE=DATE:20180330 UID:20180305_60o30chicko3ge1g60o30dr568@google.com
DTEND;VALUE=DATE:20180331
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=1MO
SUMMARY:Labour Day (Western Australia)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Easter Saturday DTSTART;VALUE=DATE:20181001
UID:aus-131 DTEND;VALUE=DATE:20181002
DTSTART;VALUE=DATE:20180331 UID:20181001_60o30chicko3ec1g60o30dr568@google.com
DTEND;VALUE=DATE:20180401
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=1MO
SUMMARY:Labour Day (regional holiday)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Easter Sunday DTSTART;VALUE=DATE:20180507
UID:aus-133 DTEND;VALUE=DATE:20180508
DTSTART;VALUE=DATE:20180401 UID:20180507_60o30chicko38e1g60o30dr568@google.com
DTEND;VALUE=DATE:20180402
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=1MO
SUMMARY:Labour Day (Queensland)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Easter Monday DTSTART;VALUE=DATE:20180312
UID:aus-135 DTEND;VALUE=DATE:20180313
DTSTART;VALUE=DATE:20180402 UID:20180312_60o30chicko62e1g60o30dr568@google.com
DTEND;VALUE=DATE:20180403
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=2MO
SUMMARY:Eight Hours Day (Tasmania)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190421
DTEND;VALUE=DATE:20190422
UID:20190421_60o30chi6ko38c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Easter Day (regional holiday)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Anzac Day
UID:aus-137
DTSTART;VALUE=DATE:20180425 DTSTART;VALUE=DATE:20180425
DTEND;VALUE=DATE:20180426 DTEND;VALUE=DATE:20180426
UID:20180425_60o30chi6so32c1g60o30dr568@google.com
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1 RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:ANZAC Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180928
DTEND;VALUE=DATE:20180929
UID:20180928_60o30p9k60o30c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:AFL Grand Final Friday (Victoria)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190527
DTEND;VALUE=DATE:20190528
UID:20190527_60o32dr3cgo30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Reconciliation Day (Australian Capital Territory)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180924
DTEND;VALUE=DATE:20180925
UID:20180924_60o30chhcoo36c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:Queen's Birthday (Western Australia)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181001
DTEND;VALUE=DATE:20181002
UID:20181001_60o30chhcoo38c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=1MO
SUMMARY:Queen's Birthday (Queensland)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Queen's Birthday
UID:aus-139
DTSTART;VALUE=DATE:20180611 DTSTART;VALUE=DATE:20180611
DTEND;VALUE=DATE:20180612 DTEND;VALUE=DATE:20180612
UID:20180611_60o30chhcoo32e1g60o30dr568@google.com
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=6;BYDAY=2MO
SUMMARY:Queen's Birthday (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190420
DTEND;VALUE=DATE:20190421
UID:20190420_60o30chi6go32c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Holy Saturday (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190814
DTEND;VALUE=DATE:20190815
UID:20190814_60o30chj6go30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Royal National Agricultural Show Day Queensland (Queensland)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180212
DTEND;VALUE=DATE:20180213
UID:20180212_60o30e1pcko30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=2;BYDAY=2MO
SUMMARY:Royal Hobart Regatta (Tasmania)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180312
DTEND;VALUE=DATE:20180313
UID:20180312_60o30chj64o30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=2MO
SUMMARY:Canberra Day (Australian Capital Territory)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190930
DTEND;VALUE=DATE:20191001
UID:20190930_60o30chhcoo36e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Queen's Birthday (Western Australia)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Bank Holiday
UID:aus-141
DTSTART;VALUE=DATE:20180806 DTSTART;VALUE=DATE:20180806
DTEND;VALUE=DATE:20180806 DTEND;VALUE=DATE:20180807
UID:20180806_60o30chicgo30e1g60o30dr568@google.com
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8;BYDAY=1MO
SUMMARY:Northern Territory Picnic Day (Northern Territory)
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Labour Day DTSTART;VALUE=DATE:20180604
UID:aus-143 DTEND;VALUE=DATE:20180605
DTSTART;VALUE=DATE:20181001 UID:20180604_60o30chj60o30e1g60o30dr568@google.com
DTEND;VALUE=DATE:20181001
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=6;BYDAY=1MO
SUMMARY:Western Australia Day (Western Australia)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181105
DTEND;VALUE=DATE:20181106
UID:20181105_60o30chj6ko30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=11;BYDAY=1MO
SUMMARY:Recreation Day (Tasmania)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181106
DTEND;VALUE=DATE:20181107
UID:20181106_60o30chj6oo30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=11;BYDAY=1TU
SUMMARY:Melbourne Cup Day (Victoria)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180806
DTEND;VALUE=DATE:20180807
UID:20180806_60o30chicco30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8;BYDAY=1MO
SUMMARY:New South Wales Bank Holiday (New South Wales)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190423
DTEND;VALUE=DATE:20190424
UID:20190423_60o30chj6co30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Easter Tuesday (Tasmania)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180312
DTEND;VALUE=DATE:20180313
UID:20180312_60o30chicoo30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=2MO
SUMMARY:Adelaide Cup (South Australia)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181007
DTEND;VALUE=DATE:20181008
UID:20181007_60o30c9o60o30dpl6ooj0dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=1SU
SUMMARY:Daylight Saving Time starts
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180401
DTEND;VALUE=DATE:20180402
UID:20180401_60o30c9o64o30dpl6ooj0dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=4;BYDAY=1SU
SUMMARY:Daylight Saving Time ends
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180321
DTEND;VALUE=DATE:20180322
UID:20180321_60o30opo64o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Harmony Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181111
DTEND;VALUE=DATE:20181112
UID:20181111_60o30chj6so30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Remembrance Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180101
DTEND;VALUE=DATE:20180102
UID:20180101_60o30chhcgo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:New Year's Day
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Christmas Day
UID:aus-145
DTSTART;VALUE=DATE:20181225 DTSTART;VALUE=DATE:20181225
DTEND;VALUE=DATE:20181226 DTEND;VALUE=DATE:20181226
UID:20181225_60o30chi64o30c1g60o30dr568@google.com
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1 RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Christmas Day
END:VEVENT END:VEVENT
BEGIN:VEVENT BEGIN:VEVENT
SUMMARY:Boxing Day DTSTART;VALUE=DATE:20180126
UID:aus-147 DTEND;VALUE=DATE:20180127
DTSTART;VALUE=DATE:20181226 UID:20180126_60o30chhcko30c1g60o30dr568@google.com
DTEND;VALUE=DATE:20181227
STATUS:CONFIRMED STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1 RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Australia Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190128
DTEND;VALUE=DATE:20190129
UID:20190128_60o30chhcko30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Australia Day observed
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190422
DTEND;VALUE=DATE:20190423
UID:20190422_60o30chi6oo30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Easter Monday
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181226
DTEND;VALUE=DATE:20181227
UID:20181226_60o30chi68o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Boxing Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181224
DTEND;VALUE=DATE:20181225
UID:20181224_60o30chi60o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Christmas Eve
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190419
DTEND;VALUE=DATE:20190420
UID:20190419_60o30chi6co30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Good Friday
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181231
DTEND;VALUE=DATE:20190101
UID:20181231_60o30chhcco30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:New Year's Eve
END:VEVENT END:VEVENT
END:VCALENDAR END:VCALENDAR

View File

@@ -0,0 +1,429 @@
BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190713
DTEND;VALUE=DATE:20190714
UID:20190713_60o30pb3cgo30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Penang Governor's Birthday (Penang)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180101
DTEND;VALUE=DATE:20180102
UID:20180101_60o30db16oo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:New Year's Day (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180531
DTEND;VALUE=DATE:20180601
UID:20180531_60o30p9k6oo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Harvest Festival Day 2 (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190605
DTEND;VALUE=DATE:20190606
UID:20190605_60o30db260o30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Hari Raya Puasa
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190419
DTEND;VALUE=DATE:20190420
UID:20190419_60o30db26so30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Good Friday (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180707
DTEND;VALUE=DATE:20180708
UID:20180707_60o30pb3cco30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:George Town World Heritage City Day (Penang)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191027
DTEND;VALUE=DATE:20191028
UID:20191027_60o30db268o30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Diwali/Deepavali (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190506
DTEND;VALUE=DATE:20190507
UID:20190506_60o30ob5c4o30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Ramadan begins (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180530
DTEND;VALUE=DATE:20180531
UID:20180530_60o30p9k6ko30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Harvest Festival (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181015
DTEND;VALUE=DATE:20181016
UID:20181015_60o32e1icgo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Almarhum Sultan Iskandar Hol Day (Johor)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190603
DTEND;VALUE=DATE:20190604
UID:20190603_60o32e1i64o30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Gawai Dayak Holiday observed (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181211
DTEND;VALUE=DATE:20181212
UID:20181211_60o32e1j68o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Selangor (Selangor)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181024
DTEND;VALUE=DATE:20181025
UID:20181024_60o32e1icko30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Pahang (Pahang)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181111
DTEND;VALUE=DATE:20181112
UID:20181111_60o32e1j60o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Kelantan (Kelantan)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180323
DTEND;VALUE=DATE:20180324
UID:20180323_60o32e1i6go30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Johor (Johor)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181013
DTEND;VALUE=DATE:20181014
UID:20181013_60o32e1icco30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Governor of Sarawak (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191007
DTEND;VALUE=DATE:20191008
UID:20191007_60o32e1ic4o30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Birthday of the Governor of Sabah observed (Sabah)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180507
DTEND;VALUE=DATE:20180508
UID:20180507_60o32e1i6oo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Pahang State Holiday (Pahang)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190522
DTEND;VALUE=DATE:20190523
UID:20190522_60o30ob5c8o30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Nuzul Al-Quran (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190403
DTEND;VALUE=DATE:20190404
UID:20190403_60o30ob574o30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Isra and Mi'raj (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180415
DTEND;VALUE=DATE:20180416
UID:20180415_60o32e1i6so30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Declaration of Malacca as Historical City (Malacca)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180114
DTEND;VALUE=DATE:20180115
UID:20180114_60o32e1i6co30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of Yang di-Pertuan Besar (Negeri Sembilan)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180426
DTEND;VALUE=DATE:20180427
UID:20180426_60o32e1i70o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Terengganu (Terengganu)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180517
DTEND;VALUE=DATE:20180518
UID:20180517_60o32e1i68o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Raja of Perlis (Perlis)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181012
DTEND;VALUE=DATE:20181013
UID:20181012_60o32e1ic8o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Governor of Malacca (Malacca)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180304
DTEND;VALUE=DATE:20180305
UID:20180304_60o32e1i6ko30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Anniversary of the coronation of the Sultan of Terengganu (Terengga
nu)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181120
DTEND;VALUE=DATE:20181121
UID:20181120_60o30db1c8o30c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:The Prophet Muhammad's Birthday
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180722
DTEND;VALUE=DATE:20180723
UID:20180722_60o32e1i74o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Sarawak Independence Day (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180917
DTEND;VALUE=DATE:20180918
UID:20180917_60o30db274o34c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:Malaysia Day (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180916
DTEND;VALUE=DATE:20180917
UID:20180916_60o30db274o32c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Malaysia Day (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190813
DTEND;VALUE=DATE:20190814
UID:20190813_60o32e1hcko30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Hari Raya Haji (Day 2) (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180601
DTEND;VALUE=DATE:20180602
UID:20180601_60o32e1i60o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Gawai Dayak (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180602
DTEND;VALUE=DATE:20180603
UID:20180602_60o32e1i64o30c1g60o30dr568@google.com
CREATED:20180731T230440Z
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Gawai Dayak Holiday (Sarawak)
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190603
DTEND;VALUE=DATE:20190604
UID:20190603_60o32e1i64o30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Gawai Dayak Holiday observed (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181106
DTEND;VALUE=DATE:20181107
UID:20181106_60o30db268o30c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:Diwali/Deepavali (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181112
DTEND;VALUE=DATE:20181113
UID:20181112_60o32e1j64o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Kelantan (Day 2) (Kelantan)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180909
DTEND;VALUE=DATE:20180910
UID:20180909_60o30db1cko32c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:The Yang di-Pertuan Agong's Birthday (regional holiday)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190427
DTEND;VALUE=DATE:20190428
UID:20190427_60o32e1i70o30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Birthday of the Sultan of Terengganu (Terengganu)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181102
DTEND;VALUE=DATE:20181103
UID:20181102_60o32e1icoo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Sultan of Perak (Perak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191014
DTEND;VALUE=DATE:20191015
UID:20191014_60o32e1icco30e1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Birthday of the Governor of Sarawak observed (Sarawak)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181006
DTEND;VALUE=DATE:20181007
UID:20181006_60o32e1ic4o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Birthday of the Governor of Sabah (Sabah)
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180214
DTEND;VALUE=DATE:20180215
UID:20180214_60o32dpo68o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Valentine's Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190901
DTEND;VALUE=DATE:20190902
UID:20190901_60o30or46oo30c1g60o30db164@google.com
STATUS:CONFIRMED
SUMMARY:Muharram/New Year
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190206
DTEND;VALUE=DATE:20190207
UID:20190206_60o30db170o30c1g60o32chmcc@google.com
STATUS:CONFIRMED
SUMMARY:Second day of Chinese Lunar New Year
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180831
DTEND;VALUE=DATE:20180901
UID:20180831_60o30db1coo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Malaysia's National Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180501
DTEND;VALUE=DATE:20180502
UID:20180501_60o30db1cco30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Labour Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181224
DTEND;VALUE=DATE:20181225
UID:20181224_60o30db26oo30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Christmas Eve
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181225
DTEND;VALUE=DATE:20181226
UID:20181225_60o30db26ko30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Christmas Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190205
DTEND;VALUE=DATE:20190206
UID:20190205_60o30db16so30c1g60o32chmcc@google.com
STATUS:CONFIRMED
SUMMARY:Chinese Lunar New Year's Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20191110
DTEND;VALUE=DATE:20191111
UID:20191110_60o30db1c8o30c1g60o30db164@google.com
STATUS:CONFIRMED
SUMMARY:The Prophet Muhammad's Birthday
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20180201
DTEND;VALUE=DATE:20180202
UID:20180201_60o30db174o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Federal Territory Day
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190812
DTEND;VALUE=DATE:20190813
UID:20190812_60o30db26co30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Hari Raya Haji
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190606
DTEND;VALUE=DATE:20190607
UID:20190606_60o30db264o30c1g60o30db160@google.com
STATUS:CONFIRMED
SUMMARY:Hari Raya Puasa Day 2
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20181231
DTEND;VALUE=DATE:20190101
UID:20181231_60o30db16ko30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:New Year's Eve
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190421
DTEND;VALUE=DATE:20190422
UID:20190421_60o30db270o30c1g60o30dr56c@google.com
STATUS:CONFIRMED
SUMMARY:Easter Sunday
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20190519
DTEND;VALUE=DATE:20190520
UID:20190519_60o30db1cgo30c1g60o30dr568@google.com
STATUS:CONFIRMED
SUMMARY:Wesak Day
END:VEVENT
END:VCALENDAR

View File

@@ -3,16 +3,11 @@ package com.simplemobiletools.calendar
import android.support.multidex.MultiDexApplication import android.support.multidex.MultiDexApplication
import com.facebook.stetho.Stetho import com.facebook.stetho.Stetho
import com.simplemobiletools.commons.extensions.checkUseEnglish import com.simplemobiletools.commons.extensions.checkUseEnglish
import com.squareup.leakcanary.LeakCanary
class App : MultiDexApplication() { class App : MultiDexApplication() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
if (LeakCanary.isInAnalyzerProcess(this)) {
return
}
LeakCanary.install(this)
Stetho.initializeWithDefaults(this) Stetho.initializeWithDefaults(this)
} }

View File

@@ -6,6 +6,7 @@ import android.app.TimePickerDialog
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.support.v4.app.NotificationManagerCompat
import android.text.method.LinkMovementMethod import android.text.method.LinkMovementMethod
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@@ -89,11 +90,13 @@ class EventActivity : SimpleActivity() {
if (intent.getBooleanExtra(IS_DUPLICATE_INTENT, false)) { if (intent.getBooleanExtra(IS_DUPLICATE_INTENT, false)) {
mEvent.id = 0 mEvent.id = 0
} }
cancelNotification(mEvent.id)
} else { } else {
mEvent = Event() mEvent = Event()
mReminder1Minutes = config.defaultReminderMinutes mReminder1Minutes = if (config.usePreviousEventReminders) config.lastEventReminderMinutes else config.defaultReminder1
mReminder2Minutes = config.defaultReminderMinutes3 mReminder2Minutes = if (config.usePreviousEventReminders) config.lastEventReminderMinutes2 else config.defaultReminder2
mReminder3Minutes = config.defaultReminderMinutes2 mReminder3Minutes = if (config.usePreviousEventReminders) config.lastEventReminderMinutes3 else config.defaultReminder3
if (savedInstanceState == null) { if (savedInstanceState == null) {
setupNewEvent() setupNewEvent()
@@ -118,12 +121,14 @@ class EventActivity : SimpleActivity() {
event_repetition_limit_holder.setOnClickListener { showRepetitionTypePicker() } event_repetition_limit_holder.setOnClickListener { showRepetitionTypePicker() }
event_reminder_1.setOnClickListener { event_reminder_1.setOnClickListener {
if (config.wasAlarmWarningShown) { handleNotificationAvailability() {
showReminder1Dialog() if (config.wasAlarmWarningShown) {
} else {
ConfirmationDialog(this, messageId = R.string.reminder_warning, positive = R.string.ok, negative = 0) {
config.wasAlarmWarningShown = true
showReminder1Dialog() showReminder1Dialog()
} else {
ConfirmationDialog(this, messageId = R.string.reminder_warning, positive = R.string.ok, negative = 0) {
config.wasAlarmWarningShown = true
showReminder1Dialog()
}
} }
} }
} }
@@ -265,6 +270,16 @@ class EventActivity : SimpleActivity() {
} }
} }
private fun handleNotificationAvailability(callback: () -> Unit) {
if (NotificationManagerCompat.from(applicationContext).areNotificationsEnabled()) {
callback()
} else {
ConfirmationDialog(this, messageId = R.string.notifications_disabled, positive = R.string.ok, negative = 0) {
callback()
}
}
}
private fun showReminder1Dialog() { private fun showReminder1Dialog() {
showPickSecondsDialogHelper(mReminder1Minutes) { showPickSecondsDialogHelper(mReminder1Minutes) {
mReminder1Minutes = if (it <= 0) it else it / 60 mReminder1Minutes = if (it <= 0) it else it / 60
@@ -691,7 +706,7 @@ class EventActivity : SimpleActivity() {
config.lastUsedLocalEventTypeId = newEventType config.lastUsedLocalEventTypeId = newEventType
SOURCE_SIMPLE_CALENDAR SOURCE_SIMPLE_CALENDAR
} else { } else {
"$CALDAV-${config.lastUsedCaldavCalendarId}" "$CALDAV-$mEventCalendarId"
} }
val reminders = sortedSetOf(mReminder1Minutes, mReminder2Minutes, mReminder3Minutes).filter { it != REMINDER_OFF } val reminders = sortedSetOf(mReminder1Minutes, mReminder2Minutes, mReminder3Minutes).filter { it != REMINDER_OFF }
@@ -700,9 +715,11 @@ class EventActivity : SimpleActivity() {
val reminder3 = reminders.getOrElse(2) { REMINDER_OFF } val reminder3 = reminders.getOrElse(2) { REMINDER_OFF }
config.apply { config.apply {
defaultReminderMinutes = reminder1 if (usePreviousEventReminders) {
defaultReminderMinutes2 = reminder2 lastEventReminderMinutes = reminder1
defaultReminderMinutes3 = reminder3 lastEventReminderMinutes2 = reminder2
lastEventReminderMinutes3 = reminder3
}
} }
mEvent.apply { mEvent.apply {

View File

@@ -106,7 +106,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (mStoredTextColor != config.textColor || mStoredBackgroundColor != config.backgroundColor || mStoredPrimaryColor != config.primaryColor if (mStoredTextColor != config.textColor || mStoredBackgroundColor != config.backgroundColor || mStoredPrimaryColor != config.primaryColor
|| mStoredDayCode != Formatter.getTodayCode(applicationContext) || mStoredDimPastEvents != config.dimPastEvents) { || mStoredDayCode != Formatter.getTodayCode() || mStoredDimPastEvents != config.dimPastEvents) {
updateViewPager() updateViewPager()
} }
@@ -206,7 +206,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
mStoredUse24HourFormat = use24HourFormat mStoredUse24HourFormat = use24HourFormat
mStoredDimPastEvents = dimPastEvents mStoredDimPastEvents = dimPastEvents
} }
mStoredDayCode = Formatter.getTodayCode(applicationContext) mStoredDayCode = Formatter.getTodayCode()
} }
private fun setupSearch(menu: Menu) { private fun setupSearch(menu: Menu) {
@@ -534,7 +534,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
} }
} }
private fun updateViewPager(dayCode: String? = Formatter.getTodayCode(applicationContext)) { private fun updateViewPager(dayCode: String? = Formatter.getTodayCode()) {
val fragment = getFragmentsHolder() val fragment = getFragmentsHolder()
currentFragments.forEach { currentFragments.forEach {
supportFragmentManager.beginTransaction().remove(it).commitNow() supportFragmentManager.beginTransaction().remove(it).commitNow()
@@ -781,6 +781,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
put("Lietuva", "lithuania.ics") put("Lietuva", "lithuania.ics")
put("Luxemburg", "luxembourg.ics") put("Luxemburg", "luxembourg.ics")
put("Makedonija", "macedonia.ics") put("Makedonija", "macedonia.ics")
put("Malaysia", "malaysia.ics")
put("Magyarország", "hungary.ics") put("Magyarország", "hungary.ics")
put("México", "mexico.ics") put("México", "mexico.ics")
put("Nederland", "netherlands.ics") put("Nederland", "netherlands.ics")
@@ -842,6 +843,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
add(Release(98, R.string.release_98)) add(Release(98, R.string.release_98))
add(Release(117, R.string.release_117)) add(Release(117, R.string.release_117))
add(Release(119, R.string.release_119)) add(Release(119, R.string.release_119))
add(Release(129, R.string.release_129))
checkWhatsNew(this, BuildConfig.VERSION_CODE) checkWhatsNew(this, BuildConfig.VERSION_CODE)
} }
} }

View File

@@ -8,10 +8,7 @@ import android.text.TextUtils
import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog
import com.simplemobiletools.calendar.extensions.* import com.simplemobiletools.calendar.extensions.*
import com.simplemobiletools.calendar.helpers.CalDAVHandler import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.helpers.FONT_SIZE_LARGE
import com.simplemobiletools.calendar.helpers.FONT_SIZE_MEDIUM
import com.simplemobiletools.calendar.helpers.FONT_SIZE_SMALL
import com.simplemobiletools.calendar.models.EventType import com.simplemobiletools.calendar.models.EventType
import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.CustomIntervalPickerDialog import com.simplemobiletools.commons.dialogs.CustomIntervalPickerDialog
@@ -63,6 +60,10 @@ class SettingsActivity : SimpleActivity() {
setupUseSameSnooze() setupUseSameSnooze()
setupLoopReminders() setupLoopReminders()
setupSnoozeTime() setupSnoozeTime()
setupDefaultReminder()
setupDefaultReminder1()
setupDefaultReminder2()
setupDefaultReminder3()
setupDisplayPastEvents() setupDisplayPastEvents()
setupFontSize() setupFontSize()
setupCustomizeWidgetColors() setupCustomizeWidgetColors()
@@ -77,6 +78,14 @@ class SettingsActivity : SimpleActivity() {
mStoredPrimaryColor = config.primaryColor mStoredPrimaryColor = config.primaryColor
} }
override fun onStop() {
super.onStop()
val reminders = sortedSetOf(config.defaultReminder1, config.defaultReminder2, config.defaultReminder3).filter { it != REMINDER_OFF }
config.defaultReminder1 = reminders.getOrElse(0) { REMINDER_OFF }
config.defaultReminder2 = reminders.getOrElse(1) { REMINDER_OFF }
config.defaultReminder3 = reminders.getOrElse(2) { REMINDER_OFF }
}
private fun checkPrimaryColor() { private fun checkPrimaryColor() {
if (config.primaryColor != mStoredPrimaryColor) { if (config.primaryColor != mStoredPrimaryColor) {
dbHelper.getEventTypes { dbHelper.getEventTypes {
@@ -387,6 +396,52 @@ class SettingsActivity : SimpleActivity() {
settings_snooze_time.text = formatMinutesToTimeString(config.snoozeTime) settings_snooze_time.text = formatMinutesToTimeString(config.snoozeTime)
} }
private fun setupDefaultReminder() {
settings_use_last_event_reminders.isChecked = config.usePreviousEventReminders
toggleDefaultRemindersVisibility(!config.usePreviousEventReminders)
settings_use_last_event_reminders_holder.setOnClickListener {
settings_use_last_event_reminders.toggle()
config.usePreviousEventReminders = settings_use_last_event_reminders.isChecked
toggleDefaultRemindersVisibility(!settings_use_last_event_reminders.isChecked)
}
}
private fun setupDefaultReminder1() {
settings_default_reminder_1.text = getFormattedMinutes(config.defaultReminder1)
settings_default_reminder_1_holder.setOnClickListener {
showPickSecondsDialogHelper(config.defaultReminder1) {
config.defaultReminder1 = if (it <= 0) it else it / 60
settings_default_reminder_1.text = getFormattedMinutes(config.defaultReminder1)
}
}
}
private fun setupDefaultReminder2() {
settings_default_reminder_2.text = getFormattedMinutes(config.defaultReminder2)
settings_default_reminder_2_holder.setOnClickListener {
showPickSecondsDialogHelper(config.defaultReminder2) {
config.defaultReminder2 = if (it <= 0) it else it / 60
settings_default_reminder_2.text = getFormattedMinutes(config.defaultReminder2)
}
}
}
private fun setupDefaultReminder3() {
settings_default_reminder_3.text = getFormattedMinutes(config.defaultReminder3)
settings_default_reminder_3_holder.setOnClickListener {
showPickSecondsDialogHelper(config.defaultReminder3) {
config.defaultReminder3 = if (it <= 0) it else it / 60
settings_default_reminder_3.text = getFormattedMinutes(config.defaultReminder3)
}
}
}
private fun toggleDefaultRemindersVisibility(show: Boolean) {
arrayOf(settings_default_reminder_1_holder, settings_default_reminder_2_holder, settings_default_reminder_3_holder).forEach {
it.beVisibleIf(show)
}
}
private fun getHoursString(hours: Int) = String.format("%02d:00", hours) private fun getHoursString(hours: Int) = String.format("%02d:00", hours)
private fun setupDisplayPastEvents() { private fun setupDisplayPastEvents() {

View File

@@ -11,6 +11,8 @@ import com.simplemobiletools.calendar.extensions.dbHelper
import com.simplemobiletools.calendar.extensions.handleEventDeleting import com.simplemobiletools.calendar.extensions.handleEventDeleting
import com.simplemobiletools.calendar.extensions.shareEvents import com.simplemobiletools.calendar.extensions.shareEvents
import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.helpers.Formatter
import com.simplemobiletools.calendar.helpers.ITEM_EVENT
import com.simplemobiletools.calendar.helpers.ITEM_EVENT_SIMPLE
import com.simplemobiletools.calendar.helpers.LOW_ALPHA import com.simplemobiletools.calendar.helpers.LOW_ALPHA
import com.simplemobiletools.calendar.models.Event import com.simplemobiletools.calendar.models.Event
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
@@ -53,7 +55,13 @@ class DayEventsAdapter(activity: SimpleActivity, val events: ArrayList<Event>, r
override fun getIsItemSelectable(position: Int) = true override fun getIsItemSelectable(position: Int) = true
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.event_item_day_view, parent) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyRecyclerViewAdapter.ViewHolder {
val layoutId = when (viewType) {
ITEM_EVENT -> R.layout.event_item_day_view
else -> R.layout.event_item_day_view_simple
}
return createViewHolder(layoutId, parent)
}
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) { override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
val event = events[position] val event = events[position]
@@ -65,13 +73,23 @@ class DayEventsAdapter(activity: SimpleActivity, val events: ArrayList<Event>, r
override fun getItemCount() = events.size override fun getItemCount() = events.size
override fun getItemViewType(position: Int): Int {
val event = events[position]
val detailField = if (replaceDescriptionWithLocation) event.location else event.description
return if (event.startTS == event.endTS && detailField.isEmpty()) {
ITEM_EVENT_SIMPLE
} else {
ITEM_EVENT
}
}
private fun setupView(view: View, event: Event) { private fun setupView(view: View, event: Event) {
view.apply { view.apply {
event_section_title.text = event.title event_item_title.text = event.title
event_item_description.text = if (replaceDescriptionWithLocation) event.location else event.description event_item_description?.text = if (replaceDescriptionWithLocation) event.location else event.description
event_item_start.text = if (event.getIsAllDay()) allDayString else Formatter.getTimeFromTS(context, event.startTS) event_item_start.text = if (event.getIsAllDay()) allDayString else Formatter.getTimeFromTS(context, event.startTS)
event_item_end.beInvisibleIf(event.startTS == event.endTS) event_item_end?.beInvisibleIf(event.startTS == event.endTS)
event_item_color.applyColorFilter(event.color) event_item_color_bar.background.applyColorFilter(event.color)
if (event.startTS != event.endTS) { if (event.startTS != event.endTS) {
val startCode = Formatter.getDayCodeFromTS(event.startTS) val startCode = Formatter.getDayCodeFromTS(event.startTS)
@@ -97,9 +115,9 @@ class DayEventsAdapter(activity: SimpleActivity, val events: ArrayList<Event>, r
} }
event_item_start.setTextColor(newTextColor) event_item_start.setTextColor(newTextColor)
event_item_end.setTextColor(newTextColor) event_item_end?.setTextColor(newTextColor)
event_section_title.setTextColor(newTextColor) event_item_title.setTextColor(newTextColor)
event_item_description.setTextColor(newTextColor) event_item_description?.setTextColor(newTextColor)
} }
} }

View File

@@ -10,9 +10,8 @@ import com.simplemobiletools.calendar.extensions.config
import com.simplemobiletools.calendar.extensions.dbHelper import com.simplemobiletools.calendar.extensions.dbHelper
import com.simplemobiletools.calendar.extensions.handleEventDeleting import com.simplemobiletools.calendar.extensions.handleEventDeleting
import com.simplemobiletools.calendar.extensions.shareEvents import com.simplemobiletools.calendar.extensions.shareEvents
import com.simplemobiletools.calendar.helpers.*
import com.simplemobiletools.calendar.helpers.Formatter import com.simplemobiletools.calendar.helpers.Formatter
import com.simplemobiletools.calendar.helpers.LOW_ALPHA
import com.simplemobiletools.calendar.helpers.getNowSeconds
import com.simplemobiletools.calendar.models.ListEvent import com.simplemobiletools.calendar.models.ListEvent
import com.simplemobiletools.calendar.models.ListItem import com.simplemobiletools.calendar.models.ListItem
import com.simplemobiletools.calendar.models.ListSection import com.simplemobiletools.calendar.models.ListSection
@@ -24,15 +23,12 @@ import com.simplemobiletools.commons.extensions.beInvisibleIf
import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener
import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.commons.views.MyRecyclerView
import kotlinx.android.synthetic.main.event_list_item.view.* import kotlinx.android.synthetic.main.event_list_item.view.*
import kotlinx.android.synthetic.main.event_list_section.view.*
import java.util.* import java.util.*
class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListItem>, val allowLongClick: Boolean, val listener: RefreshRecyclerViewListener?, class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListItem>, val allowLongClick: Boolean, val listener: RefreshRecyclerViewListener?,
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) { recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
private val ITEM_EVENT = 0
private val ITEM_EVENT_SIMPLE = 1
private val ITEM_HEADER = 2
private val topDivider = resources.getDrawable(R.drawable.divider_width) private val topDivider = resources.getDrawable(R.drawable.divider_width)
private val allDayString = resources.getString(R.string.all_day) private val allDayString = resources.getString(R.string.all_day)
private val replaceDescription = activity.config.replaceDescription private val replaceDescription = activity.config.replaceDescription
@@ -131,11 +127,11 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
private fun setupListEvent(view: View, listEvent: ListEvent) { private fun setupListEvent(view: View, listEvent: ListEvent) {
view.apply { view.apply {
event_section_title.text = listEvent.title event_item_title.text = listEvent.title
event_item_description?.text = if (replaceDescription) listEvent.location else listEvent.description event_item_description?.text = if (replaceDescription) listEvent.location else listEvent.description
event_item_start.text = if (listEvent.isAllDay) allDayString else Formatter.getTimeFromTS(context, listEvent.startTS) event_item_start.text = if (listEvent.isAllDay) allDayString else Formatter.getTimeFromTS(context, listEvent.startTS)
event_item_end?.beInvisibleIf(listEvent.startTS == listEvent.endTS) event_item_end?.beInvisibleIf(listEvent.startTS == listEvent.endTS)
event_item_color.applyColorFilter(listEvent.color) event_item_color_bar.background.applyColorFilter(listEvent.color)
if (listEvent.startTS != listEvent.endTS) { if (listEvent.startTS != listEvent.endTS) {
event_item_end?.apply { event_item_end?.apply {
@@ -157,11 +153,9 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
var startTextColor = textColor var startTextColor = textColor
var endTextColor = textColor var endTextColor = textColor
if (listEvent.startTS <= now && listEvent.endTS <= now) { if (listEvent.isAllDay || listEvent.startTS <= now && listEvent.endTS <= now) {
if (listEvent.isAllDay) { if (listEvent.isAllDay && Formatter.getDayCodeFromTS(listEvent.startTS) == Formatter.getDayCodeFromTS(now)) {
if (Formatter.getDayCodeFromTS(listEvent.startTS) == Formatter.getDayCodeFromTS(now)) { startTextColor = primaryColor
startTextColor = primaryColor
}
} }
if (dimPastEvents && listEvent.isPastEvent) { if (dimPastEvents && listEvent.isPastEvent) {
@@ -174,7 +168,7 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
event_item_start.setTextColor(startTextColor) event_item_start.setTextColor(startTextColor)
event_item_end?.setTextColor(endTextColor) event_item_end?.setTextColor(endTextColor)
event_section_title.setTextColor(startTextColor) event_item_title.setTextColor(startTextColor)
event_item_description?.setTextColor(startTextColor) event_item_description?.setTextColor(startTextColor)
} }
} }

View File

@@ -17,7 +17,7 @@ import com.simplemobiletools.calendar.models.ListEvent
import com.simplemobiletools.calendar.models.ListItem import com.simplemobiletools.calendar.models.ListItem
import com.simplemobiletools.calendar.models.ListSection import com.simplemobiletools.calendar.models.ListSection
import com.simplemobiletools.commons.extensions.adjustAlpha import com.simplemobiletools.commons.extensions.adjustAlpha
import com.simplemobiletools.commons.extensions.getColoredBitmap import com.simplemobiletools.commons.extensions.setBackgroundColor
import com.simplemobiletools.commons.extensions.setText import com.simplemobiletools.commons.extensions.setText
import com.simplemobiletools.commons.extensions.setTextSize import com.simplemobiletools.commons.extensions.setTextSize
import org.joda.time.DateTime import org.joda.time.DateTime
@@ -29,8 +29,8 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
private val allDayString = context.resources.getString(R.string.all_day) private val allDayString = context.resources.getString(R.string.all_day)
private var events = ArrayList<ListItem>() private var events = ArrayList<ListItem>()
private val textColor = context.config.widgetTextColor private var textColor = context.config.widgetTextColor
private val weakTextColor = textColor.adjustAlpha(LOW_ALPHA) private var weakTextColor = textColor.adjustAlpha(LOW_ALPHA)
private val replaceDescription = context.config.replaceDescription private val replaceDescription = context.config.replaceDescription
private val dimPastEvents = context.config.dimPastEvents private val dimPastEvents = context.config.dimPastEvents
private var mediumFontSize = context.config.getFontSize() private var mediumFontSize = context.config.getFontSize()
@@ -56,10 +56,10 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
private fun setupListEvent(remoteView: RemoteViews, item: ListEvent) { private fun setupListEvent(remoteView: RemoteViews, item: ListEvent) {
var curTextColor = textColor var curTextColor = textColor
remoteView.apply { remoteView.apply {
setText(R.id.event_section_title, item.title) setText(R.id.event_item_title, item.title)
setText(R.id.event_item_description, if (replaceDescription) item.location else item.description) setText(R.id.event_item_description, if (replaceDescription) item.location else item.description)
setText(R.id.event_item_start, if (item.isAllDay) allDayString else Formatter.getTimeFromTS(context, item.startTS)) setText(R.id.event_item_start, if (item.isAllDay) allDayString else Formatter.getTimeFromTS(context, item.startTS))
setImageViewBitmap(R.id.event_item_color, context.resources.getColoredBitmap(R.drawable.monthly_event_dot, item.color)) setBackgroundColor(R.id.event_item_color_bar, item.color)
if (item.startTS == item.endTS) { if (item.startTS == item.endTS) {
setViewVisibility(R.id.event_item_end, View.INVISIBLE) setViewVisibility(R.id.event_item_end, View.INVISIBLE)
@@ -85,12 +85,12 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
curTextColor = weakTextColor curTextColor = weakTextColor
} }
setTextColor(R.id.event_section_title, curTextColor) setTextColor(R.id.event_item_title, curTextColor)
setTextColor(R.id.event_item_description, curTextColor) setTextColor(R.id.event_item_description, curTextColor)
setTextColor(R.id.event_item_start, curTextColor) setTextColor(R.id.event_item_start, curTextColor)
setTextColor(R.id.event_item_end, curTextColor) setTextColor(R.id.event_item_end, curTextColor)
setTextSize(R.id.event_section_title, mediumFontSize) setTextSize(R.id.event_item_title, mediumFontSize)
setTextSize(R.id.event_item_description, mediumFontSize) setTextSize(R.id.event_item_description, mediumFontSize)
setTextSize(R.id.event_item_start, mediumFontSize) setTextSize(R.id.event_item_start, mediumFontSize)
setTextSize(R.id.event_item_end, mediumFontSize) setTextSize(R.id.event_item_end, mediumFontSize)
@@ -132,6 +132,8 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
override fun getItemId(position: Int) = position.toLong() override fun getItemId(position: Int) = position.toLong()
override fun onDataSetChanged() { override fun onDataSetChanged() {
textColor = context.config.widgetTextColor
weakTextColor = textColor.adjustAlpha(LOW_ALPHA)
mediumFontSize = context.config.getFontSize() mediumFontSize = context.config.getFontSize()
val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60 val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60
val toTS = DateTime().plusYears(1).seconds() val toTS = DateTime().plusYears(1).seconds()

View File

@@ -37,7 +37,7 @@ class RepeatLimitTypePickerDialog(val activity: Activity, var repeatLimit: Int,
updateRepeatLimitText() updateRepeatLimitText()
dialog = AlertDialog.Builder(activity) dialog = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok, { dialogInterface, i -> confirmRepetition() }) .setPositiveButton(R.string.ok) { dialogInterface, i -> confirmRepetition() }
.setNegativeButton(R.string.cancel, null) .setNegativeButton(R.string.cancel, null)
.create().apply { .create().apply {
activity.setupDialogStuff(view, this) { activity.setupDialogStuff(view, this) {

View File

@@ -32,8 +32,8 @@ import com.simplemobiletools.calendar.receivers.CalDAVSyncReceiver
import com.simplemobiletools.calendar.receivers.NotificationReceiver import com.simplemobiletools.calendar.receivers.NotificationReceiver
import com.simplemobiletools.calendar.services.SnoozeService import com.simplemobiletools.calendar.services.SnoozeService
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.DAY_SECONDS
import com.simplemobiletools.commons.helpers.SILENT import com.simplemobiletools.commons.helpers.SILENT
import com.simplemobiletools.commons.helpers.WEEK_SECONDS
import com.simplemobiletools.commons.helpers.YEAR_SECONDS import com.simplemobiletools.commons.helpers.YEAR_SECONDS
import com.simplemobiletools.commons.helpers.isOreoPlus import com.simplemobiletools.commons.helpers.isOreoPlus
import org.joda.time.DateTime import org.joda.time.DateTime
@@ -107,20 +107,20 @@ fun Context.scheduleEventIn(notifTS: Long, event: Event, activity: SimpleActivit
return return
} }
val newNotifTS = notifTS + 1000
if (activity != null) { if (activity != null) {
val secondsTillNotification = (notifTS - System.currentTimeMillis()) / 1000 val secondsTillNotification = (newNotifTS - System.currentTimeMillis()) / 1000
val msg = String.format(getString(R.string.reminder_triggers_in), formatSecondsToTimeString(secondsTillNotification.toInt())) val msg = String.format(getString(R.string.reminder_triggers_in), formatSecondsToTimeString(secondsTillNotification.toInt()))
activity.toast(msg) activity.toast(msg)
} }
val pendingIntent = getNotificationIntent(applicationContext, event) val pendingIntent = getNotificationIntent(applicationContext, event)
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, AlarmManager.RTC_WAKEUP, notifTS, pendingIntent) AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, AlarmManager.RTC_WAKEUP, newNotifTS, pendingIntent)
} }
fun Context.cancelNotification(id: Int) { fun Context.cancelNotification(id: Int) {
val intent = Intent(applicationContext, NotificationReceiver::class.java) (getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).cancel(id)
PendingIntent.getBroadcast(applicationContext, id, intent, PendingIntent.FLAG_UPDATE_CURRENT).cancel()
} }
private fun getNotificationIntent(context: Context, event: Event): PendingIntent { private fun getNotificationIntent(context: Context, event: Event): PendingIntent {
@@ -161,13 +161,16 @@ fun Context.notifyEvent(originalEvent: Event) {
var event = originalEvent.copy() var event = originalEvent.copy()
val currentSeconds = getNowSeconds() val currentSeconds = getNowSeconds()
var eventStartTS = if (event.getIsAllDay()) Formatter.getDayStartTS(Formatter.getDayCodeFromTS(event.startTS)) else event.startTS
// make sure refer to the proper repeatable event instance with "Tomorrow", or the specific date // make sure refer to the proper repeatable event instance with "Tomorrow", or the specific date
if (event.repeatInterval != 0 && event.startTS - event.reminder1Minutes * 60 < currentSeconds) { if (event.repeatInterval != 0 && eventStartTS - event.reminder1Minutes * 60 < currentSeconds) {
val events = dbHelper.getRepeatableEventsFor(currentSeconds - DAY_SECONDS, currentSeconds + YEAR_SECONDS, event.id) val events = dbHelper.getRepeatableEventsFor(currentSeconds - WEEK_SECONDS, currentSeconds + YEAR_SECONDS, event.id)
for (currEvent in events) { for (currEvent in events) {
if (currEvent.startTS - currEvent.reminder1Minutes * 60 > currentSeconds) { eventStartTS = if (currEvent.getIsAllDay()) Formatter.getDayStartTS(Formatter.getDayCodeFromTS(currEvent.startTS)) else currEvent.startTS
if (eventStartTS - currEvent.reminder1Minutes * 60 > currentSeconds) {
break break
} }
event = currEvent event = currEvent
} }
} }
@@ -286,7 +289,7 @@ fun Context.rescheduleReminder(event: Event?, minutes: Int) {
} }
} }
fun Context.launchNewEventIntent(dayCode: String = Formatter.getTodayCode(this)) { fun Context.launchNewEventIntent(dayCode: String = Formatter.getTodayCode()) {
Intent(applicationContext, EventActivity::class.java).apply { Intent(applicationContext, EventActivity::class.java).apply {
putExtra(NEW_EVENT_START_TS, getNewEventTimestampFromCode(dayCode)) putExtra(NEW_EVENT_START_TS, getNewEventTimestampFromCode(dayCode))
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

View File

@@ -31,7 +31,7 @@ class DayFragmentsHolder : MyFragmentHolder(), NavigationListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
currentDayCode = arguments?.getString(DAY_CODE) ?: "" currentDayCode = arguments?.getString(DAY_CODE) ?: ""
todayDayCode = Formatter.getTodayCode(context!!) todayDayCode = Formatter.getTodayCode()
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

View File

@@ -182,5 +182,5 @@ class EventListFragment : MyFragmentHolder(), RefreshRecyclerViewListener {
(activity as? MainActivity)?.updateActionBarTitle(getString(R.string.app_launcher_name)) (activity as? MainActivity)?.updateActionBarTitle(getString(R.string.app_launcher_name))
} }
override fun getNewEventDayCode() = Formatter.getTodayCode(context!!) override fun getNewEventDayCode() = Formatter.getTodayCode()
} }

View File

@@ -31,7 +31,7 @@ class MonthFragmentsHolder : MyFragmentHolder(), NavigationListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
currentDayCode = arguments?.getString(DAY_CODE) ?: "" currentDayCode = arguments?.getString(DAY_CODE) ?: ""
todayDayCode = Formatter.getTodayCode(context!!) todayDayCode = Formatter.getTodayCode()
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

View File

@@ -93,5 +93,5 @@ class YearFragmentsHolder : MyFragmentHolder() {
(activity as? MainActivity)?.updateActionBarTitle("${getString(R.string.app_launcher_name)} - $currentYear") (activity as? MainActivity)?.updateActionBarTitle("${getString(R.string.app_launcher_name)} - $currentYear")
} }
override fun getNewEventDayCode() = Formatter.getTodayCode(context!!) override fun getNewEventDayCode() = Formatter.getTodayCode()
} }

View File

@@ -52,17 +52,17 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getInt(VIEW, MONTHLY_VIEW) get() = prefs.getInt(VIEW, MONTHLY_VIEW)
set(view) = prefs.edit().putInt(VIEW, view).apply() set(view) = prefs.edit().putInt(VIEW, view).apply()
var defaultReminderMinutes: Int var lastEventReminderMinutes: Int
get() = prefs.getInt(REMINDER_MINUTES, 10) get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES, 10)
set(defaultReminderMinutes) = prefs.edit().putInt(REMINDER_MINUTES, defaultReminderMinutes).apply() set(lastEventReminderMinutes) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES, lastEventReminderMinutes).apply()
var defaultReminderMinutes2: Int var lastEventReminderMinutes2: Int
get() = prefs.getInt(REMINDER_MINUTES_2, REMINDER_OFF) get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES_2, REMINDER_OFF)
set(defaultReminderMinutes2) = prefs.edit().putInt(REMINDER_MINUTES_2, defaultReminderMinutes2).apply() set(lastEventReminderMinutes2) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES_2, lastEventReminderMinutes2).apply()
var defaultReminderMinutes3: Int var lastEventReminderMinutes3: Int
get() = prefs.getInt(REMINDER_MINUTES_3, REMINDER_OFF) get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES_3, REMINDER_OFF)
set(defaultReminderMinutes3) = prefs.edit().putInt(REMINDER_MINUTES_3, defaultReminderMinutes3).apply() set(lastEventReminderMinutes3) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES_3, lastEventReminderMinutes3).apply()
var displayPastEvents: Int var displayPastEvents: Int
get() = prefs.getInt(DISPLAY_PAST_EVENTS, DAY_MINUTES) get() = prefs.getInt(DISPLAY_PAST_EVENTS, DAY_MINUTES)
@@ -142,4 +142,20 @@ class Config(context: Context) : BaseConfig(context) {
private fun getSmallFontSize() = getMediumFontSize() - 3f private fun getSmallFontSize() = getMediumFontSize() - 3f
private fun getMediumFontSize() = context.resources.getDimension(R.dimen.day_text_size) / context.resources.displayMetrics.density private fun getMediumFontSize() = context.resources.getDimension(R.dimen.day_text_size) / context.resources.displayMetrics.density
private fun getLargeFontSize() = getMediumFontSize() + 3f private fun getLargeFontSize() = getMediumFontSize() + 3f
var usePreviousEventReminders: Boolean
get() = prefs.getBoolean(USE_PREVIOUS_EVENT_REMINDERS, true)
set(usePreviousEventReminders) = prefs.edit().putBoolean(USE_PREVIOUS_EVENT_REMINDERS, usePreviousEventReminders).apply()
var defaultReminder1: Int
get() = prefs.getInt(DEFAULT_REMINDER_1, 10)
set(defaultReminder1) = prefs.edit().putInt(DEFAULT_REMINDER_1, defaultReminder1).apply()
var defaultReminder2: Int
get() = prefs.getInt(DEFAULT_REMINDER_2, REMINDER_OFF)
set(defaultReminder2) = prefs.edit().putInt(DEFAULT_REMINDER_2, defaultReminder2).apply()
var defaultReminder3: Int
get() = prefs.getInt(DEFAULT_REMINDER_3, REMINDER_OFF)
set(defaultReminder3) = prefs.edit().putInt(DEFAULT_REMINDER_3, defaultReminder3).apply()
} }

View File

@@ -24,6 +24,10 @@ const val DAILY_VIEW = 5
const val REMINDER_OFF = -1 const val REMINDER_OFF = -1
const val ITEM_EVENT = 0
const val ITEM_EVENT_SIMPLE = 1
const val ITEM_HEADER = 2
const val DAY = 86400 const val DAY = 86400
const val WEEK = 604800 const val WEEK = 604800
const val MONTH = 2592001 // exact value not taken into account, Joda is used for adding months and years const val MONTH = 2592001 // exact value not taken into account, Joda is used for adding months and years
@@ -37,9 +41,9 @@ const val VIBRATE = "vibrate"
const val REMINDER_SOUND_URI = "reminder_sound_uri" const val REMINDER_SOUND_URI = "reminder_sound_uri"
const val REMINDER_SOUND_TITLE = "reminder_sound_title" const val REMINDER_SOUND_TITLE = "reminder_sound_title"
const val VIEW = "view" const val VIEW = "view"
const val REMINDER_MINUTES = "reminder_minutes" const val LAST_EVENT_REMINDER_MINUTES = "reminder_minutes"
const val REMINDER_MINUTES_2 = "reminder_minutes_2" const val LAST_EVENT_REMINDER_MINUTES_2 = "reminder_minutes_2"
const val REMINDER_MINUTES_3 = "reminder_minutes_3" const val LAST_EVENT_REMINDER_MINUTES_3 = "reminder_minutes_3"
const val DISPLAY_EVENT_TYPES = "display_event_types" const val DISPLAY_EVENT_TYPES = "display_event_types"
const val FONT_SIZE = "font_size" const val FONT_SIZE = "font_size"
const val CALDAV_SYNC = "caldav_sync" const val CALDAV_SYNC = "caldav_sync"
@@ -54,6 +58,10 @@ const val DIM_PAST_EVENTS = "dim_past_events"
const val LAST_SOUND_URI = "last_sound_uri" const val LAST_SOUND_URI = "last_sound_uri"
const val LAST_REMINDER_CHANNEL_ID = "last_reminder_channel_ID" const val LAST_REMINDER_CHANNEL_ID = "last_reminder_channel_ID"
const val REMINDER_AUDIO_STREAM = "reminder_audio_stream" const val REMINDER_AUDIO_STREAM = "reminder_audio_stream"
const val USE_PREVIOUS_EVENT_REMINDERS = "use_previous_event_reminders"
const val DEFAULT_REMINDER_1 = "default_reminder_1"
const val DEFAULT_REMINDER_2 = "default_reminder_2"
const val DEFAULT_REMINDER_3 = "default_reminder_3"
// repeat_rule for monthly and yearly repetition // repeat_rule for monthly and yearly repetition
const val REPEAT_SAME_DAY = 1 // i.e. 25th every month, or 3rd june (if yearly repetition) const val REPEAT_SAME_DAY = 1 // i.e. 25th every month, or 3rd june (if yearly repetition)

View File

@@ -928,6 +928,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
val source = cursor.getStringValue(COL_EVENT_SOURCE) val source = cursor.getStringValue(COL_EVENT_SOURCE)
val location = cursor.getStringValue(COL_LOCATION) val location = cursor.getStringValue(COL_LOCATION)
val color = eventTypeColors[eventType] val color = eventTypeColors[eventType]
val isPastEvent = false
val ignoreEventOccurrences = if (repeatInterval != 0) { val ignoreEventOccurrences = if (repeatInterval != 0) {
getIgnoredOccurrences(id) getIgnoredOccurrences(id)
@@ -939,11 +940,10 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
repeatRule = REPEAT_SAME_DAY repeatRule = REPEAT_SAME_DAY
} }
val isPastEvent = endTS < getNowSeconds()
val event = Event(id, startTS, endTS, title, description, reminder1Minutes, reminder2Minutes, reminder3Minutes, val event = Event(id, startTS, endTS, title, description, reminder1Minutes, reminder2Minutes, reminder3Minutes,
repeatInterval, importId, flags, repeatLimit, repeatRule, eventType, ignoreEventOccurrences, offset, isDstIncluded, repeatInterval, importId, flags, repeatLimit, repeatRule, eventType, ignoreEventOccurrences, offset, isDstIncluded,
0, lastUpdated, source, color, location, isPastEvent) 0, lastUpdated, source, color, location, isPastEvent)
event.isPastEvent = getIsPastEvent(event)
events.add(event) events.add(event)
} while (cursor.moveToNext()) } while (cursor.moveToNext())
@@ -1070,5 +1070,12 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
} }
} }
private fun getIsPastEvent(event: Event) = event.endTS < getNowSeconds() private fun getIsPastEvent(event: Event): Boolean {
val endTSToCheck = if (event.startTS < getNowSeconds() && event.getIsAllDay()) {
Formatter.getDayEndTS(Formatter.getDayCodeFromTS(event.endTS))
} else {
event.endTS
}
return endTSToCheck < getNowSeconds()
}
} }

View File

@@ -58,7 +58,7 @@ object Formatter {
return "$month $day $year" return "$month $day $year"
} }
fun getTodayCode(context: Context) = Formatter.getDayCodeFromTS(getNowSeconds()) fun getTodayCode() = Formatter.getDayCodeFromTS(getNowSeconds())
fun getHours(context: Context, dateTime: DateTime) = dateTime.toString(getHourPattern(context)) fun getHours(context: Context, dateTime: DateTime) = dateTime.toString(getHourPattern(context))
@@ -66,7 +66,7 @@ object Formatter {
fun getDateTimeFromCode(dayCode: String) = DateTimeFormat.forPattern(DAYCODE_PATTERN).withZone(DateTimeZone.UTC).parseDateTime(dayCode) fun getDateTimeFromCode(dayCode: String) = DateTimeFormat.forPattern(DAYCODE_PATTERN).withZone(DateTimeZone.UTC).parseDateTime(dayCode)
fun getLocalDateTimeFromCode(dayCode: String) = DateTimeFormat.forPattern(DAYCODE_PATTERN).withZone(DateTimeZone.getDefault()).parseDateTime(dayCode) fun getLocalDateTimeFromCode(dayCode: String) = DateTimeFormat.forPattern(DAYCODE_PATTERN).withZone(DateTimeZone.getDefault()).parseLocalDate(dayCode).toDateTimeAtStartOfDay()
fun getTimeFromTS(context: Context, ts: Int) = getTime(context, getDateTimeFromTS(ts)) fun getTimeFromTS(context: Context, ts: Int) = getTime(context, getDateTimeFromTS(ts))
@@ -85,8 +85,6 @@ object Formatter {
// use manually translated month names, as DateFormat and Joda have issues with a lot of languages // use manually translated month names, as DateFormat and Joda have issues with a lot of languages
fun getMonthName(context: Context, id: Int) = context.resources.getStringArray(R.array.months)[id - 1] fun getMonthName(context: Context, id: Int) = context.resources.getStringArray(R.array.months)[id - 1]
fun getYear(dateTime: DateTime) = dateTime.toString(YEAR_PATTERN)
fun getHourPattern(context: Context) = if (context.config.use24HourFormat) PATTERN_HOURS_24 else PATTERN_HOURS_12 fun getHourPattern(context: Context) = if (context.config.use24HourFormat) PATTERN_HOURS_24 else PATTERN_HOURS_12
fun getTimePattern(context: Context) = if (context.config.use24HourFormat) PATTERN_TIME_24 else PATTERN_TIME_12 fun getTimePattern(context: Context) = if (context.config.use24HourFormat) PATTERN_TIME_24 else PATTERN_TIME_12

View File

@@ -195,7 +195,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() {
setupIntent(context, views, GO_TO_TODAY, R.id.top_go_to_today) setupIntent(context, views, GO_TO_TODAY, R.id.top_go_to_today)
setupIntent(context, views, NEW_EVENT, R.id.top_new_event) setupIntent(context, views, NEW_EVENT, R.id.top_new_event)
val monthCode = days.firstOrNull { it.code.substring(6) == "01" }?.code ?: Formatter.getTodayCode(context) val monthCode = days.firstOrNull { it.code.substring(6) == "01" }?.code ?: Formatter.getTodayCode()
setupAppOpenIntent(context, views, R.id.top_value, monthCode) setupAppOpenIntent(context, views, R.id.top_value, monthCode)
try { try {

View File

@@ -3,7 +3,6 @@ package com.simplemobiletools.calendar.receivers
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.simplemobiletools.calendar.extensions.dbHelper
import com.simplemobiletools.calendar.extensions.notifyRunningEvents import com.simplemobiletools.calendar.extensions.notifyRunningEvents
import com.simplemobiletools.calendar.extensions.recheckCalDAVCalendars import com.simplemobiletools.calendar.extensions.recheckCalDAVCalendars
import com.simplemobiletools.calendar.extensions.scheduleAllEvents import com.simplemobiletools.calendar.extensions.scheduleAllEvents
@@ -11,9 +10,6 @@ import com.simplemobiletools.calendar.extensions.scheduleAllEvents
class BootCompletedReceiver : BroadcastReceiver() { class BootCompletedReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
// try just getting a reference to the db so it updates in time
context.dbHelper
Thread { Thread {
context.apply { context.apply {
scheduleAllEvents() scheduleAllEvents()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:thicknessRatio="1"
android:useLevel="false">
<solid android:color="@android:color/transparent"/>
<stroke
android:width="2dp"
android:color="@android:color/white"/>
</shape>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="@dimen/event_color_bar_width"
android:height="@dimen/event_color_bar_height"/>
<solid
android:color="@color/white"/>
<corners android:radius="@dimen/small_margin"/>
</shape>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="bottom|center_horizontal"
android:src="@drawable/monthly_event_dot"
android:tileMode="disabled"/>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/monthly_event_dot"
android:gravity="bottom|center_horizontal"/>
</layer-list>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/monthly_day_dot"
android:gravity="bottom|center_horizontal"/>
<item android:drawable="@drawable/circle_empty"/>
</layer-list>

View File

@@ -360,6 +360,134 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/settings_use_last_event_reminders_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingBottom="@dimen/activity_margin"
android:paddingLeft="@dimen/normal_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingTop="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/settings_use_last_event_reminders"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:paddingLeft="@dimen/medium_margin"
android:paddingStart="@dimen/medium_margin"
android:text="@string/use_last_event_reminders"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_default_reminder_1_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingBottom="@dimen/bigger_margin"
android:paddingLeft="@dimen/normal_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingTop="@dimen/bigger_margin">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_1_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/settings_default_reminder_1"
android:layout_toStartOf="@+id/settings_default_reminder_1"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/default_reminder_1"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="@dimen/small_margin"
android:layout_marginRight="@dimen/small_margin"
android:background="@null"
android:clickable="false"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_default_reminder_2_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingBottom="@dimen/bigger_margin"
android:paddingLeft="@dimen/normal_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingTop="@dimen/bigger_margin">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_2_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/settings_default_reminder_2"
android:layout_toStartOf="@+id/settings_default_reminder_2"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/default_reminder_2"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="@dimen/small_margin"
android:layout_marginRight="@dimen/small_margin"
android:background="@null"
android:clickable="false"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_default_reminder_3_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingBottom="@dimen/bigger_margin"
android:paddingLeft="@dimen/normal_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingTop="@dimen/bigger_margin">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_3_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/settings_default_reminder_3"
android:layout_toStartOf="@+id/settings_default_reminder_3"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/default_reminder_3"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_default_reminder_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="@dimen/small_margin"
android:layout_marginRight="@dimen/small_margin"
android:background="@null"
android:clickable="false"/>
</RelativeLayout>
<View <View
android:id="@+id/caldav_divider" android:id="@+id/caldav_divider"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -33,7 +33,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/small_margin" android:layout_marginTop="@dimen/small_margin"
android:text="@string/repeat_x_times"/> android:text="@string/stop_repeating_after_x"/>
<com.simplemobiletools.commons.views.MyEditText <com.simplemobiletools.commons.views.MyEditText
android:id="@+id/repeat_type_count" android:id="@+id/repeat_type_count"

View File

@@ -18,10 +18,22 @@
android:paddingBottom="@dimen/medium_margin" android:paddingBottom="@dimen/medium_margin"
android:paddingTop="@dimen/medium_margin"> android:paddingTop="@dimen/medium_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_description"
android:layout_alignTop="@+id/event_item_title"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView <TextView
android:id="@+id/event_item_start" android:id="@+id/event_item_start"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="13:00"/> tools:text="13:00"/>
@@ -30,15 +42,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_item_start" android:layout_below="@+id/event_item_start"
android:layout_toRightOf="@+id/event_item_color_bar"
android:text="15:00" android:text="15:00"
android:textSize="@dimen/day_text_size"/> android:textSize="@dimen/day_text_size"/>
<TextView <TextView
android:id="@+id/event_section_title" android:id="@+id/event_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin" android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start" android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -50,9 +62,8 @@
android:id="@+id/event_item_description" android:id="@+id/event_item_description"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_section_title" android:layout_below="@+id/event_item_title"
android:layout_marginLeft="@dimen/activity_margin" android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end" android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -60,16 +71,5 @@
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="Event description"/> tools:text="Event description"/>
<ImageView
android:id="@+id/event_item_color"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_section_title"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/event_section_title"
android:paddingRight="@dimen/activity_margin"
android:src="@drawable/monthly_event_dot"/>
</RelativeLayout> </RelativeLayout>
</FrameLayout> </FrameLayout>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/event_item_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:foreground="@drawable/selector"
android:paddingLeft="@dimen/activity_margin">
<RelativeLayout
android:id="@+id/event_item_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/medium_margin"
android:paddingRight="@dimen/activity_margin"
android:paddingTop="@dimen/medium_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_start"
android:layout_alignTop="@+id/event_item_start"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView
android:id="@+id/event_item_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size"
tools:text="13:00"/>
<TextView
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
android:paddingRight="@dimen/activity_margin"
android:textSize="@dimen/day_text_size"
tools:text="Event title"/>
</RelativeLayout>
</FrameLayout>

View File

@@ -16,14 +16,25 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/medium_margin" android:paddingBottom="@dimen/medium_margin"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"
android:paddingTop="@dimen/small_margin"> android:paddingTop="@dimen/small_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_end"
android:layout_alignTop="@+id/event_item_start"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView <TextView
android:id="@+id/event_item_start" android:id="@+id/event_item_start"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="13:00"/> tools:text="13:00"/>
@@ -32,16 +43,16 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_item_start" android:layout_below="@+id/event_item_start"
android:layout_toRightOf="@+id/event_item_color_bar"
android:includeFontPadding="false" android:includeFontPadding="false"
android:text="15:00" android:text="15:00"
android:textSize="@dimen/day_text_size"/> android:textSize="@dimen/day_text_size"/>
<TextView <TextView
android:id="@+id/event_section_title" android:id="@+id/event_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin" android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start" android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -53,9 +64,8 @@
android:id="@+id/event_item_description" android:id="@+id/event_item_description"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_section_title" android:layout_below="@+id/event_item_title"
android:layout_marginLeft="@dimen/activity_margin" android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end" android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end" android:ellipsize="end"
android:includeFontPadding="false" android:includeFontPadding="false"
@@ -64,16 +74,5 @@
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="Event description"/> tools:text="Event description"/>
<ImageView
android:id="@+id/event_item_color"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_section_title"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/event_section_title"
android:paddingRight="@dimen/medium_margin"
android:src="@drawable/monthly_event_dot"/>
</RelativeLayout> </RelativeLayout>
</FrameLayout> </FrameLayout>

View File

@@ -16,23 +16,33 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingBottom="@dimen/medium_margin" android:paddingBottom="@dimen/medium_margin"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"
android:paddingTop="@dimen/small_margin"> android:paddingTop="@dimen/small_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_start"
android:layout_alignTop="@+id/event_item_start"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView <TextView
android:id="@+id/event_item_start" android:id="@+id/event_item_start"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="13:00"/> tools:text="13:00"/>
<TextView <TextView
android:id="@+id/event_section_title" android:id="@+id/event_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin" android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start" android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -40,16 +50,5 @@
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="Event title"/> tools:text="Event title"/>
<ImageView
android:id="@+id/event_item_color"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_section_title"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/event_section_title"
android:paddingRight="@dimen/medium_margin"
android:src="@drawable/monthly_event_dot"/>
</RelativeLayout> </RelativeLayout>
</FrameLayout> </FrameLayout>

View File

@@ -7,30 +7,40 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin"> android:layout_marginBottom="@dimen/medium_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_end"
android:layout_alignTop="@+id/event_item_start"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView <TextView
android:id="@+id/event_item_start" android:id="@+id/event_item_start"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/medium_margin" android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size" android:text="13:00"
tools:text="13:00"/> android:textSize="@dimen/day_text_size"/>
<TextView <TextView
android:id="@+id/event_item_end" android:id="@+id/event_item_end"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_item_start" android:layout_below="@+id/event_item_start"
android:layout_marginLeft="@dimen/medium_margin" android:layout_toRightOf="@+id/event_item_color_bar"
android:includeFontPadding="false" android:includeFontPadding="false"
android:text="15:00" android:text="15:00"
android:textSize="@dimen/day_text_size"/> android:textSize="@dimen/day_text_size"/>
<TextView <TextView
android:id="@+id/event_section_title" android:id="@+id/event_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/normal_margin" android:layout_marginLeft="@dimen/normal_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start" android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -42,9 +52,8 @@
android:id="@+id/event_item_description" android:id="@+id/event_item_description"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/event_section_title" android:layout_below="@+id/event_item_title"
android:layout_marginLeft="@dimen/normal_margin" android:layout_marginLeft="@dimen/normal_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end" android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end" android:ellipsize="end"
android:includeFontPadding="false" android:includeFontPadding="false"
@@ -53,15 +62,4 @@
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="Event description"/> tools:text="Event description"/>
<ImageView
android:id="@+id/event_item_color"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_section_title"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/event_section_title"
android:paddingRight="@dimen/medium_margin"
android:src="@drawable/monthly_event_dot"/>
</RelativeLayout> </RelativeLayout>

View File

@@ -7,20 +7,30 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/medium_margin"> android:layout_marginBottom="@dimen/medium_margin">
<ImageView
android:id="@+id/event_item_color_bar"
android:layout_width="@dimen/event_color_bar_width"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_item_start"
android:layout_alignTop="@+id/event_item_start"
android:layout_marginRight="@dimen/small_margin"
android:background="@drawable/event_list_color_bar"
android:paddingBottom="@dimen/tiny_margin"
android:paddingTop="@dimen/tiny_margin"/>
<TextView <TextView
android:id="@+id/event_item_start" android:id="@+id/event_item_start"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/medium_margin" android:layout_toRightOf="@+id/event_item_color_bar"
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="13:00"/> tools:text="13:00"/>
<TextView <TextView
android:id="@+id/event_section_title" android:id="@+id/event_item_title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/normal_margin" android:layout_marginLeft="@dimen/normal_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start" android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
@@ -28,15 +38,4 @@
android:textSize="@dimen/day_text_size" android:textSize="@dimen/day_text_size"
tools:text="Event title"/> tools:text="Event title"/>
<ImageView
android:id="@+id/event_item_color"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/event_section_title"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/event_section_title"
android:paddingRight="@dimen/medium_margin"
android:src="@drawable/monthly_event_dot"/>
</RelativeLayout> </RelativeLayout>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Yalnız seçilmiş hadisəni yenilə</string> <string name="update_one_only">Yalnız seçilmiş hadisəni yenilə</string>
<string name="update_all_occurrences">Bütün hadisələri yenilə</string> <string name="update_all_occurrences">Bütün hadisələri yenilə</string>
<string name="repeat_till_date">Bir vaxta qədər təkrarla</string> <string name="repeat_till_date">Bir vaxta qədər təkrarla</string>
<string name="repeat_x_times">X dəfə təkrarla</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Sonsuz təkrarla</string> <string name="repeat_forever">Sonsuz təkrarla</string>
<string name="times">təkrar sayı</string> <string name="times">təkrar sayı</string>
<string name="repeat">Təkrarla</string> <string name="repeat">Təkrarla</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Zəng</string> <string name="alarm_stream">Zəng</string>
<string name="notification_stream">Bildiriş</string> <string name="notification_stream">Bildiriş</string>
<string name="ring_stream">Zəng səsi</string> <string name="ring_stream">Zəng səsi</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Hizivaat an degouezh diuzet hepken</string> <string name="update_one_only">Hizivaat an degouezh diuzet hepken</string>
<string name="update_all_occurrences">Hizivaat an holl zegouezhioù</string> <string name="update_all_occurrences">Hizivaat an holl zegouezhioù</string>
<string name="repeat_till_date">Addegouezhout betek un deiziad</string> <string name="repeat_till_date">Addegouezhout betek un deiziad</string>
<string name="repeat_x_times">Addegouezhout X gwech</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Addegouezhout da viken</string> <string name="repeat_forever">Addegouezhout da viken</string>
<string name="times">a wechoù</string> <string name="times">a wechoù</string>
<string name="repeat">Addegouezh</string> <string name="repeat">Addegouezh</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -3,7 +3,7 @@
<string name="app_name">Simple Calendar</string> <string name="app_name">Simple Calendar</string>
<string name="app_launcher_name">Calendar</string> <string name="app_launcher_name">Calendar</string>
<string name="change_view">Změnit zobrazení</string> <string name="change_view">Změnit zobrazení</string>
<string name="daily_view">Daily view</string> <string name="daily_view">Denní kalendář</string>
<string name="weekly_view">Týdenní kalendář</string> <string name="weekly_view">Týdenní kalendář</string>
<string name="monthly_view">Měsíční kalendář</string> <string name="monthly_view">Měsíční kalendář</string>
<string name="yearly_view">Roční kalendář</string> <string name="yearly_view">Roční kalendář</string>
@@ -19,15 +19,15 @@
<string name="event">Událost</string> <string name="event">Událost</string>
<string name="edit_event">Upravit událost</string> <string name="edit_event">Upravit událost</string>
<string name="new_event">Nová událost</string> <string name="new_event">Nová událost</string>
<string name="create_new_event">Create a new event</string> <string name="create_new_event">Vytvořit novou událost</string>
<string name="duplicate_event">Duplicate event</string> <string name="duplicate_event">Zkopírovat událost</string>
<string name="title_empty">Doplňte název</string> <string name="title_empty">Doplňte název</string>
<string name="end_before_start">Konec události nemůže být dříve než začátek</string> <string name="end_before_start">Konec události nemůže být dříve než začátek</string>
<string name="event_added">Událost úspěšně přidána</string> <string name="event_added">Událost úspěšně přidána</string>
<string name="event_updated">Událost úspěšně změněna</string> <string name="event_updated">Událost úspěšně změněna</string>
<string name="filter_events_by_type">Filtrovat události podle typu</string> <string name="filter_events_by_type">Filtrovat události podle typu</string>
<string name="please_fill_location">Please fill in a location to be shown on a map</string> <string name="please_fill_location">Vyplňte prosím místo, které se zobrazí na mapě</string>
<string name="public_event_notification_text">An event is upcoming</string> <string name="public_event_notification_text">Událost právě nastává</string>
<!-- Event Repetition --> <!-- Event Repetition -->
<string name="repetition">Opakovaná událost</string> <string name="repetition">Opakovaná událost</string>
@@ -44,12 +44,12 @@
<string name="event_is_repeatable">Událost se opakuje</string> <string name="event_is_repeatable">Událost se opakuje</string>
<string name="selection_contains_repetition">Výběr zahrnuje opakující se události</string> <string name="selection_contains_repetition">Výběr zahrnuje opakující se události</string>
<string name="delete_one_only">Vymazat pouze vybrané výskyty</string> <string name="delete_one_only">Vymazat pouze vybrané výskyty</string>
<string name="delete_future_occurrences">Delete this and all future occurrences</string> <string name="delete_future_occurrences">Smaž tento a jakékoliv budoucí výskyty</string>
<string name="delete_all_occurrences">Vymazat všechny výskyty</string> <string name="delete_all_occurrences">Vymazat všechny výskyty</string>
<string name="update_one_only">Změnit pouze vybrané výskyty</string> <string name="update_one_only">Změnit pouze vybrané výskyty</string>
<string name="update_all_occurrences">Změnit všechny výskyty</string> <string name="update_all_occurrences">Změnit všechny výskyty</string>
<string name="repeat_till_date">Opakovat až do</string> <string name="repeat_till_date">Opakovat až do</string>
<string name="repeat_x_times">Opakovat x krát</string> <string name="stop_repeating_after_x">Zastavit opakování po x výskytech</string>
<string name="repeat_forever">Opakovat navždy</string> <string name="repeat_forever">Opakovat navždy</string>
<string name="times">krát</string> <string name="times">krát</string>
<string name="repeat">Opakovat</string> <string name="repeat">Opakovat</string>
@@ -60,7 +60,7 @@
<string name="the_last_day">poslední den</string> <string name="the_last_day">poslední den</string>
<string name="repeat_on_the_same_day_monthly">Opakovat ve stejný den každý měsíc</string> <string name="repeat_on_the_same_day_monthly">Opakovat ve stejný den každý měsíc</string>
<string name="repeat_on_the_last_day_monthly">Opakovat poslední den v měsíci</string> <string name="repeat_on_the_last_day_monthly">Opakovat poslední den v měsíci</string>
<string name="repeat_on_the_same_day_yearly">Repeat on the same day every year</string> <string name="repeat_on_the_same_day_yearly">Opakovat ve stejný den každý rok</string>
<string name="repeat_every_m">Opakovat každý</string> <string name="repeat_every_m">Opakovat každý</string>
<string name="every_m">každý</string> <string name="every_m">každý</string>
<string name="first_m">první</string> <string name="first_m">první</string>
@@ -80,10 +80,10 @@
<string name="last_f">poslední</string> <string name="last_f">poslední</string>
<!-- Birthdays --> <!-- Birthdays -->
<string name="birthdays">Birthdays</string> <string name="birthdays">Narozeniny</string>
<string name="add_birthdays">Add contact birthdays</string> <string name="add_birthdays">Přidat narozeniny z kontaktů</string>
<string name="no_birthdays">No birthdays have been found</string> <string name="no_birthdays">Žádné narozeniny nebyly nalezeny</string>
<string name="birthdays_added">Birthdays added successfully</string> <string name="birthdays_added">Narozeniny byly úspěšně přidány</string>
<!-- Anniversaries --> <!-- Anniversaries -->
<string name="anniversaries">Anniversaries</string> <string name="anniversaries">Anniversaries</string>
@@ -128,16 +128,16 @@
<string name="select_event_type">Vyberte typ události</string> <string name="select_event_type">Vyberte typ události</string>
<string name="move_events_into_default">Přesunout vybrané události na výchozí typ události</string> <string name="move_events_into_default">Přesunout vybrané události na výchozí typ události</string>
<string name="remove_affected_events">Trvale odebrat vybrané události</string> <string name="remove_affected_events">Trvale odebrat vybrané události</string>
<string name="unsync_caldav_calendar">Chcete-li odebrat kalendář CalDAV, musíte jej desynchronizovat</string> <string name="unsync_caldav_calendar">Chcete-li odebrat kalendář CalDAV, musíte vypnout synchronizaci</string>
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Svátky</string> <string name="holidays">Svátky</string>
<string name="add_holidays">Přidat svátek</string> <string name="add_holidays">Přidat svátek</string>
<string name="national_holidays">Státní svátky</string> <string name="national_holidays">Státní svátky</string>
<string name="religious_holidays">Církevní svátky</string> <string name="religious_holidays">Církevní svátky</string>
<string name="holidays_imported_successfully">Holidays have been successfully imported into the \"Holidays\" event type</string> <string name="holidays_imported_successfully">Svátky byly úspěšně naimportovány</string>
<string name="importing_some_holidays_failed">Import některých událostí se nezdařil</string> <string name="importing_some_holidays_failed">Import některých událostí se nezdařil</string>
<string name="importing_holidays_failed">Import svátků nezdařil</string> <string name="importing_holidays_failed">Import svátků se nezdařil</string>
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Správa typů událostí</string> <string name="manage_event_types">Správa typů událostí</string>
@@ -149,21 +149,25 @@
<string name="no_ringtone_picker">Nebyla nalezena žádná aplikace, která by mohla nastavit vyzvánění</string> <string name="no_ringtone_picker">Nebyla nalezena žádná aplikace, která by mohla nastavit vyzvánění</string>
<string name="no_ringtone_selected">žádný</string> <string name="no_ringtone_selected">žádný</string>
<string name="day_end_before_start">Den nemůže skončit dřív, než začne</string> <string name="day_end_before_start">Den nemůže skončit dřív, než začne</string>
<string name="caldav_sync">CalDAV sync</string> <string name="caldav_sync">CalDAV synchronizace</string>
<string name="event_lists">Seznamy událostí</string> <string name="event_lists">Seznamy událostí</string>
<string name="display_past_events">Zobrazit minulé události</string> <string name="display_past_events">Zobrazit minulé události</string>
<string name="replace_description_with_location">Replace event description with location</string> <string name="replace_description_with_location">Nahradit popis udalosti lokací</string>
<string name="delete_all_events">Delete all events</string> <string name="delete_all_events">Smazat všechny události</string>
<string name="delete_all_events_confirmation">Are you sure you want to delete all events? This will leave your event types and other settings intact.</string> <string name="delete_all_events_confirmation">Opravdu chcete smazat všechny události? Typy událostí a ostatní nastavení zůstanou neporušené.</string>
<string name="show_a_grid">Show a grid</string> <string name="show_a_grid">Zobrazit mřížku</string>
<string name="loop_reminders">Loop reminders until dismissed</string> <string name="loop_reminders">Připomínat až do vypnutí</string>
<string name="dim_past_events">Dim past events</string> <string name="dim_past_events">Smazat minulé události</string>
<string name="events">Events</string> <string name="events">Události</string>
<string name="reminder_stream">Audio stream used by reminders</string> <string name="reminder_stream">Zvuk upomínky</string>
<string name="system_stream">System</string> <string name="system_stream">Systémový</string>
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Budík</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notifikace</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Zvonek</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -174,8 +178,8 @@
<string name="refreshing">Obnovuji…</string> <string name="refreshing">Obnovuji…</string>
<string name="refreshing_complete">Obnovování dokončeno</string> <string name="refreshing_complete">Obnovování dokončeno</string>
<string name="editing_calendar_failed">Editování kalendáře se nezdařilo</string> <string name="editing_calendar_failed">Editování kalendáře se nezdařilo</string>
<string name="syncing">Syncing</string> <string name="syncing">Synchronizuji</string>
<string name="synchronization_completed">Sync completed</string> <string name="synchronization_completed">Synchronizace dokončena</string>
<!-- alternative versions for some languages, use the same translations if you are not sure what this means --> <!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
<!-- used in repetition, like "Every last Sunday" --> <!-- used in repetition, like "Every last Sunday" -->
@@ -214,13 +218,13 @@
<string name="app_long_description"> <string name="app_long_description">
Jednoduchý kalendář s volitelnou synchronizací CalDAV. Můžete snadno vytvářet opakující se události a nastavovat připomenutí, můžete také zobrazovat čísla týdnů. Jednoduchý kalendář s volitelnou synchronizací CalDAV. Můžete snadno vytvářet opakující se události a nastavovat připomenutí, můžete také zobrazovat čísla týdnů.
Obsahuje přizpůsobitelný widget 4x4, kde můžete měnit barvu textu, stejně jako alfu a barvu pozadí. Obsahuje přizpůsobitelný widget 4x4, kde můžete měnit barvu textu, stejně jako průhlednost a barvu pozadí.
Neobsahuje žádné reklamy ani zbytečná oprávnění. Je plně opensource, umožňuje měnit barvy. Neobsahuje žádné reklamy ani zbytečná oprávnění. Je plně OpenSource, umožňuje měnit barvy.
Povolení úložiště je potřeba pouze pro export nebo import událostí ze souborů .ics. Povolení úložiště je potřeba pouze pro export nebo import událostí ze souborů .ics.
The Contacts permission is used only at importing contact birthdays and anniversaries. Povolení kontaktů se používá pouze při importu narozenin a výročí.
Tato aplikace je součástí větší sady aplikací. Tyto a další aplikace najdete na https://www.simplemobiletools.com Tato aplikace je součástí větší sady aplikací. Tyto a další aplikace najdete na https://www.simplemobiletools.com
</string> </string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Opdater kun denne forekomst</string> <string name="update_one_only">Opdater kun denne forekomst</string>
<string name="update_all_occurrences">Opdater alle forekomster</string> <string name="update_all_occurrences">Opdater alle forekomster</string>
<string name="repeat_till_date">Gentag indtil</string> <string name="repeat_till_date">Gentag indtil</string>
<string name="repeat_x_times">Antal gentagelser</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">For altid</string> <string name="repeat_forever">For altid</string>
<string name="times">gange</string> <string name="times">gange</string>
<string name="repeat">Gentag</string> <string name="repeat">Gentag</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notifikation</string> <string name="notification_stream">Notifikation</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Brug den sidst opsatte påmindelse som standard for påmindelser</string>
<string name="default_reminder_1">Påmindelse 1</string>
<string name="default_reminder_2">Påmindelse 2</string>
<string name="default_reminder_3">Påmindelse 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -203,7 +207,7 @@
<string name="faq_2_title">Kan jeg synkronisere mine begivenheder med Googles kalender eller en anden kalender der understøtter CalDAV?</string> <string name="faq_2_title">Kan jeg synkronisere mine begivenheder med Googles kalender eller en anden kalender der understøtter CalDAV?</string>
<string name="faq_2_text">Ja, klik på \"CalDAV sync\" i appens indstillinger og vælg de kalendere du vil synkronisere. Det kræver dog at du har en app til at synkronisere mellem din enhed og kalenderservere. <string name="faq_2_text">Ja, klik på \"CalDAV sync\" i appens indstillinger og vælg de kalendere du vil synkronisere. Det kræver dog at du har en app til at synkronisere mellem din enhed og kalenderservere.
Hvis du vil synkronisere en Googlekalender, kan deres officielle app klare det. For andre kalenderes vedkommende kan du bruge en 3. partsapp som for eksempel DAVdroid.</string> Hvis du vil synkronisere en Googlekalender, kan deres officielle app klare det. For andre kalenderes vedkommende kan du bruge en 3. partsapp som for eksempel DAVdroid.</string>
<string name="faq_3_title">Jeg kan mine påmindelser, men der er ingen lyd på. Hvad kan jeg gøre ved det?</string> <string name="faq_3_title">Jeg kan se mine påmindelser, men der er ingen lyd på. Hvad kan jeg gøre ved det?</string>
<string name="faq_3_text">Såvel visning af påmindelser som afspilning af lyd til dem, er afhængig af systemet. Hvis ikke du kan høre nogen lyd, kan du prøve at gå ind i appens indstillinger. Her kan du trykke på \"Audio-stream anvendt af påmindelser\" og vælge en anden indstilling. Virker det stadig ikke skal du tjekke i dine lydindstillinger om lyden i det aktuelle valg er slået fra.</string> <string name="faq_3_text">Såvel visning af påmindelser som afspilning af lyd til dem, er afhængig af systemet. Hvis ikke du kan høre nogen lyd, kan du prøve at gå ind i appens indstillinger. Her kan du trykke på \"Audio-stream anvendt af påmindelser\" og vælge en anden indstilling. Virker det stadig ikke skal du tjekke i dine lydindstillinger om lyden i det aktuelle valg er slået fra.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->

View File

@@ -8,7 +8,7 @@
<string name="monthly_view">Monatsansicht</string> <string name="monthly_view">Monatsansicht</string>
<string name="yearly_view">Jahresansicht</string> <string name="yearly_view">Jahresansicht</string>
<string name="simple_event_list">Einfache Terminliste</string> <string name="simple_event_list">Einfache Terminliste</string>
<string name="no_upcoming_events">Keine anstehenden Termine</string> <string name="no_upcoming_events">Scheint so, als hättest du keine anstehenden Termine.</string>
<string name="go_to_today">Springe zu Heute</string> <string name="go_to_today">Springe zu Heute</string>
<!-- Widget titles --> <!-- Widget titles -->
@@ -20,12 +20,12 @@
<string name="edit_event">Termin bearbeiten</string> <string name="edit_event">Termin bearbeiten</string>
<string name="new_event">Neuer Termin</string> <string name="new_event">Neuer Termin</string>
<string name="create_new_event">Neuen Termin erstellen</string> <string name="create_new_event">Neuen Termin erstellen</string>
<string name="duplicate_event">Event duplizieren</string> <string name="duplicate_event">Termin duplizieren</string>
<string name="title_empty">Titel darf nicht leer sein</string> <string name="title_empty">Titel darf nicht leer sein</string>
<string name="end_before_start">Der Termin darf nicht früher enden als er beginnt</string> <string name="end_before_start">Der Termin darf nicht früher enden als er beginnt</string>
<string name="event_added">Termin erfolgreich hinzugefügt</string> <string name="event_added">Termin erfolgreich hinzugefügt</string>
<string name="event_updated">Termin erfolgreich aktualisiert</string> <string name="event_updated">Termin erfolgreich aktualisiert</string>
<string name="filter_events_by_type">Sortiere Termine nach Typ</string> <string name="filter_events_by_type">Termine nach Typ filtern</string>
<string name="please_fill_location">Bitte trage einen Ort ein, der auf einer Karte angezeigt werden soll</string> <string name="please_fill_location">Bitte trage einen Ort ein, der auf einer Karte angezeigt werden soll</string>
<string name="public_event_notification_text">Ein Termin steht an</string> <string name="public_event_notification_text">Ein Termin steht an</string>
@@ -42,20 +42,20 @@
<string name="repeat_till">Wiederholen bis</string> <string name="repeat_till">Wiederholen bis</string>
<string name="forever">unendlich</string> <string name="forever">unendlich</string>
<string name="event_is_repeatable">Termin ist wiederholbar</string> <string name="event_is_repeatable">Termin ist wiederholbar</string>
<string name="selection_contains_repetition">Die Auswahl enthält Ereignisse mit Wiederholungen</string> <string name="selection_contains_repetition">Die Auswahl enthält Termine mit Wiederholungen</string>
<string name="delete_one_only">Lösche nur die ausgewählte Wiederholung</string> <string name="delete_one_only">Nur die ausgewählte Wiederholung löschen</string>
<string name="delete_future_occurrences">Lösche diese und zukünftige Wiederholungen</string> <string name="delete_future_occurrences">Diese und zukünftige Wiederholungen löschen</string>
<string name="delete_all_occurrences">Lösche alle Wiederholungen</string> <string name="delete_all_occurrences">Alle Wiederholungen löschen</string>
<string name="update_one_only">Ändere nur die ausgewählte Wiederholung</string> <string name="update_one_only">Nur die ausgewählte Wiederholung ändern</string>
<string name="update_all_occurrences">Ändere alle Wiederholungen</string> <string name="update_all_occurrences">Alle Wiederholungen ändern</string>
<string name="repeat_till_date">Wiederhole bis zu bestimmtem Datum</string> <string name="repeat_till_date">Bis zu bestimmtem Datum wiederholen</string>
<string name="repeat_x_times">Wiederhole x Mal</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Immer wiederholen</string> <string name="repeat_forever">Immer wiederholen</string>
<string name="times">Mal</string> <string name="times">Mal</string>
<string name="repeat">Wiederholung</string> <string name="repeat">Wiederholung</string>
<string name="repeat_on">Wiederholen</string> <string name="repeat_on">Wiederholen</string>
<string name="every_day">Täglich</string> <string name="every_day">Täglich</string>
<string name="selected_days">an ausgewählten Tagen</string> <string name="selected_days">An ausgewählten Tagen</string>
<string name="the_same_day">Der gleiche Tag</string> <string name="the_same_day">Der gleiche Tag</string>
<string name="the_last_day">Der letzte Tag</string> <string name="the_last_day">Der letzte Tag</string>
<string name="repeat_on_the_same_day_monthly">Am gleichen Tag jeden Monats wiederholen</string> <string name="repeat_on_the_same_day_monthly">Am gleichen Tag jeden Monats wiederholen</string>
@@ -81,32 +81,32 @@
<!-- Birthdays --> <!-- Birthdays -->
<string name="birthdays">Geburtstage</string> <string name="birthdays">Geburtstage</string>
<string name="add_birthdays">Kontaktgeburtstage hinzufügen</string> <string name="add_birthdays">Geburtstage der Kontakte hinzufügen</string>
<string name="no_birthdays">Keine Geburtstage gefunden</string> <string name="no_birthdays">Keine Geburtstage gefunden</string>
<string name="birthdays_added">Geburtstage erfolgreich hinzugefügt</string> <string name="birthdays_added">Geburtstage erfolgreich hinzugefügt</string>
<!-- Anniversaries --> <!-- Anniversaries -->
<string name="anniversaries">Jahrestage</string> <string name="anniversaries">Jahrestage</string>
<string name="add_anniversaries">Kontakt zu Jahrestagen hinzufügen</string> <string name="add_anniversaries">Jahrestage der Kontakte hinzufügen</string>
<string name="no_anniversaries">Es wurden keine Jahrestage gefunden</string> <string name="no_anniversaries">Es wurden keine Jahrestage gefunden</string>
<string name="anniversaries_added">Jahrestage erfolgreich hinzugefügt</string> <string name="anniversaries_added">Jahrestage erfolgreich hinzugefügt</string>
<!-- Event Reminders --> <!-- Event Reminders -->
<string name="reminder">Erinnerung</string> <string name="reminder">Erinnerung</string>
<string name="before">vorher</string> <string name="before">vorher</string>
<string name="add_another_reminder">Füge eine weitere Erinnerung hinzu</string> <string name="add_another_reminder">Weitere Erinnerung hinzufügen</string>
<string name="event_reminders">Ereignis Erinnerungen</string> <string name="event_reminders">Termin-Erinnerungen</string>
<!-- Export / Import --> <!-- Export / Import -->
<string name="import_events">Importiere Termine</string> <string name="import_events">Termine importieren</string>
<string name="export_events">Exportiere Termine</string> <string name="export_events">Termine exportieren</string>
<string name="import_events_from_ics">Importiere Termine aus .ics Datei</string> <string name="import_events_from_ics">Termine aus .ics-Datei importieren</string>
<string name="export_events_to_ics">Exportiere Termine als .ics Datei</string> <string name="export_events_to_ics">Termine als .ics-Datei exportieren</string>
<string name="default_event_type">Standard-Termin-Typ</string> <string name="default_event_type">Standard-Termintyp</string>
<string name="export_past_events_too">Vergangene Termine auch exportieren</string> <string name="export_past_events_too">Vergangene Termine auch exportieren</string>
<string name="include_event_types">Beziehe Termintypen mit ein</string> <string name="include_event_types">Termintypen miteinbeziehen</string>
<string name="filename_without_ics">Dateiname (ohne .ics)</string> <string name="filename_without_ics">Dateiname (ohne .ics)</string>
<string name="override_event_types">Überschreibe Termintypen in der Datei</string> <string name="override_event_types">Termintypen in der Datei überschreiben</string>
<!-- Event details --> <!-- Event details -->
<string name="title">Titel</string> <string name="title">Titel</string>
@@ -119,16 +119,16 @@
<!-- Event types --> <!-- Event types -->
<string name="event_types">Termintypen</string> <string name="event_types">Termintypen</string>
<string name="add_new_type">Füge einen neuen Typ hinzu</string> <string name="add_new_type">Neuen Typ hinzufügen</string>
<string name="edit_type">Typ bearbeiten</string> <string name="edit_type">Typ bearbeiten</string>
<string name="type_already_exists">Typ mit diesem Namen existiert bereits</string> <string name="type_already_exists">Typ mit diesem Namen existiert bereits</string>
<string name="color">Farbe</string> <string name="color">Farbe</string>
<string name="regular_event">Regelmässiger Termin</string> <string name="regular_event">Regelmäßiger Termin</string>
<string name="cannot_delete_default_type">Standard Termintyp kann nicht gelöscht werden</string> <string name="cannot_delete_default_type">Standard-Termintyp kann nicht gelöscht werden</string>
<string name="select_event_type">Wähle einen Termintyp</string> <string name="select_event_type">Wähle einen Termintyp aus</string>
<string name="move_events_into_default">Verschiebe betroffene Termine in den Standard Termintyp</string> <string name="move_events_into_default">Betroffene Termine in den Standard-Termintyp verschieben</string>
<string name="remove_affected_events">Lösche betroffene Termine permanent</string> <string name="remove_affected_events">Betroffene Termine dauerhaft löschen</string>
<string name="unsync_caldav_calendar">Um CalDAV Kalender zu entfernen, musst du diese desynchronisieren</string> <string name="unsync_caldav_calendar">Um einen CalDAV-Kalender zu entfernen, musst du ihn desynchronisieren</string>
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Feiertage</string> <string name="holidays">Feiertage</string>
@@ -140,41 +140,45 @@
<string name="importing_holidays_failed">Importieren von Feiertagen fehlgeschlagen</string> <string name="importing_holidays_failed">Importieren von Feiertagen fehlgeschlagen</string>
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Verwalte Termin-Typen</string> <string name="manage_event_types">Termintypen verwalten</string>
<string name="start_day_at">Wochenansicht beginnt am</string> <string name="start_day_at">Wochenansicht beginnt am</string>
<string name="end_day_at">Wochenansicht endet am</string> <string name="end_day_at">Wochenansicht endet am</string>
<string name="week_numbers">Zeige Kalenderwoche an</string> <string name="week_numbers">Kalenderwoche anzeigen</string>
<string name="vibrate">Vibration bei Erinnerung</string> <string name="vibrate">Vibration bei Erinnerung</string>
<string name="reminder_sound">Erinnerungston</string> <string name="reminder_sound">Erinnerungston</string>
<string name="no_ringtone_picker">Keine App zum Setzen des Klingeltons gefunden</string> <string name="no_ringtone_picker">Keine App zum Einstellen des Klingeltons gefunden</string>
<string name="no_ringtone_selected">Kein Klingelton gewählt</string> <string name="no_ringtone_selected">Kein Klingelton ausgewählt</string>
<string name="day_end_before_start">Terminbeginn kann nicht vor Terminende liegen</string> <string name="day_end_before_start">Terminbeginn kann nicht vor Terminende liegen</string>
<string name="caldav_sync">CalDAV Synchronisierung</string> <string name="caldav_sync">CalDAV-Synchronisierung</string>
<string name="event_lists">Terminlisten</string> <string name="event_lists">Terminlisten</string>
<string name="display_past_events">Vergangene Termine anzeigen</string> <string name="display_past_events">Vergangene Termine anzeigen</string>
<string name="replace_description_with_location">Ersetze Terminbeschreibung mit Ort</string> <string name="replace_description_with_location">Terminbeschreibung mit Ort ersetzen</string>
<string name="delete_all_events">Alle Termine löschen</string> <string name="delete_all_events">Alle Termine löschen</string>
<string name="delete_all_events_confirmation">Bist du sicher, dass du alle Termine löschen willst? Deine Termintypen und Einstellungen bleiben erhalten.</string> <string name="delete_all_events_confirmation">Bist du sicher, dass du alle Termine löschen willst? Deine Termintypen und Einstellungen bleiben erhalten.</string>
<string name="show_a_grid">Raster anzeigen</string> <string name="show_a_grid">Raster anzeigen</string>
<string name="loop_reminders">Erinnerungen wiederholen bis sie verworfen werden</string> <string name="loop_reminders">Erinnerungen wiederholen bis sie verworfen werden</string>
<string name="dim_past_events">Vergangene Termine ausgrauen</string> <string name="dim_past_events">Vergangene Termine ausgrauen</string>
<string name="events">Termine</string> <string name="events">Termine</string>
<string name="reminder_stream">Audio Ausgabekanal für Erinnerungen</string> <string name="reminder_stream">Audio-Ausgabekanal für Erinnerungen</string>
<string name="system_stream">Medien</string> <string name="system_stream">Medien</string>
<string name="alarm_stream">Wecker</string> <string name="alarm_stream">Wecker</string>
<string name="notification_stream">Benachrichtigung</string> <string name="notification_stream">Benachrichtigung</string>
<string name="ring_stream">Klingelton</string> <string name="ring_stream">Klingelton</string>
<string name="use_last_event_reminders">Erinnerungen des letzten Termins als Vorgabe für neuen Termin verwenden</string>
<string name="default_reminder_1">Standarderinnerung 1</string>
<string name="default_reminder_2">Standarderinnerung 2</string>
<string name="default_reminder_3">Standarderinnerung 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
<string name="select_caldav_calendars">Wähle Kalender zur Synchronisierung</string> <string name="select_caldav_calendars">Kalender zur Synchronisierung auswählen</string>
<string name="manage_synced_calendars">Verwalte synchronisierte Kalender</string> <string name="manage_synced_calendars">Synchronisierte Kalender verwalten</string>
<string name="store_locally_only">Nur lokal speichern</string> <string name="store_locally_only">Nur lokal speichern</string>
<string name="refresh_caldav_calendars">Aktualisiere CalDAV Kalender</string> <string name="refresh_caldav_calendars">CalDAV-Kalender aktualisieren</string>
<string name="refreshing">Aktualisiere</string> <string name="refreshing">Wird aktualisiert</string>
<string name="refreshing_complete">Aktualisierung abgeschlossen</string> <string name="refreshing_complete">Aktualisierung abgeschlossen</string>
<string name="editing_calendar_failed">Ändern des Kalenders fehlgeschlagen</string> <string name="editing_calendar_failed">Ändern des Kalenders fehlgeschlagen</string>
<string name="syncing">Synchronisiere</string> <string name="syncing">Wird synchronisiert</string>
<string name="synchronization_completed">Synchronisation erfolgreich</string> <string name="synchronization_completed">Synchronisation erfolgreich</string>
<!-- alternative versions for some languages, use the same translations if you are not sure what this means --> <!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
@@ -199,23 +203,23 @@
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Wie kann ich Feiertage löschen, die über \"Feiertage hinzufügen\" importiert wurden?</string> <string name="faq_1_title">Wie kann ich Feiertage löschen, die über \"Feiertage hinzufügen\" importiert wurden?</string>
<string name="faq_1_text">Die über diesen Weg erstellten Feiertage sind als Termin-Typ \"Feiertage\" deklariert. <string name="faq_1_text">Die über diesen Weg erstellten Feiertage sind als Termintyp \"Feiertage\" deklariert.
Du kannst in den Einstellungen -> Verwalte Termin-Typen auf den Termin-Typ gedrückt halten und über das Papierkorbsymbol löschen.</string> Du kannst in den Einstellungen -> Termintypen verwalten auf den Termintyp gedrückt halten und über das Papierkorbsymbol löschen.</string>
<string name="faq_2_title">Kann ich meine Termine über Google Kalender oder andere CalDAV unterstützende Dienste synchronisieren?</string> <string name="faq_2_title">Kann ich meine Termine über Google Kalender oder andere CalDAV unterstützende Dienste synchronisieren?</string>
<string name="faq_2_text">Ja, aktiviere \"CalDAV Synchronisierung\" in den Einstellungen und wähle die Kalender aus, die du synchronisieren willst. <string name="faq_2_text">Ja, aktiviere \"CalDAV-Synchronisierung\" in den Einstellungen und wähle die Kalender aus, die du synchronisieren willst.
Jedoch benötigst du eine separate App, die Synchronisierung zwischen Gerät und Servern handhabt. Falls du einen Google Kalender synchronisieren willst, kann die offizielle Kalender-App dies übernehmen. Jedoch benötigst du eine separate App, die Synchronisierung zwischen Gerät und Servern handhabt. Falls du einen Google Kalender synchronisieren willst, kann die offizielle Kalender-App dies übernehmen.
Für andere Kalender benötigst du einen Synchronisierungsadapter, wie z. B. DAVdroid.</string> Für andere Kalender benötigst du einen Synchronisierungsadapter, wie z. B. DAVdroid.</string>
<string name="faq_3_title">Ich sehe die Erinenrungen, aber ich höre keinen Ton. Was kann ich tun?</string> <string name="faq_3_title">Ich sehe die Erinnerungen, aber ich höre keinen Ton. Was kann ich tun?</string>
<string name="faq_3_text">Erinnerungen nicht nur anzeigen, sondern Töne dazu abspielen ist ebenfalls stark vom jeweiligen (Android) System abhängig. Wenn Du keine Töne hörst, versuche in den App Einstellungen, <string name="faq_3_text">Erinnerungen nicht nur anzeigen, sondern Töne dazu abspielen ist ebenfalls stark vom jeweiligen (Android) System abhängig. Wenn Du keine Töne hörst, versuche in den App Einstellungen,
die Option \"Audio Ausgabekanal für Erinnerungen\" anzuklicken und eine andere Option auszuwählen. Wenn das immer noch nichts ändert, prüfe Deine Lautstärkeeinstellungen. of der gewählte Kanal nicht auf lautlos steht.</string> die Option \"Audio-Ausgabekanal für Erinnerungen\" anzuklicken und eine andere Option auszuwählen. Wenn das immer noch nichts ändert, prüfe Deine Lautstärkeeinstellungen. of der gewählte Kanal nicht auf lautlos steht.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">Ein einfacher Kalender mit personalisierbaren Widgets, ganz ohne Werbung.</string> <string name="app_short_description">Ein einfacher Kalender mit personalisierbaren Bedienelementen und ohne Werbung.</string>
<string name="app_long_description"> <string name="app_long_description">
Ein schlichter Kalender mit optionaler CalDAV Synchronisation. Du kannst ganz einfach wiederholende Termine sowie Erinnerungen erstellen, inklusive optionaler Anzeige der Kalenderwoche. Ein schlichter Kalender mit optionaler CalDAV-Synchronisation. Du kannst ganz einfach wiederholende Termine sowie Erinnerungen erstellen, inklusive optionaler Anzeige der Kalenderwoche.
Enthält ein skalierbares 4x4 Widget, bei welchem die Schriftfarbe sowie die Hintergrundfarbe und Transparenz anpassbar sind. Enthält ein skalierbares 4x4 Bedienelement, bei welchem die Schriftfarbe sowie die Hintergrundfarbe und Transparenz anpassbar sind.
Beinhaltet keine Werbung oder unnötige Berechtigungen. Sie ist komplett Open Source, alle verwendeten Farben sind anpassbar. Beinhaltet keine Werbung oder unnötige Berechtigungen. Sie ist komplett Open Source, alle verwendeten Farben sind anpassbar.

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Ενημέρωση μόνο του επιλεγμένου περιστατικού</string> <string name="update_one_only">Ενημέρωση μόνο του επιλεγμένου περιστατικού</string>
<string name="update_all_occurrences">Ενημέρωση όλων των περιστατικών</string> <string name="update_all_occurrences">Ενημέρωση όλων των περιστατικών</string>
<string name="repeat_till_date">Επαναλάβετε μέχρι μια ημερομηνία</string> <string name="repeat_till_date">Επαναλάβετε μέχρι μια ημερομηνία</string>
<string name="repeat_x_times">Επαναλάβετε x φορές</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Επαναλάβετε για πάντα</string> <string name="repeat_forever">Επαναλάβετε για πάντα</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Επανάληψη</string> <string name="repeat">Επανάληψη</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Αφύπνιση</string> <string name="alarm_stream">Αφύπνιση</string>
<string name="notification_stream">Ειδοποίηση</string> <string name="notification_stream">Ειδοποίηση</string>
<string name="ring_stream">Κουδούνισμα</string> <string name="ring_stream">Κουδούνισμα</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Actualizar sólo el evento seleccionado</string> <string name="update_one_only">Actualizar sólo el evento seleccionado</string>
<string name="update_all_occurrences">Actualizar todos los eventos</string> <string name="update_all_occurrences">Actualizar todos los eventos</string>
<string name="repeat_till_date">Repetir hasta la fecha</string> <string name="repeat_till_date">Repetir hasta la fecha</string>
<string name="repeat_x_times">Repetir x veces</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repetir por siempre</string> <string name="repeat_forever">Repetir por siempre</string>
<string name="times">veces</string> <string name="times">veces</string>
<string name="repeat">Repetir</string> <string name="repeat">Repetir</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Mettre à jour seulement l\'occurrence sélectionnée</string> <string name="update_one_only">Mettre à jour seulement l\'occurrence sélectionnée</string>
<string name="update_all_occurrences">Mettre à jour toutes les occurrences</string> <string name="update_all_occurrences">Mettre à jour toutes les occurrences</string>
<string name="repeat_till_date">Répéter jusqu\'à une date</string> <string name="repeat_till_date">Répéter jusqu\'à une date</string>
<string name="repeat_x_times">Répéter x fois</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Répéter éternellement</string> <string name="repeat_forever">Répéter éternellement</string>
<string name="times">fois</string> <string name="times">fois</string>
<string name="repeat">Répéter</string> <string name="repeat">Répéter</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarme</string> <string name="alarm_stream">Alarme</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Actualizar só o evento selecionado</string> <string name="update_one_only">Actualizar só o evento selecionado</string>
<string name="update_all_occurrences">Actualizar todos os eventos</string> <string name="update_all_occurrences">Actualizar todos os eventos</string>
<string name="repeat_till_date">Repetir ata a data</string> <string name="repeat_till_date">Repetir ata a data</string>
<string name="repeat_x_times">Repetir x veces</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repetir por sempre</string> <string name="repeat_forever">Repetir por sempre</string>
<string name="times">veces</string> <string name="times">veces</string>
<string name="repeat">Repetir</string> <string name="repeat">Repetir</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -50,7 +50,7 @@
<string name="update_one_only">Update the selected occurrence only</string> <string name="update_one_only">Update the selected occurrence only</string>
<string name="update_all_occurrences">Update all occurrences</string> <string name="update_all_occurrences">Update all occurrences</string>
<string name="repeat_till_date">Repeat till a date</string> <string name="repeat_till_date">Repeat till a date</string>
<string name="repeat_x_times">Repeat x times</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repeat forever</string> <string name="repeat_forever">Repeat forever</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Repeat</string> <string name="repeat">Repeat</string>
@@ -165,6 +165,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -19,15 +19,15 @@
<string name="event">Događaj</string> <string name="event">Događaj</string>
<string name="edit_event">Uredi događaj</string> <string name="edit_event">Uredi događaj</string>
<string name="new_event">Novi događaj</string> <string name="new_event">Novi događaj</string>
<string name="create_new_event">Create a new event</string> <string name="create_new_event">Stvori novi događaj</string>
<string name="duplicate_event">Duplicate event</string> <string name="duplicate_event">Dupliciraj događaj</string>
<string name="title_empty">Naslov ne može biti prazan</string> <string name="title_empty">Naslov ne može biti prazan</string>
<string name="end_before_start">Događaj ne može završiti prije nego što počne</string> <string name="end_before_start">Događaj ne može završiti prije nego što počne</string>
<string name="event_added">Događaj je uspješno dodan</string> <string name="event_added">Događaj je uspješno dodan</string>
<string name="event_updated">Događaj je uspješno ažuriran</string> <string name="event_updated">Događaj je uspješno ažuriran</string>
<string name="filter_events_by_type">Sortiranje prema vrsti događaja</string> <string name="filter_events_by_type">Sortiranje prema vrsti događaja</string>
<string name="please_fill_location">Ispunite lokaciju za prikazivanje na karti</string> <string name="please_fill_location">Ispunite lokaciju za prikazivanje na karti</string>
<string name="public_event_notification_text">An event is upcoming</string> <string name="public_event_notification_text">Nadolazi Vam događaj</string>
<!-- Event Repetition --> <!-- Event Repetition -->
<string name="repetition">Ponavljanje</string> <string name="repetition">Ponavljanje</string>
@@ -44,12 +44,12 @@
<string name="event_is_repeatable">Događaj je ponovljiv</string> <string name="event_is_repeatable">Događaj je ponovljiv</string>
<string name="selection_contains_repetition">Odabir sadrži ponavljajuće događaje</string> <string name="selection_contains_repetition">Odabir sadrži ponavljajuće događaje</string>
<string name="delete_one_only">Izbriši samo odabrano ponavljanje</string> <string name="delete_one_only">Izbriši samo odabrano ponavljanje</string>
<string name="delete_future_occurrences">Delete this and all future occurrences</string> <string name="delete_future_occurrences">Izbrišite ovo i sva buduća ponavljanja</string>
<string name="delete_all_occurrences">Izbriši sva ponavljanja</string> <string name="delete_all_occurrences">Izbriši sva ponavljanja</string>
<string name="update_one_only">Ažuriraj samo odabrano ponavljanje</string> <string name="update_one_only">Ažuriraj samo odabrano ponavljanje</string>
<string name="update_all_occurrences">Ažuriraj sva ponavljanja</string> <string name="update_all_occurrences">Ažuriraj sva ponavljanja</string>
<string name="repeat_till_date">Ponovi do datuma</string> <string name="repeat_till_date">Ponovi do datuma</string>
<string name="repeat_x_times">Ponovi x puta</string> <string name="stop_repeating_after_x">Prestani ponavljati nakon x pojavljivanja</string>
<string name="repeat_forever">Ponovi zauvijek</string> <string name="repeat_forever">Ponovi zauvijek</string>
<string name="times">puta</string> <string name="times">puta</string>
<string name="repeat">Ponavljanje</string> <string name="repeat">Ponavljanje</string>
@@ -60,7 +60,7 @@
<string name="the_last_day">Zadnji dan</string> <string name="the_last_day">Zadnji dan</string>
<string name="repeat_on_the_same_day_monthly">Ponovi isti dan svaki mjesec</string> <string name="repeat_on_the_same_day_monthly">Ponovi isti dan svaki mjesec</string>
<string name="repeat_on_the_last_day_monthly">Ponovi zadnjeg dana u mjesecu</string> <string name="repeat_on_the_last_day_monthly">Ponovi zadnjeg dana u mjesecu</string>
<string name="repeat_on_the_same_day_yearly">Repeat on the same day every year</string> <string name="repeat_on_the_same_day_yearly">Ponovi istog dana svake godine</string>
<string name="repeat_every_m">Ponovi svaki</string> <string name="repeat_every_m">Ponovi svaki</string>
<string name="every_m">Svaki</string> <string name="every_m">Svaki</string>
<string name="first_m">prvi</string> <string name="first_m">prvi</string>
@@ -156,14 +156,18 @@
<string name="delete_all_events">Izbriši sve događaje</string> <string name="delete_all_events">Izbriši sve događaje</string>
<string name="delete_all_events_confirmation">Jeste li sigurni da želite izbrisati sve događaje? To će ostaviti Vaše vrste događaja i druge postavke netaknutima.</string> <string name="delete_all_events_confirmation">Jeste li sigurni da želite izbrisati sve događaje? To će ostaviti Vaše vrste događaja i druge postavke netaknutima.</string>
<string name="show_a_grid">Prikaži mrežu</string> <string name="show_a_grid">Prikaži mrežu</string>
<string name="loop_reminders">Loop reminders until dismissed</string> <string name="loop_reminders">Ponavljaj podsjetnike sve dok ih ne odbacim</string>
<string name="dim_past_events">Dim past events</string> <string name="dim_past_events">Zatamni događaje koji su završili</string>
<string name="events">Events</string> <string name="events">Događaji</string>
<string name="reminder_stream">Audio stream used by reminders</string> <string name="reminder_stream">Audio izlazni kanal za podsjetnike</string>
<string name="system_stream">System</string> <string name="system_stream">Sustav</string>
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Obavijest</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -204,9 +208,9 @@
<string name="faq_2_title">Mogu li sinkronizirati događaje putem Google Kalendara ili druge usluge koje podržavaju CalDAV?</string> <string name="faq_2_title">Mogu li sinkronizirati događaje putem Google Kalendara ili druge usluge koje podržavaju CalDAV?</string>
<string name="faq_2_text">Da, samo uključite \"CalDAV sinkronizacija\" u postavkama aplikacije i odaberite kalendare koje želite sinkronizirati. Međutim, potrebna je aplikacija između Vašeg uređaja i poslužitelja. <string name="faq_2_text">Da, samo uključite \"CalDAV sinkronizacija\" u postavkama aplikacije i odaberite kalendare koje želite sinkronizirati. Međutim, potrebna je aplikacija između Vašeg uređaja i poslužitelja.
U slučaju da želite sinkronizirati Google kalendar, njihova službena aplikacija Kalendar obavlja navedeni posao. Za ostale kalendare potreban Vam je aplikacija treće strane za upravljanje sinkronizacijom, na primjer DAVdroid.</string> U slučaju da želite sinkronizirati Google kalendar, njihova službena aplikacija Kalendar obavlja navedeni posao. Za ostale kalendare potreban Vam je aplikacija treće strane za upravljanje sinkronizacijom, na primjer DAVdroid.</string>
<string name="faq_3_title">I see the visual reminders, but hear no audio. What can I do?</string> <string name="faq_3_title">Vidim vizualne podsjetnike, ali ne čujem zvuk. Što mogu učiniti</string>
<string name="faq_3_text">Not just displaying the actual reminder, but playing the audio is hugely affected by the system too. If you can\'t hear any sound, try going in the app settings, <string name="faq_3_text">Prikaz podsjetnika, ali i reprodukcija zvuka, jako ovise o Android sustavu. Ako ne čujete zvuk, pokušajte otići u postavke aplikacije,
pressing the \"Audio stream used by reminders\" option and changing it to a different value. If it still won\'t work, check your sound settings, if the particular stream isn\'t muted.</string> odaberite \"Audio izlazni kanal za podsjetnike\" te je promjenite na drugačiju vrijednost. Ako i dalje neće raditi, provjerite postavke zvuka, da odabrani kanal nije utišan.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Update the selected occurrence only</string> <string name="update_one_only">Update the selected occurrence only</string>
<string name="update_all_occurrences">Update all occurrences</string> <string name="update_all_occurrences">Update all occurrences</string>
<string name="repeat_till_date">Repeat till a date</string> <string name="repeat_till_date">Repeat till a date</string>
<string name="repeat_x_times">Repeat x times</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repeat forever</string> <string name="repeat_forever">Repeat forever</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Repeat</string> <string name="repeat">Repeat</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Aggiorna solamente l\'occorenza selezionata</string> <string name="update_one_only">Aggiorna solamente l\'occorenza selezionata</string>
<string name="update_all_occurrences">Aggiorna tutte le occorenze</string> <string name="update_all_occurrences">Aggiorna tutte le occorenze</string>
<string name="repeat_till_date">Ripeti fino a una data</string> <string name="repeat_till_date">Ripeti fino a una data</string>
<string name="repeat_x_times">Ripeti x volte</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Ripeti per sempre</string> <string name="repeat_forever">Ripeti per sempre</string>
<string name="times">volte</string> <string name="times">volte</string>
<string name="repeat">Ripeti</string> <string name="repeat">Ripeti</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -50,7 +50,7 @@
<string name="update_one_only">Update the selected occurrence only</string> <string name="update_one_only">Update the selected occurrence only</string>
<string name="update_all_occurrences">Update all occurrences</string> <string name="update_all_occurrences">Update all occurrences</string>
<string name="repeat_till_date">Repeat till a date</string> <string name="repeat_till_date">Repeat till a date</string>
<string name="repeat_x_times">Repeat x times</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repeat forever</string> <string name="repeat_forever">Repeat forever</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Repeat</string> <string name="repeat">Repeat</string>
@@ -165,6 +165,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Update the selected occurrence only</string> <string name="update_one_only">Update the selected occurrence only</string>
<string name="update_all_occurrences">Update all occurrences</string> <string name="update_all_occurrences">Update all occurrences</string>
<string name="repeat_till_date">Repeat till a date</string> <string name="repeat_till_date">Repeat till a date</string>
<string name="repeat_x_times">Repeat x times</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repeat forever</string> <string name="repeat_forever">Repeat forever</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Repeat</string> <string name="repeat">Repeat</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">선택한 항목만 변경</string> <string name="update_one_only">선택한 항목만 변경</string>
<string name="update_all_occurrences">모든 항목 변경</string> <string name="update_all_occurrences">모든 항목 변경</string>
<string name="repeat_till_date">날짜까지 반복</string> <string name="repeat_till_date">날짜까지 반복</string>
<string name="repeat_x_times">횟수 반복</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">영원히 반복</string> <string name="repeat_forever">영원히 반복</string>
<string name="times"></string> <string name="times"></string>
<string name="repeat">반복</string> <string name="repeat">반복</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Atnaujinti tik pasirinktą įvykį</string> <string name="update_one_only">Atnaujinti tik pasirinktą įvykį</string>
<string name="update_all_occurrences">Atnaujinti visus įvykius</string> <string name="update_all_occurrences">Atnaujinti visus įvykius</string>
<string name="repeat_till_date">Pakartoti iki datos</string> <string name="repeat_till_date">Pakartoti iki datos</string>
<string name="repeat_x_times">Pakartoti x kartus/ų</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Karoti amžinai</string> <string name="repeat_forever">Karoti amžinai</string>
<string name="times">laikai</string> <string name="times">laikai</string>
<string name="repeat">Kartoti</string> <string name="repeat">Kartoti</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Oppdater bare den merkede forekomsten</string> <string name="update_one_only">Oppdater bare den merkede forekomsten</string>
<string name="update_all_occurrences">Oppdater alle forekomster</string> <string name="update_all_occurrences">Oppdater alle forekomster</string>
<string name="repeat_till_date">Gjenta til en dato</string> <string name="repeat_till_date">Gjenta til en dato</string>
<string name="repeat_x_times">Gjenta x ganger</string> <string name="stop_repeating_after_x">Stopp å gjenta etter x forekomster</string>
<string name="repeat_forever">Gjenta for alltid</string> <string name="repeat_forever">Gjenta for alltid</string>
<string name="times">ganger</string> <string name="times">ganger</string>
<string name="repeat">Gjenta</string> <string name="repeat">Gjenta</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Varsel</string> <string name="notification_stream">Varsel</string>
<string name="ring_stream">Ringetone</string> <string name="ring_stream">Ringetone</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Alleen huidige afspraak bijwerken</string> <string name="update_one_only">Alleen huidige afspraak bijwerken</string>
<string name="update_all_occurrences">Alle afspraken bijwerken</string> <string name="update_all_occurrences">Alle afspraken bijwerken</string>
<string name="repeat_till_date">Herhalen tot datum</string> <string name="repeat_till_date">Herhalen tot datum</string>
<string name="repeat_x_times">Aantal keren herhalen</string> <string name="stop_repeating_after_x">Herhaling stoppen na x keer</string>
<string name="repeat_forever">Voor altijd herhalen</string> <string name="repeat_forever">Voor altijd herhalen</string>
<string name="times">keer</string> <string name="times">keer</string>
<string name="repeat">Herhalen</string> <string name="repeat">Herhalen</string>
@@ -102,7 +102,7 @@
<string name="export_events">Afspraken exporteren</string> <string name="export_events">Afspraken exporteren</string>
<string name="import_events_from_ics">Afspraken uit .ics-bestand importeren</string> <string name="import_events_from_ics">Afspraken uit .ics-bestand importeren</string>
<string name="export_events_to_ics">Afspraken naar .ics-bestand exporteren</string> <string name="export_events_to_ics">Afspraken naar .ics-bestand exporteren</string>
<string name="default_event_type">Standaard afspraaktype</string> <string name="default_event_type">Standaardtype afspraken</string>
<string name="export_past_events_too">Afspraken uit verleden ook exporteren</string> <string name="export_past_events_too">Afspraken uit verleden ook exporteren</string>
<string name="include_event_types">Afspraaktypes weergeven</string> <string name="include_event_types">Afspraaktypes weergeven</string>
<string name="filename_without_ics">Bestandsnaam (zonder .ics)</string> <string name="filename_without_ics">Bestandsnaam (zonder .ics)</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notificatie</string> <string name="notification_stream">Notificatie</string>
<string name="ring_stream">Beltoon</string> <string name="ring_stream">Beltoon</string>
<string name="use_last_event_reminders">Ingestelde herinneringen bij laatste afspraak als standaard voor nieuwe afspraken gebruiken</string>
<string name="default_reminder_1">Standaardherinnering 1</string>
<string name="default_reminder_2">Standaardherinnering 2</string>
<string name="default_reminder_3">Standaardherinnering 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Oppdater bare den merkede forekomsten</string> <string name="update_one_only">Oppdater bare den merkede forekomsten</string>
<string name="update_all_occurrences">Oppdater alle forekomster</string> <string name="update_all_occurrences">Oppdater alle forekomster</string>
<string name="repeat_till_date">Gjenta til en dato</string> <string name="repeat_till_date">Gjenta til en dato</string>
<string name="repeat_x_times">Gjenta x ganger</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Gjenta for alltid</string> <string name="repeat_forever">Gjenta for alltid</string>
<string name="times">ganger</string> <string name="times">ganger</string>
<string name="repeat">Gjenta</string> <string name="repeat">Gjenta</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Zaktualizuj tylko wybrane wystąpienia</string> <string name="update_one_only">Zaktualizuj tylko wybrane wystąpienia</string>
<string name="update_all_occurrences">Zaktualizuj wszystkie wystąpienia</string> <string name="update_all_occurrences">Zaktualizuj wszystkie wystąpienia</string>
<string name="repeat_till_date">Powtarzaj do daty</string> <string name="repeat_till_date">Powtarzaj do daty</string>
<string name="repeat_x_times">Powtórz x razy</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Powtarzaj do końca świata</string> <string name="repeat_forever">Powtarzaj do końca świata</string>
<string name="times">razy</string> <string name="times">razy</string>
<string name="repeat">Powtórz</string> <string name="repeat">Powtórz</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Powiadomienie</string> <string name="notification_stream">Powiadomienie</string>
<string name="ring_stream">Dzwonek</string> <string name="ring_stream">Dzwonek</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -8,7 +8,7 @@
<string name="monthly_view">Vista mensal</string> <string name="monthly_view">Vista mensal</string>
<string name="yearly_view">Vista anual</string> <string name="yearly_view">Vista anual</string>
<string name="simple_event_list">Lista de eventos</string> <string name="simple_event_list">Lista de eventos</string>
<string name="no_upcoming_events">Parece que você não tem eventos próximos.</string> <string name="no_upcoming_events">Parece que você não tem próximos eventos.</string>
<string name="go_to_today">Ir para hoje</string> <string name="go_to_today">Ir para hoje</string>
<!-- Widget titles --> <!-- Widget titles -->
@@ -20,7 +20,7 @@
<string name="edit_event">Editar evento</string> <string name="edit_event">Editar evento</string>
<string name="new_event">Novo evento</string> <string name="new_event">Novo evento</string>
<string name="create_new_event">Crie um novo evento</string> <string name="create_new_event">Crie um novo evento</string>
<string name="duplicate_event">Duplicate event</string> <string name="duplicate_event">Evento duplicado</string>
<string name="title_empty">O título não pode ficar vazio</string> <string name="title_empty">O título não pode ficar vazio</string>
<string name="end_before_start">O evento não pode terminar antes de iniciar</string> <string name="end_before_start">O evento não pode terminar antes de iniciar</string>
<string name="event_added">Evento adicionado com sucesso</string> <string name="event_added">Evento adicionado com sucesso</string>
@@ -49,11 +49,11 @@
<string name="update_one_only">Atualizar a ocorrência selecionada</string> <string name="update_one_only">Atualizar a ocorrência selecionada</string>
<string name="update_all_occurrences">Atualizar todas as ocorrências</string> <string name="update_all_occurrences">Atualizar todas as ocorrências</string>
<string name="repeat_till_date">Repetir até uma data</string> <string name="repeat_till_date">Repetir até uma data</string>
<string name="repeat_x_times">Repetir x vezes</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repetir para sempre</string> <string name="repeat_forever">Repetir para sempre</string>
<string name="times">vezes</string> <string name="times">vezes</string>
<string name="repeat">Repetir</string> <string name="repeat">Repetir</string>
<string name="repeat_on">Repetir</string> <string name="repeat_on">Repetir em</string>
<string name="every_day">Todo dia</string> <string name="every_day">Todo dia</string>
<string name="selected_days">Em dias selecionados</string> <string name="selected_days">Em dias selecionados</string>
<string name="the_same_day">O mesmo dia</string> <string name="the_same_day">O mesmo dia</string>
@@ -128,12 +128,12 @@
<string name="select_event_type">Selecione um tipo de evento</string> <string name="select_event_type">Selecione um tipo de evento</string>
<string name="move_events_into_default">Mover eventos afetados para o tipo de evento padrão</string> <string name="move_events_into_default">Mover eventos afetados para o tipo de evento padrão</string>
<string name="remove_affected_events">Remover permanentemente eventos afetados</string> <string name="remove_affected_events">Remover permanentemente eventos afetados</string>
<string name="unsync_caldav_calendar">Para remover um calendário do CalDAV, você deve desassincroná-lo</string> <string name="unsync_caldav_calendar">Para remover um calendário do CalDAV você deve desativar a sincronização</string>
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Ferias</string> <string name="holidays">Feriados</string>
<string name="add_holidays">Adicionar Ferias</string> <string name="add_holidays">Adicionar feriados</string>
<string name="national_holidays">feriados nacionais</string> <string name="national_holidays">Feriados nacionais</string>
<string name="religious_holidays">Feriados religiosos</string> <string name="religious_holidays">Feriados religiosos</string>
<string name="holidays_imported_successfully">Os feriados foram importados com sucesso para o tipo de evento \ "Feriados \"</string> <string name="holidays_imported_successfully">Os feriados foram importados com sucesso para o tipo de evento \ "Feriados \"</string>
<string name="importing_some_holidays_failed">A importação de alguns eventos falhou</string> <string name="importing_some_holidays_failed">A importação de alguns eventos falhou</string>
@@ -149,21 +149,25 @@
<string name="no_ringtone_picker">Não foi encontrado nenhum aplicativo capaz de definir o som</string> <string name="no_ringtone_picker">Não foi encontrado nenhum aplicativo capaz de definir o som</string>
<string name="no_ringtone_selected">Nenhum</string> <string name="no_ringtone_selected">Nenhum</string>
<string name="day_end_before_start">O dia final não pode ser antes do início</string> <string name="day_end_before_start">O dia final não pode ser antes do início</string>
<string name="caldav_sync">CalDAV sync</string> <string name="caldav_sync">Sincronização CalDAV</string>
<string name="event_lists">Listas de eventos</string> <string name="event_lists">Listas de eventos</string>
<string name="display_past_events">Exibir eventos do passado</string> <string name="display_past_events">Exibir eventos do passado</string>
<string name="replace_description_with_location">Substituir descrição do evento por localização</string> <string name="replace_description_with_location">Substituir descrição do evento por localização</string>
<string name="delete_all_events">Delete todos eventos</string> <string name="delete_all_events">Deletar todos os eventos</string>
<string name="delete_all_events_confirmation">Tem certeza de que deseja excluir todos os eventos? Isso deixará seus tipos de eventos e outras configurações intactas.</string> <string name="delete_all_events_confirmation">Tem certeza de que deseja excluir todos os eventos? Isso deixará seus tipos de eventos e outras configurações intactas.</string>
<string name="show_a_grid">Mostrar uma grid</string> <string name="show_a_grid">Mostrar uma grid</string>
<string name="loop_reminders">Lembretes de loop até que seja dispensado</string> <string name="loop_reminders">Lembretes de loop até que seja dispensado</string>
<string name="dim_past_events">Escurecer passado eventos</string> <string name="dim_past_events">Escurecer eventos passados</string>
<string name="events">Eventos</string> <string name="events">Eventos</string>
<string name="reminder_stream">Audio stream used by reminders</string> <string name="reminder_stream">Fonte de áudio usada pelos lembretes</string>
<string name="system_stream">System</string> <string name="system_stream">Sistema</string>
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarme</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notificação</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Toque</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -173,7 +177,7 @@
<string name="refresh_caldav_calendars">Recarregar Calendarios CalDAV </string> <string name="refresh_caldav_calendars">Recarregar Calendarios CalDAV </string>
<string name="refreshing">Recarregando…</string> <string name="refreshing">Recarregando…</string>
<string name="refreshing_complete">Carregamento completo</string> <string name="refreshing_complete">Carregamento completo</string>
<string name="editing_calendar_failed">O calendário de edição falhou</string> <string name="editing_calendar_failed">A edição do calendário falhou</string>
<string name="syncing">Sincronizando…</string> <string name="syncing">Sincronizando…</string>
<string name="synchronization_completed">Sincronização completa</string> <string name="synchronization_completed">Sincronização completa</string>
@@ -184,7 +188,7 @@
<string name="wednesday_alt">Quarta</string> <string name="wednesday_alt">Quarta</string>
<string name="thursday_alt">Quinta</string> <string name="thursday_alt">Quinta</string>
<string name="friday_alt">Sexta</string> <string name="friday_alt">Sexta</string>
<string name="saturday_alt">Sabado</string> <string name="saturday_alt">Sábado</string>
<string name="sunday_alt">Domingo</string> <string name="sunday_alt">Domingo</string>
<!-- List widget config example events --> <!-- List widget config example events -->
@@ -204,9 +208,9 @@
<string name="faq_2_title">Posso sincronizar meus eventos por meio do Google Agenda ou de outro serviço de suporte CalDAV?</string> <string name="faq_2_title">Posso sincronizar meus eventos por meio do Google Agenda ou de outro serviço de suporte CalDAV?</string>
<string name="faq_2_text">Sim, basta ativar \ "CalDAV sync \" nas configurações do aplicativo e selecionar os calendários que você deseja sincronizar. No entanto, você precisará de algum aplicativo de terceiros que manipule a sincronização entre o dispositivo e os servidores. <string name="faq_2_text">Sim, basta ativar \ "CalDAV sync \" nas configurações do aplicativo e selecionar os calendários que você deseja sincronizar. No entanto, você precisará de algum aplicativo de terceiros que manipule a sincronização entre o dispositivo e os servidores.
Caso você queira sincronizar um calendário do Google, o aplicativo oficial do Google Agenda fará o trabalho. Para outros calendários, você precisará de um adaptador de sincronização de terceiros, por exemplo, o DAVdroid.</string> Caso você queira sincronizar um calendário do Google, o aplicativo oficial do Google Agenda fará o trabalho. Para outros calendários, você precisará de um adaptador de sincronização de terceiros, por exemplo, o DAVdroid.</string>
<string name="faq_3_title">I see the visual reminders, but hear no audio. What can I do?</string> <string name="faq_3_title">Vejo os lembrete, mas não ouço áudio. O que posso fazer?</string>
<string name="faq_3_text">Not just displaying the actual reminder, but playing the audio is hugely affected by the system too. If you can\'t hear any sound, try going in the app settings, <string name="faq_3_text">A exibição do lembrete e o áudio são fortemente influenciados pelas configurações do sistema. Se você não consegue ouvir o som, verifique as configurações do aplicativo,
pressing the \"Audio stream used by reminders\" option and changing it to a different value. If it still won\'t work, check your sound settings, if the particular stream isn\'t muted.</string> selecionando a opção \"Fonte de áudio usada pelos lembretes\" e modificando o seu valor. Se isso não funcionar, verifique as configurações, especialmente se o som não está mudo.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->

View File

@@ -26,7 +26,7 @@
<string name="event_added">Evento adicionado com sucesso</string> <string name="event_added">Evento adicionado com sucesso</string>
<string name="event_updated">Evento atualizado com sucesso</string> <string name="event_updated">Evento atualizado com sucesso</string>
<string name="filter_events_by_type">Filtrar eventos por tipo</string> <string name="filter_events_by_type">Filtrar eventos por tipo</string>
<string name="please_fill_location">Introduza a localização para a mostrar no maps</string> <string name="please_fill_location">Introduza a localização para a mostrar no mapa</string>
<string name="public_event_notification_text">Está para breve um evento</string> <string name="public_event_notification_text">Está para breve um evento</string>
<!-- Event Repetition --> <!-- Event Repetition -->
@@ -44,12 +44,12 @@
<string name="event_is_repeatable">O evento é repetível</string> <string name="event_is_repeatable">O evento é repetível</string>
<string name="selection_contains_repetition">A seleção contém eventos recorrentes</string> <string name="selection_contains_repetition">A seleção contém eventos recorrentes</string>
<string name="delete_one_only">Apagar a ocorrência selecionada</string> <string name="delete_one_only">Apagar a ocorrência selecionada</string>
<string name="delete_future_occurrences">Delete this and all future occurrences</string> <string name="delete_future_occurrences">Apagar esta e todas as ocorrências futuras</string>
<string name="delete_all_occurrences">Apagar todas as ocorrências</string> <string name="delete_all_occurrences">Apagar todas as ocorrências</string>
<string name="update_one_only">Atualizar a ocorrência selecionada</string> <string name="update_one_only">Atualizar a ocorrência selecionada</string>
<string name="update_all_occurrences">Atualizar todas as ocorrências</string> <string name="update_all_occurrences">Atualizar todas as ocorrências</string>
<string name="repeat_till_date">Repetir até à data</string> <string name="repeat_till_date">Repetir até à data</string>
<string name="repeat_x_times">Repetir x vezes</string> <string name="stop_repeating_after_x">Parar de repetir após x ocorrências</string>
<string name="repeat_forever">Repetir eternamente</string> <string name="repeat_forever">Repetir eternamente</string>
<string name="times">vezes</string> <string name="times">vezes</string>
<string name="repeat">Repetição</string> <string name="repeat">Repetição</string>
@@ -60,7 +60,7 @@
<string name="the_last_day">Último dia</string> <string name="the_last_day">Último dia</string>
<string name="repeat_on_the_same_day_monthly">Repetir no mesmo dia de cada mês</string> <string name="repeat_on_the_same_day_monthly">Repetir no mesmo dia de cada mês</string>
<string name="repeat_on_the_last_day_monthly">Repetir no último dia de cada mês</string> <string name="repeat_on_the_last_day_monthly">Repetir no último dia de cada mês</string>
<string name="repeat_on_the_same_day_yearly">Repeat on the same day every year</string> <string name="repeat_on_the_same_day_yearly">Repetir no mesmo dia de cada ano</string>
<string name="repeat_every_m">Repetir</string> <string name="repeat_every_m">Repetir</string>
<string name="every_m">A cada</string> <string name="every_m">A cada</string>
<string name="first_m">primeira</string> <string name="first_m">primeira</string>
@@ -106,7 +106,7 @@
<string name="export_past_events_too">Exportar eventos antigos</string> <string name="export_past_events_too">Exportar eventos antigos</string>
<string name="include_event_types">Incluir tipos de eventos</string> <string name="include_event_types">Incluir tipos de eventos</string>
<string name="filename_without_ics">Nome do ficheiro (sem .ics)</string> <string name="filename_without_ics">Nome do ficheiro (sem .ics)</string>
<string name="override_event_types">Override event types in the file</string> <string name="override_event_types">Substituir tipo de eventos no ficheiro</string>
<!-- Event details --> <!-- Event details -->
<string name="title">Título</string> <string name="title">Título</string>
@@ -161,9 +161,13 @@
<string name="events">Eventos</string> <string name="events">Eventos</string>
<string name="reminder_stream">Fluxo áudio a utilizar nos lembretes</string> <string name="reminder_stream">Fluxo áudio a utilizar nos lembretes</string>
<string name="system_stream">Sistema</string> <string name="system_stream">Sistema</string>
<string name="alarm_stream">Alarmw</string> <string name="alarm_stream">Alarme</string>
<string name="notification_stream">Notificação</string> <string name="notification_stream">Notificação</string>
<string name="ring_stream">Toque</string> <string name="ring_stream">Toque</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Обновить только выбранное</string> <string name="update_one_only">Обновить только выбранное</string>
<string name="update_all_occurrences">Обновить все связанные</string> <string name="update_all_occurrences">Обновить все связанные</string>
<string name="repeat_till_date">Повторять до даты</string> <string name="repeat_till_date">Повторять до даты</string>
<string name="repeat_x_times">Повторять x раз</string> <string name="stop_repeating_after_x">Перестать повторять после x раза</string>
<string name="repeat_forever">Повторять бесконечно</string> <string name="repeat_forever">Повторять бесконечно</string>
<string name="times">раз</string> <string name="times">раз</string>
<string name="repeat">Повторять</string> <string name="repeat">Повторять</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Будильник</string> <string name="alarm_stream">Будильник</string>
<string name="notification_stream">Уведомление</string> <string name="notification_stream">Уведомление</string>
<string name="ring_stream">Звонок</string> <string name="ring_stream">Звонок</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Upraviť iba označené opakovania</string> <string name="update_one_only">Upraviť iba označené opakovania</string>
<string name="update_all_occurrences">Upraviť všetky opakovania</string> <string name="update_all_occurrences">Upraviť všetky opakovania</string>
<string name="repeat_till_date">Opakovať po dátum</string> <string name="repeat_till_date">Opakovať po dátum</string>
<string name="repeat_x_times">Opakovať x krát</string> <string name="stop_repeating_after_x">Ukončiť opakovanie po x opakovaniach</string>
<string name="repeat_forever">Opakovať navždy</string> <string name="repeat_forever">Opakovať navždy</string>
<string name="times">krát</string> <string name="times">krát</string>
<string name="repeat">Opakovať</string> <string name="repeat">Opakovať</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Výstražný</string> <string name="alarm_stream">Výstražný</string>
<string name="notification_stream">Pripomienkový</string> <string name="notification_stream">Pripomienkový</string>
<string name="ring_stream">Zvoniaci</string> <string name="ring_stream">Zvoniaci</string>
<string name="use_last_event_reminders">Použiť pripomienky poslednej udalosti ako predvolené pre novú udalosť</string>
<string name="default_reminder_1">Predvolená pripomienka 1</string>
<string name="default_reminder_2">Predvolená pripomienka 2</string>
<string name="default_reminder_3">Predvolená pripomienka 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Uppdatera bara den markerade förekomsten</string> <string name="update_one_only">Uppdatera bara den markerade förekomsten</string>
<string name="update_all_occurrences">Uppdatera alla förekomster</string> <string name="update_all_occurrences">Uppdatera alla förekomster</string>
<string name="repeat_till_date">Upprepa till ett datum</string> <string name="repeat_till_date">Upprepa till ett datum</string>
<string name="repeat_x_times">Upprepa x gånger</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Upprepa alltid</string> <string name="repeat_forever">Upprepa alltid</string>
<string name="times">gånger</string> <string name="times">gånger</string>
<string name="repeat">Upprepa</string> <string name="repeat">Upprepa</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Avisering</string> <string name="notification_stream">Avisering</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Yalnızca seçilen etkinlikleri güncelle</string> <string name="update_one_only">Yalnızca seçilen etkinlikleri güncelle</string>
<string name="update_all_occurrences">Tüm etkinlikleri güncelle</string> <string name="update_all_occurrences">Tüm etkinlikleri güncelle</string>
<string name="repeat_till_date">Şu tarihe kadar tekrarla</string> <string name="repeat_till_date">Şu tarihe kadar tekrarla</string>
<string name="repeat_x_times">X kere tekrarla</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Sonsuza kadar tekrarla</string> <string name="repeat_forever">Sonsuza kadar tekrarla</string>
<string name="times">kere</string> <string name="times">kere</string>
<string name="repeat">Tekrarla</string> <string name="repeat">Tekrarla</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Bildirim</string> <string name="notification_stream">Bildirim</string>
<string name="ring_stream">Zil sesi</string> <string name="ring_stream">Zil sesi</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">只更新選擇的事件</string> <string name="update_one_only">只更新選擇的事件</string>
<string name="update_all_occurrences">更新全部事件</string> <string name="update_all_occurrences">更新全部事件</string>
<string name="repeat_till_date">重複直到某日</string> <string name="repeat_till_date">重複直到某日</string>
<string name="repeat_x_times">重複幾次</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">永遠重複</string> <string name="repeat_forever">永遠重複</string>
<string name="times"></string> <string name="times"></string>
<string name="repeat">重複</string> <string name="repeat">重複</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">鬧鐘</string> <string name="alarm_stream">鬧鐘</string>
<string name="notification_stream">通知</string> <string name="notification_stream">通知</string>
<string name="ring_stream">鈴聲</string> <string name="ring_stream">鈴聲</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -25,4 +25,7 @@
<dimen name="month_text_size">22sp</dimen> <dimen name="month_text_size">22sp</dimen>
<dimen name="year_view_day_text_size">8sp</dimen> <dimen name="year_view_day_text_size">8sp</dimen>
<dimen name="event_color_bar_width">4dp</dimen>
<dimen name="event_color_bar_height">100dp</dimen>
</resources> </resources>

View File

@@ -2,6 +2,7 @@
<resources> <resources>
<!-- Release notes --> <!-- Release notes -->
<string name="release_129">Allow setting default event reminders, not always reuse the last events\' ones</string>
<string name="release_119"> <string name="release_119">
Allow changing the app launcher icon color\n Allow changing the app launcher icon color\n
Added support for more advanced yearly repetition rules\n Added support for more advanced yearly repetition rules\n

View File

@@ -49,7 +49,7 @@
<string name="update_one_only">Update the selected occurrence only</string> <string name="update_one_only">Update the selected occurrence only</string>
<string name="update_all_occurrences">Update all occurrences</string> <string name="update_all_occurrences">Update all occurrences</string>
<string name="repeat_till_date">Repeat till a date</string> <string name="repeat_till_date">Repeat till a date</string>
<string name="repeat_x_times">Repeat x times</string> <string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Repeat forever</string> <string name="repeat_forever">Repeat forever</string>
<string name="times">times</string> <string name="times">times</string>
<string name="repeat">Repeat</string> <string name="repeat">Repeat</string>
@@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string> <string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string> <string name="ring_stream">Ring</string>
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
<string name="default_reminder_1">Default reminder 1</string>
<string name="default_reminder_2">Default reminder 2</string>
<string name="default_reminder_3">Default reminder 3</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>

View File

@@ -1,11 +1,11 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.2.60' ext.kotlin_version = '1.2.61'
repositories { repositories {
jcenter()
google() google()
jcenter()
} }
dependencies { dependencies {
@@ -19,8 +19,8 @@ buildscript {
allprojects { allprojects {
repositories { repositories {
jcenter()
google() google()
jcenter()
maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
} }
} }