Merge branch 'lineage-21.0' of https://github.com/LineageOS/android_packages_apps_Etar into leaf-3.2

Change-Id: I07137b67d58c9466e3f214acd9498579c33babd5
diff --git a/app/Android.bp b/app/Android.bp
index 4b0a69c..57de317 100644
--- a/app/Android.bp
+++ b/app/Android.bp
@@ -49,7 +49,9 @@
     kotlincflags: ["-Xjvm-default=all"],
 
     required: [
-        "org.leafos.etar.allowlist"
+        "org.leafos.etar.allowlist",
+        "initial-package-stopped-states-org.leafos.etar",
+        "preinstalled-packages-org.leafos.etar",
     ],
 }
 
@@ -79,3 +81,19 @@
     src: "org.leafos.etar.allowlist.xml",
     filename_from_src: true,
 }
+
+prebuilt_etc {
+    name: "initial-package-stopped-states-org.leafos.etar",
+    product_specific: true,
+    sub_dir: "sysconfig",
+    src: "initial-package-stopped-states-org.leafos.etar.xml",
+    filename_from_src: true,
+}
+
+prebuilt_etc {
+    name: "preinstalled-packages-org.leafos.etar",
+    product_specific: true,
+    sub_dir: "sysconfig",
+    src: "preinstalled-packages-org.leafos.etar.xml",
+    filename_from_src: true,
+}
diff --git a/app/build.gradle b/app/build.gradle
deleted file mode 100644
index 4d5fb68..0000000
--- a/app/build.gradle
+++ /dev/null
@@ -1,119 +0,0 @@
-
-plugins {
-    id 'com.android.application'
-    id 'org.jetbrains.kotlin.android'
-    id 'org.ec4j.editorconfig'
-}
-
-editorconfig {
-    excludes = ['external/**', 'metadata/**', '**/*.webp']
-}
-
-android {
-    namespace 'ws.xsoh.etar'
-    testNamespace 'com.android.calendar.tests'
-    compileSdk 34
-
-    defaultConfig {
-        minSdk 26
-        targetSdk 34
-        versionCode 42
-        versionName "1.0.42"
-        applicationId "ws.xsoh.etar"
-        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
-    }
-
-    sourceSets {
-        main.java.srcDirs += '../external/ex/common/java'
-    }
-
-    buildTypes {
-        release {
-            // TODO: could be enabled for ProGuard minimization
-            minifyEnabled false
-        }
-
-        debug {
-            minifyEnabled false
-
-            applicationIdSuffix ".debug"
-        }
-    }
-
-    /*
-     * To sign release build, create file gradle.properties in ~/.gradle/ with this content:
-     *
-     * signingStoreLocation=/home/key.store
-     * signingStorePassword=xxx
-     * signingKeyAlias=alias
-     * signingKeyPassword=xxx
-     */
-    if (project.hasProperty('signingStoreLocation') &&
-            project.hasProperty('signingStorePassword') &&
-            project.hasProperty('signingKeyAlias') &&
-            project.hasProperty('signingKeyPassword')) {
-        println "Found sign properties in gradle.properties! Signing build…"
-
-        signingConfigs {
-            release {
-                storeFile file(signingStoreLocation)
-                storePassword signingStorePassword
-                keyAlias signingKeyAlias
-                keyPassword signingKeyPassword
-            }
-        }
-
-        buildTypes.release.signingConfig = signingConfigs.release
-    } else {
-        buildTypes.release.signingConfig = null
-    }
-
-    lint {
-        checkReleaseBuilds false
-        // Or, if you prefer, you can continue to check for errors in release builds,
-        // but continue the build even when errors are found:
-        abortOnError false
-    }
-
-    compileOptions {
-        coreLibraryDesugaringEnabled true
-
-        sourceCompatibility JavaVersion.VERSION_11
-        targetCompatibility JavaVersion.VERSION_11
-    }
-
-    kotlinOptions {
-        jvmTarget = "11"
-    }
-
-    useLibrary 'android.test.base'
-    useLibrary 'android.test.mock'
-}
-
-dependencies {
-
-    // Core
-    implementation 'androidx.core:core-ktx:1.12.0'
-    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
-    implementation 'androidx.preference:preference:1.2.1'
-    implementation 'androidx.appcompat:appcompat:1.6.1'
-    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
-    implementation 'com.google.android.material:material:1.11.0'
-    testImplementation 'junit:junit:4.13.2'
-
-    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
-
-    // Coroutines
-    def coroutines_version = "1.7.3"
-    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
-    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
-
-    // https://mvnrepository.com/artifact/org.dmfs/lib-recur
-    implementation 'org.dmfs:lib-recur:0.15.0'
-
-}
-
-ext.targetSdk = android.defaultConfig.targetSdk
-apply from: 'generatebp.gradle.kts'
-
-preBuild.dependsOn (":aarGen")
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
new file mode 100644
index 0000000..897ad0d
--- /dev/null
+++ b/app/build.gradle.kts
@@ -0,0 +1,142 @@
+import com.android.build.gradle.internal.tasks.factory.dependsOn
+
+plugins {
+	id("com.android.application")
+	id("org.jetbrains.kotlin.android")
+	id("org.ec4j.editorconfig")
+}
+
+editorconfig {
+	excludes = listOf("external/**", "metadata/**", "**/*.webp")
+}
+
+android {
+	namespace = "ws.xsoh.etar"
+	testNamespace = "com.android.calendar.tests"
+	compileSdk = 34
+
+	defaultConfig {
+		minSdk = 26
+		targetSdk = 34
+		versionCode = 45
+		versionName = "1.0.45"
+		applicationId = "ws.xsoh.etar"
+		testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+	}
+
+	sourceSets {
+		named("main").get().java.srcDirs("../external/ex/common/java")
+	}
+
+	buildTypes {
+		release {
+			// TODO: could be enabled for ProGuard minimization
+			isMinifyEnabled = false
+			resValue(
+				"string",
+				"search_authority",
+				defaultConfig.applicationId + ".CalendarRecentSuggestionsProvider"
+			)
+		}
+
+		debug {
+			isMinifyEnabled = false
+
+			applicationIdSuffix = ".debug"
+			resValue(
+				"string",
+				"search_authority",
+				defaultConfig.applicationId + ".debug.CalendarRecentSuggestionsProvider"
+			)
+		}
+	}
+
+	buildFeatures {
+		viewBinding = true
+	}
+
+	/*
+	 * To sign release build, create file gradle.properties in ~/.gradle/ with this content:
+	 *
+	 * signingStoreLocation=/home/key.store
+	 * signingStorePassword=xxx
+	 * signingKeyAlias=alias
+	 * signingKeyPassword=xxx
+	 */
+	val signingStoreLocation: String? by project
+	val signingStorePassword: String? by project
+	val signingKeyAlias: String? by project
+	val signingKeyPassword: String? by project
+
+	if (
+		signingStoreLocation != null &&
+		signingStorePassword != null &&
+		signingKeyAlias != null &&
+		signingKeyPassword != null
+	) {
+		println("Found sign properties in gradle.properties! Signing build…")
+
+		signingConfigs {
+			named("release").configure {
+				storeFile = File(signingStoreLocation!!)
+				storePassword = signingStorePassword
+				keyAlias = signingKeyAlias
+				keyPassword = signingKeyPassword
+			}
+		}
+
+		buildTypes.named("release").get().signingConfig = signingConfigs.named("release").get()
+	} else {
+		buildTypes.named("release").get().signingConfig = null
+	}
+
+	lint {
+		lintConfig = file("lint.xml")
+		// TODO: Resolve lint errors due to 363aa9c237a33e9e1a40bdfd9039dcaaa855a5a0
+		abortOnError = false
+	}
+
+	compileOptions {
+		isCoreLibraryDesugaringEnabled = true
+
+		sourceCompatibility(JavaVersion.VERSION_17)
+		targetCompatibility(JavaVersion.VERSION_17)
+	}
+
+	kotlinOptions {
+		jvmTarget = "17"
+	}
+
+	useLibrary("android.test.base")
+	useLibrary("android.test.mock")
+
+	androidResources {
+		generateLocaleConfig = true
+	}
+
+}
+
+dependencies {
+
+	// Core
+	implementation("androidx.core:core-ktx:1.12.0")
+	implementation(fileTree("include" to arrayOf("*.jar", "*.aar"), "dir" to "libs"))
+	implementation("androidx.preference:preference:1.2.1")
+	implementation("androidx.appcompat:appcompat:1.6.1")
+	implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+	implementation("com.google.android.material:material:1.11.0")
+	testImplementation("junit:junit:4.13.2")
+
+	coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
+
+	// Coroutines
+	val coroutines_version = "1.8.0"
+	implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version")
+	implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version")
+
+	// https://mvnrepository.com/artifact/org.dmfs/lib-recur
+	implementation("org.dmfs:lib-recur:0.16.0")
+
+}
+
+tasks.preBuild.dependsOn(":aarGen")
diff --git a/app/initial-package-stopped-states-org.leafos.etar.xml b/app/initial-package-stopped-states-org.leafos.etar.xml
new file mode 100644
index 0000000..a64dc0a
--- /dev/null
+++ b/app/initial-package-stopped-states-org.leafos.etar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2024 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<config>
+    <initial-package-state package="org.leafos.etar" stopped="false"/>
+</config>
diff --git a/app/lint.xml b/app/lint.xml
new file mode 100644
index 0000000..db997a5
--- /dev/null
+++ b/app/lint.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lint>
+    <issue id="MissingTranslation" severity="ignore" />
+</lint>
diff --git a/app/preinstalled-packages-org.leafos.etar.xml b/app/preinstalled-packages-org.leafos.etar.xml
new file mode 100644
index 0000000..48b56d8
--- /dev/null
+++ b/app/preinstalled-packages-org.leafos.etar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2024 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<config>
+    <install-in-user-type package="org.leafos.etar">
+        <install-in user-type="FULL" />
+        <install-in user-type="PROFILE" />
+        <do-not-install-in user-type="android.os.usertype.profile.CLONE" />
+        <do-not-install-in user-type="android.os.usertype.profile.PRIVATE" />
+    </install-in-user-type>
+</config>
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 58cf064..6d9dddf 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -1,6 +1,6 @@
 # Add project specific ProGuard rules here.
 # You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
+# proguardFiles setting in build.gradle.kts.
 #
 # For more details, see
 #   http://developer.android.com/guide/developing/tools/proguard.html
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dced442..4608cfe 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,6 +31,7 @@
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED" />
     <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
     <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
diff --git a/app/src/main/java/com/android/calendar/EventInfoFragment.java b/app/src/main/java/com/android/calendar/EventInfoFragment.java
index 831bcc4..264ccf3 100644
--- a/app/src/main/java/com/android/calendar/EventInfoFragment.java
+++ b/app/src/main/java/com/android/calendar/EventInfoFragment.java
@@ -2088,7 +2088,7 @@
         // for simplicity).
 
         // TODO Switch to EditEventHelper.canRespond when this class uses CalendarEventModel.
