diff --git a/CHANGELOG.md b/CHANGELOG.md index 979bee7c9..4c7178d35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ Changelog ========== +Version 6.15.1 *(2021-08-23)* +---------------------------- + + * Calculate ages at birthdays and anniversaries, if a year is available + * Add a new Busy/Free field at CalDAV synced calendars + * Allow hiding the weekly view day customizing slider + * Some bottom quick event type filter improvements + Version 6.15.0 *(2021-07-27)* ---------------------------- diff --git a/app/build.gradle b/app/build.gradle index c0cc358c5..5441907bd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.simplemobiletools.calendar.pro" minSdkVersion 21 targetSdkVersion 30 - versionCode 203 - versionName "6.15.0" + versionCode 204 + versionName "6.15.1" multiDexEnabled true setProperty("archivesBaseName", "calendar") vectorDrawables.useSupportLibrary = true @@ -63,10 +63,10 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:16ae1d2c03' + implementation 'com.github.SimpleMobileTools:Simple-Commons:03149a0586' implementation 'joda-time:joda-time:2.10.3' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.constraintlayout:constraintlayout:2.1.0' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation "androidx.print:print:1.0.0" diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt index 7356f9b25..b1d420c32 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/activities/MainActivity.kt @@ -515,6 +515,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { if (result != ImportResult.IMPORT_FAIL) { runOnUiThread { updateViewPager() + setupQuickFilter() } } } @@ -536,6 +537,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { it > 0 -> { toast(R.string.birthdays_added) updateViewPager() + setupQuickFilter() } it == -1 -> toast(R.string.no_new_birthdays) else -> toast(R.string.no_birthdays) @@ -565,6 +567,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { it > 0 -> { toast(R.string.anniversaries_added) updateViewPager() + setupQuickFilter() } it == -1 -> toast(R.string.no_new_anniversaries) else -> toast(R.string.no_anniversaries) @@ -899,6 +902,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener { if (it) { runOnUiThread { updateViewPager() + setupQuickFilter() } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index f6f94af1c..d353e0cea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -257,14 +257,12 @@ fun Context.getNotification(pendingIntent: PendingIntent, event: Event, content: if (isOreoPlus()) { val audioAttributes = AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_ALARM) - .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) .setLegacyStreamType(config.reminderAudioStream) .build() val name = eventTypesDB.getEventTypeWithId(event.eventType)?.getDisplayTitle() val importance = NotificationManager.IMPORTANCE_HIGH NotificationChannel(channelId, name, importance).apply { - setBypassDnd(true) enableLights(true) lightColor = event.color enableVibration(config.vibrateOnReminder) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt index b15355d02..a1a069d3f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/fragments/WeekFragmentsHolder.kt @@ -65,6 +65,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { weekHolder!!.week_view_days_count.beVisibleIf(allow) weekHolder!!.week_view_seekbar.beVisibleIf(allow) } + setupSeekbar() } private fun setupFragment() { @@ -86,17 +87,10 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { } } - // avoid seekbar width changing if the days count changes to 1, 10 etc - weekHolder!!.week_view_days_count.onGlobalLayout { - weekHolder!!.week_view_seekbar.layoutParams.width = weekHolder!!.week_view_seekbar.width - (weekHolder!!.week_view_seekbar.layoutParams as RelativeLayout.LayoutParams).removeRule(RelativeLayout.START_OF) - } - - updateDaysCount(context?.config?.weeklyViewDays ?: 7) updateActionBarTitle() } - private fun setupWeeklyViewPager(){ + private fun setupWeeklyViewPager() { val weekTSs = getWeekTimestamps(currentWeekTS) val weeklyAdapter = MyWeekPagerAdapter(activity!!.supportFragmentManager, weekTSs, this) @@ -216,6 +210,22 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { setupFragment() } + private fun setupSeekbar() { + if (context?.config?.allowCustomizeDayCount != true) { + return + } + + // avoid seekbar width changing if the days count changes to 1, 10 etc + weekHolder!!.week_view_days_count.onGlobalLayout { + if (weekHolder!!.week_view_seekbar.width != 0) { + weekHolder!!.week_view_seekbar.layoutParams.width = weekHolder!!.week_view_seekbar.width + } + (weekHolder!!.week_view_seekbar.layoutParams as RelativeLayout.LayoutParams).removeRule(RelativeLayout.START_OF) + } + + updateDaysCount(context?.config?.weeklyViewDays ?: 7) + } + private fun updateWeeklyViewDays(days: Int) { context!!.config.weeklyViewDays = days updateDaysCount(days) @@ -274,7 +284,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener { (viewPager!!.adapter as? MyWeekPagerAdapter)?.updateNotVisibleScaleLevel(viewPager!!.currentItem) } - override fun getFullFragmentHeight() = weekHolder!!.week_view_holder.height - weekHolder!!.week_view_seekbar.height - weekHolder!!.week_view_days_count_divider.height + override fun getFullFragmentHeight() = + weekHolder!!.week_view_holder.height - weekHolder!!.week_view_seekbar.height - weekHolder!!.week_view_days_count_divider.height override fun printView() { weekHolder!!.apply { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt index 4d9b29de9..b4473cdbf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthView.kt @@ -204,6 +204,7 @@ class MonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(con for (i in 0 until ROW_COUNT) { canvas.drawLine(0f, i * dayHeight + weekDaysLetterHeight, canvas.width.toFloat(), i * dayHeight + weekDaysLetterHeight, gridPaint) } + canvas.drawLine(0f, canvas.height.toFloat(), canvas.width.toFloat(), canvas.height.toFloat(), gridPaint) } private fun addWeekDayLetters(canvas: Canvas) { diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt index 3712013d2..16065025d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/views/MonthViewWrapper.kt @@ -10,7 +10,7 @@ import com.simplemobiletools.calendar.pro.helpers.COLUMN_COUNT import com.simplemobiletools.calendar.pro.helpers.ROW_COUNT import com.simplemobiletools.calendar.pro.models.DayMonthly import com.simplemobiletools.commons.extensions.onGlobalLayout -import kotlinx.android.synthetic.main.month_view.view.* +import kotlinx.android.synthetic.main.month_view.view.month_view // used in the Monthly view fragment, 1 view per screen class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : FrameLayout(context, attrs, defStyle) { @@ -44,6 +44,43 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F } } + override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { + super.onLayout(changed, left, top, right, bottom) + measureSizes() + var y = 0 + var x = 0 + var curLeft = dayWidth.toInt() + val end = right + paddingRight + + for (i in 0 until childCount) { + val child = getChildAt(i) + if (child is MonthView) { + //ignore the MonthView layout + continue + } + + child.measure(MeasureSpec.makeMeasureSpec(dayWidth.toInt(), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dayHeight.toInt(), MeasureSpec.EXACTLY)) + + val childLeft = x * dayWidth + horizontalOffset - child.translationX + val childTop = y * dayHeight + weekDaysLetterHeight - child.translationY + val childWidth = child.measuredWidth + val childHeight = child.measuredHeight + val childRight = childLeft + childWidth + val childBottom = childTop + childHeight + + child.layout(childLeft.toInt(), childTop.toInt(), childRight.toInt(), childBottom.toInt()) + + if (curLeft + childWidth < end) { + curLeft += childWidth + x++ + } else { + y++ + x = 0 + curLeft = childWidth + } + } + } + fun updateDays(newDays: ArrayList, addEvents: Boolean, callback: ((DayMonthly) -> Unit)? = null) { setupHorizontalOffset() measureSizes() @@ -63,12 +100,7 @@ class MonthViewWrapper(context: Context, attrs: AttributeSet, defStyle: Int) : F private fun measureSizes() { dayWidth = (width - horizontalOffset) / 7f - - // avoid updating the height when coming back from a new event screen, when the keyboard was visible - val newHeight = (height - weekDaysLetterHeight) / 6f - if (newHeight > dayHeight) { - dayHeight = (height - weekDaysLetterHeight) / 6f - } + dayHeight = (height - weekDaysLetterHeight) / 6f } private fun addClickableBackgrounds() { diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index aefa9b507..5394e377e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,7 +1,7 @@ Simple agenda - Simple Agenda + Agenda Autres affichages Vue Journée Vue Semaine diff --git a/build.gradle b/build.gradle index 5d9982dd0..40ae9c098 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.5.21' + ext.kotlin_version = '1.5.30' repositories { google() diff --git a/fastlane/metadata/android/en-US/changelogs/204.txt b/fastlane/metadata/android/en-US/changelogs/204.txt new file mode 100644 index 000000000..92a06be63 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/204.txt @@ -0,0 +1,4 @@ + * Calculate ages at birthdays and anniversaries, if a year is available + * Add a new Busy/Free field at CalDAV synced calendars + * Allow hiding the weekly view day customizing slider + * Some bottom quick event type filter improvements diff --git a/fastlane/metadata/android/tr/full_description.txt b/fastlane/metadata/android/tr/full_description.txt new file mode 100644 index 000000000..575cf67f4 --- /dev/null +++ b/fastlane/metadata/android/tr/full_description.txt @@ -0,0 +1,40 @@ +Simple Calendar Pro, tam olarak bir takvimin yapması gerekeni yapmak üzere tasarlanmış, tamamen özelleştirilebilir, çevrimdışı bir takvimdir. Karmaşık özellikler, gereksiz izinler ve reklam yok! + +İster tek ister tekrarlanan etkinlikler, doğum günleri, yıl dönümleri, iş toplantıları, randevular, ister başka bir şey düzenliyor olun, Simple Calendar Pro ile düzenli kalmak çok kolay. Özelleştirme seçenekleri ile etkinlik hatırlatıcılarını, bildirim seslerini, takvim widget'larını ve uygulamanın nasıl görüleceğini özelleştirebilirsiniz. + +Günlük, haftalık ve aylık görünümler, yaklaşan etkinliklerinizi ve randevularınızı kontrol etmeyi çok kolaylaştırır. Her şeyi takvim görünümü yerine basit bir etkinlik listesi olarak bile görüntüleyebilirsiniz, böylece hayatınızda neyin ne zaman olacağını tam olarak bilirsiniz. + + +---------------------------------------------------------- +Simple Calendar Pro – Özellikleri ve Faydaları +---------------------------------------------------------- + +✔️ Reklam veya rahatsız edici pop-up yok +✔️ İnternet erişimi gerekmez, size daha fazla gizlilik ve güvenlik sağlar +✔️ Sadece mininmum seviyede izin gerekir +✔️ Sadeliğe vurgu - bir takvimin yapması gerekeni yapar! +✔️ Açık kaynak +✔️ Tamamen özelleştirilebilir temalar & takvim / etkinlik widget'ları +✔️ 29 dile çevrildi +✔️ Başka bir cihaza aktarmak için ayarları .txt dosyalarına aktarın +✔️ Cihazlar arasında etkinlikleri senkronize etmek için desteklenen CalDAV takvim senkronizasyonu +✔️ Takvimde günlük, haftalık, aylık, yıllık ve etkinlik görünümleri +✔️ .ics dosyaları aracılığıyla etkinlikleri içe ve dışa aktarmayı destekler +✔️ Birden fazla etkinlik hatırlatıcısı ayarlayın, etkinlik hatırlatıcı sesini ve titreşimi özelleştirin +✔️ Hatırlatıcılar için erteleme seçeneği +✔️ Tatilleri, doğum günlerini, yıldönümlerini ve randevuları kolayca ekleyin +✔️ Etkinlikleri özelleştirin - başlangıç zamanı, süre, hatırlatıcılar vb. +✔️ Her etkinliğe etkinlik katılımcıları ekleyin +✔️ Kişisel takvim veya iş takvimi olarak kullanın +✔️ Bir etkinlik hakkında sizi uyarmak için hatırlatıcılar ve e-posta bildirimleri arasında seçim yapın + +SIMPLE CALENDAR PRO'YU İNDİRİN – REKLAMSIZ BASİT ÇEVRİMDIŞI TAKVİM! + +Basit Araçlar paketinin tamamını buradan inceleyin: +https://www.simplemobiletools.com + +Facebook: +https://www.facebook.com/simplemobiletools + +Reddit: +https://www.reddit.com/r/SimpleMobileTools diff --git a/fastlane/metadata/android/tr/short_description.txt b/fastlane/metadata/android/tr/short_description.txt new file mode 100644 index 000000000..ec2360f6d --- /dev/null +++ b/fastlane/metadata/android/tr/short_description.txt @@ -0,0 +1 @@ +Etkinliklerinizi Düzenlemek ve Yönetmek için en iyi Takvim. diff --git a/fastlane/metadata/android/tr/title.txt b/fastlane/metadata/android/tr/title.txt new file mode 100644 index 000000000..5ea7cb18c --- /dev/null +++ b/fastlane/metadata/android/tr/title.txt @@ -0,0 +1 @@ +Simple Calendar Pro - Etkinlikler ve Hatırlatıcılar