Merge pull request #26 from SimpleMobileTools/master

upd
This commit is contained in:
solokot
2019-08-15 08:53:26 +03:00
committed by GitHub
109 changed files with 485 additions and 264 deletions

View File

@@ -1,6 +1,36 @@
Changelog Changelog
========== ==========
Version 6.5.7 *(2019-08-07)*
----------------------------
* Properly use the selected default event calendar, even at CalDAV synced ones
* Fixing invisible buttons at the date/time pickers with light theme
* Fixed a couple other smaller glitches and added some translation improvements
Version 6.5.6 *(2019-07-26)*
----------------------------
* Properly handle birthday and anniversary updating
* Fixed a widget list related glitch
Version 6.5.5 *(2019-07-25)*
----------------------------
* Added some dark theme related improvements
* Allow customizing the bottom navigation bar color
* Added a Go To Today button at the event list widget
Version 6.5.4 *(2019-07-01)*
----------------------------
* Adding some stability improvements
Version 6.5.3 *(2019-06-30)*
----------------------------
* Added some translation and stability improvements
Version 6.5.2 *(2019-06-28)* Version 6.5.2 *(2019-06-28)*
---------------------------- ----------------------------

View File

@@ -16,8 +16,8 @@ android {
applicationId "com.simplemobiletools.calendar.pro" applicationId "com.simplemobiletools.calendar.pro"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 28
versionCode 152 versionCode 157
versionName "6.5.2" versionName "6.5.7"
multiDexEnabled true multiDexEnabled true
setProperty("archivesBaseName", "calendar") setProperty("archivesBaseName", "calendar")
} }
@@ -57,7 +57,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:5.14.2' implementation 'com.simplemobiletools:commons:5.16.7'
implementation 'joda-time:joda-time:2.10.1' implementation 'joda-time:joda-time:2.10.1'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'

View File

@@ -176,6 +176,10 @@
android:name=".services.WidgetService" android:name=".services.WidgetService"
android:permission="android.permission.BIND_REMOTEVIEWS"/> android:permission="android.permission.BIND_REMOTEVIEWS"/>
<service
android:name=".services.WidgetServiceEmpty"
android:permission="android.permission.BIND_REMOTEVIEWS"/>
<service android:name=".services.SnoozeService"/> <service android:name=".services.SnoozeService"/>
<service <service

View File

@@ -80,6 +80,7 @@ class EventActivity : SimpleActivity() {
private var mAttendeeAutoCompleteViews = ArrayList<MyAutoCompleteTextView>() private var mAttendeeAutoCompleteViews = ArrayList<MyAutoCompleteTextView>()
private var mAvailableContacts = ArrayList<Attendee>() private var mAvailableContacts = ArrayList<Attendee>()
private var mSelectedContacts = ArrayList<Attendee>() private var mSelectedContacts = ArrayList<Attendee>()
private var mStoredEventTypes = ArrayList<EventType>()
private lateinit var mAttendeePlaceholder: Drawable private lateinit var mAttendeePlaceholder: Drawable
private lateinit var mEventStartDateTime: DateTime private lateinit var mEventStartDateTime: DateTime
@@ -90,7 +91,11 @@ class EventActivity : SimpleActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_event) setContentView(R.layout.activity_event)
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross) if (checkAppSideloading()) {
return
}
supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cross_vector)
val intent = intent ?: return val intent = intent ?: return
mDialogTheme = getDialogTheme() mDialogTheme = getDialogTheme()
mWasContactsPermissionChecked = hasPermission(PERMISSION_READ_CONTACTS) mWasContactsPermissionChecked = hasPermission(PERMISSION_READ_CONTACTS)
@@ -99,13 +104,14 @@ class EventActivity : SimpleActivity() {
val eventId = intent.getLongExtra(EVENT_ID, 0L) val eventId = intent.getLongExtra(EVENT_ID, 0L)
ensureBackgroundThread { ensureBackgroundThread {
mStoredEventTypes = eventTypesDB.getEventTypes().toMutableList() as ArrayList<EventType>
val event = eventsDB.getEventWithId(eventId) val event = eventsDB.getEventWithId(eventId)
if (eventId != 0L && event == null) { if (eventId != 0L && event == null) {
finish() finish()
return@ensureBackgroundThread return@ensureBackgroundThread
} }
val localEventType = eventTypesDB.getEventTypeWithId(config.lastUsedLocalEventTypeId) val localEventType = mStoredEventTypes.firstOrNull { it.id == config.lastUsedLocalEventTypeId }
runOnUiThread { runOnUiThread {
gotEvent(savedInstanceState, localEventType, event) gotEvent(savedInstanceState, localEventType, event)
} }
@@ -216,6 +222,7 @@ class EventActivity : SimpleActivity() {
menu.findItem(R.id.share).isVisible = mEvent.id != null menu.findItem(R.id.share).isVisible = mEvent.id != null
menu.findItem(R.id.duplicate).isVisible = mEvent.id != null menu.findItem(R.id.duplicate).isVisible = mEvent.id != null
} }
updateMenuItemColors(menu)
return true return true
} }
@@ -338,6 +345,10 @@ class EventActivity : SimpleActivity() {
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE) window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
event_title.requestFocus() event_title.requestFocus()
updateActionBarTitle(getString(R.string.new_event)) updateActionBarTitle(getString(R.string.new_event))
if (config.defaultEventTypeId != -1L) {
config.lastUsedCaldavCalendarId = mStoredEventTypes.firstOrNull { it.id == config.defaultEventTypeId }?.caldavCalendarId ?: 0
}
val isLastCaldavCalendarOK = config.caldavSync && config.getSyncedCalendarIdsAsList().contains(config.lastUsedCaldavCalendarId) val isLastCaldavCalendarOK = config.caldavSync && config.getSyncedCalendarIdsAsList().contains(config.lastUsedCaldavCalendarId)
mEventCalendarId = if (isLastCaldavCalendarOK) config.lastUsedCaldavCalendarId else STORED_LOCALLY_ONLY mEventCalendarId = if (isLastCaldavCalendarOK) config.lastUsedCaldavCalendarId else STORED_LOCALLY_ONLY
@@ -706,7 +717,7 @@ class EventActivity : SimpleActivity() {
private fun updateReminderTypeImage(view: ImageView, reminder: Reminder) { private fun updateReminderTypeImage(view: ImageView, reminder: Reminder) {
view.beVisibleIf(reminder.minutes != REMINDER_OFF && mEventCalendarId != STORED_LOCALLY_ONLY) view.beVisibleIf(reminder.minutes != REMINDER_OFF && mEventCalendarId != STORED_LOCALLY_ONLY)
val drawable = if (reminder.type == REMINDER_NOTIFICATION) R.drawable.ic_bell else R.drawable.ic_email val drawable = if (reminder.type == REMINDER_NOTIFICATION) R.drawable.ic_bell_vector else R.drawable.ic_email_vector
val icon = resources.getColoredDrawableWithColor(drawable, config.textColor) val icon = resources.getColoredDrawableWithColor(drawable, config.textColor)
view.setImageDrawable(icon) view.setImageDrawable(icon)
} }

View File

@@ -147,6 +147,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
search_holder.background = ColorDrawable(config.backgroundColor) search_holder.background = ColorDrawable(config.backgroundColor)
checkSwipeRefreshAvailability() checkSwipeRefreshAvailability()
checkShortcuts() checkShortcuts()
invalidateOptionsMenu()
} }
override fun onPause() { override fun onPause() {
@@ -176,6 +177,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
} }
setupSearch(menu) setupSearch(menu)
updateMenuItemColors(menu)
return true return true
} }
@@ -538,7 +540,11 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
if (cursor?.moveToFirst() == true) { if (cursor?.moveToFirst() == true) {
val dateFormats = getDateFormats() val dateFormats = getDateFormats()
val existingEvents = if (birthdays) eventsDB.getBirthdays() else eventsDB.getAnniversaries() val existingEvents = if (birthdays) eventsDB.getBirthdays() else eventsDB.getAnniversaries()
val importIDs = existingEvents.map { it.importId } val importIDs = HashMap<String, Long>()
existingEvents.forEach {
importIDs[it.importId] = it.startTS
}
val eventTypeId = if (birthdays) getBirthdaysEventTypeId() else getAnniversariesEventTypeId() val eventTypeId = if (birthdays) getBirthdaysEventTypeId() else getAnniversariesEventTypeId()
do { do {
@@ -561,7 +567,21 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
reminder3Minutes = reminders[2], importId = contactId, flags = FLAG_ALL_DAY, repeatInterval = YEAR, repeatRule = REPEAT_SAME_DAY, reminder3Minutes = reminders[2], importId = contactId, flags = FLAG_ALL_DAY, repeatInterval = YEAR, repeatRule = REPEAT_SAME_DAY,
eventType = eventTypeId, source = source, lastUpdated = lastUpdated) eventType = eventTypeId, source = source, lastUpdated = lastUpdated)
if (!importIDs.contains(contactId)) { val importIDsToDelete = ArrayList<String>()
for ((key, value) in importIDs) {
if (key == contactId && value != timestamp) {
val deleted = eventsDB.deleteBirthdayAnniversary(source, key)
if (deleted == 1) {
importIDsToDelete.add(key)
}
}
}
importIDsToDelete.forEach {
importIDs.remove(it)
}
if (!importIDs.containsKey(contactId)) {
eventsHelper.insertEvent(event, false, false) { eventsHelper.insertEvent(event, false, false) {
eventsAdded++ eventsAdded++
} }
@@ -935,6 +955,7 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
add(Release(119, R.string.release_119)) add(Release(119, R.string.release_119))
add(Release(129, R.string.release_129)) add(Release(129, R.string.release_129))
add(Release(143, R.string.release_143)) add(Release(143, R.string.release_143))
add(Release(155, R.string.release_155))
checkWhatsNew(this, BuildConfig.VERSION_CODE) checkWhatsNew(this, BuildConfig.VERSION_CODE)
} }
} }

View File

@@ -41,6 +41,7 @@ class ManageEventTypesActivity : SimpleActivity(), DeleteEventTypesListener {
override fun onCreateOptionsMenu(menu: Menu?): Boolean { override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_event_types, menu) menuInflater.inflate(R.menu.menu_event_types, menu)
updateMenuItemColors(menu)
return true return true
} }

View File

