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
commit e71879562c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 1446 additions and 408 deletions

View file

@ -1,6 +1,23 @@
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)*
----------------------------

View file

@ -3,15 +3,15 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
compileSdkVersion 28
buildToolsVersion "28.0.2"
defaultConfig {
applicationId "com.simplemobiletools.calendar"
minSdkVersion 16
targetSdkVersion 27
versionCode 127
versionName "4.1.3"
targetSdkVersion 28
versionCode 129
versionName "4.2.1"
multiDexEnabled true
setProperty("archivesBaseName", "calendar")
}
@ -41,18 +41,11 @@ android {
}
}
ext {
leakCanaryVersion = '1.5.4'
}
dependencies {
implementation 'com.simplemobiletools:commons:4.6.10'
implementation 'com.simplemobiletools:commons:4.7.17'
implementation 'joda-time:joda-time:2.9.9'
implementation 'com.facebook.stetho:stetho:1.5.0'
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()

View file

@ -1,89 +1,295 @@
BEGIN:VCALENDAR
BEGIN:VEVENT
SUMMARY:New Year's Day
UID:aus-123
DTSTART;VALUE=DATE:20180101
DTEND;VALUE=DATE:20180102
DTSTART;VALUE=DATE:20180507
DTEND;VALUE=DATE:20180508
UID:20180507_60o30chicko36e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=1MO
SUMMARY:May Day (Northern Territory)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Australia Day
UID:aus-127
DTSTART;VALUE=DATE:20180126
DTEND;VALUE=DATE:20180127
DTSTART;VALUE=DATE:20180312
DTEND;VALUE=DATE:20180313
UID:20180312_60o30chicko3ie1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=2MO
SUMMARY:Labour Day (Victoria)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Good Friday
UID:aus-129
DTSTART;VALUE=DATE:20180330
DTEND;VALUE=DATE:20180331
DTSTART;VALUE=DATE:20180305
DTEND;VALUE=DATE:20180306
UID:20180305_60o30chicko3ge1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=3;BYDAY=1MO
SUMMARY:Labour Day (Western Australia)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Easter Saturday
UID:aus-131
DTSTART;VALUE=DATE:20180331
DTEND;VALUE=DATE:20180401
DTSTART;VALUE=DATE:20181001
DTEND;VALUE=DATE:20181002
UID:20181001_60o30chicko3ec1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=10;BYDAY=1MO
SUMMARY:Labour Day (regional holiday)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Easter Sunday
UID:aus-133
DTSTART;VALUE=DATE:20180401
DTEND;VALUE=DATE:20180402
DTSTART;VALUE=DATE:20180507
DTEND;VALUE=DATE:20180508
UID:20180507_60o30chicko38e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=5;BYDAY=1MO
SUMMARY:Labour Day (Queensland)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Easter Monday
UID:aus-135
DTSTART;VALUE=DATE:20180402
DTEND;VALUE=DATE:20180403
DTSTART;VALUE=DATE:20180312
DTEND;VALUE=DATE:20180313
UID:20180312_60o30chicko62e1g60o30dr568@google.com
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
BEGIN:VEVENT
SUMMARY:Anzac Day
UID:aus-137
DTSTART;VALUE=DATE:20180425
DTEND;VALUE=DATE:20180426
UID:20180425_60o30chi6so32c1g60o30dr568@google.com
STATUS:CONFIRMED
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
BEGIN:VEVENT
SUMMARY:Queen's Birthday
UID:aus-139
DTSTART;VALUE=DATE:20180611
DTEND;VALUE=DATE:20180612
UID:20180611_60o30chhcoo32e1g60o30dr568@google.com
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
BEGIN:VEVENT
SUMMARY:Bank Holiday
UID:aus-141
DTSTART;VALUE=DATE:20180806
DTEND;VALUE=DATE:20180806
DTEND;VALUE=DATE:20180807
UID:20180806_60o30chicgo30e1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=8;BYDAY=1MO
SUMMARY:Northern Territory Picnic Day (Northern Territory)
END:VEVENT
BEGIN:VEVENT
SUMMARY:Labour Day
UID:aus-143
DTSTART;VALUE=DATE:20181001
DTEND;VALUE=DATE:20181001
DTSTART;VALUE=DATE:20180604
DTEND;VALUE=DATE:20180605
UID:20180604_60o30chj60o30e1g60o30dr568@google.com
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
BEGIN:VEVENT
SUMMARY:Christmas Day
UID:aus-145
DTSTART;VALUE=DATE:20181225
DTEND;VALUE=DATE:20181226
UID:20181225_60o30chi64o30c1g60o30dr568@google.com
STATUS:CONFIRMED
RRULE:FREQ=YEARLY;INTERVAL=1
SUMMARY:Christmas Day
END:VEVENT
BEGIN:VEVENT
SUMMARY:Boxing Day
UID:aus-147
DTSTART;VALUE=DATE:20181226
DTEND;VALUE=DATE:20181227
DTSTART;VALUE=DATE:20180126
DTEND;VALUE=DATE:20180127
UID:20180126_60o30chhcko30c1g60o30dr568@google.com
STATUS:CONFIRMED
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: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 com.facebook.stetho.Stetho
import com.simplemobiletools.commons.extensions.checkUseEnglish
import com.squareup.leakcanary.LeakCanary
class App : MultiDexApplication() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) {
if (LeakCanary.isInAnalyzerProcess(this)) {
return
}
LeakCanary.install(this)
Stetho.initializeWithDefaults(this)
}