-        if (!mCanModifyCalendar || (mHasAttendeeData && mIsOrganizer && mNumOfAttendees <= 1) ||
+        if (!mCanModifyCalendar || !mHasAttendeeData || (mIsOrganizer && mNumOfAttendees <= 1) ||
                 (mIsOrganizer && !mOwnerCanRespond)) {
             setVisibilityCommon(view, R.id.response_container, View.GONE);
             return;
diff --git a/app/src/main/java/com/android/calendar/Utils.java b/app/src/main/java/com/android/calendar/Utils.java
index 4defa19..9302231 100644
--- a/app/src/main/java/com/android/calendar/Utils.java
+++ b/app/src/main/java/com/android/calendar/Utils.java
@@ -1428,9 +1428,13 @@
      * @param act The activity using the view
      */
     public static void setUpSearchView(SearchView view, Activity act) {
-        SearchManager searchManager = (SearchManager) act.getSystemService(Context.SEARCH_SERVICE);
-        view.setSearchableInfo(searchManager.getSearchableInfo(act.getComponentName()));
-        view.setQueryRefinementEnabled(true);
+        try {
+            SearchManager searchManager = (SearchManager) act.getSystemService(Context.SEARCH_SERVICE);
+            view.setSearchableInfo(searchManager.getSearchableInfo(act.getComponentName()));
+            view.setQueryRefinementEnabled(true);
+        } catch (Exception e) {
+            Log.d(TAG, "Search Service not found");
+        }
     }
 
     /**
diff --git a/app/src/main/java/com/android/calendar/alerts/AlertReceiver.java b/app/src/main/java/com/android/calendar/alerts/AlertReceiver.java
index e4b08f4..b2f0958 100644
--- a/app/src/main/java/com/android/calendar/alerts/AlertReceiver.java
+++ b/app/src/main/java/com/android/calendar/alerts/AlertReceiver.java
@@ -47,6 +47,8 @@
 import android.util.Log;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
+
 import com.android.calendar.DynamicTheme;
 import com.android.calendar.Utils;
 import com.android.calendar.alerts.AlertService.NotificationWrapper;
@@ -197,8 +199,16 @@
         return PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | Utils.PI_FLAG_IMMUTABLE);
     }
 
+    // if default snooze minute < 0, means the snooze option is disable
+    // in this case return null as intent
+    @Nullable
     private static PendingIntent createSnoozeIntent(Context context, long eventId,
             long startMillis, long endMillis, int notificationId) {
+
+        if (Utils.getDefaultSnoozeDelayMs(context) < 0L) {
+            return null;
+        }
+
         Intent intent = new Intent();
         intent.putExtra(AlertUtils.EVENT_ID_KEY, eventId);
         intent.putExtra(AlertUtils.EVENT_START_KEY, startMillis);
@@ -264,7 +274,7 @@
         // Create the base notification.
         notificationBuilder.setContentTitle(title);
         notificationBuilder.setContentText(summaryText);
-        notificationBuilder.setSmallIcon(R.drawable.stat_notify_calendar);
+        notificationBuilder.setSmallIcon(R.drawable.stat_notify_calendar_events);
         int color = DynamicTheme.getColorId(DynamicTheme.getPrimaryColor(context));
         notificationBuilder.setColor(context.getResources().getColor(color));
         notificationBuilder.setContentIntent(clickIntent);
diff --git a/app/src/main/java/com/android/calendar/alerts/AlertService.java b/app/src/main/java/com/android/calendar/alerts/AlertService.java
index a2ff8a9..a7c0da7 100644
--- a/app/src/main/java/com/android/calendar/alerts/AlertService.java
+++ b/app/src/main/java/com/android/calendar/alerts/AlertService.java
@@ -935,7 +935,7 @@
                 createChannels(this);
                 Notification notification = new NotificationCompat.Builder(this, FOREGROUND_CHANNEL_ID)
                         .setContentTitle(getString(R.string.foreground_notification_title))
-                        .setSmallIcon(R.drawable.stat_notify_calendar)
+                        .setSmallIcon(R.drawable.stat_notify_refresh_events)
                         .setShowWhen(false)
                         .build();
                 if (Utils.isQOrLater()) {
diff --git a/app/src/main/java/com/android/calendar/alerts/SnoozeAlarmsService.java b/app/src/main/java/com/android/calendar/alerts/SnoozeAlarmsService.java
index 8767687..a72291f 100644
--- a/app/src/main/java/com/android/calendar/alerts/SnoozeAlarmsService.java
+++ b/app/src/main/java/com/android/calendar/alerts/SnoozeAlarmsService.java
@@ -33,6 +33,7 @@
 import androidx.core.content.ContextCompat;
 
 import com.android.calendar.Utils;
+import com.android.calendar.settings.GeneralPreferences;
 
 /**
  * Service for asynchronously marking a fired alarm as dismissed and scheduling
@@ -93,6 +94,10 @@
             resolver.update(uri, dismissValues, selection, null);
 
             // Add a new alarm
+            if (snoozeDelay < 0) {
+                snoozeDelay = GeneralPreferences.SNOOZE_DELAY_DEFAULT_TIME * 60L * 1000L;
+            }
+
             long alarmTime = System.currentTimeMillis() + snoozeDelay;
             ContentValues values = AlertUtils.makeContentValues(eventId, eventStart, eventEnd,
                     alarmTime, 0);
diff --git a/app/src/main/java/com/android/calendar/alerts/SnoozeDelayActivity.java b/app/src/main/java/com/android/calendar/alerts/SnoozeDelayActivity.java
index 41e9d2c..dd228c4 100644
--- a/app/src/main/java/com/android/calendar/alerts/SnoozeDelayActivity.java
+++ b/app/src/main/java/com/android/calendar/alerts/SnoozeDelayActivity.java
@@ -24,6 +24,7 @@
 import android.widget.TimePicker;
 
 import com.android.calendar.Utils;
+import com.android.calendar.settings.GeneralPreferences;
 
 import ws.xsoh.etar.R;
 
@@ -55,6 +56,11 @@
         if (id == DIALOG_DELAY) {
             TimePickerDialog tpd = (TimePickerDialog) d;
             int delayMinutes = (int) (Utils.getDefaultSnoozeDelayMs(this) / (60L * 1000L));
+
+            if (delayMinutes < 0) {
+                delayMinutes = GeneralPreferences.SNOOZE_DELAY_DEFAULT_TIME;
+            }
+
             int hours = delayMinutes / 60;
             int minutes = delayMinutes % 60;
 
diff --git a/app/src/main/java/com/android/calendar/event/EditEventActivity.java b/app/src/main/java/com/android/calendar/event/EditEventActivity.java
index 63ba01f..2a5dbb1 100644
--- a/app/src/main/java/com/android/calendar/event/EditEventActivity.java
+++ b/app/src/main/java/com/android/calendar/event/EditEventActivity.java
@@ -171,9 +171,19 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == android.R.id.home) {
-            Utils.returnToCalendarHome(this);
+            onBackPressed();
             return true;
         }
         return super.onOptionsItemSelected(item);
     }
+
+    @Override
+    public void onBackPressed() {
+        if (mEditFragment != null) {
+            mEditFragment.onBackPressed();
+            return;
+        }
+
+        super.onBackPressed();
+    }
 }
diff --git a/app/src/main/java/com/android/calendar/event/EditEventFragment.java b/app/src/main/java/com/android/calendar/event/EditEventFragment.java
index 7d7bbd8..d226abb 100644
--- a/app/src/main/java/com/android/calendar/event/EditEventFragment.java
+++ b/app/src/main/java/com/android/calendar/event/EditEventFragment.java
@@ -559,19 +559,37 @@
         return mModel.isEmpty();
     }
 
-    @Override
-    public void onPause() {
-        Activity act = getActivity();
-        if (mSaveOnDetach && act != null && !mIsReadOnly && !act.isChangingConfigurations()
-                && mView.prepareForSave()) {
-            mOnDone.setDoneCode(Utils.DONE_SAVE);
-            mOnDone.run();
+    public void onBackPressed() {
+        if (canSave()) {
+            showDiscardConfirmAlert();
+            return;
         }
-        if (act !=null && (Build.VERSION.SDK_INT < 23 ||
-                    ContextCompat.checkSelfPermission(EditEventFragment.this.getActivity(),
-                        Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED))
-            act.finish();
-        super.onPause();
+
+        Utils.returnToCalendarHome(getActivity());
+    }
+
+    private boolean canSave() {
+        Activity act = getActivity();
+        return mSaveOnDetach && act != null && !mIsReadOnly && !act.isChangingConfigurations()
+               && mView.prepareForSave();
+    }
+
+    private void showDiscardConfirmAlert() {
+        new AlertDialog.Builder(getActivity())
+                .setMessage(R.string.discard_event_changes)
+                .setCancelable(true)
+                .setPositiveButton(R.string.discard, ((dialog, which) -> {
+                    revertEventChanges();
+                    Utils.returnToCalendarHome(getActivity());
+                    dialog.cancel();
+                }))
+                .setNegativeButton(R.string.cancel, ((dialog, which) -> dialog.cancel()))
+                .show();
+    }
+
+    private void revertEventChanges() {
+            mOnDone.setDoneCode(Utils.DONE_REVERT);
+            mOnDone.run();
     }
 
     @Override
diff --git a/app/src/main/java/com/android/calendar/event/EventViewUtils.java b/app/src/main/java/com/android/calendar/event/EventViewUtils.java
index ed72ce0..997a569 100644
--- a/app/src/main/java/com/android/calendar/event/EventViewUtils.java
+++ b/app/src/main/java/com/android/calendar/event/EventViewUtils.java
@@ -46,8 +46,14 @@
     // if the given minutes is 63, then this returns the string "63 minutes".
     // As another example, if the given minutes is 120, then this returns
     // "2 hours".
+    // if minute is < 0, returns `None`
     public static String constructReminderLabel(Context context, int minutes, boolean abbrev) {
         Resources resources = context.getResources();
+
+        if (minutes < 0) {
+            return resources.getString(R.string.no_snooze_label);
+        }
+
         int value, resId;
 
         if (minutes == Integer.MIN_VALUE) {
diff --git a/app/src/main/java/com/android/calendar/month/MonthListView.java b/app/src/main/java/com/android/calendar/month/MonthListView.java
index 27b7218..02ddf88 100644
--- a/app/src/main/java/com/android/calendar/month/MonthListView.java
+++ b/app/src/main/java/com/android/calendar/month/MonthListView.java
@@ -44,11 +44,13 @@
     private static int FLING_VELOCITY_DIVIDER = 500;
     private static int FLING_TIME = 1000;
     private static int LEFT_RIGHT_DISTANCE = 150;
+    private static double LEFT_RIGHT_RATIO = 1.25;
 
     // disposable variable used for time calculations
     protected Time mTempTime;
     private long mDownActionTime;
-    private float mLeftRightAction;
+    private float mLeftRightActionLeft;
+    private float mLeftRightActionRight;
     private final Rect mFirstViewRect = new Rect();
 
     Context mListContext;
@@ -111,7 +113,8 @@
             case MotionEvent.ACTION_DOWN:
                 mTracker.clear();
                 mDownActionTime = SystemClock.uptimeMillis();
-                mLeftRightAction =  ev.getX();
+                mLeftRightActionLeft =  ev.getX();
+                mLeftRightActionRight = ev.getY();
                 break;
             // Accumulate velocity and do a custom fling when above threshold
             // and look for left/right swipes as well.
@@ -125,8 +128,9 @@
                     return true;
                 }
                 // Check for the left/right swipe.
-                float leftRightSwipe = mLeftRightAction - ev.getX();
-                if( Math.abs(leftRightSwipe) > LEFT_RIGHT_DISTANCE ) {
+                float leftRightSwipe = mLeftRightActionLeft - ev.getX();
+                float leftRightRatio = Math.abs(leftRightSwipe) / Math.abs(mLeftRightActionRight - ev.getY());
+                if( Math.abs(leftRightSwipe) > LEFT_RIGHT_DISTANCE && leftRightRatio > LEFT_RIGHT_RATIO ) {
                     if( leftRightSwipe > 0 ) {
                         doLeftRight(1);
                     } else {
diff --git a/app/src/main/java/com/android/calendar/settings/GeneralPreferences.kt b/app/src/main/java/com/android/calendar/settings/GeneralPreferences.kt
index 14f6ead..1597105 100644
--- a/app/src/main/java/com/android/calendar/settings/GeneralPreferences.kt
+++ b/app/src/main/java/com/android/calendar/settings/GeneralPreferences.kt
@@ -74,6 +74,7 @@
     private lateinit var homeTzPref: Preference
     private lateinit var popupPref: SwitchPreference
     private lateinit var snoozeDelayPref: ListPreference
+    private lateinit var useDefaultCustomSnoozeDelayPref: Preference
     private lateinit var defaultReminderPref: ListPreference
     private lateinit var copyDbPref: Preference
     private lateinit var skipRemindersPref: ListPreference
@@ -119,6 +120,7 @@
         homeTzPref = preferenceScreen.findPreference(KEY_HOME_TZ)!!
         popupPref = preferenceScreen.findPreference(KEY_ALERTS_POPUP)!!
         snoozeDelayPref = preferenceScreen.findPreference(KEY_DEFAULT_SNOOZE_DELAY)!!
+        useDefaultCustomSnoozeDelayPref = preferenceScreen.findPreference(KEY_USE_CUSTOM_SNOOZE_DELAY)!!
         defaultReminderPref = preferenceScreen.findPreference(KEY_DEFAULT_REMINDER)!!
         copyDbPref = preferenceScreen.findPreference(KEY_OTHER_COPY_DB)!!
         skipRemindersPref = preferenceScreen.findPreference(KEY_OTHER_REMINDERS_RESPONDED)!!
@@ -156,6 +158,7 @@
 
         buildSnoozeDelayEntries()
         buildDefaultReminderPrefEntries()
+        handleUseCustomSnoozeDelayVisibility()
         defaultEventDurationPref.summary = defaultEventDurationPref.entry
         themePref.summary = themePref.entry
         weekStartPref.summary = weekStartPref.entry
@@ -188,6 +191,10 @@
         initializeColorMap()
     }
 
+    private fun handleUseCustomSnoozeDelayVisibility() {
+        useDefaultCustomSnoozeDelayPref.isEnabled = Integer.parseInt(snoozeDelayPref.value) >= 0
+    }
+
     private fun showColorPickerDialog() {
         val colorPickerDialog = ColorPickerDialogX()
         val selectedColorName = Utils.getSharedPreference(activity, KEY_COLOR_PREF, "teal")
@@ -355,6 +362,7 @@
             snoozeDelayPref -> {
                 snoozeDelayPref.value = newValue as String
                 snoozeDelayPref.summary = snoozeDelayPref.entry
+                handleUseCustomSnoozeDelayVisibility()
             }
             defaultStartPref -> {
                 val i = defaultStartPref.findIndexOfValue(newValue as String)
diff --git a/app/src/main/res/drawable/ic_error_outline.xml b/app/src/main/res/drawable/ic_error_outline.xml
new file mode 100644
index 0000000..7b4fbf9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_error_outline.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?attr/colorControlNormal"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M11,15h2v2h-2zM11,7h2v6h-2zM11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
+</vector>
diff --git a/app/src/main/res/drawable/stat_notify_calendar_events.xml b/app/src/main/res/drawable/stat_notify_calendar_events.xml
new file mode 100644
index 0000000..64be285
--- /dev/null
+++ b/app/src/main/res/drawable/stat_notify_calendar_events.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="#ffffff"
+    android:height="24dp"
+    android:viewportHeight="24.342"
+    android:viewportWidth="24.342"
+    android:width="24dp">
+
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M3.046,0.065C1.362,0.065 0.006,1.421 0.006,3.105v18.2c0,1.684 1.355,3.039 3.039,3.039h18.261c1.684,0 3.039,-1.355 3.039,-3.039v-18.2c0,-1.684 -1.355,-3.039 -3.039,-3.039h-2.562v0.53a1.62,1.62 0,0 1,0.647 1.312c0,0.874 -0.658,1.582 -1.468,1.582s-1.467,-0.708 -1.467,-1.582a1.62,1.62 0,0 1,0.647 -1.312v-0.53L7.186,0.066v0.53a1.62,1.62 0,0 1,0.648 1.312c0,0.874 -0.658,1.582 -1.468,1.582s-1.468,-0.708 -1.468,-1.582A1.62,1.62 0,0 1,5.547 0.596v-0.53zM3.268,6.895h17.956c0.337,0 0.608,0.271 0.608,0.608v13.654c0,0.337 -0.271,0.608 -0.608,0.608L3.268,21.765c-0.337,0 -0.608,-0.271 -0.608,-0.608L2.66,7.504c0,-0.337 0.271,-0.608 0.608,-0.608zM16.113,9.862c-1.103,0 -1.953,0.403 -2.551,1.209s-0.898,1.944 -0.898,3.427 0.3,2.622 0.898,3.427 1.448,1.202 2.551,1.202 1.948,-0.401 2.546,-1.202 0.897,-1.948 0.897,-3.427 -0.299,-2.626 -0.897,-3.427 -1.447,-1.209 -2.546,-1.209zM7.751,9.863c-0.404,0 -0.815,0.03 -1.234,0.096a9.3,9.3 0,0 0,-1.267 0.287v1.687a5.5,5.5 0,0 1,1.06 -0.371c0.355,-0.084 0.707,-0.126 1.055,-0.126 0.471,0 0.835,0.093 1.093,0.28s0.387,0.452 0.387,0.795c0,0.371 -0.132,0.649 -0.398,0.832s-0.67,0.269 -1.212,0.269h-0.908v1.483h0.863c0.609,0 1.07,0.105 1.38,0.317s0.471,0.515 0.471,0.922c0,0.395 -0.153,0.698 -0.459,0.909s-0.741,0.318 -1.313,0.318c-0.385,0 -0.778,-0.054 -1.178,-0.162s-0.796,-0.276 -1.2,-0.491v1.776a7.75,7.75 0,0 0,1.279 0.33c0.434,0.076 0.866,0.113 1.296,0.113 1.219,0 2.145,-0.229 2.781,-0.688s0.954,-1.137 0.954,-2.022c0,-0.594 -0.147,-1.083 -0.442,-1.466s-0.721,-0.658 -1.285,-0.813c0.505,-0.136 0.887,-0.369 1.145,-0.701s0.387,-0.763 0.387,-1.285c0,-0.766 -0.271,-1.338 -0.813,-1.717s-1.352,-0.574 -2.44,-0.574zM16.113,11.436c0.464,0 0.793,0.229 0.988,0.688s0.297,1.24 0.297,2.357c0,1.129 -0.098,1.924 -0.297,2.387s-0.528,0.694 -0.988,0.694 -0.795,-0.232 -0.993,-0.694 -0.297,-1.258 -0.297,-2.387c0,-1.117 0.098,-1.902 0.297,-2.357s0.529,-0.688 0.993,-0.688z"/>
+
+</vector>
diff --git a/app/src/main/res/drawable/stat_notify_refresh_events.xml b/app/src/main/res/drawable/stat_notify_refresh_events.xml
new file mode 100644
index 0000000..f2fede3
--- /dev/null
+++ b/app/src/main/res/drawable/stat_notify_refresh_events.xml
@@ -0,0 +1,18 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:tint="#ffffff"
+    android:width="24dp"
+    android:height="24.005302dp"
+    android:viewportWidth="25.145"
+    android:viewportHeight="25.15">
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M7.745,9.797c-0.404,0 -0.816,0.031 -1.234,0.097 -0.42,0.064 -0.842,0.16 -1.268,0.287v1.687a5.501,5.501 0,0 1,1.06 -0.371,4.588 4.588,0 0,1 1.055,-0.126c0.47,0 0.835,0.093 1.093,0.28 0.258,0.188 0.387,0.453 0.387,0.796 0,0.37 -0.133,0.649 -0.398,0.832 -0.266,0.18 -0.67,0.269 -1.212,0.269H6.32v1.483h0.864c0.609,0 1.069,0.106 1.38,0.317 0.313,0.207 0.47,0.515 0.47,0.922 0,0.395 -0.152,0.697 -0.459,0.908 -0.303,0.212 -0.74,0.319 -1.313,0.319 -0.385,0 -0.778,-0.054 -1.178,-0.162a6.057,6.057 0,0 1,-1.2 -0.492v1.777c0.422,0.148 0.849,0.258 1.279,0.33 0.434,0.075 0.866,0.113 1.296,0.113 1.219,0 2.145,-0.23 2.78,-0.688 0.636,-0.462 0.954,-1.136 0.954,-2.021 0,-0.595 -0.146,-1.084 -0.442,-1.467 -0.291,-0.386 -0.72,-0.657 -1.285,-0.813 0.504,-0.136 0.887,-0.369 1.145,-0.7 0.258,-0.335 0.387,-0.763 0.387,-1.286 0,-0.766 -0.271,-1.338 -0.814,-1.717 -0.538,-0.382 -1.351,-0.574 -2.44,-0.574zM18.263,18.293c0.044,-0.04 0.088,-0.083 0.13,-0.127l-0.025,0.023a4.75,4.75 0,0 0,-0.081 0.08l-0.024,0.024z"/>
+
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M16.345,9.797c-1.103,0 -1.953,0.403 -2.552,1.208 -0.55,0.738 -0.847,1.765 -0.891,3.08a6.84,6.84 0,0 1,2.455 -2.037c0.199,-0.451 0.528,-0.677 0.988,-0.677 0.215,0 0.401,0.05 0.559,0.15 0.322,-0.065 0.65,-0.108 0.981,-0.119 0.435,-0.025 0.869,0 1.296,0.065a3.592,3.592 0,0 0,-0.29 -0.462c-0.599,-0.805 -1.447,-1.208 -2.546,-1.208z" android:strokeWidth=".999989"/>
+
+  <path
+      android:fillColor="#FF000000"
+      android:pathData="M3.04,0A3.032,3.032 0,0 0,0 3.04v18.198a3.032,3.032 0,0 0,3.04 3.04l12.192,-0.006c0.052,0.03 0.104,0.06 0.157,0.087 2.56,1.44 6.03,0.866 7.992,-1.32 1.939,-2.01 2.314,-5.278 0.953,-7.695l0.006,-12.305A3.032,3.032 0,0 0,21.3 0h-2.562v0.53c0.405,0.294 0.648,0.786 0.648,1.312 0,0.874 -0.658,1.582 -1.468,1.582 -0.81,0 -1.467,-0.708 -1.467,-1.582 0,-0.526 0.243,-1.018 0.647,-1.312L17.098,0L7.18,0v0.53c0.405,0.294 0.648,0.786 0.648,1.312 0,0.874 -0.657,1.582 -1.468,1.582 -0.81,0 -1.468,-0.708 -1.468,-1.582 0,-0.526 0.243,-1.018 0.648,-1.312L5.54,0zM3.261,6.83h17.956c0.337,0 0.609,0.271 0.609,0.608v5.369a6.572,6.572 0,0 0,-3.623 -0.875c-2.931,0.097 -5.595,2.384 -6.143,5.264 -0.34,1.528 -0.063,3.141 0.675,4.504L3.26,21.7a0.607,0.607 0,0 1,-0.608 -0.608L2.652,7.438c0,-0.337 0.272,-0.608 0.608,-0.608zM18.536,13.991c2.396,-0.06 4.562,2.067 4.545,4.463 0.039,2.538 -2.427,4.829 -4.952,4.61 -1.936,-0.272 -3.653,-1.85 -4.053,-3.708 -0.526,-2.364 1.235,-4.89 3.61,-5.284 0.28,-0.057 0.565,-0.078 0.85,-0.08zM17.503,15.024v3.84c1.116,0.67 2.233,1.338 3.348,2.009l0.786,-1.293 -2.59,-1.537v-3.019z"/>
+</vector>
diff --git a/app/src/main/res/menu-land/all_in_one_title_bar.xml b/app/src/main/res/menu-land/all_in_one_title_bar.xml
index 855ffae..1dc7b96 100644
--- a/app/src/main/res/menu-land/all_in_one_title_bar.xml
+++ b/app/src/main/res/menu-land/all_in_one_title_bar.xml
@@ -26,7 +26,7 @@
     <item
         android:id="@+id/action_info"
         android:alphabeticShortcut="i"
-        android:icon="@drawable/ic_info_outline"
+        android:icon="@drawable/ic_error_outline"
         android:title="@string/menu_info"
         app:showAsAction="withText|ifRoom" />
     <item
diff --git a/app/src/main/res/menu-sw600dp-land/all_in_one_title_bar.xml b/app/src/main/res/menu-sw600dp-land/all_in_one_title_bar.xml
index 45f63db..6c2b0c3 100644
--- a/app/src/main/res/menu-sw600dp-land/all_in_one_title_bar.xml
+++ b/app/src/main/res/menu-sw600dp-land/all_in_one_title_bar.xml
@@ -26,7 +26,7 @@
     <item
         android:id="@+id/action_info"
         android:alphabeticShortcut="i"
-        android:icon="@drawable/ic_info_outline"
+        android:icon="@drawable/ic_error_outline"
         android:title="@string/menu_info"
         app:showAsAction="always|withText" />
     <item
diff --git a/app/src/main/res/menu-sw600dp/all_in_one_title_bar.xml b/app/src/main/res/menu-sw600dp/all_in_one_title_bar.xml
index 45f63db..6c2b0c3 100644
--- a/app/src/main/res/menu-sw600dp/all_in_one_title_bar.xml
+++ b/app/src/main/res/menu-sw600dp/all_in_one_title_bar.xml
@@ -26,7 +26,7 @@
     <item
         android:id="@+id/action_info"
         android:alphabeticShortcut="i"
-        android:icon="@drawable/ic_info_outline"
+        android:icon="@drawable/ic_error_outline"
         android:title="@string/menu_info"
         app:showAsAction="always|withText" />
     <item
diff --git a/app/src/main/res/menu/all_in_one_title_bar.xml b/app/src/main/res/menu/all_in_one_title_bar.xml
index 3b92da1..1901acd 100644
--- a/app/src/main/res/menu/all_in_one_title_bar.xml
+++ b/app/src/main/res/menu/all_in_one_title_bar.xml
@@ -28,7 +28,7 @@
     <item
         android:id="@+id/action_info"
         android:alphabeticShortcut="i"
-        android:icon="@drawable/ic_info_outline"
+        android:icon="@drawable/ic_error_outline"
         android:orderInCategory="1"
         android:title="@string/menu_info"
         app:showAsAction="ifRoom" />
diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml
index 65117aa..6f435c3 100644
--- a/app/src/main/res/values-af/strings.xml
+++ b/app/src/main/res/values-af/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">Vir <xliff:g id="EVENT_COUNT">%d</xliff:g> geleenthede</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">verander einddatum</string>
+    <string name="cancel">Kanselleer</string>
 </resources>
diff --git a/app/src/main/res/values-am/strings.xml b/app/src/main/res/values-am/strings.xml
index 400bac0..b8dd244 100644
--- a/app/src/main/res/values-am/strings.xml
+++ b/app/src/main/res/values-am/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">ለ<xliff:g id="EVENT_COUNT">%d</xliff:g> ክስተቶች</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">የመጨረሻውን ቀን ቀይር</string>
+    <string name="cancel">ይቅር</string>
 </resources>
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index d231275..af2320b 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -388,4 +388,5 @@
     <string name="preferences_list_add_offline_cancel">إلغاء</string>
     <string name="preferences_menu_about">حول التقويم</string>
     <string name="offline_account_name">تقويم غير متصل</string>
+    <string name="cancel">إلغاء</string>
 </resources>
diff --git a/app/src/main/res/values-ast-rES/strings.xml b/app/src/main/res/values-ast-rES/strings.xml
index 8364a00..f10972d 100644
--- a/app/src/main/res/values-ast-rES/strings.xml
+++ b/app/src/main/res/values-ast-rES/strings.xml
@@ -22,6 +22,7 @@
     <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Ensin títulu)</string>
     <string name="no_reminder_label">Nada</string>
+    <string name="no_snooze_label">Nada</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minutu</item>
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minutos</item>
@@ -219,4 +220,7 @@
     <string name="after_start_of_event">tres comenzar l\'eventu</string>
     <string name="preferences_do_not_check_battery_optimization">Nun comprobar la optimización d\'enerxía</string>
     <string name="calendars">Calendarios</string>
+    <string name="discard_event_changes">¿Quies escartar los cambeos?</string>
+    <string name="discard">Escartar</string>
+    <string name="cancel">Encaboxar</string>
 </resources>
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index a74f3fb..a8e397a 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Başlıq yoxdur)</string>
     <string name="no_reminder_label">Heç biri</string>
+    <string name="no_snooze_label">Heç biri</string>
     <plurals name="Nminutes">
         <item quantity="one">1 dəqiqə</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dəqiqə</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Batareya optimallaşdırmasını yoxlama</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Öz riskinizlə istifadə edin! Bildirişlər artıq işləməyəcək, vicet artıq güncəllənməyəcək və arxaplan xidmətləri çökəcək. Ancaq arxaplan xidmətlərini fəallaşdırmaq istəyib-istəmədiyiniz bir daha soruşulmayacaq.</string>
     <string name="calendars">Təqvimlər</string>
+    <string name="discard_event_changes">Dəyişiklikləri ləğv etmək istəyirsiniz?</string>
+    <string name="discard">Ləğv et</string>
+    <string name="cancel">Ləğv et</string>
 </resources>
diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml
index 8da704d..0ced91c 100644
--- a/app/src/main/res/values-be/strings.xml
+++ b/app/src/main/res/values-be/strings.xml
@@ -65,4 +65,5 @@
     <string name="preferences_list_add_offline_cancel">Скасаваць</string>
     <string name="offline_account_name">Пазасеткавы каляндар</string>
     <string name="after_start_of_event">пасля пачатку падзеі</string>
+    <string name="cancel">Скасаваць</string>
 </resources>
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 5d5c0f3..1c0aa4e 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -332,4 +332,5 @@
     <string name="preferences_list_add_offline_cancel">Отказ</string>
     <string name="preferences_menu_about">Всичко за Календар</string>
     <string name="offline_account_name">Офлайн календар</string>
+    <string name="cancel">Отказ</string>
 </resources>
diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml
index ad1d69f..435d51e 100644
--- a/app/src/main/res/values-bn/strings.xml
+++ b/app/src/main/res/values-bn/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(কোনো শীর্ষক নেই)</string>
     <string name="no_reminder_label">কিছু না</string>
+    <string name="no_snooze_label">কিছু না</string>
     <plurals name="Nminutes">
         <item quantity="one">১ মিনিট</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> মিনিট</item>
@@ -239,4 +240,5 @@
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">সমাপ্তির তারিখ পরিবর্তন করুন</string>
     <string name="after_start_of_event">ঘটনাটি শুরু হওয়ার পরে</string>
+    <string name="cancel">বাতিল করুন</string>
 </resources>
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index c2f46cd..ae3cf3c 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Sense títol)</string>
     <string name="no_reminder_label">Cap</string>
+    <string name="no_snooze_label">Cap</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minut</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuts</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">No comproveu l\'optimització de la bateria</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Feu-ho servir sota el vostre propi risc! Les notificacions ja no funcionaran, el giny ja no s\'actualitzarà i els serveis en segon pla es bloquejaran. Però no se us tornarà a preguntar si voleu habilitar el servei en segon pla.</string>
     <string name="calendars">Calendaris</string>
+    <string name="discard_event_changes">Voleu descartar els canvis?</string>
+    <string name="discard">Descarta</string>
+    <string name="cancel">Cancel·la</string>
 </resources>
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 93ffb7b..f149d7e 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(bez názvu)</string>
     <string name="no_reminder_label">Žádné</string>
+    <string name="no_snooze_label">Žádné</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuta</item>
         <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minut</item>
@@ -385,4 +386,5 @@
     <string name="preferences_do_not_check_battery_optimization">Nekontrolovat optimalizaci baterie</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Používat na vlastní nebezpečí! Upozornění již nebudou fungovat, widget již nebude aktualizován a služby na pozadí se zhroutí. Ale nebudete znovu dotázáni, pokud chcete povolit službu na pozadí.</string>
     <string name="calendars">Kalendáře</string>
+    <string name="cancel">Zrušit</string>
 </resources>
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index 9006f44..738ce68 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Dim teitl)</string>
     <string name="no_reminder_label">Dim</string>
+    <string name="no_snooze_label">Dim</string>
     <plurals name="Nminutes">
         <item quantity="zero"><xliff:g id="count">%d</xliff:g> munudau</item>
         <item quantity="one">1 munud</item>
@@ -413,4 +414,5 @@
     <string name="preferences_menu_about">Ynghylch Calendr</string>
     <string name="offline_account_name">Calendr All-lein</string>
     <string name="after_start_of_event">ar ôl dechrau digwyddiad</string>
+    <string name="cancel">Diddymu</string>
 </resources>
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 271fff0..df3cb67 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Ingen titel)</string>
     <string name="no_reminder_label">Intet</string>
+    <string name="no_snooze_label">Intet</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minut</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutter</item>
@@ -346,4 +347,5 @@
     <string name="preferences_menu_about">Om Kalender</string>
     <string name="offline_account_name">Offline Kalender</string>
     <string name="after_start_of_event">efter start af begivenhed</string>
+    <string name="cancel">Annuller</string>
 </resources>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index f33530f..51e0415 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Kein Titel)</string>
     <string name="no_reminder_label">Keine</string>
+    <string name="no_snooze_label">Keine</string>
     <plurals name="Nminutes">
         <item quantity="one">1 Minute</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Minuten</item>
@@ -351,4 +352,5 @@
     <string name="preferences_do_not_check_battery_optimization">Akku-Optimierung nicht überprüfen</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Verwendung auf eigene Gefahr! Benachrichtigungen werden nicht mehr funktionieren, Widgets werden nicht mehr aktualisiert und Hintergrunddienste werden abstürzen. Aber du wirst nicht mehr gefragt werden, ob du den Hintergrunddienst aktivieren möchtest.</string>
     <string name="calendars">Kalender</string>
+    <string name="cancel">Abbrechen</string>
 </resources>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 73d0db5..b5410a0 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Χωρίς τίτλο)</string>
     <string name="no_reminder_label">Καμία</string>
+    <string name="no_snooze_label">Καμία</string>
     <plurals name="Nminutes">
         <item quantity="one">1 λεπτό</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> λεπτά</item>
@@ -351,4 +352,5 @@
     <string name="preferences_do_not_check_battery_optimization">Να μη γίνεται έλεγχος για βελτιστοποίηση της μπαταρίας</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Χρησιμοποιήστε το με δική σας ευθύνη! Οι ειδοποιήσεις δε θα λειτουργούν πλέον, το widget δε θα ενημερώνεται πλέον και οι υπηρεσίες παρασκηνίου θα κολλήσουν. Αλλά δε θα ερωτηθείτε ξανά αν θέλετε να ενεργοποιήσετε την υπηρεσία παρασκηνίου.</string>
     <string name="calendars">Ημερολόγια</string>
+    <string name="cancel">Ακύρωση</string>
 </resources>
diff --git a/app/src/main/res/values-en-rAU/strings.xml b/app/src/main/res/values-en-rAU/strings.xml
index 92a48ef..9fb3c47 100644
--- a/app/src/main/res/values-en-rAU/strings.xml
+++ b/app/src/main/res/values-en-rAU/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(No title)</string>
     <string name="no_reminder_label">None</string>
+    <string name="no_snooze_label">None</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minute</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Don\'t check battery optimisation</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Use at your own risk! Notifications will no longer work, widget will no longer update and background services will crash. But you won\'t get asked again if you want to enable the background service.</string>
     <string name="calendars">Calendars</string>
+    <string name="discard_event_changes">Do you want to discard changes?</string>
+    <string name="discard">Discard</string>
+    <string name="cancel">Cancel</string>
 </resources>
diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml
index 6cd8c86..1ec5f31 100644
--- a/app/src/main/res/values-en-rCA/strings.xml
+++ b/app/src/main/res/values-en-rCA/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <string name="no_title_label">(No title)</string>
     <string name="no_reminder_label">None</string>
+    <string name="no_snooze_label">None</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minute</item>
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Don\'t check battery optimisation</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Use at your own risk! Notifications will no longer work, widget will no longer update and background services will crash. But you won\'t get asked again if you want to enable the background service.</string>
     <string name="calendars">Calendars</string>
+    <string name="discard_event_changes">Do you want to discard changes?</string>
+    <string name="discard">Discard</string>
+    <string name="cancel">Cancel</string>
 </resources>
diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml
index 92a48ef..9fb3c47 100644
--- a/app/src/main/res/values-en-rGB/strings.xml
+++ b/app/src/main/res/values-en-rGB/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(No title)</string>
     <string name="no_reminder_label">None</string>
+    <string name="no_snooze_label">None</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minute</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Don\'t check battery optimisation</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Use at your own risk! Notifications will no longer work, widget will no longer update and background services will crash. But you won\'t get asked again if you want to enable the background service.</string>
     <string name="calendars">Calendars</string>
+    <string name="discard_event_changes">Do you want to discard changes?</string>
+    <string name="discard">Discard</string>
+    <string name="cancel">Cancel</string>
 </resources>
diff --git a/app/src/main/res/values-en-rIN/strings.xml b/app/src/main/res/values-en-rIN/strings.xml
index 92a48ef..9fb3c47 100644
--- a/app/src/main/res/values-en-rIN/strings.xml
+++ b/app/src/main/res/values-en-rIN/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(No title)</string>
     <string name="no_reminder_label">None</string>
+    <string name="no_snooze_label">None</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minute</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Don\'t check battery optimisation</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Use at your own risk! Notifications will no longer work, widget will no longer update and background services will crash. But you won\'t get asked again if you want to enable the background service.</string>
     <string name="calendars">Calendars</string>
+    <string name="discard_event_changes">Do you want to discard changes?</string>
+    <string name="discard">Discard</string>
+    <string name="cancel">Cancel</string>
 </resources>
diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml
index 0928c3a..813b5fc 100644
--- a/app/src/main/res/values-eo/strings.xml
+++ b/app/src/main/res/values-eo/strings.xml
@@ -70,4 +70,5 @@
         <item quantity="one">Por <xliff:g id="event_count">%d</xliff:g> evento</item>
         <item quantity="other">Por <xliff:g id="event_count">%d</xliff:g> eventoj</item>
     </plurals>
+    <string name="cancel">Nuligi</string>
 </resources>
diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml
index e09091f..bb9f5d9 100644
--- a/app/src/main/res/values-es-rUS/strings.xml
+++ b/app/src/main/res/values-es-rUS/strings.xml
@@ -316,4 +316,5 @@
     <string name="preferences_list_add_offline_cancel">Cancelar</string>
     <string name="preferences_menu_about">Acerca de Calendario</string>
     <string name="offline_account_name">Calendario sin conexión</string>
+    <string name="cancel">Cancelar</string>
 </resources>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index ff90f0f..fe9601a 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -317,4 +317,5 @@
     <string name="preferences_list_add_offline_cancel">Cancelar</string>
     <string name="preferences_menu_about">Acerca de Calendario</string>
     <string name="offline_account_name">Calendario sin conexión</string>
+    <string name="cancel">Cancelar</string>
 </resources>
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 2283fac..018884c 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -283,4 +283,5 @@
     <string name="preferences_list_calendar_summary_sync_off">Sünkroniseerimata</string>
     <string name="preferences_list_calendar_summary_invisible">Sündmusi ei kuvata</string>
     <string name="preferences_list_general">Üldseaded</string>
+    <string name="cancel">Tühista</string>
 </resources>
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 30a01f1..f67395b 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> gertaeratan</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">aldatu amaiera-data</string>
+    <string name="cancel">Utzi</string>
 </resources>
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 7a53c2b..ce099b5 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -227,4 +227,5 @@
         <item quantity="other">برای <xliff:g id="EVENT_COUNT">%d</xliff:g> رویداد</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">تغییر تاریخ پایان</string>
+    <string name="cancel">لغو</string>
 </resources>
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 0fdd301..e6faec0 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Ei otsikkoa)</string>
     <string name="no_reminder_label">Ei mitään</string>
+    <string name="no_snooze_label">Ei mitään</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuutti</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuuttia</item>
@@ -340,4 +341,5 @@
     <string name="preferences_list_add_offline_cancel">Peruuta</string>
     <string name="preferences_menu_about">Tietoja kalenterista</string>
     <string name="offline_account_name">Offline-kalenteri</string>
+    <string name="cancel">Peruuta</string>
 </resources>
diff --git a/app/src/main/res/values-fr-rCA/strings.xml b/app/src/main/res/values-fr-rCA/strings.xml
index 31e36cc..a9b9b15 100644
--- a/app/src/main/res/values-fr-rCA/strings.xml
+++ b/app/src/main/res/values-fr-rCA/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">Pour <xliff:g id="EVENT_COUNT">%d</xliff:g> événements</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">modifier la date de fin</string>
+    <string name="cancel">Annuler</string>
 </resources>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 8eac044..82ac0a5 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Sans titre)</string>
     <string name="no_reminder_label">Aucun</string>
+    <string name="no_snooze_label">Aucun</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minute</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutes</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Ne pas vérifier l\'optimisation de la batterie</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Utilisez à vos risques et périls ! Les notifications cesseront de fonctionner, le widget ne se mettra plus à jour et les services en arrière-plan planteront. Cependant, vous ne serez plus invité à activer le service en arrière-plan.</string>
     <string name="calendars">Calendriers</string>
+    <string name="discard_event_changes">Voulez-vous annuler les modifications ?</string>
+    <string name="discard">Annuler</string>
+    <string name="cancel">Annuler</string>
 </resources>
diff --git a/app/src/main/res/values-fur-rIT/strings.xml b/app/src/main/res/values-fur-rIT/strings.xml
index 7345878..93f37f5 100644
--- a/app/src/main/res/values-fur-rIT/strings.xml
+++ b/app/src/main/res/values-fur-rIT/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Cence titul)</string>
     <string name="no_reminder_label">Nissun</string>
+    <string name="no_snooze_label">Nissun</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minût</item>
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minûts</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">No sta controlâ la otimizazion de batarie</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Doprilu a to risi e pericul! Lis notifichis no funzionaran plui, i widget no si inzornaran plui e i servizis in sotfont a colassaran. Ma no ti vignarà domandât di gnûf se tu desideris ativâi servizis in sotfont.</string>
     <string name="calendars">Calendaris</string>
+    <string name="discard_event_changes">Desideristu scartâ lis modifichis?</string>
+    <string name="discard">Scarte</string>
+    <string name="cancel">Anule</string>
 </resources>
diff --git a/app/src/main/res/values-gd/strings.xml b/app/src/main/res/values-gd/strings.xml
index e592d8a..41182da 100644
--- a/app/src/main/res/values-gd/strings.xml
+++ b/app/src/main/res/values-gd/strings.xml
@@ -364,4 +364,5 @@
     <string name="preferences_list_add_offline_cancel">Sguir dheth</string>
     <string name="preferences_menu_about">Mun mhìosachan</string>
     <string name="offline_account_name">Mìosachan far loidhne</string>
+    <string name="cancel">Sguir dheth</string>
 </resources>
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 48d2ef3..0c0ae7d 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -332,4 +332,5 @@
     <string name="preferences_list_add_offline_cancel">Cancelar</string>
     <string name="preferences_menu_about">Acerca do calendario</string>
     <string name="offline_account_name">Calendario sen conexión</string>
+    <string name="cancel">Cancelar</string>
 </resources>
diff --git a/app/src/main/res/values-gu/strings.xml b/app/src/main/res/values-gu/strings.xml
index 0ca6a4a..3a26ad5 100644
--- a/app/src/main/res/values-gu/strings.xml
+++ b/app/src/main/res/values-gu/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> ઇવેન્ટ્સ માટે</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">સમાપ્તિ તારીખ બદલો</string>
+    <string name="cancel">રદ કરો</string>
 </resources>
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index affd056..ea2aaaf 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> ईवेंट के लिए</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">समाप्ति दिनांक बदलें</string>
+    <string name="cancel">अभी नहीं</string>
 </resources>
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 21ac9d0..36b2d07 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -241,4 +241,5 @@
         <item quantity="other">Nakon <xliff:g id="EVENT_COUNT">%d</xliff:g> ponavljanja</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">promjena datuma završetka</string>
+    <string name="cancel">Odustani</string>
 </resources>
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 78749f7..170888c 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Nincs cím)</string>
     <string name="no_reminder_label">Egy sem</string>
+    <string name="no_snooze_label">Egy sem</string>
     <plurals name="Nminutes">
         <item quantity="one">1 perc</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> perc</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Ne ellenőrizze az akkuoptimalizálást</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Csak saját felelősségre!  Az értesítések nem fognak működni, a kisalkalmazás nem frissül, és a háttérszolgáltatások összeomlanak.  De nem fogja újra megkérdezni, hogy engedélyezi-e a háttérszolgáltatást.</string>
     <string name="calendars">Naptárak</string>
+    <string name="discard_event_changes">Elveti a változtatásokat?</string>
+    <string name="discard">Elvetés</string>
+    <string name="cancel">Mégse</string>
 </resources>
diff --git a/app/src/main/res/values-hy/strings.xml b/app/src/main/res/values-hy/strings.xml
index 90ab6b4..6592375 100644
--- a/app/src/main/res/values-hy/strings.xml
+++ b/app/src/main/res/values-hy/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> իրադարձության համար</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">փոխել ավարտի ամսաթիվը</string>
+    <string name="cancel">Չեղարկել</string>
 </resources>
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index 7e5ff62..7169694 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Tanpa judul)</string>
     <string name="no_reminder_label">Tidak ada</string>
+    <string name="no_snooze_label">Tidak ada</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> menit</item>
     </plurals>
@@ -86,6 +87,7 @@
     <string name="privacy_label">Privasi</string>
     <string name="reminders_label">Tambahkan pengingat</string>
     <string name="no_syncable_calendars">Tak ada kalender</string>
+    <string name="add_calendar">Tambah kalender</string>
     <string name="view_event_calendar_label">Kalender:</string>
     <string name="view_event_organizer_label">Penyelenggara:</string>
     <string name="choose_event_color_label">Pilih warna acara</string>
@@ -325,4 +327,6 @@
     <string name="preferences_menu_about">Tentang Kalender</string>
     <string name="offline_account_name">Kalender Offline</string>
     <string name="after_start_of_event">setelah acara dimulai</string>
+    <string name="calendars">Kalender</string>
+    <string name="cancel">Batal</string>
 </resources>
diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml
index 900513f..0397824 100644
--- a/app/src/main/res/values-is/strings.xml
+++ b/app/src/main/res/values-is/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Enginn titill)</string>
     <string name="no_reminder_label">Ekkert</string>
+    <string name="no_snooze_label">Ekkert</string>
     <plurals name="Nminutes">
         <item quantity="one">1 mínúta</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> mínútur</item>
@@ -354,4 +355,5 @@
     <string name="preferences_do_not_check_battery_optimization">Ekki athuga rafhlöðusparnað</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Notist á eigin ábyrgð! Tilkynningar munu ekki lengur virka, viðmótshluti mun ekki uppfærast og bakgrunnsþjónustur munu hrynja. En þú færð ekki lengur spurningar um hvor þú viljir virkja bakgrunnsþjónustuna.</string>
     <string name="calendars">Dagatöl</string>
+    <string name="cancel">Hætta við</string>
 </resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 65fc16d..5f35b40 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Senza titolo)</string>
     <string name="no_reminder_label">Nessuno</string>
+    <string name="no_snooze_label">Nessuno</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuto</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuti</item>
@@ -351,4 +352,5 @@
     <string name="preferences_do_not_check_battery_optimization">Ignora l\'ottimizzazione della batteria</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Usa questa funzione a tuo rischio! Le notifiche non funzioneranno più, il widget non si aggiornerà e i servizi in background si bloccheranno. Non ti verrà chiesto di nuovo se vuoi abilitare il servizio in background.</string>
     <string name="calendars">Calendari</string>
+    <string name="cancel">Annulla</string>
 </resources>
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 37bbdd5..b58b7f4 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -256,4 +256,5 @@
         <item quantity="other">עבור <xliff:g id="EVENT_COUNT">%d</xliff:g> אירועים</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">שינוי של תאריך הסיום</string>
+    <string name="cancel">ביטול</string>
 </resources>
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 0e87f9a..1e72285 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>の<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(タイトルなし)</string>
     <string name="no_reminder_label">なし</string>
+    <string name="no_snooze_label">なし</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>分</item>
     </plurals>
@@ -334,4 +335,7 @@
     <string name="preferences_do_not_check_battery_optimization">電池の最適化をチェックしない</string>
     <string name="preferences_do_not_check_battery_optimization_summary">自己責任で使用してください!通知は機能しなくなり、ウィジェットはもはや更新されず、バックグラウンドサービスは強制停止されます。 ただし、バックグラウンドサービスを有効にするかどうかは再び尋ねられません。</string>
     <string name="calendars">カレンダー</string>
+    <string name="discard_event_changes">変更を破棄しますか?</string>
+    <string name="discard">破棄</string>
+    <string name="cancel">キャンセル</string>
 </resources>
diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml
index 08e2074..58549a8 100644
--- a/app/src/main/res/values-ka/strings.xml
+++ b/app/src/main/res/values-ka/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(სათაურის გარეშე)</string>
     <string name="no_reminder_label">არაა</string>
+    <string name="no_snooze_label">არაა</string>
     <plurals name="Nminutes">
         <item quantity="one">1 წუთი</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> წუთი</item>
@@ -351,4 +352,5 @@
     <string name="preferences_do_not_check_battery_optimization">არ შემოწმდეს ბატარეის ოპტიმიზაცია</string>
     <string name="preferences_do_not_check_battery_optimization_summary">გამოიყენეთ სიფრთხილით! შეტყობინებები აღარ იმუშავებს, ეკრანზე პროგრამის ნაწილები აღარ განახლდება და ფონური მომსახურებებიც გაითიშება. სამაგიეროდ, აღარ იხილავთ შეკითხვას, ხომ არ გსურთ ფონური მომსახურების კვლავ ჩართვა.</string>
     <string name="calendars">კალენდრები</string>
+    <string name="cancel">გაუქმება</string>
 </resources>
diff --git a/app/src/main/res/values-kab-rDZ/strings.xml b/app/src/main/res/values-kab-rDZ/strings.xml
index 889c607..55e6a41 100644
--- a/app/src/main/res/values-kab-rDZ/strings.xml
+++ b/app/src/main/res/values-kab-rDZ/strings.xml
@@ -110,4 +110,5 @@
     <string name="preferences_list_add_offline_button">Rnu awitay</string>
     <string name="preferences_list_add_offline_name">Isem</string>
     <string name="preferences_list_add_offline_cancel">Sefsex</string>
+    <string name="cancel">Sefex</string>
 </resources>
diff --git a/app/src/main/res/values-km/strings.xml b/app/src/main/res/values-km/strings.xml
index fe86e4c..a669488 100644
--- a/app/src/main/res/values-km/strings.xml
+++ b/app/src/main/res/values-km/strings.xml
@@ -211,4 +211,5 @@
         <item quantity="other">សម្រាប់ <xliff:g id="EVENT_COUNT">%d</xliff:g> ព្រឹត្តិការណ៍</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">ប្ដូរ​កាលបរិច្ឆេទ​បញ្ចប់</string>
+    <string name="cancel">បោះ​បង់​</string>
 </resources>
diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml
index ae1c2c3..1165d86 100644
--- a/app/src/main/res/values-kn/strings.xml
+++ b/app/src/main/res/values-kn/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> ಈವೆಂಟ್‌ಗಳಿಗಾಗಿ</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">ಅಂತಿಮ ದಿನಾಂಕವನ್ನು ಬದಲಾಯಿಸಿ</string>
+    <string name="cancel">ರದ್ದುಮಾಡು</string>
 </resources>
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 22af61f..68b2759 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(제목 없음)</string>
     <string name="no_reminder_label">없음</string>
+    <string name="no_snooze_label">없음</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>분</item>
     </plurals>
@@ -332,4 +333,5 @@
     <string name="after_start_of_event">일정 시작 후</string>
     <string name="preferences_do_not_check_battery_optimization">배터리 최적화 확인 안함</string>
     <string name="calendars">캘린더</string>
+    <string name="cancel">취소</string>
 </resources>
diff --git a/app/src/main/res/values-ku/strings.xml b/app/src/main/res/values-ku/strings.xml
index 667acd2..c6094ee 100644
--- a/app/src/main/res/values-ku/strings.xml
+++ b/app/src/main/res/values-ku/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">بۆ <xliff:g id="event_count">%d</xliff:g> ڕووداو</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">گۆڕینی بەرواری تەواوبوون</string>
+    <string name="cancel">هەڵوەشاندنەوە</string>
 </resources>
diff --git a/app/src/main/res/values-lo/strings.xml b/app/src/main/res/values-lo/strings.xml
index 9578b0b..5aced4d 100644
--- a/app/src/main/res/values-lo/strings.xml
+++ b/app/src/main/res/values-lo/strings.xml
@@ -211,4 +211,5 @@
         <item quantity="other">ສໍາລັບ <xliff:g id="EVENT_COUNT">%d</xliff:g> ນັດໝາຍ</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">ປ່ຽນວັນສິ້ນສຸດ</string>
+    <string name="cancel">ຍົກເລີກ</string>
 </resources>
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 8e9f7ba..13538dd 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -256,4 +256,5 @@
         <item quantity="other">Vykstant <xliff:g id="EVENT_COUNT">%d</xliff:g> įvyk.</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">keisti pabaigos datą</string>
+    <string name="cancel">Atšaukti</string>
 </resources>
diff --git a/app/src/main/res/values-lu/strings.xml b/app/src/main/res/values-lu/strings.xml
index 75b5449..6c24c74 100644
--- a/app/src/main/res/values-lu/strings.xml
+++ b/app/src/main/res/values-lu/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">Fir <xliff:g id="event_count">%d</xliff:g> Rendezvousen</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">Schlussdatum änneren</string>
+    <string name="cancel">Ofbriechen</string>
 </resources>
diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml
index d4605ec..a279696 100644
--- a/app/src/main/res/values-lv/strings.xml
+++ b/app/src/main/res/values-lv/strings.xml
@@ -241,4 +241,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> notikumos</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">mainīt beigu datumu</string>
+    <string name="cancel">Atcelt</string>
 </resources>
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index 50d16fe..0f43a0d 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> ഇവന്റുകൾക്ക്</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">അവസാനിക്കുന്ന ദിവസം മാറ്റുക</string>
+    <string name="cancel">റദ്ദാക്കുക</string>
 </resources>
diff --git a/app/src/main/res/values-mn/strings.xml b/app/src/main/res/values-mn/strings.xml
index c326ca2..dd939d5 100644
--- a/app/src/main/res/values-mn/strings.xml
+++ b/app/src/main/res/values-mn/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> үйл явдалд</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">дуусах огноог өөрчлөх</string>
+    <string name="cancel">Цуцлах</string>
 </resources>
diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml
index 9ad3f5d..6411a00 100644
--- a/app/src/main/res/values-mr/strings.xml
+++ b/app/src/main/res/values-mr/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> इव्हेंटसाठी</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">समाप्ती तारीख बदला</string>
+    <string name="cancel">रद्द करा</string>
 </resources>
diff --git a/app/src/main/res/values-ms/strings.xml b/app/src/main/res/values-ms/strings.xml
index f16d462..2712a48 100644
--- a/app/src/main/res/values-ms/strings.xml
+++ b/app/src/main/res/values-ms/strings.xml
@@ -211,4 +211,5 @@
         <item quantity="other">Untuk <xliff:g id="EVENT_COUNT">%d</xliff:g> acara</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">tukar tarikh akhir</string>
+    <string name="cancel">Batal</string>
 </resources>
diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml
index abcc9af..73f73ec 100644
--- a/app/src/main/res/values-my/strings.xml
+++ b/app/src/main/res/values-my/strings.xml
@@ -211,4 +211,5 @@
         <item quantity="other">ဖြစ်ရပ်များ <xliff:g id="EVENT_COUNT">%d</xliff:g> အတွက်</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">ပြီးဆုံးရက်စွဲကို ပြောင်းရန်</string>
+    <string name="cancel">ပယ်ဖျက်ရန်</string>
 </resources>
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
index f8f4ea7..598ce20 100644
--- a/app/src/main/res/values-nb/strings.xml
+++ b/app/src/main/res/values-nb/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">For <xliff:g id="EVENT_COUNT">%d</xliff:g> aktiviteter</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">endre sluttdato</string>
+    <string name="cancel">Avbryt</string>
 </resources>
diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml
index c3c24a6..844b567 100644
--- a/app/src/main/res/values-ne/strings.xml
+++ b/app/src/main/res/values-ne/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> घटनाहरूका लागि</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">समाप्त हुने मिति परिवर्तन गर्नुहोस्</string>
+    <string name="cancel">रद्द गर्नुहोस्</string>
 </resources>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index e0f445a..451098b 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Geen titel)</string>
     <string name="no_reminder_label">Geen</string>
+    <string name="no_snooze_label">Geen</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuut</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuten</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Accuoptimalisatie niet controleren</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Gebruik op eigen risico! Notificaties zullen niet langer werken, widgets worden niet anger bijgewerkt en achtergrond services zullen crashen. Maar u zult niet opnieuw gevraagd worden als u de achtergrondservice wilt activeren.</string>
     <string name="calendars">Kalenders</string>
+    <string name="discard_event_changes">Wilt u de wijzigingen ongedaan maken?</string>
+    <string name="discard">Negeer</string>
+    <string name="cancel">Annuleren</string>
 </resources>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 463381f..898343f 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Bez tytułu)</string>
     <string name="no_reminder_label">Brak</string>
+    <string name="no_snooze_label">Brak</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuta</item>
         <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minuty</item>
@@ -386,4 +387,7 @@
     <string name="preferences_do_not_check_battery_optimization">Nie sprawdzaj optymalizacji baterii</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Używasz na własne ryzyko! Powiadomienia przestaną działać, widżet nie będzie aktualizowany, a usługi działające w tle ulegną awarii. Nie będzie ponownego zapytania, czy chcesz włączyć usługę działającą w tle.</string>
     <string name="calendars">Kalendarze</string>
+    <string name="discard_event_changes">Czy chcesz odrzucić zmiany?</string>
+    <string name="discard">Odrzuć</string>
+    <string name="cancel">Anuluj</string>
 </resources>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 4bf05b7..71d3cb2 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(sem título)</string>
     <string name="no_reminder_label">Nenhum</string>
+    <string name="no_snooze_label">Nenhum</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuto</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minutos</item>
@@ -351,4 +352,7 @@
     <string name="preferences_do_not_check_battery_optimization">Não verificar a otimização de bateria</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Use por sua conta e risco! As notificações não irão mais funcionar, o widget não irá mais atualizar e os serviços de segundo plano irão quebrar. Mas você não será perguntado novamente se quiser habilitar o serviço em segundo plano.</string>
     <string name="calendars">Calendários</string>
+    <string name="discard_event_changes">Você deseja descartar as alterações?</string>
+    <string name="discard">Descartar</string>
+    <string name="cancel">Cancelar</string>
 </resources>
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 35a96f2..9a8c0c7 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Sem título)</string>
     <string name="no_reminder_label">Nenhum</string>
+    <string name="no_snooze_label">Nenhum</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuto</item>
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minutos</item>
@@ -344,4 +345,5 @@
     <string name="preferences_menu_about">Acerca do Calendário</string>
     <string name="offline_account_name">Calendário local</string>
     <string name="after_start_of_event">após o início do evento</string>
+    <string name="cancel">Cancelar</string>
 </resources>
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index a60cfec..a2b7f09 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Fără titlu)</string>
     <string name="no_reminder_label">Niciunul</string>
+    <string name="no_snooze_label">Niciunul</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minut</item>
         <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> (de) minute</item>
@@ -368,4 +369,7 @@
     <string name="preferences_do_not_check_battery_optimization">Nu verifica optimizarea bateriei</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Utilizați pe propriul risc! Notificările nu vor mai funcționa, widget-urile nu se vor mai actualiza și serviciile de fundal se vor bloca. Dar nu veți mai fi întrebat din nou dacă vreți să activați serviciul de fundal.</string>
     <string name="calendars">Calendare</string>
+    <string name="discard_event_changes">Doriți să renunțați la modificări?</string>
+    <string name="discard">Renunţaţi</string>
+    <string name="cancel">Anulați</string>
 </resources>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index ac7c096..f1f39fd 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Нет заголовка)</string>
     <string name="no_reminder_label">Нет</string>
+    <string name="no_snooze_label">Нет</string>
     <plurals name="Nminutes">
         <item quantity="one">1 мин.</item>
         <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> мин.</item>
@@ -386,4 +387,7 @@
     <string name="preferences_do_not_check_battery_optimization">Не проверять оптимизацию батареи</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Используйте на свой страх и риск! Уведомления больше не будут работать, виджеты не будут обновляться, а фоновые службы будут сбоить. Но вас больше не спросят, хотите ли вы включить фоновую службу.</string>
     <string name="calendars">Календари</string>
+    <string name="discard_event_changes">Отменить изменения?</string>
+    <string name="discard">Отменить</string>
+    <string name="cancel">Отмена</string>
 </resources>
diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml
index 63b60a0..17895e7 100644
--- a/app/src/main/res/values-si/strings.xml
+++ b/app/src/main/res/values-si/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">සිදුවීම් <xliff:g id="EVENT_COUNT">%d</xliff:g> සඳහා</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">අවසන්වන දිනය වෙනස් කරන්න</string>
+    <string name="cancel">අවලංගු කරන්න</string>
 </resources>
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index bc71451..a84f52d 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -364,4 +364,5 @@
     <string name="preferences_list_add_offline_cancel">Zrušiť</string>
     <string name="preferences_menu_about">O Kalendári</string>
     <string name="offline_account_name">Offline Kalendár</string>
+    <string name="cancel">Zrušiť</string>
 </resources>
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 303381e..cdda016 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Brez naslova)</string>
     <string name="no_reminder_label">Brez</string>
+    <string name="no_snooze_label">Brez</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minuta</item>
         <item quantity="two"><xliff:g id="count">%d</xliff:g> minuti</item>
@@ -385,4 +386,7 @@
     <string name="preferences_do_not_check_battery_optimization">Ne preveri optimizacije baterije</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Uporaba na lastno odgovornost! Obvestila ne bodo več delovala, pripomočki se ne bodo več posodabljali in storitve v ozadju se bodo sesule. Ampak ne boste več vprašani, če želite omogočiti storitev v ozadju.</string>
     <string name="calendars">Koledarji</string>
+    <string name="discard_event_changes">Ali želite zavreči spremembe?</string>
+    <string name="discard">Zavrzi</string>
+    <string name="cancel">Prekliči</string>
 </resources>
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index a24e202..0e2cee5 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="date">%1$s</xliff:g>, <xliff:g id="time_interval">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Pa titull)</string>
     <string name="no_reminder_label">Asnjë</string>
+    <string name="no_snooze_label">Asnjë</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minutë</item>
         <item quantity="other"><xliff:g id="count">%d</xliff:g> minuta</item>
@@ -351,4 +352,5 @@
     <string name="preferences_do_not_check_battery_optimization">Mos e kontrolloni optimizimin e baterisë</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Përdoreni në rrezikun tuaj! Njoftimet nuk do të funksionojnë më, miniaplikacioni nuk do të përditësohet më dhe shërbimet e sfondit do të prishen. Por nuk do të pyeteni përsëri nëse dëshironi të aktivizoni shërbimin e sfondit.</string>
     <string name="calendars">Kalendarët</string>
+    <string name="cancel">Anullo</string>
 </resources>
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index e12d850..9395428 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -241,4 +241,5 @@
         <item quantity="other">За <xliff:g id="EVENT_COUNT">%d</xliff:g> догађаја</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">промена крајњег датума</string>
+    <string name="cancel">Откажи</string>
 </resources>
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 905872e..80049fc 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Ingen titel)</string>
     <string name="no_reminder_label">Ingen</string>
+    <string name="no_snooze_label">Ingen</string>
     <plurals name="Nminutes">
         <item quantity="one">1 minut</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuter</item>
@@ -341,4 +342,5 @@
     <string name="preferences_menu_about">Om Kalender</string>
     <string name="offline_account_name">Offline-kalender</string>
     <string name="after_start_of_event">efter händelsen har startat</string>
+    <string name="cancel">Avbryt</string>
 </resources>
diff --git a/app/src/main/res/values-sw/strings.xml b/app/src/main/res/values-sw/strings.xml
index 1c596c5..9e76234 100644
--- a/app/src/main/res/values-sw/strings.xml
+++ b/app/src/main/res/values-sw/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">Kwa matukio <xliff:g id="EVENT_COUNT">%d</xliff:g></item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">badilisha tarehe ya mwisho</string>
+    <string name="cancel">Ghairi</string>
 </resources>
diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml
index 7152bfa..c3f6efa 100644
--- a/app/src/main/res/values-ta/strings.xml
+++ b/app/src/main/res/values-ta/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> நிகழ்வுகளுக்கு</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">முடிவு தேதியை மாற்று</string>
+    <string name="cancel">ரத்துசெய்</string>
 </resources>
diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml
index 5408257..e849e7f 100644
--- a/app/src/main/res/values-te/strings.xml
+++ b/app/src/main/res/values-te/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g> ఈవెంట్‌లకు</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">ముగింపు తేదీని మార్చండి</string>
+    <string name="cancel">రద్దు చేయి</string>
 </resources>
diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml
index 7863215..b58cead 100644
--- a/app/src/main/res/values-th/strings.xml
+++ b/app/src/main/res/values-th/strings.xml
@@ -308,4 +308,5 @@
     <string name="preferences_list_add_offline_cancel">ยกเลิก</string>
     <string name="preferences_menu_about">เกี่ยวกับปฏิทิน</string>
     <string name="offline_account_name">ปฏิทินออฟไลน์</string>
+    <string name="cancel">ยกเลิก</string>
 </resources>
diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml
index 894ef69..60c4692 100644
--- a/app/src/main/res/values-tl/strings.xml
+++ b/app/src/main/res/values-tl/strings.xml
@@ -226,4 +226,5 @@
         <item quantity="other">Para sa <xliff:g id="EVENT_COUNT">%d</xliff:g> (na) kaganapan</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">baguhin ang petsa ng pagtatapos</string>
+    <string name="cancel">Kanselahin</string>
 </resources>
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index bee61f4..35305fd 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Başlıksız)</string>
     <string name="no_reminder_label">Hiçbiri</string>
+    <string name="no_snooze_label">Hiçbiri</string>
     <plurals name="Nminutes">
         <item quantity="one">1 dakika</item>
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dakika</item>
@@ -347,4 +348,5 @@
     <string name="preferences_menu_about">Takvim hakkında</string>
     <string name="offline_account_name">Çevrim dışı Takvim</string>
     <string name="after_start_of_event">etkinlik başladıktan sonra</string>
+    <string name="cancel">İptal</string>
 </resources>
diff --git a/app/src/main/res/values-ug/strings.xml b/app/src/main/res/values-ug/strings.xml
index 26646b3..6eab50d 100644
--- a/app/src/main/res/values-ug/strings.xml
+++ b/app/src/main/res/values-ug/strings.xml
@@ -166,4 +166,5 @@
     <string name="recurrence_end_date">\"%s غىچە\"<xliff:g id="DATE"/></string>
     <string name="recurrence_end_count_label">چەكلەنگەن قېتىم سانى</string>
     <string name="acessibility_recurrence_choose_end_date_description">ئاخىرلىشىش چېسلاسىنى ئۆزگەرت</string>
+    <string name="cancel">ۋاز كەچ</string>
 </resources>
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 65f2712..790cc43 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Без назви)</string>
     <string name="no_reminder_label">Жодного</string>
+    <string name="no_snooze_label">Жодного</string>
     <plurals name="Nminutes">
         <item quantity="one">1 хв.</item>
         <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> хв</item>
@@ -311,4 +312,5 @@
     <string name="preferences_menu_about">Про календар</string>
     <string name="offline_account_name">Автономний календар</string>
     <string name="after_start_of_event">після початку події</string>
+    <string name="cancel">Скасувати</string>
 </resources>
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 7a6cc02..af13db4 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(Không có tiêu đề)</string>
     <string name="no_reminder_label">Không có</string>
+    <string name="no_snooze_label">Không có</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> phút</item>
     </plurals>
@@ -334,4 +335,7 @@
     <string name="preferences_do_not_check_battery_optimization">Không kiểm tra tối ưu hóa pin</string>
     <string name="preferences_do_not_check_battery_optimization_summary">Sử dụng rủi ro của riêng bạn! Thông báo sẽ không còn hoạt động, tiện ích sẽ không còn cập nhật và các dịch vụ nền sẽ gặp sự cố. Nhưng bạn sẽ không được hỏi lại nếu bạn muốn bật dịch vụ nền.</string>
     <string name="calendars">Lịch</string>
+    <string name="discard_event_changes">Bạn có muốn loại bỏ các thay đổi?</string>
+    <string name="discard">Loại bỏ</string>
+    <string name="cancel">Hủy</string>
 </resources>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 76af7a0..fbbc53b 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>,<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(无标题)</string>
     <string name="no_reminder_label">无</string>
+    <string name="no_snooze_label">无</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 分钟</item>
     </plurals>
@@ -334,4 +335,7 @@
     <string name="preferences_do_not_check_battery_optimization">不要检查电池优化</string>
     <string name="preferences_do_not_check_battery_optimization_summary">风险自担!通知将不再起作用,小部件将不再更新,后台服务将崩溃。但系统不会再次询问您是否要启用后台服务。</string>
     <string name="calendars">日历</string>
+    <string name="discard_event_changes">您想放弃更改吗?</string>
+    <string name="discard">放弃</string>
+    <string name="cancel">取消</string>
 </resources>
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 56bc36c..8390a26 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -211,4 +211,5 @@
         <item quantity="other"><xliff:g id="EVENT_COUNT">%d</xliff:g>的活動</item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">更改結束日期</string>
+    <string name="cancel">取消</string>
 </resources>
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 46760f7..37fdb6c 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -23,6 +23,7 @@
     <string name="date_time_fmt">"<xliff:g id="DATE">%1$s</xliff:g>,<xliff:g id="TIME_INTERVAL">%2$s</xliff:g>"</string>
     <string name="no_title_label">(無標題)</string>
     <string name="no_reminder_label">無</string>
+    <string name="no_snooze_label">無</string>
     <plurals name="Nminutes">
         <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 分鐘</item>
     </plurals>
@@ -334,4 +335,7 @@
     <string name="preferences_do_not_check_battery_optimization">不檢查電池最佳化</string>
     <string name="preferences_do_not_check_battery_optimization_summary">後果自負!通知將無法運作,小工具將不再更新,背景服務將當掉。但系統不會再次詢問您是否要啟用背景服務。</string>
     <string name="calendars">日曆</string>
+    <string name="discard_event_changes">您要捨棄所作的變更嗎?</string>
+    <string name="discard">捨棄</string>
+    <string name="cancel">取消</string>
 </resources>
diff --git a/app/src/main/res/values-zu/strings.xml b/app/src/main/res/values-zu/strings.xml
index 22a207d..ead84d4 100644
--- a/app/src/main/res/values-zu/strings.xml
+++ b/app/src/main/res/values-zu/strings.xml
@@ -215,4 +215,5 @@
         <item quantity="other">Okwemicimbi engu-<xliff:g id="EVENT_COUNT">%d</xliff:g></item>
     </plurals>
     <string name="acessibility_recurrence_choose_end_date_description">shintsha idethi yokugcina</string>
+    <string name="cancel">Khansela</string>
 </resources>
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 8d19d3e..9cd7d32 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -112,6 +112,7 @@
     </string-array>
 
     <string-array name="preferences_default_snooze_delay_values" translatable="false">
+        <item>"-1"</item>
         <item>"5"</item>
         <item>"10"</item>
         <item>"15"</item>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c94b4c6..f0c1406 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,6 +39,7 @@
 
     <!-- Reminder format strings -->
     <string name="no_reminder_label">None</string>
+    <string name="no_snooze_label">None</string>
     <plurals name="Nminutes">
         <!-- This is the label for a 1-minute reminder. -->
         <item quantity="one">1 minute</item>
@@ -810,4 +811,7 @@
     <!-- Name of notification channel group -->
     <string name="calendars">Calendars</string>
 
+    <string name="discard_event_changes">Do you want to discard changes?</string>
+    <string name="discard">Discard</string>
+    <string name="cancel">Cancel</string>
 </resources>
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index cfdfe69..0000000
--- a/build.gradle
+++ /dev/null
@@ -1,48 +0,0 @@
-plugins {
-    id 'com.android.application' version '8.1.3' apply false
-    id 'com.android.library' version '8.1.3' apply false
-    id 'org.jetbrains.kotlin.android' version '1.9.22' apply false
-    id 'org.ec4j.editorconfig' version "0.1.0" apply false
-    id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.7" apply true
-}
-
-// External project configuration start
-
-// Configure and automatically generate AAR of the below mentioned external
-// projects using a custom task  in order to let Android Studio work properly.
-// MUST BE RUN MANUALLY ON CLI COMPILATION
-def external_projects = [
-        project(':external:calendar'),
-        project(':external:chips'),
-        project(':external:colorpicker'),
-        project(':external:timezonepicker')
-]
-
-configure(external_projects) {
-    apply {
-        from '../configuration/common.gradle'
-    }
-}
-
-tasks.register('aarGen') {
-    description "Generates AAR from the external projects for Etar-Calendar"
-    def aarTasks = [
-            ':external:calendar:copyAAR',
-            ':external:chips:copyAAR',
-            ':external:colorpicker:copyAAR',
-            ':external:timezonepicker:copyAAR'
-    ]
-    dependsOn aarTasks
-}
-
-idea.project.settings {
-    taskTriggers {
-        afterSync tasks.named('aarGen')
-    }
-}
-// External project configuration end
-
-tasks.register('clean', Delete) {
-    delete rootProject.buildDir
-    delete 'app/libs'
-}
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000..4273aa9
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,51 @@
+import org.jetbrains.gradle.ext.settings
+import org.jetbrains.gradle.ext.taskTriggers
+
+plugins {
+    id("com.android.application") version "8.3.1" apply false
+    id("com.android.library") version "8.3.1" apply false
+    id("org.jetbrains.kotlin.android") version "1.9.10" apply false
+    id("org.ec4j.editorconfig") version "0.1.0" apply false
+    id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.7" apply true
+}
+
+// External project configuration start
+
+// Configure and automatically generate AAR of the below mentioned external
+// projects using a custom task  in order to let Android Studio work properly.
+// MUST BE RUN MANUALLY ON CLI COMPILATION
+val externalProjects = listOf(
+    project(":external:calendar"),
+    project(":external:chips"),
+    project(":external:colorpicker"),
+    project(":external:timezonepicker")
+)
+
+configure(externalProjects) {
+    apply {
+        from("../configuration/common.gradle")
+    }
+}
+
+tasks.register("aarGen") {
+    description = "Generates AAR from the external projects for Etar-Calendar"
+    val aarTasks = arrayOf(
+        ":external:calendar:copyAAR",
+        ":external:chips:copyAAR",
+        ":external:colorpicker:copyAAR",
+        ":external:timezonepicker:copyAAR"
+    )
+    dependsOn(*aarTasks)
+}
+
+idea.project.settings {
+    taskTriggers {
+        afterSync(tasks.named("aarGen"))
+    }
+}
+
+// External project configuration end
+tasks.register<Delete>("clean") {
+    delete(rootProject.layout.buildDirectory)
+    delete("app/libs")
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index c1962a7..e644113 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index bd794ec..3daa4a2 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,8 +1,9 @@
-#Tue Sep 26 17:59:05 IST 2023
+#Tue Apr 02 13:25:03 IST 2024
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionSha256Sum=591855b517fc635b9e04de1d05d5e76ada3f89f5fc76f87978d1b245b4f69225
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
+distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
 networkTimeout=10000
+validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index aeb74cb..1aa94a4 100755
--- a/gradlew
+++ b/gradlew
@@ -83,7 +83,8 @@
 # This is normally unused
 # shellcheck disable=SC2034
 APP_BASE_NAME=${0##*/}
-APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD=maximum
@@ -130,10 +131,13 @@
     fi
 else
     JAVACMD=java
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+    if ! command -v java >/dev/null 2>&1
+    then
+        die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 
 Please set the JAVA_HOME variable in your environment to match the
 location of your Java installation."
+    fi
 fi
 
 # Increase the maximum file descriptors if we can.
@@ -141,7 +145,7 @@
     case $MAX_FD in #(
       max*)
         # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