@@ -5,6 +5,7 @@ import android.content.Intent
import android.content.res.Resources import android.content.res.Resources
import android.media.AudioManager import android.media.AudioManager
import android.os.Bundle import android.os.Bundle
import android.view.Menu
import com.simplemobiletools.calendar.pro.R import com.simplemobiletools.calendar.pro.R
import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog import com.simplemobiletools.calendar.pro.dialogs.SelectCalendarsDialog
import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog import com.simplemobiletools.calendar.pro.dialogs.SelectEventTypeDialog
@@ -77,6 +78,7 @@ class SettingsActivity : SimpleActivity() {
setupSectionColors() setupSectionColors()
setupExportSettings() setupExportSettings()
setupImportSettings() setupImportSettings()
invalidateOptionsMenu()
} }
override fun onPause() { override fun onPause() {
@@ -92,6 +94,11 @@ class SettingsActivity : SimpleActivity() {
config.defaultReminder3 = reminders.getOrElse(2) { REMINDER_OFF } config.defaultReminder3 = reminders.getOrElse(2) { REMINDER_OFF }
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean {
updateMenuItemColors(menu)
return super.onCreateOptionsMenu(menu)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
super.onActivityResult(requestCode, resultCode, resultData) super.onActivityResult(requestCode, resultCode, resultData)
if (requestCode == GET_RINGTONE_URI && resultCode == RESULT_OK && resultData != null) { if (requestCode == GET_RINGTONE_URI && resultCode == RESULT_OK && resultData != null) {

View File

@@ -7,8 +7,6 @@ import com.simplemobiletools.commons.activities.BaseSplashActivity
import org.joda.time.DateTime import org.joda.time.DateTime
class SplashActivity : BaseSplashActivity() { class SplashActivity : BaseSplashActivity() {
override fun getAppPackageName() = packageName
override fun initActivity() { override fun initActivity() {
when { when {
intent.extras?.containsKey(DAY_CODE) == true -> Intent(this, MainActivity::class.java).apply { intent.extras?.containsKey(DAY_CODE) == true -> Intent(this, MainActivity::class.java).apply {

View File

@@ -166,12 +166,8 @@ class WidgetListConfigureActivity : SimpleActivity() {
updateBgColor() updateBgColor()
} }
override fun onStartTrackingTouch(seekBar: SeekBar) { override fun onStartTrackingTouch(seekBar: SeekBar) {}
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
} override fun onStopTrackingTouch(seekBar: SeekBar) {}
} }
} }

View File

@@ -129,9 +129,9 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
} }
remoteView.apply { remoteView.apply {
setTextColor(R.id.event_section_title, curTextColor) setTextColor(event_section_title, curTextColor)
setTextSize(R.id.event_section_title, mediumFontSize) setTextSize(event_section_title, mediumFontSize)
setText(R.id.event_section_title, item.title) setText(event_section_title, item.title)
Intent().apply { Intent().apply {
putExtra(DAY_CODE, item.code) putExtra(DAY_CODE, item.code)

View File

@@ -0,0 +1,26 @@
package com.simplemobiletools.calendar.pro.adapters
import android.content.Context
import android.widget.RemoteViews
import android.widget.RemoteViewsService
import com.simplemobiletools.calendar.pro.R
class EventListWidgetAdapterEmpty(val context: Context) : RemoteViewsService.RemoteViewsFactory {
override fun getViewAt(position: Int) = RemoteViews(context.packageName, R.layout.event_list_section_widget)
override fun getLoadingView() = null
override fun getViewTypeCount() = 1
override fun onCreate() {}
override fun getItemId(position: Int) = 0L
override fun onDataSetChanged() {}
override fun hasStableIds() = true
override fun getCount() = 0
override fun onDestroy() {}
}

View File

@@ -257,7 +257,7 @@ fun Context.getNotification(pendingIntent: PendingIntent, event: Event, content:
.setAutoCancel(true) .setAutoCancel(true)
.setSound(Uri.parse(soundUri), config.reminderAudioStream) .setSound(Uri.parse(soundUri), config.reminderAudioStream)
.setChannelId(channelId) .setChannelId(channelId)
.addAction(R.drawable.ic_snooze, getString(R.string.snooze), getSnoozePendingIntent(this, event)) .addAction(R.drawable.ic_snooze_vector, getString(R.string.snooze), getSnoozePendingIntent(this, event))
if (config.vibrateOnReminder) { if (config.vibrateOnReminder) {
val vibrateArray = LongArray(2) { 500 } val vibrateArray = LongArray(2) { 500 }

View File

@@ -57,7 +57,7 @@ class DayFragment : Fragment() {
mListener?.goLeft() mListener?.goLeft()
} }
val pointerLeft = context!!.getDrawable(R.drawable.ic_pointer_left) val pointerLeft = context!!.getDrawable(R.drawable.ic_chevron_left_vector)
pointerLeft?.isAutoMirrored = true pointerLeft?.isAutoMirrored = true
setImageDrawable(pointerLeft) setImageDrawable(pointerLeft)
} }
@@ -69,7 +69,7 @@ class DayFragment : Fragment() {
mListener?.goRight() mListener?.goRight()
} }
val pointerRight = context!!.getDrawable(R.drawable.ic_pointer_right) val pointerRight = context!!.getDrawable(R.drawable.ic_chevron_right_vector)
pointerRight?.isAutoMirrored = true pointerRight?.isAutoMirrored = true
setImageDrawable(pointerRight) setImageDrawable(pointerRight)
} }

View File

@@ -112,7 +112,7 @@ class MonthFragment : Fragment(), MonthlyCalendar {
listener?.goLeft() listener?.goLeft()
} }
val pointerLeft = context!!.getDrawable(R.drawable.ic_pointer_left) val pointerLeft = context!!.getDrawable(R.drawable.ic_chevron_left_vector)
pointerLeft?.isAutoMirrored = true pointerLeft?.isAutoMirrored = true
setImageDrawable(pointerLeft) setImageDrawable(pointerLeft)
} }
@@ -124,7 +124,7 @@ class MonthFragment : Fragment(), MonthlyCalendar {
listener?.goRight() listener?.goRight()
} }
val pointerRight = context!!.getDrawable(R.drawable.ic_pointer_right) val pointerRight = context!!.getDrawable(R.drawable.ic_chevron_right_vector)
pointerRight?.isAutoMirrored = true pointerRight?.isAutoMirrored = true
setImageDrawable(pointerRight) setImageDrawable(pointerRight)
} }

View File

@@ -56,6 +56,7 @@ class WeekFragment : Fragment(), WeeklyCalendar {
private var wasExtraHeightAdded = false private var wasExtraHeightAdded = false
private var dimPastEvents = true private var dimPastEvents = true
private var selectedGrid: View? = null private var selectedGrid: View? = null
private var currentTimeView: ImageView? = null
private var events = ArrayList<Event>() private var events = ArrayList<Event>()
private var allDayHolders = ArrayList<RelativeLayout>() private var allDayHolders = ArrayList<RelativeLayout>()
private var allDayRows = ArrayList<HashSet<Int>>() private var allDayRows = ArrayList<HashSet<Int>>()
@@ -372,7 +373,12 @@ class WeekFragment : Fragment(), WeeklyCalendar {
if (todayColumnIndex != -1) { if (todayColumnIndex != -1) {
val minutes = DateTime().minuteOfDay val minutes = DateTime().minuteOfDay
val todayColumn = getColumnWithId(todayColumnIndex) val todayColumn = getColumnWithId(todayColumnIndex)
(inflater.inflate(R.layout.week_now_marker, null, false) as ImageView).apply { if (currentTimeView != null) {
mView.week_events_holder.removeView(currentTimeView)
}
currentTimeView = (inflater.inflate(R.layout.week_now_marker, null, false) as ImageView)
currentTimeView!!.apply {
applyColorFilter(primaryColor) applyColorFilter(primaryColor)
mView.week_events_holder.addView(this, 0) mView.week_events_holder.addView(this, 0)
val extraWidth = (todayColumn.width * 0.3).toInt() val extraWidth = (todayColumn.width * 0.3).toInt()

View File

@@ -181,7 +181,14 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
setupWeeklyActionbarTitle(currentWeekTS) setupWeeklyActionbarTitle(currentWeekTS)
} }
override fun getNewEventDayCode() = Formatter.getDayCodeFromTS(currentWeekTS) override fun getNewEventDayCode(): String {
val currentTS = System.currentTimeMillis() / 1000
return if (currentTS > currentWeekTS && currentTS < currentWeekTS + WEEK_SECONDS) {
Formatter.getTodayCode()
} else {
Formatter.getDayCodeFromTS(currentWeekTS)
}
}
override fun scrollTo(y: Int) { override fun scrollTo(y: Int) {
weekHolder!!.week_view_hours_scrollview.scrollY = y weekHolder!!.week_view_hours_scrollview.scrollY = y

View File

@@ -9,7 +9,15 @@ class Converters {
private val stringType = object : TypeToken<List<String>>() {}.type private val stringType = object : TypeToken<List<String>>() {}.type
@TypeConverter @TypeConverter
fun jsonToStringList(value: String) = gson.fromJson<ArrayList<String>>(value, stringType) fun jsonToStringList(value: String): ArrayList<String> {
val newValue = if (value.isNotEmpty() && !value.startsWith("[")) {
"[$value]"
} else {
value
}
return gson.fromJson(newValue, stringType)
}
@TypeConverter @TypeConverter
fun stringListToJson(list: ArrayList<String>) = gson.toJson(list) fun stringListToJson(list: ArrayList<String>) = gson.toJson(list)

View File

@@ -214,7 +214,8 @@ class EventsHelper(val context: Context) {
var repetitionExceptions = parentEvent.repetitionExceptions var repetitionExceptions = parentEvent.repetitionExceptions
repetitionExceptions.add(Formatter.getDayCodeFromTS(occurrenceTS)) repetitionExceptions.add(Formatter.getDayCodeFromTS(occurrenceTS))
repetitionExceptions = repetitionExceptions.distinct().toMutableList() as ArrayList<String> repetitionExceptions = repetitionExceptions.distinct().toMutableList() as ArrayList<String>
eventsDB.updateEventRepetitionExceptions(repetitionExceptions, parentEventId)
eventsDB.updateEventRepetitionExceptions(repetitionExceptions.toString(), parentEventId)
context.scheduleNextEventReminder(parentEvent, false) context.scheduleNextEventReminder(parentEvent, false)
if (addToCalDAV && config.caldavSync) { if (addToCalDAV && config.caldavSync) {

View File

@@ -13,12 +13,14 @@ import com.simplemobiletools.calendar.pro.activities.SplashActivity
import com.simplemobiletools.calendar.pro.extensions.config import com.simplemobiletools.calendar.pro.extensions.config
import com.simplemobiletools.calendar.pro.extensions.launchNewEventIntent import com.simplemobiletools.calendar.pro.extensions.launchNewEventIntent
import com.simplemobiletools.calendar.pro.services.WidgetService import com.simplemobiletools.calendar.pro.services.WidgetService
import com.simplemobiletools.calendar.pro.services.WidgetServiceEmpty
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import org.joda.time.DateTime import org.joda.time.DateTime
class MyWidgetListProvider : AppWidgetProvider() { class MyWidgetListProvider : AppWidgetProvider() {
private val NEW_EVENT = "new_event" private val NEW_EVENT = "new_event"
private val LAUNCH_CAL = "launch_cal" private val LAUNCH_CAL = "launch_cal"
private val GO_TO_TODAY = "go_to_today"
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
performUpdate(context) performUpdate(context)
@@ -42,10 +44,13 @@ class MyWidgetListProvider : AppWidgetProvider() {
val todayText = Formatter.getLongestDate(getNowSeconds()) val todayText = Formatter.getLongestDate(getNowSeconds())
views.setText(R.id.widget_event_list_today, todayText) views.setText(R.id.widget_event_list_today, todayText)
views.setImageViewBitmap(R.id.widget_event_new_event, context.resources.getColoredBitmap(R.drawable.ic_plus, textColor)) views.setImageViewBitmap(R.id.widget_event_new_event, context.resources.getColoredBitmap(R.drawable.ic_plus_vector, textColor))
setupIntent(context, views, NEW_EVENT, R.id.widget_event_new_event) setupIntent(context, views, NEW_EVENT, R.id.widget_event_new_event)
setupIntent(context, views, LAUNCH_CAL, R.id.widget_event_list_today) setupIntent(context, views, LAUNCH_CAL, R.id.widget_event_list_today)
views.setImageViewBitmap(R.id.widget_event_go_to_today, context.resources.getColoredBitmap(R.drawable.ic_today_vector, textColor))
setupIntent(context, views, GO_TO_TODAY, R.id.widget_event_go_to_today)
Intent(context, WidgetService::class.java).apply { Intent(context, WidgetService::class.java).apply {
data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME)) data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME))
views.setRemoteAdapter(R.id.widget_event_list, this) views.setRemoteAdapter(R.id.widget_event_list, this)
@@ -75,6 +80,7 @@ class MyWidgetListProvider : AppWidgetProvider() {
when (intent.action) { when (intent.action) {
NEW_EVENT -> context.launchNewEventIntent() NEW_EVENT -> context.launchNewEventIntent()
LAUNCH_CAL -> launchCalenderInDefaultView(context) LAUNCH_CAL -> launchCalenderInDefaultView(context)
GO_TO_TODAY -> goToToday(context)
else -> super.onReceive(context, intent) else -> super.onReceive(context, intent)
} }
} }
@@ -87,4 +93,20 @@ class MyWidgetListProvider : AppWidgetProvider() {
context.startActivity(this) context.startActivity(this)
} }
} }
// hacky solution for reseting the events list
private fun goToToday(context: Context) {
val appWidgetManager = AppWidgetManager.getInstance(context)
appWidgetManager.getAppWidgetIds(getComponentName(context)).forEach {
val views = RemoteViews(context.packageName, R.layout.widget_event_list)
Intent(context, WidgetServiceEmpty::class.java).apply {
data = Uri.parse(this.toUri(Intent.URI_INTENT_SCHEME))
views.setRemoteAdapter(R.id.widget_event_list, this)
}
appWidgetManager.updateAppWidget(it, views)
}
performUpdate(context)
}
} }

View File

@@ -172,16 +172,16 @@ class MyWidgetMonthlyProvider : AppWidgetProvider() {
views.setTextColor(R.id.top_value, textColor) views.setTextColor(R.id.top_value, textColor)
views.setTextSize(R.id.top_value, largerFontSize) views.setTextSize(R.id.top_value, largerFontSize)
var bmp = resources.getColoredBitmap(R.drawable.ic_pointer_left, textColor) var bmp = resources.getColoredBitmap(R.drawable.ic_chevron_left_vector, textColor)
views.setImageViewBitmap(R.id.top_left_arrow, bmp) views.setImageViewBitmap(R.id.top_left_arrow, bmp)
bmp = resources.getColoredBitmap(R.drawable.ic_pointer_right, textColor) bmp = resources.getColoredBitmap(R.drawable.ic_chevron_right_vector, textColor)
views.setImageViewBitmap(R.id.top_right_arrow, bmp) views.setImageViewBitmap(R.id.top_right_arrow, bmp)
bmp = resources.getColoredBitmap(R.drawable.ic_today, textColor) bmp = resources.getColoredBitmap(R.drawable.ic_today_vector, textColor)
views.setImageViewBitmap(R.id.top_go_to_today, bmp) views.setImageViewBitmap(R.id.top_go_to_today, bmp)
bmp = resources.getColoredBitmap(R.drawable.ic_plus, textColor) bmp = resources.getColoredBitmap(R.drawable.ic_plus_vector, textColor)
views.setImageViewBitmap(R.id.top_new_event, bmp) views.setImageViewBitmap(R.id.top_new_event, bmp)
val shouldGoToTodayBeVisible = currTargetDate.withTime(0, 0, 0, 0) != DateTime.now().withDayOfMonth(1).withTime(0, 0, 0, 0) val shouldGoToTodayBeVisible = currTargetDate.withTime(0, 0, 0, 0) != DateTime.now().withDayOfMonth(1).withTime(0, 0, 0, 0)

View File

@@ -103,11 +103,14 @@ interface EventsDao {
fun updateEventRepetitionLimit(repeatLimit: Long, id: Long) fun updateEventRepetitionLimit(repeatLimit: Long, id: Long)
@Query("UPDATE events SET repetition_exceptions = :repetitionExceptions WHERE id = :id") @Query("UPDATE events SET repetition_exceptions = :repetitionExceptions WHERE id = :id")
fun updateEventRepetitionExceptions(repetitionExceptions: ArrayList<String>, id: Long) fun updateEventRepetitionExceptions(repetitionExceptions: String, id: Long)
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertOrUpdate(event: Event): Long fun insertOrUpdate(event: Event): Long
@Query("DELETE FROM events WHERE id IN (:ids)") @Query("DELETE FROM events WHERE id IN (:ids)")
fun deleteEvents(ids: List<Long>) fun deleteEvents(ids: List<Long>)
@Query("DELETE FROM events WHERE source = :source AND import_id = :importId")
fun deleteBirthdayAnniversary(source: String, importId: String): Int
} }

View File

@@ -0,0 +1,9 @@
package com.simplemobiletools.calendar.pro.services
import android.content.Intent
import android.widget.RemoteViewsService
import com.simplemobiletools.calendar.pro.adapters.EventListWidgetAdapterEmpty
class WidgetServiceEmpty : RemoteViewsService() {
override fun onGetViewFactory(intent: Intent) = EventListWidgetAdapterEmpty(applicationContext)
}

View File

@@ -346,6 +346,6 @@ class MonthView(context: Context, attrs: AttributeSet, defStyle: Int) : View(con
private fun isDayValid(event: Event, code: String): Boolean { private fun isDayValid(event: Event, code: String): Boolean {
val date = Formatter.getDateTimeFromCode(code) val date = Formatter.getDateTimeFromCode(code)
return Formatter.getDateTimeFromTS(event.endTS) == Formatter.getDateTimeFromTS(date.seconds()).withTimeAtStartOfDay() return event.startTS != event.endTS && Formatter.getDateTimeFromTS(event.endTS) == Formatter.getDateTimeFromTS(date.seconds()).withTimeAtStartOfDay()
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 897 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

View File

@@ -8,7 +8,7 @@
<item <item
android:bottom="@dimen/medium_margin" android:bottom="@dimen/medium_margin"
android:drawable="@drawable/ic_person" android:drawable="@drawable/ic_person_vector"
android:left="@dimen/medium_margin" android:left="@dimen/medium_margin"
android:right="@dimen/medium_margin" android:right="@dimen/medium_margin"
android:top="@dimen/medium_margin"/> android:top="@dimen/medium_margin"/>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M4,8h4L8,4L4,4v4zM10,20h4v-4h-4v4zM4,20h4v-4L4,16v4zM4,14h4v-4L4,10v4zM10,14h4v-4h-4v4zM16,4v4h4L20,4h-4zM10,8h4L14,4h-4v4zM16,14h4v-4h-4v4zM16,20h4v-4h-4v4z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M19,3h-1L18,1h-2v2L8,3L8,1L6,1v2L5,3c-1.11,0 -1.99,0.9 -1.99,2L3,19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM19,19L5,19L5,8h14v11zM7,10h5v5L7,15z"/>
</vector>

View File

@@ -18,7 +18,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_gravity="bottom|end"
android:layout_margin="@dimen/activity_margin" android:layout_margin="@dimen/activity_margin"
android:src="@drawable/ic_plus" android:src="@drawable/ic_plus_vector"
app:backgroundTint="@color/color_primary" app:backgroundTint="@color/color_primary"
app:rippleColor="@color/pressed_item_foreground"/> app:rippleColor="@color/pressed_item_foreground"/>

View File

@@ -54,7 +54,7 @@
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:paddingStart="@dimen/small_margin" android:paddingStart="@dimen/small_margin"
android:paddingEnd="@dimen/small_margin" android:paddingEnd="@dimen/small_margin"
android:src="@drawable/ic_place"/> android:src="@drawable/ic_place_vector"/>
<com.simplemobiletools.commons.views.MyEditText <com.simplemobiletools.commons.views.MyEditText
android:id="@+id/event_description" android:id="@+id/event_description"
@@ -92,7 +92,7 @@
android:layout_alignBottom="@+id/event_all_day" android:layout_alignBottom="@+id/event_all_day"
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_clock"/> android:src="@drawable/ic_clock_vector"/>
<com.simplemobiletools.commons.views.MySwitchCompat <com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/event_all_day" android:id="@+id/event_all_day"
@@ -176,7 +176,7 @@
android:layout_alignBottom="@+id/event_reminder_1" android:layout_alignBottom="@+id/event_reminder_1"
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_bell"/> android:src="@drawable/ic_bell_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_reminder_1" android:id="@+id/event_reminder_1"
@@ -204,7 +204,7 @@
android:layout_marginStart="@dimen/small_margin" android:layout_marginStart="@dimen/small_margin"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:padding="@dimen/activity_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_bell"/> android:src="@drawable/ic_bell_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_reminder_2" android:id="@+id/event_reminder_2"
@@ -234,7 +234,7 @@
android:layout_marginStart="@dimen/small_margin" android:layout_marginStart="@dimen/small_margin"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:padding="@dimen/activity_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_bell"/> android:src="@drawable/ic_bell_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_reminder_3" android:id="@+id/event_reminder_3"
@@ -264,7 +264,7 @@
android:layout_marginStart="@dimen/small_margin" android:layout_marginStart="@dimen/small_margin"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:padding="@dimen/activity_margin" android:padding="@dimen/activity_margin"
android:src="@drawable/ic_bell"/> android:src="@drawable/ic_bell_vector"/>
<ImageView <ImageView
android:id="@+id/event_reminder_divider" android:id="@+id/event_reminder_divider"
@@ -285,7 +285,7 @@
android:layout_alignBottom="@+id/event_repetition" android:layout_alignBottom="@+id/event_repetition"
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_repeat"/> android:src="@drawable/ic_repeat_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_repetition" android:id="@+id/event_repetition"
@@ -381,7 +381,7 @@
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:layout_marginTop="@dimen/small_margin" android:layout_marginTop="@dimen/small_margin"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_people"/> android:src="@drawable/ic_group_vector"/>
<LinearLayout <LinearLayout
android:id="@+id/event_attendees_holder" android:id="@+id/event_attendees_holder"
@@ -479,7 +479,7 @@
android:layout_alignBottom="@+id/event_type_holder" android:layout_alignBottom="@+id/event_type_holder"
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_color"/> android:src="@drawable/ic_color_vector"/>
<RelativeLayout <RelativeLayout
android:id="@+id/event_type_holder" android:id="@+id/event_type_holder"

View File

@@ -25,7 +25,7 @@
android:layout_gravity="bottom|end" android:layout_gravity="bottom|end"
android:layout_margin="@dimen/activity_margin" android:layout_margin="@dimen/activity_margin"
android:contentDescription="@string/new_event" android:contentDescription="@string/new_event"
android:src="@drawable/ic_plus" android:src="@drawable/ic_plus_vector"
app:backgroundTint="@color/color_primary" app:backgroundTint="@color/color_primary"
app:rippleColor="@color/pressed_item_foreground"/> app:rippleColor="@color/pressed_item_foreground"/>

View File

@@ -17,7 +17,7 @@
android:layout_marginStart="@dimen/normal_margin" android:layout_marginStart="@dimen/normal_margin"
android:alpha="0.8" android:alpha="0.8"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_bell"/> android:src="@drawable/ic_bell_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/set_reminders_1" android:id="@+id/set_reminders_1"

View File

@@ -16,7 +16,7 @@
android:layout_alignBottom="@+id/top_value" android:layout_alignBottom="@+id/top_value"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:src="@drawable/ic_pointer_left"/> android:src="@drawable/ic_chevron_left_vector"/>
<TextView <TextView
android:id="@+id/top_value" android:id="@+id/top_value"
@@ -42,7 +42,7 @@
android:layout_toStartOf="@+id/top_right_arrow" android:layout_toStartOf="@+id/top_right_arrow"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:src="@drawable/ic_today"/> android:src="@drawable/ic_today_vector"/>
<ImageView <ImageView
android:id="@+id/top_right_arrow" android:id="@+id/top_right_arrow"
@@ -54,7 +54,7 @@
android:layout_toStartOf="@+id/top_new_event" android:layout_toStartOf="@+id/top_new_event"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:src="@drawable/ic_pointer_right"/> android:src="@drawable/ic_chevron_right_vector"/>
<ImageView <ImageView
android:id="@+id/top_new_event" android:id="@+id/top_new_event"
@@ -66,7 +66,7 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:src="@drawable/ic_plus"/> android:src="@drawable/ic_plus_vector"/>
<include <include
android:id="@+id/first_row_widget" android:id="@+id/first_row_widget"

View File

@@ -73,7 +73,7 @@
android:alpha="0.8" android:alpha="0.8"
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/small_margin" android:padding="@dimen/small_margin"
android:src="@drawable/ic_cross_big"/> android:src="@drawable/ic_cross_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/event_contact_me_status" android:id="@+id/event_contact_me_status"

View File

@@ -13,7 +13,7 @@
android:autoMirrored="true" android:autoMirrored="true"
android:paddingLeft="@dimen/activity_margin" android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"
android:src="@drawable/ic_pointer_left"/> android:src="@drawable/ic_chevron_left_vector"/>
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/top_value" android:id="@+id/top_value"
@@ -38,6 +38,6 @@
android:autoMirrored="true" android:autoMirrored="true"
android:paddingLeft="@dimen/activity_margin" android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"
android:src="@drawable/ic_pointer_right"/> android:src="@drawable/ic_chevron_right_vector"/>
</merge> </merge>

View File

@@ -5,4 +5,4 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="centerInside" android:scaleType="centerInside"
android:src="@drawable/ic_plus"/> android:src="@drawable/ic_plus_vector"/>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/widget_event_list_holder" android:id="@+id/widget_event_list_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@@ -9,15 +10,30 @@
android:id="@+id/widget_event_list_today" android:id="@+id/widget_event_list_today"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/widget_event_new_event" android:layout_alignTop="@+id/widget_event_go_to_today"
android:layout_alignBottom="@+id/widget_event_new_event" android:layout_alignBottom="@+id/widget_event_go_to_today"
android:layout_toStartOf="@+id/widget_event_new_event" android:layout_toStartOf="@+id/widget_event_go_to_today"
android:ellipsize="end" android:ellipsize="end"
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxLines="1" android:maxLines="1"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:textSize="@dimen/normal_text_size"/> android:textSize="@dimen/normal_text_size"
tools:text="July 18"/>
<ImageView
android:id="@+id/widget_event_go_to_today"
style="@style/ArrowStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toStartOf="@+id/widget_event_new_event"
android:paddingStart="@dimen/medium_margin"
android:paddingTop="@dimen/medium_margin"
android:paddingEnd="@dimen/medium_margin"
android:paddingBottom="@dimen/small_margin"
android:scaleType="fitCenter"
android:src="@drawable/ic_today_vector"/>
<ImageView <ImageView
android:id="@+id/widget_event_new_event" android:id="@+id/widget_event_new_event"
@@ -31,7 +47,7 @@
android:paddingEnd="@dimen/medium_margin" android:paddingEnd="@dimen/medium_margin"
android:paddingBottom="@dimen/small_margin" android:paddingBottom="@dimen/small_margin"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@drawable/ic_plus"/> android:src="@drawable/ic_plus_vector"/>
<ListView <ListView
android:id="@+id/widget_event_list" android:id="@+id/widget_event_list"

View File

@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/cab_share" android:id="@+id/cab_share"
android:icon="@drawable/ic_share" android:icon="@drawable/ic_share_vector"
android:title="@string/share" android:title="@string/share"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/cab_delete" android:id="@+id/cab_delete"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_delete_vector"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

View File

@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/cab_share" android:id="@+id/cab_share"
android:icon="@drawable/ic_share" android:icon="@drawable/ic_share_vector"
android:title="@string/share" android:title="@string/share"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/cab_delete" android:id="@+id/cab_delete"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_delete_vector"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/cab_delete" android:id="@+id/cab_delete"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_delete_vector"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

View File

@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/save" android:id="@+id/save"
android:icon="@drawable/ic_check" android:icon="@drawable/ic_check_vector"
android:title="@string/save" android:title="@string/save"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/delete" android:id="@+id/delete"
android:icon="@drawable/ic_delete" android:icon="@drawable/ic_delete_vector"
android:title="@string/delete" android:title="@string/delete"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
@@ -18,7 +18,7 @@
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/share" android:id="@+id/share"
android:icon="@drawable/ic_share" android:icon="@drawable/ic_share_vector"
android:title="@string/share" android:title="@string/share"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/add_event_type" android:id="@+id/add_event_type"
android:icon="@drawable/ic_plus" android:icon="@drawable/ic_plus_vector"
android:title="@string/add_new_type" android:title="@string/add_new_type"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
</menu> </menu>

View File

@@ -3,28 +3,28 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:id="@+id/search" android:id="@+id/search"
android:icon="@drawable/ic_search" android:icon="@drawable/ic_search_vector"
android:title="@string/search" android:title="@string/search"
app:actionViewClass="androidx.appcompat.widget.SearchView" app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"/> app:showAsAction="collapseActionView|ifRoom"/>
<item <item
android:id="@+id/go_to_today" android:id="@+id/go_to_today"
android:icon="@drawable/ic_today" android:icon="@drawable/ic_today_vector"
android:title="@string/go_to_today" android:title="@string/go_to_today"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/change_view" android:id="@+id/change_view"
android:icon="@drawable/ic_change_view" android:icon="@drawable/ic_change_view_vector"
android:title="@string/change_view" android:title="@string/change_view"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/filter" android:id="@+id/filter"
android:icon="@drawable/ic_filter" android:icon="@drawable/ic_filter_vector"
android:title="@string/filter_events_by_type" android:title="@string/filter_events_by_type"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item
android:id="@+id/refresh_caldav_calendars" android:id="@+id/refresh_caldav_calendars"
android:icon="@drawable/ic_repeat" android:icon="@drawable/ic_repeat_vector"
android:title="@string/refresh_caldav_calendars" android:title="@string/refresh_caldav_calendars"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item <item

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -11,7 +11,7 @@
<string name="no_upcoming_events">Du ser ikke ud til at have nogen forestående begivenheder.</string> <string name="no_upcoming_events">Du ser ikke ud til at have nogen forestående begivenheder.</string>
<string name="go_to_today">Gå til i dag</string> <string name="go_to_today">Gå til i dag</string>
<string name="go_to_date">Gå til dato</string> <string name="go_to_date">Gå til dato</string>
<string name="upgraded_from_free">Hey,\n\nseems like you upgraded from the old free app. You have to migrate locally stored events manually via exporting in an .ics file, then importing. You can find both export/import buttons at the main screen menu.\n\nYou can then uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings. You will then only have to reset your app settings.\n\nThanks!</string> <string name="upgraded_from_free">Hej!\n\nDet ser ud til at du har opgraderet fra den gamle, gratis app. Du skal flytte lokalt gemte begivenheder manuelt til en ics-fil via eksportfunktionen og bagefter importere. Både import og eksport finder du i hovedmenuen.\n\nDu kan nu afinstallere den gamle version, som har en \'Upgrade to Pro\'-knap øverst i app-indstillingerne. Du skal til sidst bare nulstille dine app-indstillinger.\n\nTak!</string>
<!-- Widget titles --> <!-- Widget titles -->
<string name="widget_monthly">Månedlig kalender</string> <string name="widget_monthly">Månedlig kalender</string>
@@ -51,7 +51,7 @@
<string name="update_one_only">Opdater kun denne forekomst</string> <string name="update_one_only">Opdater kun denne forekomst</string>
<string name="update_all_occurrences">Opdater alle forekomster</string> <string name="update_all_occurrences">Opdater alle forekomster</string>
<string name="repeat_till_date">Gentag indtil</string> <string name="repeat_till_date">Gentag indtil</string>
<string name="stop_repeating_after_x">Stop repeating after x occurrences</string> <string name="stop_repeating_after_x">Stop gentagelse efter x gange</string>
<string name="repeat_forever">For altid</string> <string name="repeat_forever">For altid</string>
<string name="times">gange</string> <string name="times">gange</string>
<string name="repeat">Gentag</string> <string name="repeat">Gentag</string>
@@ -82,7 +82,7 @@
<string name="last_f">sidste</string> <string name="last_f">sidste</string>
<!-- Birthdays --> <!-- Birthdays -->
<string name="birthdays">Fødselsdag</string> <string name="birthdays">Fødselsdage</string>
<string name="add_birthdays">Tilføj dine kontakters fødselsdage</string> <string name="add_birthdays">Tilføj dine kontakters fødselsdage</string>
<string name="no_birthdays">Der blev ikke fundet nogen fødselsdage</string> <string name="no_birthdays">Der blev ikke fundet nogen fødselsdage</string>
<string name="no_new_birthdays">Der blev ikke fundet nogen nye fødselsdage</string> <string name="no_new_birthdays">Der blev ikke fundet nogen nye fødselsdage</string>
@@ -102,7 +102,7 @@
<string name="event_reminders">Påmindelser</string> <string name="event_reminders">Påmindelser</string>
<!-- Event attendees --> <!-- Event attendees -->
<string name="add_another_attendee">Tilføj en anden deltager</string> <string name="add_another_attendee">Tilføj deltager</string>
<string name="my_status">Min status:</string> <string name="my_status">Min status:</string>
<string name="going">Kommer</string> <string name="going">Kommer</string>
<string name="not_going">Kommer ikke</string> <string name="not_going">Kommer ikke</string>
@@ -188,7 +188,7 @@
<string name="default_duration">Standard varighed</string> <string name="default_duration">Standard varighed</string>
<string name="last_used_one">Senest brugte</string> <string name="last_used_one">Senest brugte</string>
<string name="other_time">Anden tid</string> <string name="other_time">Anden tid</string>
<string name="highlight_weekends">Highlight weekends on some views</string> <string name="highlight_weekends">Fremhæv weekender i visse visninger</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -229,7 +229,7 @@
<string name="faq_1_text">Helligdage oprettet på den måde er indsat under begivenhedstypen \"Helligdage\". Gå til Indstillinger -> Håndter begivenhedstyper. Efter et par sekunders pres på en type kan du slette den ved at klikke på papirkurven.</string> <string name="faq_1_text">Helligdage oprettet på den måde er indsat under begivenhedstypen \"Helligdage\". Gå til Indstillinger -> Håndter begivenhedstyper. Efter et par sekunders pres på en type kan du slette den ved at klikke på papirkurven.</string>
<string name="faq_2_title">Kan jeg synkronisere mine begivenheder med Googles kalender eller en anden kalender der understøtter CalDAV?</string> <string name="faq_2_title">Kan jeg synkronisere mine begivenheder med Googles kalender eller en anden kalender der understøtter CalDAV?</string>
<string name="faq_2_text">Ja, klik på \"CalDAV sync\" i appens indstillinger og vælg de kalendere du vil synkronisere. Det kræver dog at du har en app til at synkronisere mellem din enhed og kalenderservere. <string name="faq_2_text">Ja, klik på \"CalDAV sync\" i appens indstillinger og vælg de kalendere du vil synkronisere. Det kræver dog at du har en app til at synkronisere mellem din enhed og kalenderservere.
Hvis du vil synkronisere en Googlekalender, kan deres officielle app klare det. For andre kalenderes vedkommende kan du bruge en 3. partsapp som for eksempel DAVdroid.</string> Hvis du vil synkronisere en Googlekalender, kan Googles 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 se mine påmindelser, men der er ingen lyd på. Hvad kan jeg gøre ved det?</string> <string name="faq_3_title">Jeg kan se mine påmindelser, men der er ingen lyd på. Hvad kan jeg gøre ved det?</string>
<string name="faq_3_text">Såvel visning af påmindelser som afspilning af lyd til dem, er afhængig af systemet. Hvis ikke du kan høre nogen lyd, kan du prøve at gå ind i appens indstillinger. Her kan du trykke på \"Audio-stream anvendt af påmindelser\" og vælge en anden indstilling. Virker det stadig ikke skal du tjekke i dine lydindstillinger om lyden i det aktuelle valg er slået fra.</string> <string name="faq_3_text">Såvel visning af påmindelser som afspilning af lyd til dem, er afhængig af systemet. Hvis ikke du kan høre nogen lyd, kan du prøve at gå ind i appens indstillinger. Her kan du trykke på \"Audio-stream anvendt af påmindelser\" og vælge en anden indstilling. Virker det stadig ikke skal du tjekke i dine lydindstillinger om lyden i det aktuelle valg er slået fra.</string>
@@ -237,7 +237,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simpel kalender Pro - Begivenheder &amp; påmindelser</string> <string name="app_title">Simpel kalender Pro - Begivenheder &amp; påmindelser</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">En skøn kalender uden reklamer, med fuld tilfredshed eller pengene tilbage!</string>
<string name="app_long_description"> <string name="app_long_description">
Simpel kalender Pro kan tilpasses helt efter din smag, offline kalender er designet til at gøre præcis hvad en kalender skal kunne. <b>Ingen indviklede funktioner, ingen overflødige tilladelser og ingen reklamer!</b> Simpel kalender Pro kan tilpasses helt efter din smag, offline kalender er designet til at gøre præcis hvad en kalender skal kunne. <b>Ingen indviklede funktioner, ingen overflødige tilladelser og ingen reklamer!</b>

View File

@@ -240,7 +240,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Termine &amp; Erinnerungen</string> <string name="app_title">Simple Calendar Pro - Termine &amp; Erinnerungen</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro ist ein vollständig anpassbarer Offline-Kalender, der genau das bietet, was man von einem Kalender erwartet. <b>Keine umständlichen Funktionen, keine unnötigen Berechtigungen und keine Werbung!</b> Simple Calendar Pro ist ein vollständig anpassbarer Offline-Kalender, der genau das bietet, was man von einem Kalender erwartet. <b>Keine umständlichen Funktionen, keine unnötigen Berechtigungen und keine Werbung!</b>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Simple Calendar</string> <string name="app_name">Απλό Ημερολόγιο</string>
<string name="app_launcher_name">Ημερολόγιο</string> <string name="app_launcher_name">Ημερολόγιο</string>
<string name="change_view">Αλλαγή προβολής</string> <string name="change_view">Αλλαγή προβολής</string>
<string name="daily_view">Ημερήσια προβολή</string> <string name="daily_view">Ημερήσια προβολή</string>
@@ -38,9 +38,9 @@
<string name="weekly">Εβδομαδιαία</string> <string name="weekly">Εβδομαδιαία</string>
<string name="monthly">Μηνιαία</string> <string name="monthly">Μηνιαία</string>
<string name="yearly">Ετήσια</string> <string name="yearly">Ετήσια</string>
<string name="weeks_raw">weeks</string> <string name="weeks_raw">Εβδομάδες</string>
<string name="months_raw">months</string> <string name="months_raw">Μήνες</string>
<string name="years_raw">years</string> <string name="years_raw">Έτη</string>
<string name="repeat_till">Επανάληψη μέχρι</string> <string name="repeat_till">Επανάληψη μέχρι</string>
<string name="forever">Για πάντα</string> <string name="forever">Για πάντα</string>
<string name="event_is_repeatable">Η εκδήλωση είναι επαναλαμβανόμενη</string> <string name="event_is_repeatable">Η εκδήλωση είναι επαναλαμβανόμενη</string>
@@ -53,7 +53,7 @@
<string name="repeat_till_date">Επαναλάβετε μέχρι μια ημερομηνία</string> <string name="repeat_till_date">Επαναλάβετε μέχρι μια ημερομηνία</string>
<string name="stop_repeating_after_x">Παύση επαναλήψεων μετά από x εμφανίσεις</string> <string name="stop_repeating_after_x">Παύση επαναλήψεων μετά από x εμφανίσεις</string>
<string name="repeat_forever">Επαναλάβετε για πάντα</string> <string name="repeat_forever">Επαναλάβετε για πάντα</string>
<string name="times">times</string> <string name="times">Φορές</string>
<string name="repeat">Επανάληψη</string> <string name="repeat">Επανάληψη</string>
<string name="repeat_on">Επανάληψη ενεργή</string> <string name="repeat_on">Επανάληψη ενεργή</string>
<string name="every_day">Κάθε μέρα</string> <string name="every_day">Κάθε μέρα</string>
@@ -239,16 +239,16 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Απλό Ημερολόγιο Pro - Εκδηλώσεων &amp; Ειδοποιήσεων</string> <string name="app_title">Απλό Ημερολόγιο Pro - Εκδηλώσεων &amp; Ειδοποιήσεων</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">Ένα όμορφο Ημερολόγιο χωρίς διαφημίσεις, 100% εγγύηση επιστροφής χρημάτων.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. <b>Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις!</b> Το Απλό Ημερολόγιο Pro είναι ένα πλήρως προσαρμόσιμο ημερολόγιο εκτός σύνδεσης που έχει σχεδιαστεί για να κάνει ακριβώς αυτό που υπόσχεται. <b>Δεν υπάρχουν περίπλοκες λειτουργίες, περιττά δικαιώματα και διαφημίσεις!</b>
Είτε οργανώνετε ένα ή επαναλαμβανόμενα γεγονότα, γενέθλια, επετείους, επαγγελματικές συναντήσεις, ραντεβού ή οτιδήποτε άλλο, το Simple Calendar Pro καθιστάται <b>να παραμένει εύκολα οργανωμένο</b>. Με μια απίστευτη ποικιλία <b>επιλογών προσαρμογής</b> μπορείτε να προσαρμόσετε τις υπενθυμίσεις συμβάντων, τους ήχους ειδοποιήσεων, τα γραφικά στοιχεία ημερολογίου και τον τρόπο εμφάνισης της εφαρμογής. Είτε οργανώνετε ένα ή επαναλαμβανόμενα γεγονότα, γενέθλια, επετείους, επαγγελματικές συναντήσεις, ραντεβού ή οτιδήποτε άλλο, το Απλό Ημερολόγιο Pro καθιστάται <b>να παραμένει εύκολα οργανωμένο</b>. Με μια απίστευτη ποικιλία <b>επιλογών προσαρμογής</b> μπορείτε να προσαρμόσετε τις υπενθυμίσεις συμβάντων, τους ήχους ειδοποιήσεων, τα γραφικά στοιχεία ημερολογίου και τον τρόπο εμφάνισης της εφαρμογής.
Καθημερινές, εβδομαδιαίες και μηνιαίες προβολές κάνουν τον έλεγχο των επερχόμενων εκδηλώσεων &amp; ραντεβού παιχνιδάκι. Μπορείτε ακόμη και να δείτε τα πάντα ως μια απλή λίστα γεγονότων και όχι σε προβολή ημερολογίου, ώστε να <b>γνωρίζετε ακριβώς τι έρχεται στη ζωή σας και πότε.</b> Καθημερινές, εβδομαδιαίες και μηνιαίες προβολές κάνουν τον έλεγχο των επερχόμενων εκδηλώσεων &amp; ραντεβού παιχνιδάκι. Μπορείτε ακόμη και να δείτε τα πάντα ως μια απλή λίστα γεγονότων και όχι σε προβολή ημερολογίου, ώστε να <b>γνωρίζετε ακριβώς τι έρχεται στη ζωή σας και πότε.</b>
---------------------------------------------------------- ----------------------------------------------------------
<b>Simple Calendar Pro Χαρακτηριστικά &amp; Οφέλη</b> <b>Απλό Ημερολόγιο Pro Χαρακτηριστικά &amp; Πλεονεκτήματα</b>
---------------------------------------------------------- ----------------------------------------------------------
✔️ Δεν υπάρχουν διαφημίσεις ή ενοχλητικά αναδυόμενα παράθυρα ✔️ Δεν υπάρχουν διαφημίσεις ή ενοχλητικά αναδυόμενα παράθυρα
@@ -270,7 +270,7 @@
✔️ Χρησιμοποιήστε το ως προσωπικό ή επιχειρηματικό ημερολόγιο ✔️ Χρησιμοποιήστε το ως προσωπικό ή επιχειρηματικό ημερολόγιο
✔️ Επιλέξτε μεταξύ υπενθυμίσεων &amp; email για να σας ειδοποιήσει για ένα συμβάν ✔️ Επιλέξτε μεταξύ υπενθυμίσεων &amp; email για να σας ειδοποιήσει για ένα συμβάν
ΛΗΨΗ SIMPLE CALENDAR PRO ΕΚΤΟΣ ΣΥΝΔΕΣΗΣ ΚΑΙ ΧΩΡΊΣ ΔΙΑΦΗΜΗΣΕΙΣ! ΛΗΨΗ ΑΠΛΟ ΗΜΕΡΟΛΟΓΙΟ Pro ΕΚΤΟΣ ΣΥΝΔΕΣΗΣ ΚΑΙ ΧΩΡΊΣ ΔΙΑΦΗΜΗΣΕΙΣ!
<b>Δείτε την πλήρη σειρά των Simple Tools εδώ:</b> <b>Δείτε την πλήρη σειρά των Simple Tools εδώ:</b>
https://www.simplemobiletools.com https://www.simplemobiletools.com

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -1,30 +1,31 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Agenda simple</string> <string name="app_name">Simple agenda</string>
<string name="app_launcher_name">Agenda</string> <string name="app_launcher_name">Agenda</string>
<string name="change_view">Changer de vue</string> <string name="change_view">Changer de vue</string>
<string name="daily_view">Vue quotidienne</string> <string name="daily_view">Vue quotidienne</string>
<string name="weekly_view">Vue hebdomadaire</string> <string name="weekly_view">Vue hebdomadaire</string>
<string name="monthly_view">Vue mensuelle</string> <string name="monthly_view">Vue mensuelle</string>
<string name="yearly_view">Vue annuelle</string> <string name="yearly_view">Vue annuelle</string>
<string name="simple_event_list">Liste simple d\'événements</string> <string name="simple_event_list">Liste simple d\événements</string>
<string name="no_upcoming_events">Il semblerait que vous n\'ayez aucun événement à venir.</string> <string name="no_upcoming_events">Il semblerait que vous n\ayez aucun événement à venir.</string>
<string name="go_to_today">Aller à aujourd\'hui</string> <string name="go_to_today">Aller vers aujourd\hui</string>
<string name="go_to_date">Aller à un jour</string> <string name="go_to_date">Aller vers un date</string>
<string name="upgraded_from_free">Bonjour,\n\nIl semblerait que vous ayez mis à jour depuis l\'ancienne application gratuite. Vous devez déplacer les évènements enregistrés localement manuellement en exportant un fichier .ics, puis en l\'important. Vous pouvez trouver les boutons export/import dans le menu de l\'écran principal.\n\nVous pourrez ensuite désinstaller l\'ancienne version, qui a un bouton \'Mise à jour vers Pro\' en haut des paramètres de l\'application. Vous aurez ensuite juste à réinitialiser les paramètres de l\'application.\n\nMerci !</string> <string name="upgraded_from_free">Bonjour,\n\nIl semblerait que vous soyez passé de l\ancienne appli gratuite à la Pro. Vous devez migrer manuellement les évènements enregistrés localement manuellement en exportant un fichier .ics, puis en l\important. Vous trouverez les boutons Exporter/Importer dans le menu de l\écran principal.\n\nVous pourrez ensuite désinstaller l\ancienne version, qui présente un bouton \'Passer à la version
Pro\' en haut des paramètres de l\appli. Vous n\aurez ensuite qu\’à réinitialiser les paramètres de l\appli.\n\nMerci!</string>
<!-- Widget titles --> <!-- Widget titles -->
<string name="widget_monthly">Calendrier mensuel</string> <string name="widget_monthly">agenda mensuel</string>
<string name="widget_list">Liste d\'événements du calendrier</string> <string name="widget_list">Liste d\événements de l\agenda</string>
<!-- Event --> <!-- Event -->
<string name="event">Événement</string> <string name="event">Événement</string>
<string name="edit_event">Éditer l\'événement</string> <string name="edit_event">Éditer l\événement</string>
<string name="new_event">Nouvel événement</string> <string name="new_event">Nouvel événement</string>
<string name="create_new_event">Créer un nouvel événement</string> <string name="create_new_event">Créer un nouvel événement</string>
<string name="duplicate_event">Dupliquer l\'événement</string> <string name="duplicate_event">Dupliquer l\événement</string>
<string name="title_empty">Le titre ne peut pas être vide</string> <string name="title_empty">Le titre ne peut pas être vide</string>
<string name="end_before_start">L\'événement ne peut pas se terminer plus tôt qu\'il ne commence</string> <string name="end_before_start">L\événement ne peut pas se terminer plus tôt qu\il ne commence</string>
<string name="event_added">Événement ajouté avec succès</string> <string name="event_added">Événement ajouté avec succès</string>
<string name="event_updated">Événement ajouté avec succès</string> <string name="event_updated">Événement ajouté avec succès</string>
<string name="filter_events_by_type">Filtrer les événements par type</string> <string name="filter_events_by_type">Filtrer les événements par type</string>
@@ -41,16 +42,16 @@
<string name="weeks_raw">semaines</string> <string name="weeks_raw">semaines</string>
<string name="months_raw">mois</string> <string name="months_raw">mois</string>
<string name="years_raw">années</string> <string name="years_raw">années</string>
<string name="repeat_till">Répéter jusqu\'à</string> <string name="repeat_till">Répéter jusqu\à</string>
<string name="forever">Pour toujours</string> <string name="forever">Pour toujours</string>
<string name="event_is_repeatable">L\'événement est répétable</string> <string name="event_is_repeatable">L\événement est répétable</string>
<string name="selection_contains_repetition">La sélection contient des événements avec répétition</string> <string name="selection_contains_repetition">La sélection contient des événements avec répétition</string>
<string name="delete_one_only">Supprimer seulement l\'occurrence sélectionnée</string> <string name="delete_one_only">Supprimer seulement l\occurrence sélectionnée</string>
<string name="delete_future_occurrences">Supprimer ceci et toutes les occurrences futures</string> <string name="delete_future_occurrences">Supprimer ceci et toutes les occurrences futures</string>
<string name="delete_all_occurrences">Supprimer toutes les occurrences</string> <string name="delete_all_occurrences">Supprimer toutes les occurrences</string>
<string name="update_one_only">Mettre à jour seulement l\'occurrence sélectionnée</string> <string name="update_one_only">Mettre à jour seulement l\occurrence sélectionnée</string>
<string name="update_all_occurrences">Mettre à jour toutes les occurrences</string> <string name="update_all_occurrences">Mettre à jour toutes les occurrences</string>
<string name="repeat_till_date">Répéter jusqu\'à une date</string> <string name="repeat_till_date">Répéter jusqu\à une date</string>
<string name="stop_repeating_after_x">Arrêter de répéter après x occurrences</string> <string name="stop_repeating_after_x">Arrêter de répéter après x occurrences</string>
<string name="repeat_forever">Répéter éternellement</string> <string name="repeat_forever">Répéter éternellement</string>
<string name="times">fois</string> <string name="times">fois</string>
@@ -84,22 +85,22 @@
<!-- Birthdays --> <!-- Birthdays -->
<string name="birthdays">Anniversaires</string> <string name="birthdays">Anniversaires</string>
<string name="add_birthdays">Ajouter les anniversaires des contacts</string> <string name="add_birthdays">Ajouter les anniversaires des contacts</string>
<string name="no_birthdays">Aucun anniversaire n\'a été trouvé</string> <string name="no_birthdays">Aucun anniversaire n\a été trouvé</string>
<string name="no_new_birthdays">No new birthdays have been found</string> <string name="no_new_birthdays">No new birthdays have been found</string>
<string name="birthdays_added">Anniversaires ajoutés avec succès</string> <string name="birthdays_added">Anniversaires ajoutés avec succès</string>
<!-- Anniversaries --> <!-- Anniversaries -->
<string name="anniversaries">Anniversaires d\'évènements</string> <string name="anniversaries">Anniversaires d\évènements</string>
<string name="add_anniversaries">Ajouter des anniversaires d\'évènements de contact</string> <string name="add_anniversaries">Ajouter des anniversaires d\évènements de contact</string>
<string name="no_anniversaries">Aucun anniversaire d\'évènements n\'a été trouvé</string> <string name="no_anniversaries">Aucun anniversaire d\évènements n\a été trouvé</string>
<string name="no_new_anniversaries">No new anniversaries have been found</string> <string name="no_new_anniversaries">No new anniversaries have been found</string>
<string name="anniversaries_added">Anniversaires d\'évènements ajoutés avec succès</string> <string name="anniversaries_added">Anniversaires d\évènements ajoutés avec succès</string>
<!-- Event Reminders --> <!-- Event Reminders -->
<string name="reminder">Rappel</string> <string name="reminder">Rappel</string>
<string name="before">avant</string> <string name="before">avant</string>
<string name="add_another_reminder">Ajouter un autre rappel</string> <string name="add_another_reminder">Ajouter un autre rappel</string>
<string name="event_reminders">Rappels d\'événements</string> <string name="event_reminders">Rappels d\événements</string>
<!-- Event attendees --> <!-- Event attendees -->
<string name="add_another_attendee">Ajouter un autre participant</string> <string name="add_another_attendee">Ajouter un autre participant</string>
@@ -112,13 +113,13 @@
<!-- Export / Import --> <!-- Export / Import -->
<string name="import_events">Importer des événements</string> <string name="import_events">Importer des événements</string>
<string name="export_events">Exporter des événements</string> <string name="export_events">Exporter des événements</string>
<string name="import_events_from_ics">Importer des événements depuis un fichier .ics</string> <string name="import_events_from_ics">Importer des événements d\un fichier .ics</string>
<string name="export_events_to_ics">Exporter des événements vers un fichier .ics</string> <string name="export_events_to_ics">Exporter des événements vers un fichier .ics</string>
<string name="default_event_type">Type d\'événement par défaut</string> <string name="default_event_type">Type d\événement par défaut</string>
<string name="export_past_events_too">Exporter aussi les événements passés</string> <string name="export_past_events_too">Exporter aussi les événements passés</string>
<string name="include_event_types">Inclure les types d\'événement</string> <string name="include_event_types">Inclure les types d\événement</string>
<string name="filename_without_ics">Nom de fichier (sans .ics)</string> <string name="filename_without_ics">Nom de fichier (sans .ics)</string>
<string name="override_event_types">Remplacer les types d\'événement dans le fichier</string> <string name="override_event_types">Remplacer les types d\événement dans le fichier</string>
<!-- Event details --> <!-- Event details -->
<string name="title">Titre</string> <string name="title">Titre</string>
@@ -130,46 +131,46 @@
<string name="week">Semaine</string> <string name="week">Semaine</string>
<!-- Event types --> <!-- Event types -->
<string name="event_types">Type d\'événement</string> <string name="event_types">Type d\événement</string>
<string name="add_new_type">Ajouter un nouveau type</string> <string name="add_new_type">Ajouter un nouveau type</string>
<string name="edit_type">Éditer le type</string> <string name="edit_type">Éditer le type</string>
<string name="type_already_exists">Un type avec ce titre existe déjà</string> <string name="type_already_exists">Un type avec ce titre existe déjà</string>
<string name="color">Couleur</string> <string name="color">Couleur</string>
<string name="regular_event">Événement ordinaire</string> <string name="regular_event">Événement ordinaire</string>
<string name="cannot_delete_default_type">Le type d\'événement par défaut ne peut pas être supprimé</string> <string name="cannot_delete_default_type">Le type d\événement par défaut ne peut pas être supprimé</string>
<string name="select_event_type">Sélectionner un type d\'événement</string> <string name="select_event_type">Sélectionner un type d\événement</string>
<string name="move_events_into_default">Déplacer les événements affectés dans le type d\'événement par défaut</string> <string name="move_events_into_default">Déplacer les événements affectés dans le type d\événement par défaut</string>
<string name="remove_affected_events">Supprimer de façon permanente les événements affectés</string> <string name="remove_affected_events">Supprimer de façon permanente les événements affectés</string>
<string name="unsync_caldav_calendar">Pour supprimer un calendrier CalDAV vous devez le désynchroniser</string> <string name="unsync_caldav_calendar">Pour supprimer un agenda CalDAV vous devez le désynchroniser</string>
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Jours fériés</string> <string name="holidays">Jours fériés</string>
<string name="add_holidays">Ajouter des jours fériés</string> <string name="add_holidays">Ajouter des jours fériés</string>
<string name="national_holidays">Jours fériés nationaux</string> <string name="national_holidays">Jours fériés nationaux</string>
<string name="religious_holidays">Jours fériés religieux</string> <string name="religious_holidays">Jours fériés religieux</string>
<string name="holidays_imported_successfully">Les vacances ont été importées avec succès dans le type d\'événement \"Vacances\"</string> <string name="holidays_imported_successfully">Les vacances ont été importées avec succès dans le type d\événement « Vacances »</string>
<string name="importing_some_holidays_failed">L\'import de certains événements a échoué</string> <string name="importing_some_holidays_failed">Échec d\importation de certains événements</string>
<string name="importing_holidays_failed">L\'import des jours fériés a échoué</string> <string name="importing_holidays_failed">Échec d\importation des jours fériés</string>
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Gestion des types d\'événements</string> <string name="manage_event_types">Gestion des types d\événements</string>
<string name="start_day_at">Jour de début de la vue hebdomadaire</string> <string name="start_day_at">Jour de début de la vue hebdomadaire</string>
<string name="end_day_at">Jour de fin de la vue hebdomadaire</string> <string name="end_day_at">Jour de fin de la vue hebdomadaire</string>
<string name="week_numbers">Afficher les numéros de semaine</string> <string name="week_numbers">Afficher les numéros de semaine</string>
<string name="vibrate">Vibrer à la notification de rappel</string> <string name="vibrate">Vibrer à la notification de rappel</string>
<string name="reminder_sound">Son de rappel</string> <string name="reminder_sound">Son de rappel</string>
<string name="no_ringtone_picker">Aucune application capable de configurer la sonnerie trouvée</string> <string name="no_ringtone_picker">Aucune appli n\a été trouvée pour définir la sonnerie</string>
<string name="no_ringtone_selected">Aucune</string> <string name="no_ringtone_selected">Aucune</string>
<string name="day_end_before_start">Le jour ne peut pas se terminer plus tôt qu\'il ne débute</string> <string name="day_end_before_start">Le jour ne peut pas se terminer plus tôt qu\il ne débute</string>
<string name="caldav_sync">Synchronisation CalDAV</string> <string name="caldav_sync">Synchronisation CalDAV</string>
<string name="event_lists">Listes d\'événements</string> <string name="event_lists">Listes d\événements</string>
<string name="display_past_events">Afficher les événements du passé</string> <string name="display_past_events">Afficher les événements du passé</string>
<string name="replace_description_with_location">Remplacer la description de l\'événement par l\'emplacement</string> <string name="replace_description_with_location">Remplacer la description de l\événement par l\emplacement</string>
<string name="delete_all_events">Supprimer tous les événements</string> <string name="delete_all_events">Supprimer tous les événements</string>
<string name="delete_all_events_confirmation">Êtes-vous sûr de vouloir supprimer tous les événements ? Cela laissera vos types d\'événements et autres paramètres intacts.</string> <string name="delete_all_events_confirmation">Êtes-vous sûr de vouloir supprimer tous les événements? Cela laissera vos types d\événements et autres paramètres intacts.</string>
<string name="show_a_grid">Afficher une grille</string> <string name="show_a_grid">Afficher une grille</string>
<string name="loop_reminders">Boucles de rappel jusqu\'à ce qu\'il soit rejeté</string> <string name="loop_reminders">Boucles de rappel jusqu\à ce qu\il soit rejeté</string>
<string name="dim_past_events">Diminuer l\'affichage des événements passés</string> <string name="dim_past_events">Diminuer l\affichage des événements passés</string>
<string name="events">Evénements</string> <string name="events">Evénements</string>
<string name="reminder_stream">Flux audio utilisé par les rappels</string> <string name="reminder_stream">Flux audio utilisé par les rappels</string>
<string name="system_stream">System</string> <string name="system_stream">System</string>
@@ -180,7 +181,7 @@
<string name="default_reminder_1">Rappel par défaut 1</string> <string name="default_reminder_1">Rappel par défaut 1</string>
<string name="default_reminder_2">Rappel par défaut 2</string> <string name="default_reminder_2">Rappel par défaut 2</string>
<string name="default_reminder_3">Rappel par défaut 3</string> <string name="default_reminder_3">Rappel par défaut 3</string>
<string name="view_to_open_from_widget">Affichage à ouvrir à partir du widget de liste d\'événements</string> <string name="view_to_open_from_widget">Affichage à ouvrir à partir du widget de liste d\événements</string>
<string name="last_view">Dernière vue</string> <string name="last_view">Dernière vue</string>
<string name="new_events">Nouveaux évènements</string> <string name="new_events">Nouveaux évènements</string>
<string name="default_start_time">Début par défaut</string> <string name="default_start_time">Début par défaut</string>
@@ -192,17 +193,17 @@
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
<string name="select_caldav_calendars">Seléctionner les calendriers à synchroniser</string> <string name="select_caldav_calendars">Seléctionner les agendas à synchroniser</string>
<string name="manage_synced_calendars">Gérer les calendriers synchronisés</string> <string name="manage_synced_calendars">Gérer les agendas synchronisés</string>
<string name="store_locally_only">Stocker uniquement localement</string> <string name="store_locally_only">Stocker uniquement localement</string>
<string name="refresh_caldav_calendars">Rafraîchir les calendriers CalDAV</string> <string name="refresh_caldav_calendars">Rafraîchir les agendas CalDAV</string>
<string name="refreshing">Rafraîchissement</string> <string name="refreshing">Actualisation</string>
<string name="refreshing_complete">Rafraîchissement terminé</string> <string name="refreshing_complete">Lactualisation est terminée</string>
<string name="editing_calendar_failed">Édition du calendrier échouée</string> <string name="editing_calendar_failed">Échec d\édition de l\agenda</string>
<string name="syncing">Synchronisation…</string> <string name="syncing">Synchronisation…</string>
<string name="synchronization_completed">Synchronisation terminée</string> <string name="synchronization_completed">La synchronisation est terminée</string>
<string name="select_a_different_caldav_color">Sélectionnez une couleur différente (peut être appliqué localement uniquement)</string> <string name="select_a_different_caldav_color">Sélectionnez une couleur différente (peut être appliqué localement uniquement)</string>
<string name="insufficient_permissions">Vous n\'êtes pas autorisé à écrire dans l\'agenda sélectionné</string> <string name="insufficient_permissions">Vous n\êtes pas autorisé à écrire dans l\agenda sélectionné</string>
<!-- alternative versions for some languages, use the same translations if you are not sure what this means --> <!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
<!-- used in repetition, like "Every last Sunday" --> <!-- used in repetition, like "Every last Sunday" -->
@@ -225,21 +226,21 @@
<string name="sample_title_5">Heure du café</string> <string name="sample_title_5">Heure du café</string>
<!-- FAQ --> <!-- FAQ -->
<string name="faq_1_title">Comment supprimer les congés importés par le bouton « Ajouter des jours fériés » ?</string> <string name="faq_1_title">Comment supprimer les congés importés par le bouton « Ajouter des jours fériés » ?</string>
<string name="faq_1_text">Les jours fériés ajoutés de cette manière sont du type « Jours fériés ». Vous pouvez aller dans « Paramètres » puis « Gestion des types d\'événements », <string name="faq_1_text">Les jours fériés ajoutés de cette manière sont du type « Jours fériés ». Vous pouvez aller dans « Paramètres » puis « Gestion des types d\événements »,
faire un appui long sur « Jours fériés » et les supprimer en appuyant sur la corbeille.</string> faire un appui long sur « Jours fériés » et les supprimer en appuyant sur la corbeille.</string>
<string name="faq_2_title">Puis-je synchroniser mes événements via Google Agenda, ou tout autre service proposant la synchronisation CalDAV ?</string> <string name="faq_2_title">Puis-je synchroniser mes événements par Google Agenda, ou tout autre service proposant la synchronisation CalDAV?</string>
<string name="faq_2_text">Oui, il faut juste activer l\'option « Synchronisation CalDAV » dans les paramètres de l\'application puis choisir les calendriers à synchroniser. Une application tierce pour gérer la synchronisation entre votre appareil et les serveurs sera par contre nécessaire. <string name="faq_2_text">Oui, il faut juste activer l\option « Synchronisation CalDAV » dans les paramètres de l\appli, puis choisir les agendas à synchroniser. Une appli tierce pour gérer la synchronisation entre votre appareil et les serveurs sera par contre nécessaire.
Dans le cas d\'un calendrier Google Agenda, l\'application officielle fera l\'affaire. Pour les autres calendriers, il vous faudra une application comme DAVdroid par exemple.</string> Dans le cas d\un agenda Google, l\appli officielle fera l\affaire. Pour les autres agendas, il vous faudra une appli comme DAVdroid par exemple.</string>
<string name="faq_3_title">Je vois les rappels visuels, mais n\'entends aucun son. Que puis-je faire?</string> <string name="faq_3_title">Je vois les rappels visuels, mais n\entends aucun son. Que puis-je faire?</string>
<string name="faq_3_text">Pas seulement l\'affichage du rappel, mais la lecture de l\'audio est également énormément affectée par le système. Si vous nentendez aucun son, essayez dentrer dans les paramètres de lapplication, <string name="faq_3_text">Pas seulement l\affichage du rappel, mais la lecture de l\audio est également énormément affectée par le système. Si vous nentendez aucun son, essayez dentrer dans les paramètres de lappli,
en appuyant sur l\'option "Flux audio utilisé par les rappels" et en la modifiant. Si cela ne fonctionne toujours pas, vérifiez vos paramètres audio, si le flux particulier nest pas mis en sourdine.</string> en appuyant sur l\option « Flux audio utilisé par les rappels » et en la modifiant. Si cela ne fonctionne toujours pas, vérifiez vos paramètres audio, si le flux particulier nest pas mis en sourdine.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - יומן פשוט</string> <string name="app_title">Simple Calendar Pro - יומן פשוט</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -3,19 +3,19 @@
<string name="app_name">Simple Calendar</string> <string name="app_name">Simple Calendar</string>
<string name="app_launcher_name">Kalender</string> <string name="app_launcher_name">Kalender</string>
<string name="change_view">Ubah tampilan</string> <string name="change_view">Ubah tampilan</string>
<string name="daily_view">Tampilan harian</string> <string name="daily_view">Tampilan hari</string>
<string name="weekly_view">Tampilan mingguan</string> <string name="weekly_view">Tampilan minggu</string>
<string name="monthly_view">Tampilan bulanan</string> <string name="monthly_view">Tampilan bulan</string>
<string name="yearly_view">Tampilan tahunan</string> <string name="yearly_view">Tampilan tahun</string>
<string name="simple_event_list">Daftar acara sederhana</string> <string name="simple_event_list">Daftar acara</string>
<string name="no_upcoming_events">Sepertinya anda tidak memiliki acara yang akan datang.</string> <string name="no_upcoming_events">Sepertinya anda tidak memiliki acara yang akan datang.</string>
<string name="go_to_today">Buka hari ini</string> <string name="go_to_today">Buka hari ini</string>
<string name="go_to_date">Buka tanggal</string> <string name="go_to_date">Buka tanggal</string>
<string name="upgraded_from_free">Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih!</string> <string name="upgraded_from_free">Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih!</string>
<!-- Widget titles --> <!-- Widget titles -->
<string name="widget_monthly">Kalender bulanan</string> <string name="widget_monthly">Bulan</string>
<string name="widget_list">Daftar acara kalender</string> <string name="widget_list">Daftar acara</string>
<!-- Event --> <!-- Event -->
<string name="event">Acara</string> <string name="event">Acara</string>
@@ -46,7 +46,7 @@
<string name="event_is_repeatable">Acara berulang</string> <string name="event_is_repeatable">Acara berulang</string>
<string name="selection_contains_repetition">Acara yang dipilih berisi acara yang berulang</string> <string name="selection_contains_repetition">Acara yang dipilih berisi acara yang berulang</string>
<string name="delete_one_only">Hapus acara ini saja</string> <string name="delete_one_only">Hapus acara ini saja</string>
<string name="delete_future_occurrences">Hapus acara ini dan semua perulangannya di masa depan</string> <string name="delete_future_occurrences">Hapus acara ini dan semua perulangannya</string>
<string name="delete_all_occurrences">Hapus semua perulangan acara</string> <string name="delete_all_occurrences">Hapus semua perulangan acara</string>
<string name="update_one_only">Perbarui acara ini saja</string> <string name="update_one_only">Perbarui acara ini saja</string>
<string name="update_all_occurrences">Perbarui semua perulangan acara</string> <string name="update_all_occurrences">Perbarui semua perulangan acara</string>
@@ -144,7 +144,7 @@
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Hari Libur</string> <string name="holidays">Hari Libur</string>
<string name="add_holidays">Tambah hari libur</string> <string name="add_holidays">Tambahkan hari libur</string>
<string name="national_holidays">Libur nasional</string> <string name="national_holidays">Libur nasional</string>
<string name="religious_holidays">Libur keagamaan</string> <string name="religious_holidays">Libur keagamaan</string>
<string name="holidays_imported_successfully">Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\"</string> <string name="holidays_imported_successfully">Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\"</string>
@@ -153,8 +153,8 @@
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Kelola kategori acara</string> <string name="manage_event_types">Kelola kategori acara</string>
<string name="start_day_at">Mulai hari pada</string> <string name="start_day_at">Hari dimulai pada jam</string>
<string name="end_day_at">Akhir hari pada</string> <string name="end_day_at">Hari berakhir pada jam</string>
<string name="week_numbers">Tampilkan nomor minggu</string> <string name="week_numbers">Tampilkan nomor minggu</string>
<string name="vibrate">Getar pada notifikasi pengingat</string> <string name="vibrate">Getar pada notifikasi pengingat</string>
<string name="reminder_sound">Suara pengingat</string> <string name="reminder_sound">Suara pengingat</string>
@@ -168,10 +168,10 @@
<string name="delete_all_events">Hapus semua acara</string> <string name="delete_all_events">Hapus semua acara</string>
<string name="delete_all_events_confirmation">Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya.</string> <string name="delete_all_events_confirmation">Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya.</string>
<string name="show_a_grid">Tampilkan grid</string> <string name="show_a_grid">Tampilkan grid</string>
<string name="loop_reminders">Ulangi pengingat sampai diberhentikan</string> <string name="loop_reminders">Ulangi pengingat sampai dihentikan</string>
<string name="dim_past_events">Redupkan acara yang sudah lewat</string> <string name="dim_past_events">Redupkan acara yang sudah lewat</string>
<string name="events">Acara</string> <string name="events">Acara</string>
<string name="reminder_stream">Audio yang digunakan oleh pengingat</string> <string name="reminder_stream">Audio yang digunakan pengingat</string>
<string name="system_stream">Sistem</string> <string name="system_stream">Sistem</string>
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notifikasi</string> <string name="notification_stream">Notifikasi</string>
@@ -184,9 +184,9 @@
<string name="last_view">Tampilan terakhir</string> <string name="last_view">Tampilan terakhir</string>
<string name="new_events">Acara baru</string> <string name="new_events">Acara baru</string>
<string name="default_start_time">Waktu mulai default</string> <string name="default_start_time">Waktu mulai default</string>
<string name="next_full_hour">Seluruh jam berikutnya</string> <string name="next_full_hour">Satu jam kedepan</string>
<string name="default_duration">Durasi default</string> <string name="default_duration">Durasi default</string>
<string name="last_used_one">Yang terakhir digunakan</string> <string name="last_used_one">Terakhir digunakan</string>
<string name="other_time">Waktu lainnya</string> <string name="other_time">Waktu lainnya</string>
<string name="highlight_weekends">Sorot akhir pekan pada beberapa tampilan</string> <string name="highlight_weekends">Sorot akhir pekan pada beberapa tampilan</string>
@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Acara &amp; Pengingat</string> <string name="app_title">Simple Calendar Pro - Acara &amp; Pengingat</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. <b>Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan!</b> Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. <b>Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan!</b>

View File

@@ -3,19 +3,19 @@
<string name="app_name">Simple Calendar</string> <string name="app_name">Simple Calendar</string>
<string name="app_launcher_name">Kalender</string> <string name="app_launcher_name">Kalender</string>
<string name="change_view">Ubah tampilan</string> <string name="change_view">Ubah tampilan</string>
<string name="daily_view">Tampilan harian</string> <string name="daily_view">Tampilan hari</string>
<string name="weekly_view">Tampilan mingguan</string> <string name="weekly_view">Tampilan minggu</string>
<string name="monthly_view">Tampilan bulanan</string> <string name="monthly_view">Tampilan bulan</string>
<string name="yearly_view">Tampilan tahunan</string> <string name="yearly_view">Tampilan tahun</string>
<string name="simple_event_list">Daftar acara sederhana</string> <string name="simple_event_list">Daftar acara</string>
<string name="no_upcoming_events">Sepertinya anda tidak memiliki acara yang akan datang.</string> <string name="no_upcoming_events">Sepertinya anda tidak memiliki acara yang akan datang.</string>
<string name="go_to_today">Buka hari ini</string> <string name="go_to_today">Buka hari ini</string>
<string name="go_to_date">Buka tanggal</string> <string name="go_to_date">Buka tanggal</string>
<string name="upgraded_from_free">Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih!</string> <string name="upgraded_from_free">Hai,\n\nsepertinya anda memperbarui dari versi aplikasi gratis yang lama. Anda perlu memindahkan acara yang disimpan lokal secara manual dengan cara mengekspornya ke berkas .ics, lalu mengimpornya kembali. Anda bisa menemukan tombol ekspor/impor di layar menu utama.\n\nSetelah itu anda bisa mencopot versi yang lama, yang memiliki tombol \'Tingkatkan ke Pro\' di bagian atas pengaturan aplikasi. Lalu anda hanya perlu menyetel ulang pengaturan aplikasi anda.\n\nTerima kasih!</string>
<!-- Widget titles --> <!-- Widget titles -->
<string name="widget_monthly">Kalender bulanan</string> <string name="widget_monthly">Bulan</string>
<string name="widget_list">Daftar acara kalender</string> <string name="widget_list">Daftar acara</string>
<!-- Event --> <!-- Event -->
<string name="event">Acara</string> <string name="event">Acara</string>
@@ -46,7 +46,7 @@
<string name="event_is_repeatable">Acara berulang</string> <string name="event_is_repeatable">Acara berulang</string>
<string name="selection_contains_repetition">Acara yang dipilih berisi acara yang berulang</string> <string name="selection_contains_repetition">Acara yang dipilih berisi acara yang berulang</string>
<string name="delete_one_only">Hapus acara ini saja</string> <string name="delete_one_only">Hapus acara ini saja</string>
<string name="delete_future_occurrences">Hapus acara ini dan semua perulangannya di masa depan</string> <string name="delete_future_occurrences">Hapus acara ini dan semua perulangannya</string>
<string name="delete_all_occurrences">Hapus semua perulangan acara</string> <string name="delete_all_occurrences">Hapus semua perulangan acara</string>
<string name="update_one_only">Perbarui acara ini saja</string> <string name="update_one_only">Perbarui acara ini saja</string>
<string name="update_all_occurrences">Perbarui semua perulangan acara</string> <string name="update_all_occurrences">Perbarui semua perulangan acara</string>
@@ -144,7 +144,7 @@
<!-- Holidays --> <!-- Holidays -->
<string name="holidays">Hari Libur</string> <string name="holidays">Hari Libur</string>
<string name="add_holidays">Tambah hari libur</string> <string name="add_holidays">Tambahkan hari libur</string>
<string name="national_holidays">Libur nasional</string> <string name="national_holidays">Libur nasional</string>
<string name="religious_holidays">Libur keagamaan</string> <string name="religious_holidays">Libur keagamaan</string>
<string name="holidays_imported_successfully">Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\"</string> <string name="holidays_imported_successfully">Hari libur berhasil diimpor ke dalam kategori acara \"Hari Libur\"</string>
@@ -153,8 +153,8 @@
<!-- Settings --> <!-- Settings -->
<string name="manage_event_types">Kelola kategori acara</string> <string name="manage_event_types">Kelola kategori acara</string>
<string name="start_day_at">Mulai hari pada</string> <string name="start_day_at">Hari dimulai pada jam</string>
<string name="end_day_at">Akhir hari pada</string> <string name="end_day_at">Hari berakhir pada jam</string>
<string name="week_numbers">Tampilkan nomor minggu</string> <string name="week_numbers">Tampilkan nomor minggu</string>
<string name="vibrate">Getar pada notifikasi pengingat</string> <string name="vibrate">Getar pada notifikasi pengingat</string>
<string name="reminder_sound">Suara pengingat</string> <string name="reminder_sound">Suara pengingat</string>
@@ -168,10 +168,10 @@
<string name="delete_all_events">Hapus semua acara</string> <string name="delete_all_events">Hapus semua acara</string>
<string name="delete_all_events_confirmation">Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya.</string> <string name="delete_all_events_confirmation">Apakah anda yakin ingin menghapus semua acara? Tindakan ini tidak akan menghapus kategori dan pengaturan lainnya.</string>
<string name="show_a_grid">Tampilkan grid</string> <string name="show_a_grid">Tampilkan grid</string>
<string name="loop_reminders">Ulangi pengingat sampai diberhentikan</string> <string name="loop_reminders">Ulangi pengingat sampai dihentikan</string>
<string name="dim_past_events">Redupkan acara yang sudah lewat</string> <string name="dim_past_events">Redupkan acara yang sudah lewat</string>
<string name="events">Acara</string> <string name="events">Acara</string>
<string name="reminder_stream">Audio yang digunakan oleh pengingat</string> <string name="reminder_stream">Audio yang digunakan pengingat</string>
<string name="system_stream">Sistem</string> <string name="system_stream">Sistem</string>
<string name="alarm_stream">Alarm</string> <string name="alarm_stream">Alarm</string>
<string name="notification_stream">Notifikasi</string> <string name="notification_stream">Notifikasi</string>
@@ -184,9 +184,9 @@
<string name="last_view">Tampilan terakhir</string> <string name="last_view">Tampilan terakhir</string>
<string name="new_events">Acara baru</string> <string name="new_events">Acara baru</string>
<string name="default_start_time">Waktu mulai default</string> <string name="default_start_time">Waktu mulai default</string>
<string name="next_full_hour">Seluruh jam berikutnya</string> <string name="next_full_hour">Satu jam kedepan</string>
<string name="default_duration">Durasi default</string> <string name="default_duration">Durasi default</string>
<string name="last_used_one">Yang terakhir digunakan</string> <string name="last_used_one">Terakhir digunakan</string>
<string name="other_time">Waktu lainnya</string> <string name="other_time">Waktu lainnya</string>
<string name="highlight_weekends">Sorot akhir pekan pada beberapa tampilan</string> <string name="highlight_weekends">Sorot akhir pekan pada beberapa tampilan</string>
@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Acara &amp; Pengingat</string> <string name="app_title">Simple Calendar Pro - Acara &amp; Pengingat</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. <b>Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan!</b> Simple Calendar Pro adalah kalender luring sederhana yang mudah digunakan dan dibuat sesuai dengan fungsi-fungsi dasar sebuah kalender. <b>Tanpa fitur yang terlalu rumit, perizinan yang tidak diperlukan dan sama sekali tanpa iklan!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Semplice Calendario Pro - Eventi &amp; Promemoria</string> <string name="app_title">Semplice Calendario Pro - Eventi &amp; Promemoria</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Semplice Calendario Pro è un calendario offline completamente personalizzabile progettato per fare esattamente quello che un calendario dovrebbe fare. <b>Non ci sono funzionalità complicate, permessi non necessari e senza pubblicità!</b> Semplice Calendario Pro è un calendario offline completamente personalizzabile progettato per fare esattamente quello che un calendario dovrebbe fare. <b>Non ci sono funzionalità complicate, permessi non necessari e senza pubblicità!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - יומן פשוט</string> <string name="app_title">Simple Calendar Pro - יומן פשוט</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Eenvoudige Agenda Pro - Afspraken &amp; Herinneringen</string> <string name="app_title">Eenvoudige Agenda Pro - Afspraken &amp; Herinneringen</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">Stijlvolle agenda zonder advertenties. 100% niet-goed-geld-teruggarantie.</string>
<string name="app_long_description"> <string name="app_long_description">
Eenvoudige Agenda Pro is een volledig aan te passen offline agenda, ontwikkeld om precies te doen waar een agenda voor bedoeld is. <b>Geen ingewikkelde poespas of onnodige machtigingen, en zonder advertenties!</b> Eenvoudige Agenda Pro is een volledig aan te passen offline agenda, ontwikkeld om precies te doen waar een agenda voor bedoeld is. <b>Geen ingewikkelde poespas of onnodige machtigingen, en zonder advertenties!</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -237,7 +237,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -239,7 +239,7 @@ selecionando a opção \"Fonte de áudio usada pelos lembretes\" e modificando o
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -237,9 +237,9 @@
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Eventos e lembretes</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>
@@ -248,7 +248,7 @@
Daily, weekly and monthly views make checking your upcoming events &amp; appointments a breeze. You can even view everything as a simple list of events rather than in calendar view, so you <b>know exactly whats coming up in your life and when. </b> Daily, weekly and monthly views make checking your upcoming events &amp; appointments a breeze. You can even view everything as a simple list of events rather than in calendar view, so you <b>know exactly whats coming up in your life and when. </b>
---------------------------------------------------------- ----------------------------------------------------------
<b>Simple Calendar Pro Features &amp; Benefits</b> <b>Simple Calendar Pro Funcionalidades</b>
---------------------------------------------------------- ----------------------------------------------------------
✔️ No ads or annoying popups ✔️ No ads or annoying popups
@@ -270,9 +270,9 @@
✔️ Use as a personal calendar or a business calendar ✔️ Use as a personal calendar or a business calendar
✔️ Choose between reminders &amp; email notifications to alert you about an event ✔️ Choose between reminders &amp; email notifications to alert you about an event
DOWNLOAD SIMPLE CALENDAR PRO THE SIMPLE OFFLINE CALENDAR WITH NO ADS! DESCARREGUAR SIMPLE CALENDAR PRO O CALENDÁRIO SIMPLES QUE NÃO TEM ANÚNCIOS!
<b>Check out the full suite of Simple Tools here:</b> <b>Consulte todas as aplicações Simple Tools aqui:</b>
https://www.simplemobiletools.com https://www.simplemobiletools.com
<b>Facebook:</b> <b>Facebook:</b>

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - события и напоминания</string> <string name="app_title">Simple Calendar Pro - события и напоминания</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">Красивый календарь без рекламы и ненужных разрешений.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro — это полностью настраиваемый автономный календарь, предназначенный для выполнения именно того, что должен делать календарь. <b>Никаких непонятных функций, ненужных разрешений и рекламы!</b> Simple Calendar Pro — это полностью настраиваемый автономный календарь, предназначенный для выполнения именно того, что должен делать календарь. <b>Никаких непонятных функций, ненужных разрешений и рекламы!</b>
@@ -268,7 +268,7 @@
✔️ Настройка событий: время начала, продолжительность, напоминания и т.д. ✔️ Настройка событий: время начала, продолжительность, напоминания и т.д.
✔️ Добавление участников мероприятия для каждого события ✔️ Добавление участников мероприятия для каждого события
✔️ Использование как личного, так и рабочего календаря ✔️ Использование как личного, так и рабочего календаря
✔️ На выыбор напоминание или уведомление по электронной почте для предупреждения о событии ✔️ На выбор напоминание или уведомление по электронной почте для предупреждения о событии
СКАЧАЙТЕ SIMPLE CALENDAR PRO - ПРОСТОЙ АВТОНОМНЫЙ КАЛЕНДАРЬ БЕЗ РЕКЛАМЫ! СКАЧАЙТЕ SIMPLE CALENDAR PRO - ПРОСТОЙ АВТОНОМНЫЙ КАЛЕНДАРЬ БЕЗ РЕКЛАМЫ!

View File

@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Jednoduchý kalendár Pro - Udalosti a pripomienky</string> <string name="app_title">Jednoduchý kalendár Pro - Udalosti a pripomienky</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">Krásny kalendár bez reklám a čudných oprávnení.</string> <string name="app_short_description">Krásny kalendár bez reklám so 100% garanciou vrátenia peňazí.</string>
<string name="app_long_description"> <string name="app_long_description">
Jednoduchý kalendár Pro je prispôsobiteľný offline kalendár vytvorený presne na to, čo by kalendáre mali zvládať.<b>Nenachádzajú sa tu žiadne nepotrebné funkcie, nepotrebné oprávnenia, ani reklamy!</b> Jednoduchý kalendár Pro je prispôsobiteľný offline kalendár vytvorený presne na to, čo by kalendáre mali zvládať.<b>Nenachádzajú sa tu žiadne nepotrebné funkcie, nepotrebné oprávnenia, ani reklamy!</b>

View File

@@ -45,10 +45,10 @@
<string name="forever">Alltid</string> <string name="forever">Alltid</string>
<string name="event_is_repeatable">Händelsen är återkommande</string> <string name="event_is_repeatable">Händelsen är återkommande</string>
<string name="selection_contains_repetition">Markeringen innehåller återkommande händelser</string> <string name="selection_contains_repetition">Markeringen innehåller återkommande händelser</string>
<string name="delete_one_only">Ta bara bort den markerade förekomsten</string> <string name="delete_one_only">Ta bara bort den valda förekomsten</string>
<string name="delete_future_occurrences">Ta bort denna och alla framtida förekomster</string> <string name="delete_future_occurrences">Ta bort denna och alla framtida förekomster</string>
<string name="delete_all_occurrences">Ta bort alla förekomster</string> <string name="delete_all_occurrences">Ta bort alla förekomster</string>
<string name="update_one_only">Uppdatera bara den markerade förekomsten</string> <string name="update_one_only">Uppdatera bara den valda förekomsten</string>
<string name="update_all_occurrences">Uppdatera alla förekomster</string> <string name="update_all_occurrences">Uppdatera alla förekomster</string>
<string name="repeat_till_date">Upprepa till ett datum</string> <string name="repeat_till_date">Upprepa till ett datum</string>
<string name="stop_repeating_after_x">Sluta upprepa efter x förekomster</string> <string name="stop_repeating_after_x">Sluta upprepa efter x förekomster</string>
@@ -57,7 +57,7 @@
<string name="repeat">Upprepa</string> <string name="repeat">Upprepa</string>
<string name="repeat_on">Upprepa på</string> <string name="repeat_on">Upprepa på</string>
<string name="every_day">Varje dag</string> <string name="every_day">Varje dag</string>
<string name="selected_days">markerade dagar</string> <string name="selected_days">valda dagar</string>
<string name="the_same_day">Samma dag</string> <string name="the_same_day">Samma dag</string>
<string name="the_last_day">Den sista dagen</string> <string name="the_last_day">Den sista dagen</string>
<string name="repeat_on_the_same_day_monthly">Upprepa på samma dag varje månad</string> <string name="repeat_on_the_same_day_monthly">Upprepa på samma dag varje månad</string>
@@ -85,29 +85,29 @@
<string name="birthdays">Födelsedagar</string> <string name="birthdays">Födelsedagar</string>
<string name="add_birthdays">Lägg till kontakters födelsedagar</string> <string name="add_birthdays">Lägg till kontakters födelsedagar</string>
<string name="no_birthdays">Inga födelsedagar hittades</string> <string name="no_birthdays">Inga födelsedagar hittades</string>
<string name="no_new_birthdays">No new birthdays have been found</string> <string name="no_new_birthdays">Inga nya födelsedagar hittades</string>
<string name="birthdays_added">Födelsedagarna har lagts till</string> <string name="birthdays_added">Födelsedagarna har lagts till</string>
<!-- Anniversaries --> <!-- Anniversaries -->
<string name="anniversaries">Årsdagar</string> <string name="anniversaries">Årsdagar</string>
<string name="add_anniversaries">Lägg till kontakters årsdagar</string> <string name="add_anniversaries">Lägg till kontakters årsdagar</string>
<string name="no_anniversaries">Inga årsdagar hittades</string> <string name="no_anniversaries">Inga årsdagar hittades</string>
<string name="no_new_anniversaries">No new anniversaries have been found</string> <string name="no_new_anniversaries">Inga nya årsdagar hittades</string>
<string name="anniversaries_added">Årsdagarna har lagts till</string> <string name="anniversaries_added">Årsdagarna har lagts till</string>
<!-- Event Reminders --> <!-- Event Reminders -->
<string name="reminder">Påminnelse</string> <string name="reminder">Påminnelse</string>
<string name="before">före</string> <string name="before">innan</string>
<string name="add_another_reminder">Lägg till en annan påminnelse</string> <string name="add_another_reminder">Lägg till en annan påminnelse</string>
<string name="event_reminders">Händelsepåminnelser</string> <string name="event_reminders">Händelsepåminnelser</string>
<!-- Event attendees --> <!-- Event attendees -->
<string name="add_another_attendee">Add another attendee</string> <string name="add_another_attendee">Lägg till en annan deltagare</string>
<string name="my_status">My status:</string> <string name="my_status">Min status:</string>
<string name="going">Going</string> <string name="going">Kommer</string>
<string name="not_going">Not going</string> <string name="not_going">Kommer inte</string>
<string name="maybe_going">Maybe going</string> <string name="maybe_going">Kommer kanske</string>
<string name="invited">Invited</string> <string name="invited">Inbjuden</string>
<!-- Export / Import --> <!-- Export / Import -->
<string name="import_events">Importera händelser</string> <string name="import_events">Importera händelser</string>
@@ -188,7 +188,7 @@
<string name="default_duration">Standardvaraktighet</string> <string name="default_duration">Standardvaraktighet</string>
<string name="last_used_one">Senast använda</string> <string name="last_used_one">Senast använda</string>
<string name="other_time">Annan tid</string> <string name="other_time">Annan tid</string>
<string name="highlight_weekends">Highlight weekends on some views</string> <string name="highlight_weekends">Markera veckoslut i vissa vyer</string>
<!-- CalDAV sync --> <!-- CalDAV sync -->
<string name="caldav">CalDAV</string> <string name="caldav">CalDAV</string>
@@ -220,7 +220,7 @@
<string name="sample_title_2">Möte med Johan</string> <string name="sample_title_2">Möte med Johan</string>
<string name="sample_description_2">I trädgården</string> <string name="sample_description_2">I trädgården</string>
<string name="sample_title_3">Biblioteket</string> <string name="sample_title_3">Biblioteket</string>
<string name="sample_title_4">Lunch med Marie</string> <string name="sample_title_4">Lunch med Maria</string>
<string name="sample_description_4">På stranden</string> <string name="sample_description_4">På stranden</string>
<string name="sample_title_5">Kaffedags</string> <string name="sample_title_5">Kaffedags</string>
@@ -239,7 +239,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

View File

@@ -238,7 +238,7 @@
<!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it --> <!-- App title has to have less than 50 characters. If you cannot squeeze it, just remove a part of it -->
<string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string> <string name="app_title">Simple Calendar Pro - Events &amp; Reminders</string>
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">A beautiful calendar without ads or weird permissions.</string> <string name="app_short_description">A beautiful calendar without ads, 100% money back guarantee.</string>
<string name="app_long_description"> <string name="app_long_description">
Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b> Simple Calendar Pro is a fully customizable, offline calendar designed to do exactly what a calendar should do. <b>No complicated features, unnecessary permissions and no ads!</b>

Some files were not shown because too many files have changed in this diff Show More