View file

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

View file

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

View file

@ -8,10 +8,7 @@ import android.text.TextUtils
import com.simplemobiletools.calendar.R
import com.simplemobiletools.calendar.dialogs.SelectCalendarsDialog
import com.simplemobiletools.calendar.extensions.*
import com.simplemobiletools.calendar.helpers.CalDAVHandler
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.helpers.*
import com.simplemobiletools.calendar.models.EventType
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.CustomIntervalPickerDialog
@ -63,6 +60,10 @@ class SettingsActivity : SimpleActivity() {
setupUseSameSnooze()
setupLoopReminders()
setupSnoozeTime()
setupDefaultReminder()
setupDefaultReminder1()
setupDefaultReminder2()
setupDefaultReminder3()
setupDisplayPastEvents()
setupFontSize()
setupCustomizeWidgetColors()
@ -77,6 +78,14 @@ class SettingsActivity : SimpleActivity() {
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() {
if (config.primaryColor != mStoredPrimaryColor) {
dbHelper.getEventTypes {
@ -387,6 +396,52 @@ class SettingsActivity : SimpleActivity() {
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 setupDisplayPastEvents() {

View file

@ -11,6 +11,8 @@ import com.simplemobiletools.calendar.extensions.dbHelper
import com.simplemobiletools.calendar.extensions.handleEventDeleting
import com.simplemobiletools.calendar.extensions.shareEvents
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.models.Event
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 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) {
val event = events[position]
@ -65,13 +73,23 @@ class DayEventsAdapter(activity: SimpleActivity, val events: ArrayList<Event>, r
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) {
view.apply {
event_section_title.text = event.title
event_item_description.text = if (replaceDescriptionWithLocation) event.location else event.description
event_item_title.text = event.title
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_end.beInvisibleIf(event.startTS == event.endTS)
event_item_color.applyColorFilter(event.color)
event_item_end?.beInvisibleIf(event.startTS == event.endTS)
event_item_color_bar.background.applyColorFilter(event.color)
if (event.startTS != event.endTS) {
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_end.setTextColor(newTextColor)
event_section_title.setTextColor(newTextColor)
event_item_description.setTextColor(newTextColor)
event_item_end?.setTextColor(newTextColor)
event_item_title.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.handleEventDeleting
import com.simplemobiletools.calendar.extensions.shareEvents
import com.simplemobiletools.calendar.helpers.*
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.ListItem
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.views.MyRecyclerView
import kotlinx.android.synthetic.main.event_list_item.view.*
import kotlinx.android.synthetic.main.event_list_section.view.*
import java.util.*
class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListItem>, val allowLongClick: Boolean, val listener: RefreshRecyclerViewListener?,
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 allDayString = resources.getString(R.string.all_day)
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) {
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_start.text = if (listEvent.isAllDay) allDayString else Formatter.getTimeFromTS(context, listEvent.startTS)
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) {
event_item_end?.apply {
@ -157,11 +153,9 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
var startTextColor = textColor
var endTextColor = textColor
if (listEvent.startTS <= now && listEvent.endTS <= now) {
if (listEvent.isAllDay) {
if (Formatter.getDayCodeFromTS(listEvent.startTS) == Formatter.getDayCodeFromTS(now)) {
startTextColor = primaryColor
}
if (listEvent.isAllDay || listEvent.startTS <= now && listEvent.endTS <= now) {
if (listEvent.isAllDay && Formatter.getDayCodeFromTS(listEvent.startTS) == Formatter.getDayCodeFromTS(now)) {
startTextColor = primaryColor
}
if (dimPastEvents && listEvent.isPastEvent) {
@ -174,7 +168,7 @@ class EventListAdapter(activity: SimpleActivity, var listItems: ArrayList<ListIt
event_item_start.setTextColor(startTextColor)
event_item_end?.setTextColor(endTextColor)
event_section_title.setTextColor(startTextColor)
event_item_title.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.ListSection
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.setTextSize
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 var events = ArrayList<ListItem>()
private val textColor = context.config.widgetTextColor
private val weakTextColor = textColor.adjustAlpha(LOW_ALPHA)
private var textColor = context.config.widgetTextColor
private var weakTextColor = textColor.adjustAlpha(LOW_ALPHA)
private val replaceDescription = context.config.replaceDescription
private val dimPastEvents = context.config.dimPastEvents
private var mediumFontSize = context.config.getFontSize()
@ -56,10 +56,10 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
private fun setupListEvent(remoteView: RemoteViews, item: ListEvent) {
var curTextColor = textColor
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_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) {
setViewVisibility(R.id.event_item_end, View.INVISIBLE)
@ -85,12 +85,12 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
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_start, 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_start, 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 onDataSetChanged() {
textColor = context.config.widgetTextColor
weakTextColor = textColor.adjustAlpha(LOW_ALPHA)
mediumFontSize = context.config.getFontSize()
val fromTS = DateTime().seconds() - context.config.displayPastEvents * 60
val toTS = DateTime().plusYears(1).seconds()

View file

@ -37,7 +37,7 @@ class RepeatLimitTypePickerDialog(val activity: Activity, var repeatLimit: Int,
updateRepeatLimitText()
dialog = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok, { dialogInterface, i -> confirmRepetition() })
.setPositiveButton(R.string.ok) { dialogInterface, i -> confirmRepetition() }
.setNegativeButton(R.string.cancel, null)
.create().apply {
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.services.SnoozeService
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.DAY_SECONDS
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.isOreoPlus
import org.joda.time.DateTime
@ -107,20 +107,20 @@ fun Context.scheduleEventIn(notifTS: Long, event: Event, activity: SimpleActivit
return
}
val newNotifTS = notifTS + 1000
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()))
activity.toast(msg)
}
val pendingIntent = getNotificationIntent(applicationContext, event)
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) {
val intent = Intent(applicationContext, NotificationReceiver::class.java)
PendingIntent.getBroadcast(applicationContext, id, intent, PendingIntent.FLAG_UPDATE_CURRENT).cancel()
(getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).cancel(id)
}
private fun getNotificationIntent(context: Context, event: Event): PendingIntent {
@ -161,13 +161,16 @@ fun Context.notifyEvent(originalEvent: Event) {
var event = originalEvent.copy()
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
if (event.repeatInterval != 0 && event.startTS - event.reminder1Minutes * 60 < currentSeconds) {
val events = dbHelper.getRepeatableEventsFor(currentSeconds - DAY_SECONDS, currentSeconds + YEAR_SECONDS, event.id)
if (event.repeatInterval != 0 && eventStartTS - event.reminder1Minutes * 60 < currentSeconds) {
val events = dbHelper.getRepeatableEventsFor(currentSeconds - WEEK_SECONDS, currentSeconds + YEAR_SECONDS, event.id)
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
}
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 {
putExtra(NEW_EVENT_START_TS, getNewEventTimestampFromCode(dayCode))
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

View file

@ -31,7 +31,7 @@ class DayFragmentsHolder : MyFragmentHolder(), NavigationListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
currentDayCode = arguments?.getString(DAY_CODE) ?: ""
todayDayCode = Formatter.getTodayCode(context!!)
todayDayCode = Formatter.getTodayCode()
}
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))
}
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?) {
super.onCreate(savedInstanceState)
currentDayCode = arguments?.getString(DAY_CODE) ?: ""
todayDayCode = Formatter.getTodayCode(context!!)
todayDayCode = Formatter.getTodayCode()
}
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")
}
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)
set(view) = prefs.edit().putInt(VIEW, view).apply()
var defaultReminderMinutes: Int
get() = prefs.getInt(REMINDER_MINUTES, 10)
set(defaultReminderMinutes) = prefs.edit().putInt(REMINDER_MINUTES, defaultReminderMinutes).apply()
var lastEventReminderMinutes: Int
get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES, 10)
set(lastEventReminderMinutes) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES, lastEventReminderMinutes).apply()
var defaultReminderMinutes2: Int
get() = prefs.getInt(REMINDER_MINUTES_2, REMINDER_OFF)
set(defaultReminderMinutes2) = prefs.edit().putInt(REMINDER_MINUTES_2, defaultReminderMinutes2).apply()
var lastEventReminderMinutes2: Int
get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES_2, REMINDER_OFF)
set(lastEventReminderMinutes2) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES_2, lastEventReminderMinutes2).apply()
var defaultReminderMinutes3: Int
get() = prefs.getInt(REMINDER_MINUTES_3, REMINDER_OFF)
set(defaultReminderMinutes3) = prefs.edit().putInt(REMINDER_MINUTES_3, defaultReminderMinutes3).apply()
var lastEventReminderMinutes3: Int
get() = prefs.getInt(LAST_EVENT_REMINDER_MINUTES_3, REMINDER_OFF)
set(lastEventReminderMinutes3) = prefs.edit().putInt(LAST_EVENT_REMINDER_MINUTES_3, lastEventReminderMinutes3).apply()
var displayPastEvents: Int
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 getMediumFontSize() = context.resources.getDimension(R.dimen.day_text_size) / context.resources.displayMetrics.density
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 ITEM_EVENT = 0
const val ITEM_EVENT_SIMPLE = 1
const val ITEM_HEADER = 2
const val DAY = 86400
const val WEEK = 604800
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_TITLE = "reminder_sound_title"
const val VIEW = "view"
const val REMINDER_MINUTES = "reminder_minutes"
const val REMINDER_MINUTES_2 = "reminder_minutes_2"
const val REMINDER_MINUTES_3 = "reminder_minutes_3"
const val LAST_EVENT_REMINDER_MINUTES = "reminder_minutes"
const val LAST_EVENT_REMINDER_MINUTES_2 = "reminder_minutes_2"
const val LAST_EVENT_REMINDER_MINUTES_3 = "reminder_minutes_3"
const val DISPLAY_EVENT_TYPES = "display_event_types"
const val FONT_SIZE = "font_size"
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_REMINDER_CHANNEL_ID = "last_reminder_channel_ID"
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
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 location = cursor.getStringValue(COL_LOCATION)
val color = eventTypeColors[eventType]
val isPastEvent = false
val ignoreEventOccurrences = if (repeatInterval != 0) {
getIgnoredOccurrences(id)
@ -939,11 +940,10 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
repeatRule = REPEAT_SAME_DAY
}
val isPastEvent = endTS < getNowSeconds()
val event = Event(id, startTS, endTS, title, description, reminder1Minutes, reminder2Minutes, reminder3Minutes,
repeatInterval, importId, flags, repeatLimit, repeatRule, eventType, ignoreEventOccurrences, offset, isDstIncluded,
0, lastUpdated, source, color, location, isPastEvent)
event.isPastEvent = getIsPastEvent(event)
events.add(event)
} 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"
}
fun getTodayCode(context: Context) = Formatter.getDayCodeFromTS(getNowSeconds())
fun getTodayCode() = Formatter.getDayCodeFromTS(getNowSeconds())
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 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))
@ -85,8 +85,6 @@ object Formatter {
// 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 getYear(dateTime: DateTime) = dateTime.toString(YEAR_PATTERN)
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

View file

@ -195,7 +195,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() {
setupIntent(context, views, GO_TO_TODAY, R.id.top_go_to_today)
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)
try {

View file

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

View file

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

View file

@ -18,10 +18,22 @@
android:paddingBottom="@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
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"/>
@ -30,15 +42,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/event_item_start"
android:layout_toRightOf="@+id/event_item_color_bar"
android:text="15:00"
android:textSize="@dimen/day_text_size"/>
<TextView
android:id="@+id/event_section_title"
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
@ -50,9 +62,8 @@
android:id="@+id/event_item_description"
android:layout_width="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_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end"
android:maxLines="1"
@ -60,16 +71,5 @@
android:textSize="@dimen/day_text_size"
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>
</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_height="wrap_content"
android:paddingBottom="@dimen/medium_margin"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_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
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"/>
@ -32,16 +43,16 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/event_item_start"
android:layout_toRightOf="@+id/event_item_color_bar"
android:includeFontPadding="false"
android:text="15:00"
android:textSize="@dimen/day_text_size"/>
<TextView
android:id="@+id/event_section_title"
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
@ -53,9 +64,8 @@
android:id="@+id/event_item_description"
android:layout_width="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_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end"
android:includeFontPadding="false"
@ -64,16 +74,5 @@
android:textSize="@dimen/day_text_size"
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>
</FrameLayout>

View file

@ -16,23 +16,33 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/medium_margin"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_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
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_section_title"
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/activity_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
@ -40,16 +50,5 @@
android:textSize="@dimen/day_text_size"
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>
</FrameLayout>

View file

@ -7,30 +7,40 @@
android:layout_height="wrap_content"
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
android:id="@+id/event_item_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/medium_margin"
android:textSize="@dimen/day_text_size"
tools:text="13:00"/>
android:layout_toRightOf="@+id/event_item_color_bar"
android:text="13:00"
android:textSize="@dimen/day_text_size"/>
<TextView
android:id="@+id/event_item_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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:text="15:00"
android:textSize="@dimen/day_text_size"/>
<TextView
android:id="@+id/event_section_title"
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/normal_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
@ -42,9 +52,8 @@
android:id="@+id/event_item_description"
android:layout_width="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_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_end"
android:ellipsize="end"
android:includeFontPadding="false"
@ -53,15 +62,4 @@
android:textSize="@dimen/day_text_size"
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>

View file

@ -7,20 +7,30 @@
android:layout_height="wrap_content"
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
android:id="@+id/event_item_start"
android:layout_width="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"
tools:text="13:00"/>
<TextView
android:id="@+id/event_section_title"
android:id="@+id/event_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/normal_margin"
android:layout_toLeftOf="@+id/event_item_color"
android:layout_toRightOf="@+id/event_item_start"
android:ellipsize="end"
android:maxLines="1"
@ -28,15 +38,4 @@
android:textSize="@dimen/day_text_size"
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>

View file

@ -49,7 +49,7 @@
<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="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="times">təkrar sayı</string>
<string name="repeat">Təkrarla</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Zəng</string>
<string name="notification_stream">Bildiriş</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 -->
<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_all_occurrences">Hizivaat an holl zegouezhioù</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="times">a wechoù</string>
<string name="repeat">Addegouezh</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<string name="caldav">CalDAV</string>

View file

@ -3,7 +3,7 @@
<string name="app_name">Simple Calendar</string>
<string name="app_launcher_name">Calendar</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="monthly_view">Měsíční kalendář</string>
<string name="yearly_view">Roční kalendář</string>
@ -19,15 +19,15 @@
<string name="event">Událost</string>
<string name="edit_event">Upravit událost</string>
<string name="new_event">Nová událost</string>
<string name="create_new_event">Create a new event</string>
<string name="duplicate_event">Duplicate event</string>
<string name="create_new_event">Vytvořit novou událost</string>
<string name="duplicate_event">Zkopírovat událost</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="event_added">Událost úspěšně přidá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="please_fill_location">Please fill in a location to be shown on a map</string>
<string name="public_event_notification_text">An event is upcoming</string>
<string name="please_fill_location">Vyplňte prosím místo, které se zobrazí na mapě</string>
<string name="public_event_notification_text">Událost právě nastává</string>
<!-- Event Repetition -->
<string name="repetition">Opakovaná událost</string>
@ -44,12 +44,12 @@
<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="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="update_one_only">Změnit pouze vybrané 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_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="times">krát</string>
<string name="repeat">Opakovat</string>
@ -60,7 +60,7 @@
<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_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="every_m">každý</string>
<string name="first_m">první</string>
@ -80,10 +80,10 @@
<string name="last_f">poslední</string>
<!-- Birthdays -->
<string name="birthdays">Birthdays</string>
<string name="add_birthdays">Add contact birthdays</string>
<string name="no_birthdays">No birthdays have been found</string>
<string name="birthdays_added">Birthdays added successfully</string>
<string name="birthdays">Narozeniny</string>
<string name="add_birthdays">Přidat narozeniny z kontaktů</string>
<string name="no_birthdays">Žádné narozeniny nebyly nalezeny</string>
<string name="birthdays_added">Narozeniny byly úspěšně přidány</string>
<!-- Anniversaries -->
<string name="anniversaries">Anniversaries</string>
@ -128,16 +128,16 @@
<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="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 -->
<string name="holidays">Svátky</string>
<string name="add_holidays">Přidat svátek</string>
<string name="national_holidays">Státní 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_holidays_failed">Import svátků nezdařil</string>
<string name="importing_holidays_failed">Import svátků se nezdařil</string>
<!-- Settings -->
<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_selected">žádný</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="display_past_events">Zobrazit minulé události</string>
<string name="replace_description_with_location">Replace event description with location</string>
<string name="delete_all_events">Delete all events</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="show_a_grid">Show a grid</string>
<string name="loop_reminders">Loop reminders until dismissed</string>
<string name="dim_past_events">Dim past events</string>
<string name="events">Events</string>
<string name="reminder_stream">Audio stream used by reminders</string>
<string name="system_stream">System</string>
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string>
<string name="replace_description_with_location">Nahradit popis udalosti lokací</string>
<string name="delete_all_events">Smazat všechny události</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">Zobrazit mřížku</string>
<string name="loop_reminders">Připomínat až do vypnutí</string>
<string name="dim_past_events">Smazat minulé události</string>
<string name="events">Události</string>
<string name="reminder_stream">Zvuk upomínky</string>
<string name="system_stream">Systémový</string>
<string name="alarm_stream">Budík</string>
<string name="notification_stream">Notifikace</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 -->
<string name="caldav">CalDAV</string>
@ -174,8 +178,8 @@
<string name="refreshing">Obnovuji…</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="syncing">Syncing</string>
<string name="synchronization_completed">Sync completed</string>
<string name="syncing">Synchronizuji</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 -->
<!-- used in repetition, like "Every last Sunday" -->
@ -214,13 +218,13 @@
<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ů.
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.
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
</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">Opdater kun denne forekomst</string>
<string name="update_all_occurrences">Opdater alle forekomster</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="times">gange</string>
<string name="repeat">Gentag</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notifikation</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 -->
<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_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>
<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>
<!-- 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="yearly_view">Jahresansicht</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>
<!-- Widget titles -->
@ -20,12 +20,12 @@
<string name="edit_event">Termin bearbeiten</string>
<string name="new_event">Neuer Termin</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="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_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="public_event_notification_text">Ein Termin steht an</string>
@ -42,20 +42,20 @@
<string name="repeat_till">Wiederholen bis</string>
<string name="forever">unendlich</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="delete_one_only">Lösche nur die ausgewählte Wiederholung</string>
<string name="delete_future_occurrences">Lösche diese und zukünftige Wiederholungen</string>
<string name="delete_all_occurrences">Lösche alle Wiederholungen</string>
<string name="update_one_only">Ändere nur die ausgewählte Wiederholung</string>
<string name="update_all_occurrences">Ändere alle Wiederholungen</string>
<string name="repeat_till_date">Wiederhole bis zu bestimmtem Datum</string>
<string name="repeat_x_times">Wiederhole x Mal</string>
<string name="selection_contains_repetition">Die Auswahl enthält Termine mit Wiederholungen</string>
<string name="delete_one_only">Nur die ausgewählte Wiederholung löschen</string>
<string name="delete_future_occurrences">Diese und zukünftige Wiederholungen löschen</string>
<string name="delete_all_occurrences">Alle Wiederholungen löschen</string>
<string name="update_one_only">Nur die ausgewählte Wiederholung ändern</string>
<string name="update_all_occurrences">Alle Wiederholungen ändern</string>
<string name="repeat_till_date">Bis zu bestimmtem Datum wiederholen</string>
<string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
<string name="repeat_forever">Immer wiederholen</string>
<string name="times">Mal</string>
<string name="repeat">Wiederholung</string>
<string name="repeat_on">Wiederholen</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_last_day">Der letzte Tag</string>
<string name="repeat_on_the_same_day_monthly">Am gleichen Tag jeden Monats wiederholen</string>
@ -81,32 +81,32 @@
<!-- Birthdays -->
<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="birthdays_added">Geburtstage erfolgreich hinzugefügt</string>
<!-- Anniversaries -->
<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="anniversaries_added">Jahrestage erfolgreich hinzugefügt</string>
<!-- Event Reminders -->
<string name="reminder">Erinnerung</string>
<string name="before">vorher</string>
<string name="add_another_reminder">Füge eine weitere Erinnerung hinzu</string>
<string name="event_reminders">Ereignis Erinnerungen</string>
<string name="add_another_reminder">Weitere Erinnerung hinzufügen</string>
<string name="event_reminders">Termin-Erinnerungen</string>
<!-- Export / Import -->
<string name="import_events">Importiere Termine</string>
<string name="export_events">Exportiere Termine</string>
<string name="import_events_from_ics">Importiere Termine aus .ics Datei</string>
<string name="export_events_to_ics">Exportiere Termine als .ics Datei</string>
<string name="default_event_type">Standard-Termin-Typ</string>
<string name="import_events">Termine importieren</string>
<string name="export_events">Termine exportieren</string>
<string name="import_events_from_ics">Termine aus .ics-Datei importieren</string>
<string name="export_events_to_ics">Termine als .ics-Datei exportieren</string>
<string name="default_event_type">Standard-Termintyp</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="override_event_types">Überschreibe Termintypen in der Datei</string>
<string name="override_event_types">Termintypen in der Datei überschreiben</string>
<!-- Event details -->
<string name="title">Titel</string>
@ -119,16 +119,16 @@
<!-- Event types -->
<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="type_already_exists">Typ mit diesem Namen existiert bereits</string>
<string name="color">Farbe</string>
<string name="regular_event">Regelmässiger Termin</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="move_events_into_default">Verschiebe betroffene Termine in den Standard Termintyp</string>
<string name="remove_affected_events">Lösche betroffene Termine permanent</string>
<string name="unsync_caldav_calendar">Um CalDAV Kalender zu entfernen, musst du diese desynchronisieren</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="select_event_type">Wähle einen Termintyp aus</string>
<string name="move_events_into_default">Betroffene Termine in den Standard-Termintyp verschieben</string>
<string name="remove_affected_events">Betroffene Termine dauerhaft löschen</string>
<string name="unsync_caldav_calendar">Um einen CalDAV-Kalender zu entfernen, musst du ihn desynchronisieren</string>
<!-- Holidays -->
<string name="holidays">Feiertage</string>
@ -140,41 +140,45 @@
<string name="importing_holidays_failed">Importieren von Feiertagen fehlgeschlagen</string>
<!-- 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="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="reminder_sound">Erinnerungston</string>
<string name="no_ringtone_picker">Keine App zum Setzen des Klingeltons gefunden</string>
<string name="no_ringtone_selected">Kein Klingelton gewählt</string>
<string name="no_ringtone_picker">Keine App zum Einstellen des Klingeltons gefunden</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="caldav_sync">CalDAV Synchronisierung</string>
<string name="caldav_sync">CalDAV-Synchronisierung</string>
<string name="event_lists">Terminlisten</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_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="loop_reminders">Erinnerungen wiederholen bis sie verworfen werden</string>
<string name="dim_past_events">Vergangene Termine ausgrauen</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="alarm_stream">Wecker</string>
<string name="notification_stream">Benachrichtigung</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 -->
<string name="caldav">CalDAV</string>
<string name="select_caldav_calendars">Wähle Kalender zur Synchronisierung</string>
<string name="manage_synced_calendars">Verwalte synchronisierte Kalender</string>
<string name="select_caldav_calendars">Kalender zur Synchronisierung auswählen</string>
<string name="manage_synced_calendars">Synchronisierte Kalender verwalten</string>
<string name="store_locally_only">Nur lokal speichern</string>
<string name="refresh_caldav_calendars">Aktualisiere CalDAV Kalender</string>
<string name="refreshing">Aktualisiere</string>
<string name="refresh_caldav_calendars">CalDAV-Kalender aktualisieren</string>
<string name="refreshing">Wird aktualisiert</string>
<string name="refreshing_complete">Aktualisierung abgeschlossen</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>
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
@ -199,23 +203,23 @@
<!-- FAQ -->
<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.
Du kannst in den Einstellungen -> Verwalte Termin-Typen auf den Termin-Typ gedrückt halten und über das Papierkorbsymbol löschen.</string>
<string name="faq_1_text">Die über diesen Weg erstellten Feiertage sind als Termintyp \"Feiertage\" deklariert.
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_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.
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,
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 -->
<!-- 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">
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.

View file

@ -49,7 +49,7 @@
<string name="update_one_only">Ενημέρωση μόνο του επιλεγμένου περιστατικού</string>
<string name="update_all_occurrences">Ενημέρωση όλων των περιστατικών</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="times">times</string>
<string name="repeat">Επανάληψη</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Αφύπνιση</string>
<string name="notification_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 -->
<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_all_occurrences">Actualizar todos los eventos</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="times">veces</string>
<string name="repeat">Repetir</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Mettre à jour toutes les occurrences</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="times">fois</string>
<string name="repeat">Répéter</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarme</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Actualizar todos os eventos</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="times">veces</string>
<string name="repeat">Repetir</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Update all occurrences</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="times">times</string>
<string name="repeat">Repeat</string>
@ -165,6 +165,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<string name="caldav">CalDAV</string>

View file

@ -19,15 +19,15 @@
<string name="event">Događaj</string>
<string name="edit_event">Uredi događaj</string>
<string name="new_event">Novi događaj</string>
<string name="create_new_event">Create a new event</string>
<string name="duplicate_event">Duplicate event</string>
<string name="create_new_event">Stvori novi događaj</string>
<string name="duplicate_event">Dupliciraj događaj</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="event_added">Događaj je uspješno dodan</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="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 -->
<string name="repetition">Ponavljanje</string>
@ -44,12 +44,12 @@
<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="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="update_one_only">Ažuriraj samo odabrano ponavljanje</string>
<string name="update_all_occurrences">Ažuriraj sva ponavljanja</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="times">puta</string>
<string name="repeat">Ponavljanje</string>
@ -60,7 +60,7 @@
<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_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="every_m">Svaki</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_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="loop_reminders">Loop reminders until dismissed</string>
<string name="dim_past_events">Dim past events</string>
<string name="events">Events</string>
<string name="reminder_stream">Audio stream used by reminders</string>
<string name="system_stream">System</string>
<string name="loop_reminders">Ponavljaj podsjetnike sve dok ih ne odbacim</string>
<string name="dim_past_events">Zatamni događaje koji su završili</string>
<string name="events">Događaji</string>
<string name="reminder_stream">Audio izlazni kanal za podsjetnike</string>
<string name="system_stream">Sustav</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="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 -->
<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_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>
<string name="faq_3_title">I see the visual reminders, but hear no audio. What can I do?</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,
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>
<string name="faq_3_title">Vidim vizualne podsjetnike, ali ne čujem zvuk. Što mogu učiniti</string>
<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,
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 -->
<!-- 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_all_occurrences">Update all occurrences</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="times">times</string>
<string name="repeat">Repeat</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Aggiorna tutte le occorenze</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="times">volte</string>
<string name="repeat">Ripeti</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Update all occurrences</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="times">times</string>
<string name="repeat">Repeat</string>
@ -165,6 +165,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Update all occurrences</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="times">times</string>
<string name="repeat">Repeat</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<string name="caldav">CalDAV</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">선택한 항목만 변경</string>
<string name="update_all_occurrences">모든 항목 변경</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="times"></string>
<string name="repeat">반복</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<string name="caldav">CalDAV</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">Atnaujinti tik pasirinktą įvykį</string>
<string name="update_all_occurrences">Atnaujinti visus įvykius</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="times">laikai</string>
<string name="repeat">Kartoti</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Oppdater alle forekomster</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="times">ganger</string>
<string name="repeat">Gjenta</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Varsel</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 -->
<string name="caldav">CalDAV</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">Alleen huidige afspraak bijwerken</string>
<string name="update_all_occurrences">Alle afspraken bijwerken</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="times">keer</string>
<string name="repeat">Herhalen</string>
@ -102,7 +102,7 @@
<string name="export_events">Afspraken exporteren</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="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="include_event_types">Afspraaktypes weergeven</string>
<string name="filename_without_ics">Bestandsnaam (zonder .ics)</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notificatie</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 -->
<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_all_occurrences">Oppdater alle forekomster</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="times">ganger</string>
<string name="repeat">Gjenta</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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_all_occurrences">Zaktualizuj wszystkie wystąpienia</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="times">razy</string>
<string name="repeat">Powtórz</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Powiadomienie</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 -->
<string name="caldav">CalDAV</string>

View file

@ -8,7 +8,7 @@
<string name="monthly_view">Vista mensal</string>
<string name="yearly_view">Vista anual</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>
<!-- Widget titles -->
@ -20,7 +20,7 @@
<string name="edit_event">Editar evento</string>
<string name="new_event">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="end_before_start">O evento não pode terminar antes de iniciar</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_all_occurrences">Atualizar todas as ocorrências</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="times">vezes</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="selected_days">Em dias selecionados</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="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="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 -->
<string name="holidays">Ferias</string>
<string name="add_holidays">Adicionar Ferias</string>
<string name="national_holidays">feriados nacionais</string>
<string name="holidays">Feriados</string>
<string name="add_holidays">Adicionar feriados</string>
<string name="national_holidays">Feriados nacionais</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="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_selected">Nenhum</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="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="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="show_a_grid">Mostrar uma grid</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="reminder_stream">Audio stream used by reminders</string>
<string name="system_stream">System</string>
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</string>
<string name="ring_stream">Ring</string>
<string name="reminder_stream">Fonte de áudio usada pelos lembretes</string>
<string name="system_stream">Sistema</string>
<string name="alarm_stream">Alarme</string>
<string name="notification_stream">Notificação</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 -->
<string name="caldav">CalDAV</string>
@ -173,7 +177,7 @@
<string name="refresh_caldav_calendars">Recarregar Calendarios CalDAV </string>
<string name="refreshing">Recarregando…</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="synchronization_completed">Sincronização completa</string>
@ -184,7 +188,7 @@
<string name="wednesday_alt">Quarta</string>
<string name="thursday_alt">Quinta</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>
<!-- 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_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>
<string name="faq_3_title">I see the visual reminders, but hear no audio. What can I do?</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,
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>
<string name="faq_3_title">Vejo os lembrete, mas não ouço áudio. O que posso fazer?</string>
<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,
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 -->
<!-- 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_updated">Evento atualizado com sucesso</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>
<!-- Event Repetition -->
@ -44,12 +44,12 @@
<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="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="update_one_only">Atualizar a ocorrência selecionada</string>
<string name="update_all_occurrences">Atualizar todas as ocorrências</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="times">vezes</string>
<string name="repeat">Repetição</string>
@ -60,7 +60,7 @@
<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_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="every_m">A cada</string>
<string name="first_m">primeira</string>
@ -106,7 +106,7 @@
<string name="export_past_events_too">Exportar eventos antigos</string>
<string name="include_event_types">Incluir tipos de eventos</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 -->
<string name="title">Título</string>
@ -161,9 +161,13 @@
<string name="events">Eventos</string>
<string name="reminder_stream">Fluxo áudio a utilizar nos lembretes</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="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 -->
<string name="caldav">CalDAV</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">Обновить только выбранное</string>
<string name="update_all_occurrences">Обновить все связанные</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="times">раз</string>
<string name="repeat">Повторять</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Будильник</string>
<string name="notification_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 -->
<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_all_occurrences">Upraviť všetky opakovania</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="times">krát</string>
<string name="repeat">Opakovať</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Výstražný</string>
<string name="notification_stream">Pripomienkový</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 -->
<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_all_occurrences">Uppdatera alla förekomster</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="times">gånger</string>
<string name="repeat">Upprepa</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Avisering</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 -->
<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_all_occurrences">Tüm etkinlikleri güncelle</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="times">kere</string>
<string name="repeat">Tekrarla</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Bildirim</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 -->
<string name="caldav">CalDAV</string>

View file

@ -49,7 +49,7 @@
<string name="update_one_only">只更新選擇的事件</string>
<string name="update_all_occurrences">更新全部事件</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="times"></string>
<string name="repeat">重複</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">鬧鐘</string>
<string name="notification_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 -->
<string name="caldav">CalDAV</string>

View file

@ -25,4 +25,7 @@
<dimen name="month_text_size">22sp</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>

View file

@ -2,6 +2,7 @@
<resources>
<!-- Release notes -->
<string name="release_129">Allow setting default event reminders, not always reuse the last events\' ones</string>
<string name="release_119">
Allow changing the app launcher icon color\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_all_occurrences">Update all occurrences</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="times">times</string>
<string name="repeat">Repeat</string>
@ -164,6 +164,10 @@
<string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notification</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 -->
<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.
buildscript {
ext.kotlin_version = '1.2.60'
ext.kotlin_version = '1.2.61'
repositories {
jcenter()
google()
jcenter()
}
dependencies {
@ -19,8 +19,8 @@ buildscript {
allprojects {
repositories {
jcenter()
google()
jcenter()
maven { url "https://jitpack.io" }
}
}