+        # shellcheck disable=SC2039,SC3045
         MAX_FD=$( ulimit -H -n ) ||
             warn "Could not query maximum file descriptor limit"
     esac
@@ -149,7 +153,7 @@
       '' | soft) :;; #(
       *)
         # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
+        # shellcheck disable=SC2039,SC3045
         ulimit -n "$MAX_FD" ||
             warn "Could not set maximum file descriptor limit to $MAX_FD"
     esac
@@ -198,11 +202,11 @@
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 
-# Collect all arguments for the java command;
-#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-#     shell script including quotes and variable substitutions, so put them in
-#     double quotes to make sure that they get re-expanded; and
-#   * put everything else in single quotes, so that it's not re-expanded.
+# Collect all arguments for the java command:
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+#     and any embedded shellness will be escaped.
+#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+#     treated as '${Hostname}' itself on the command line.
 
 set -- \
         "-Dorg.gradle.appname=$APP_BASE_NAME" \
diff --git a/gradlew.bat b/gradlew.bat
index 6689b85..7101f8e 100755
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -43,11 +43,11 @@
 %JAVA_EXE% -version >NUL 2>&1

 if %ERRORLEVEL% equ 0 goto execute

 

-echo.

-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

-echo.

-echo Please set the JAVA_HOME variable in your environment to match the

-echo location of your Java installation.

+echo. 1>&2

+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2

+echo. 1>&2

+echo Please set the JAVA_HOME variable in your environment to match the 1>&2

+echo location of your Java installation. 1>&2

 

 goto fail

 

@@ -57,11 +57,11 @@
 

 if exist "%JAVA_EXE%" goto execute

 

-echo.

-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%

-echo.

-echo Please set the JAVA_HOME variable in your environment to match the

-echo location of your Java installation.

+echo. 1>&2

+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2

+echo. 1>&2

+echo Please set the JAVA_HOME variable in your environment to match the 1>&2

+echo location of your Java installation. 1>&2

 

 goto fail

 

diff --git a/metadata/de-DE/changelogs/43.txt b/metadata/de-DE/changelogs/43.txt
new file mode 100644
index 0000000..ee01ce7
--- /dev/null
+++ b/metadata/de-DE/changelogs/43.txt
@@ -0,0 +1,4 @@
+- Bestätigungsdialog beim Verlassen während der Terminerstellung
+- Option "Keine Schlummerfunktion" hinzufügt
+- Verbessertes Wischen nach links/rechts und nach oben/unten in der Monatsansicht
+- Kleinere Fehlerbehebungen
diff --git a/metadata/de-DE/changelogs/44.txt b/metadata/de-DE/changelogs/44.txt
new file mode 100644
index 0000000..b76ffdd
--- /dev/null
+++ b/metadata/de-DE/changelogs/44.txt
@@ -0,0 +1,2 @@
+- Fehlende Berechtigung hinzugefügt
+- Fehler beim Bauen behoben
diff --git a/metadata/de-DE/changelogs/45.txt b/metadata/de-DE/changelogs/45.txt
new file mode 100644
index 0000000..4b32a17
--- /dev/null
+++ b/metadata/de-DE/changelogs/45.txt
@@ -0,0 +1 @@
+- Fehler beim Bauen behoben
diff --git a/metadata/en-US/changelogs/43.txt b/metadata/en-US/changelogs/43.txt
new file mode 100644
index 0000000..7b76578
--- /dev/null
+++ b/metadata/en-US/changelogs/43.txt
@@ -0,0 +1,4 @@
+- Add confirmation dialog on event discard
+- Add no snooze option
+- Improve left/right swipe and up/down swipe in month view
+- Small bugfixes
diff --git a/metadata/en-US/changelogs/44.txt b/metadata/en-US/changelogs/44.txt
new file mode 100644
index 0000000..f25512c
--- /dev/null
+++ b/metadata/en-US/changelogs/44.txt
@@ -0,0 +1,2 @@
+- Add missing permission
+- Fix build failure
diff --git a/metadata/en-US/changelogs/45.txt b/metadata/en-US/changelogs/45.txt
new file mode 100644
index 0000000..6f58525
--- /dev/null
+++ b/metadata/en-US/changelogs/45.txt
@@ -0,0 +1 @@
+- Fix build failure
diff --git a/settings.gradle b/settings.gradle.kts
similarity index 67%
rename from settings.gradle
rename to settings.gradle.kts
index b2b9aba..348d23c 100644
--- a/settings.gradle
+++ b/settings.gradle.kts
@@ -12,12 +12,12 @@
     repositories {
         google()
         mavenCentral()
-        maven { url "https://jitpack.io" }
+        maven("https://jitpack.io")
     }
 }
 rootProject.name = "Etar-Calendar"
-include ':external:calendar'
-include ':external:colorpicker'
-include ':external:timezonepicker'
-include ':external:chips'
-include ':app'
+include(":external:calendar")
+include(":external:colorpicker")
+include(":external:timezonepicker")
+include(":external:chips")
+include(":app")