From b8448ad99b13bdda376dc5361f6fa48eb8461cea Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 11 Jun 2024 01:15:09 +0530 Subject: [PATCH 1/9] Migrated the `kotlin` version to `2.0.0` --- app/build.gradle.kts | 4 +--- build.gradle.kts | 1 + gradle/libs.versions.toml | 9 +++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index aaf69c0e..c2b2c749 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,7 @@ plugins { alias(libs.plugins.dagger.hilt.android) alias(libs.plugins.devtools.ksp) alias(libs.plugins.ktlint) + alias(libs.plugins.compose.compiler) } android { @@ -48,9 +49,6 @@ android { compose = true buildConfig = true } - composeOptions { - kotlinCompilerExtensionVersion = "1.5.4" - } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" diff --git a/build.gradle.kts b/build.gradle.kts index 3129f2b8..2697c94d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,4 +11,5 @@ plugins { alias(libs.plugins.dagger.hilt.android) apply false alias(libs.plugins.devtools.ksp) apply false alias(libs.plugins.ktlint) apply false + alias(libs.plugins.compose.compiler) apply false } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7d115a3..d4a6ce10 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ datastorePreferences = "1.0.0" desugar_jdk_libs = "2.0.3" espresso-core = "3.5.1" google-gson = "2.10.1" -gradle = "8.1.2" +gradle = "8.1.4" hiltAndroid = "2.48.1" hiltNavigationCompose = "1.0.0" junit = "4.13.2" @@ -25,13 +25,13 @@ materialIconsExtended = "1.6.2" navVersion = "2.7.7" roomVersion = "2.6.1" runtimeLivedata = "1.5.3" -bom = "2024.02.01" +bom = "2024.05.00" kotlinBom = "1.9.20" material3windowsize = "1.1.2" android-application = "8.1.2" -kotlin-android = "1.9.20" +kotlin-android = "2.0.0" dagger-hilt-android = "2.48.1" -devtools-ksp = "1.9.22-1.0.16" +devtools-ksp = "2.0.0-1.0.21" zoomable = "0.6.2" zoomableImageCoil = "0.6.2" ktlint = "11.6.1" @@ -99,3 +99,4 @@ kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin-an dagger-hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt-android" } devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "devtools-ksp" } ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin-android" } From 9fc525ce33eb8527d2283c5e244ecb9bd81aee73 Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 11 Jun 2024 01:15:51 +0530 Subject: [PATCH 2/9] Bumped `Material3` to `1.2.1` --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d4a6ce10..1117db1a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ leakcanaryAndroid = "2.12" lifecycle-runtime-ktx = "2.6.2" lifecycleExtensions = "2.2.0" lifecycleVersion = "2.6.2" -material3 = "1.2.0" +material3 = "1.2.1" materialIconsExtended = "1.6.2" navVersion = "2.7.7" roomVersion = "2.6.1" From e2eaa9f2641e291745cdfa5d70c7b0fc6869639b Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 11 Jun 2024 01:16:29 +0530 Subject: [PATCH 3/9] Bumped `ktx` to `1.13.1` --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1117db1a..d00b855d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ androidx-junit = "1.1.5" appUpdate = "2.1.0" biometric = "1.2.0-alpha05" coilCompose = "2.4.0" -core-ktx = "1.12.0" +core-ktx = "1.13.1" coreSplashscreen = "1.0.1" datastorePreferences = "1.0.0" desugar_jdk_libs = "2.0.3" From b8e862edbc847731e8492d8240e5551299428264 Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 11 Jun 2024 01:17:15 +0530 Subject: [PATCH 4/9] Bumped `coil` to `2.6.0` --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d00b855d..e44fafd2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] accompanistPermissions = "0.32.0" accompanistSystemuicontroller = "0.32.0" -activity-compose = "1.8.2" +activity-compose = "1.9.0" androidx-junit = "1.1.5" appUpdate = "2.1.0" biometric = "1.2.0-alpha05" -coilCompose = "2.4.0" +coilCompose = "2.6.0" core-ktx = "1.13.1" coreSplashscreen = "1.0.1" datastorePreferences = "1.0.0" From 6bc466e688a6fc5f2976caed5fd978bb9ec56984 Mon Sep 17 00:00:00 2001 From: aritra Date: Tue, 11 Jun 2024 01:25:07 +0530 Subject: [PATCH 5/9] Bumped other dependency and optimized the `libs.version.toml` file --- gradle/libs.versions.toml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e44fafd2..69eaf587 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,5 @@ [versions] accompanistPermissions = "0.32.0" -accompanistSystemuicontroller = "0.32.0" activity-compose = "1.9.0" androidx-junit = "1.1.5" appUpdate = "2.1.0" @@ -21,14 +20,14 @@ lifecycle-runtime-ktx = "2.6.2" lifecycleExtensions = "2.2.0" lifecycleVersion = "2.6.2" material3 = "1.2.1" -materialIconsExtended = "1.6.2" +materialIconsExtended = "1.6.7" navVersion = "2.7.7" roomVersion = "2.6.1" runtimeLivedata = "1.5.3" bom = "2024.05.00" kotlinBom = "1.9.20" -material3windowsize = "1.1.2" -android-application = "8.1.2" +material3windowsize = "1.2.1" +android-application = "8.1.4" kotlin-android = "2.0.0" dagger-hilt-android = "2.48.1" devtools-ksp = "2.0.0-1.0.21" @@ -39,13 +38,12 @@ camerax_version = "1.4.0-alpha01" [libraries] accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanistPermissions" } -accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanistSystemuicontroller" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activity-compose" } androidx-biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" } android-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "bom" } android-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlinBom" } -compose-ui = "androidx.compose.ui:ui:1.6.0-alpha03" +compose-ui = "androidx.compose.ui:ui:1.6.7" compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" } compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } compose-material3 = { module = "androidx.compose.material3:material3" } @@ -87,7 +85,6 @@ camera-core = { module = "androidx.camera:camera-core", version.ref = "camerax_v camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camerax_version" } camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camerax_version" } camera-video = { module = "androidx.camera:camera-video", version.ref = "camerax_version" } -camera-mlkit-vision = { module = "androidx.camera:camera-mlkit-vision", version.ref = "camerax_version" } camera-view = { module = "androidx.camera:camera-view", version.ref = "camerax_version" } camera-extensions = { module = "androidx.camera:camera-extensions", version.ref = "camerax_version" } From b5480ab38138aee6762b54b65ffa3a9a0680ae31 Mon Sep 17 00:00:00 2001 From: tuuhin Date: Wed, 12 Jun 2024 02:06:16 +0530 Subject: [PATCH 6/9] Added shortcuts for the app Shortcuts help in quickly access parts of the app Added shortcuts to create a note and open trash. Added deeplinks to the navigation graph. NavDeepLinks provides the uri pattern and the uri AppShortcuts contains all the shortcuts related configurations. Icons used are the same icon with a surface tint --- app/src/main/AndroidManifest.xml | 55 ++++++++++-------- .../com/aritra/notify/NotifyApplication.kt | 7 +++ .../aritra/notify/navigation/NavDeepLinks.kt | 17 ++++++ .../com/aritra/notify/navigation/NotifyApp.kt | 24 +++++++- .../aritra/notify/ui/screens/MainActivity.kt | 16 ++++- .../com/aritra/notify/utils/AppShortcuts.kt | 58 +++++++++++++++++++ .../main/res/drawable/shortcut_add_icon.xml | 10 ++++ .../res/drawable/shortcut_delete_icon.xml | 58 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 + 9 files changed, 220 insertions(+), 27 deletions(-) create mode 100644 app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt create mode 100644 app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt create mode 100644 app/src/main/res/drawable/shortcut_add_icon.xml create mode 100644 app/src/main/res/drawable/shortcut_delete_icon.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c5c244d9..35c7a2db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,48 +1,57 @@ + xmlns:tools="http://schemas.android.com/tools"> - - + + + android:name=".NotifyApplication" + android:allowBackup="true" + android:dataExtractionRules="@xml/data_extraction_rules" + android:enableOnBackInvokedCallback="true" + android:fullBackupContent="@xml/backup_rules" + android:icon="@drawable/notify_logo" + android:label="@string/app_name" + android:roundIcon="@drawable/notify_logo" + android:supportsRtl="true" + android:theme="@style/Theme.Notify" + tools:targetApi="33"> + android:name="androidx.core.content.FileProvider" + android:authorities="${applicationId}.provider" + android:exported="false" + android:grantUriPermissions="true"> + android:name="android.support.FILE_PROVIDER_PATHS" + android:resource="@xml/file_provider_paths" /> + android:name=".ui.screens.MainActivity" + android:exported="true" + android:launchMode="singleTask" + android:theme="@style/Theme.MyApp.Splash" + android:windowSoftInputMode="adjustResize"> + + + + + diff --git a/app/src/main/java/com/aritra/notify/NotifyApplication.kt b/app/src/main/java/com/aritra/notify/NotifyApplication.kt index c4468710..f80686bc 100644 --- a/app/src/main/java/com/aritra/notify/NotifyApplication.kt +++ b/app/src/main/java/com/aritra/notify/NotifyApplication.kt @@ -2,12 +2,19 @@ package com.aritra.notify import android.app.Application import com.aritra.notify.services.notification.createNotificationChannel +import com.aritra.notify.utils.AppShortcuts import dagger.hilt.android.HiltAndroidApp @HiltAndroidApp class NotifyApplication : Application() { + override fun onCreate() { super.onCreate() + + //creates the notification channel createNotificationChannel(this) + + // Adds the shortcuts + AppShortcuts.showShortCuts(this) } } diff --git a/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt new file mode 100644 index 00000000..ec763ce7 --- /dev/null +++ b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt @@ -0,0 +1,17 @@ +package com.aritra.notify.navigation + +import androidx.core.net.toUri + +object NavDeepLinks { + + private const val baseUri = "app://com.aritra.notify" + + // deeplinks for add notes screen set to -1 means only to add note + val addNotesUriPattern = baseUri + NotifyScreens.AddEditNotes.name + "/{noteId}" + val addNotesUri = (baseUri + NotifyScreens.AddEditNotes.name + "/-1").toUri() + + // deeplinks to open trash notes + val trashNoteUriPattern = baseUri + NotifyScreens.TrashNoteScreen.name + val trashNoteUri = trashNoteUriPattern.toUri() + +} \ No newline at end of file diff --git a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt index 97024a83..d14d2508 100644 --- a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt +++ b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt @@ -1,5 +1,6 @@ package com.aritra.notify.navigation +import android.content.Intent import android.widget.Toast import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -31,6 +32,7 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument +import androidx.navigation.navDeepLink import com.aritra.notify.R import com.aritra.notify.ui.screens.notes.addEditScreen.route.AddEditRoute import com.aritra.notify.ui.screens.notes.homeScreen.NoteScreen @@ -89,7 +91,7 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { popExitTransition = { FadeOut } ) { composable( - route = NotifyScreens.Notes.name + route = NotifyScreens.Notes.name, ) { NoteScreen( onFabClicked = { navController.navigate(NotifyScreens.AddEditNotes.name + "/-1") }, @@ -101,7 +103,17 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { composable( route = "${NotifyScreens.AddEditNotes.name}/{noteId}", - arguments = listOf(navArgument("noteId") { type = IntType }) + arguments = listOf( + navArgument("noteId") { + type = IntType + }, + ), + deepLinks = listOf( + navDeepLink { + uriPattern = NavDeepLinks.addNotesUriPattern + action = Intent.ACTION_VIEW + }, + ), ) { backStack -> AddEditRoute( navController = navController, @@ -116,7 +128,13 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { } composable( - route = NotifyScreens.TrashNoteScreen.name + route = NotifyScreens.TrashNoteScreen.name, + deepLinks = listOf( + navDeepLink { + uriPattern = NavDeepLinks.addNotesUriPattern + action = Intent.ACTION_VIEW + }, + ) ) { TrashNoteScreen(trashNoteState = state, onEvent = trashViewModel::onEvent) } diff --git a/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt b/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt index c29a96d7..14c64fbb 100644 --- a/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt +++ b/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt @@ -10,6 +10,8 @@ import androidx.fragment.app.FragmentActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle +import androidx.navigation.NavHostController +import androidx.navigation.compose.rememberNavController import com.aritra.notify.components.biometric.AppBioMetricManager import com.aritra.notify.navigation.NotifyApp import com.aritra.notify.ui.theme.NotifyTheme @@ -35,6 +37,8 @@ class MainActivity : FragmentActivity() { private lateinit var appUpdateManager: AppUpdateManager private val updateType = AppUpdateType.IMMEDIATE + private lateinit var navController: NavHostController + @Inject lateinit var appBioMetricManager: AppBioMetricManager @@ -54,14 +58,24 @@ class MainActivity : FragmentActivity() { } } setContent { + + navController = rememberNavController() + NotifyTheme { - NotifyApp() + NotifyApp(navController = navController) } } setObservers() } + + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + // handle deeplinks + navController.handleDeepLink(intent) + } + private val installStateUpdatedListener = InstallStateUpdatedListener { state -> if (state.installStatus() == InstallStatus.DOWNLOADED) { Toast.makeText( diff --git a/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt new file mode 100644 index 00000000..c578c0da --- /dev/null +++ b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt @@ -0,0 +1,58 @@ +package com.aritra.notify.utils + +import android.content.Context +import android.content.Intent +import android.util.Log +import androidx.core.content.pm.ShortcutInfoCompat +import androidx.core.content.pm.ShortcutManagerCompat +import androidx.core.graphics.drawable.IconCompat +import com.aritra.notify.R +import com.aritra.notify.navigation.NavDeepLinks +import com.aritra.notify.ui.screens.MainActivity + +object AppShortcuts { + + private fun createNoteShortCut(context: Context): ShortcutInfoCompat { + return ShortcutInfoCompat + .Builder(context, "add_new_note") + .setShortLabel(context.getString(R.string.add_new_note_shortcut_label)) + .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_add_icon)) + .setIntent( + Intent(context, MainActivity::class.java).apply { + // opens create screen + data = NavDeepLinks.addNotesUri + action = Intent.ACTION_VIEW + } + ) + .build() + } + + private fun openTrashShortCut(context: Context): ShortcutInfoCompat { + return ShortcutInfoCompat + .Builder(context, "open_trash") + .setShortLabel(context.getString(R.string.open_trash_shortcut_label)) + .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_delete_icon)) + .setIntent( + Intent(context, MainActivity::class.java).apply { + // opens create screen + data = NavDeepLinks.trashNoteUri + action = Intent.ACTION_VIEW + } + ) + .build() + } + + fun showShortCuts(context: Context) { + // shortcuts to appear + val shortcut1 = createNoteShortCut(context) + val shortcut2 = openTrashShortCut(context) + try { + + val isSuccess = ShortcutManagerCompat.addDynamicShortcuts(context, listOf(shortcut1, shortcut2)) + Log.d("SHORTCUTS", "CREATED $isSuccess") + + } catch (e: Exception) { + Log.e("SHORTCUTS", "ERROR IN LAYING SHORTCUTS", e) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/shortcut_add_icon.xml b/app/src/main/res/drawable/shortcut_add_icon.xml new file mode 100644 index 00000000..d5395c15 --- /dev/null +++ b/app/src/main/res/drawable/shortcut_add_icon.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/shortcut_delete_icon.xml b/app/src/main/res/drawable/shortcut_delete_icon.xml new file mode 100644 index 00000000..c1fb85e2 --- /dev/null +++ b/app/src/main/res/drawable/shortcut_delete_icon.xml @@ -0,0 +1,58 @@ + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 10a3706a..ecf29457 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -61,4 +61,6 @@ Set Reminder General By Aritra Das 💙 + Add New Note + Show trash \ No newline at end of file From 011efb1f1adbc260d82f892f057d232890f298ff Mon Sep 17 00:00:00 2001 From: tuuhin Date: Wed, 12 Jun 2024 02:23:50 +0530 Subject: [PATCH 7/9] Fixed linting errors Linting errors in the previous commit are corrected Some files have some linting issues those got auto corrected too. --- .../java/com/aritra/notify/NotifyApplication.kt | 2 +- .../components/appbar/AddEditBottomBar.kt | 7 +++++-- .../aritra/notify/navigation/NavDeepLinks.kt | 11 +++++------ .../com/aritra/notify/navigation/NotifyApp.kt | 10 +++++----- .../aritra/notify/ui/screens/MainActivity.kt | 2 -- .../notes/addEditScreen/AddEditScreen.kt | 5 +++-- .../com/aritra/notify/utils/AppShortcuts.kt | 17 +++++------------ 7 files changed, 24 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/aritra/notify/NotifyApplication.kt b/app/src/main/java/com/aritra/notify/NotifyApplication.kt index f80686bc..26979ba0 100644 --- a/app/src/main/java/com/aritra/notify/NotifyApplication.kt +++ b/app/src/main/java/com/aritra/notify/NotifyApplication.kt @@ -11,7 +11,7 @@ class NotifyApplication : Application() { override fun onCreate() { super.onCreate() - //creates the notification channel + // creates the notification channel createNotificationChannel(this) // Adds the shortcuts diff --git a/app/src/main/java/com/aritra/notify/components/appbar/AddEditBottomBar.kt b/app/src/main/java/com/aritra/notify/components/appbar/AddEditBottomBar.kt index 252f704a..62f38950 100644 --- a/app/src/main/java/com/aritra/notify/components/appbar/AddEditBottomBar.kt +++ b/app/src/main/java/com/aritra/notify/components/appbar/AddEditBottomBar.kt @@ -105,8 +105,11 @@ fun AddEditBottomBar( onDismissRequest = { showSheet = false }, sheetState = sheetState, dragHandle = { BottomSheetDefaults.DragHandle() }, - windowInsets = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) WindowInsets.ime - else WindowInsets(0,0,0,0), + windowInsets = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + WindowInsets.ime + } else { + WindowInsets(0, 0, 0, 0) + }, content = { Column( modifier = Modifier diff --git a/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt index ec763ce7..ed84529b 100644 --- a/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt +++ b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt @@ -4,14 +4,13 @@ import androidx.core.net.toUri object NavDeepLinks { - private const val baseUri = "app://com.aritra.notify" + private const val BASE_URI = "app://com.aritra.notify" // deeplinks for add notes screen set to -1 means only to add note - val addNotesUriPattern = baseUri + NotifyScreens.AddEditNotes.name + "/{noteId}" - val addNotesUri = (baseUri + NotifyScreens.AddEditNotes.name + "/-1").toUri() + val addNotesUriPattern = BASE_URI + NotifyScreens.AddEditNotes.name + "/{noteId}" + val addNotesUri = (BASE_URI + NotifyScreens.AddEditNotes.name + "/-1").toUri() // deeplinks to open trash notes - val trashNoteUriPattern = baseUri + NotifyScreens.TrashNoteScreen.name + val trashNoteUriPattern = BASE_URI + NotifyScreens.TrashNoteScreen.name val trashNoteUri = trashNoteUriPattern.toUri() - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt index d14d2508..5144118a 100644 --- a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt +++ b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt @@ -91,7 +91,7 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { popExitTransition = { FadeOut } ) { composable( - route = NotifyScreens.Notes.name, + route = NotifyScreens.Notes.name ) { NoteScreen( onFabClicked = { navController.navigate(NotifyScreens.AddEditNotes.name + "/-1") }, @@ -106,14 +106,14 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { arguments = listOf( navArgument("noteId") { type = IntType - }, + } ), deepLinks = listOf( navDeepLink { uriPattern = NavDeepLinks.addNotesUriPattern action = Intent.ACTION_VIEW - }, - ), + } + ) ) { backStack -> AddEditRoute( navController = navController, @@ -133,7 +133,7 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { navDeepLink { uriPattern = NavDeepLinks.addNotesUriPattern action = Intent.ACTION_VIEW - }, + } ) ) { TrashNoteScreen(trashNoteState = state, onEvent = trashViewModel::onEvent) diff --git a/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt b/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt index 14c64fbb..5fc699f1 100644 --- a/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt +++ b/app/src/main/java/com/aritra/notify/ui/screens/MainActivity.kt @@ -58,7 +58,6 @@ class MainActivity : FragmentActivity() { } } setContent { - navController = rememberNavController() NotifyTheme { @@ -69,7 +68,6 @@ class MainActivity : FragmentActivity() { setObservers() } - override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) // handle deeplinks diff --git a/app/src/main/java/com/aritra/notify/ui/screens/notes/addEditScreen/AddEditScreen.kt b/app/src/main/java/com/aritra/notify/ui/screens/notes/addEditScreen/AddEditScreen.kt index 5490430e..1310d57c 100644 --- a/app/src/main/java/com/aritra/notify/ui/screens/notes/addEditScreen/AddEditScreen.kt +++ b/app/src/main/java/com/aritra/notify/ui/screens/notes/addEditScreen/AddEditScreen.kt @@ -313,11 +313,12 @@ fun AddEditScreen( ) DateTimeDialog( - isOpen = shouldShowDialogDateTime, isEdit = isEditDateTime, + isOpen = shouldShowDialogDateTime, + isEdit = isEditDateTime, onDateTimeUpdated = { onUpdateReminderDateTime(it) shouldShowDialogDateTime = false - }, + } ) { shouldShowDialogDateTime = false isEditDateTime = false diff --git a/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt index c578c0da..ad53aa8a 100644 --- a/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt +++ b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt @@ -12,9 +12,8 @@ import com.aritra.notify.ui.screens.MainActivity object AppShortcuts { - private fun createNoteShortCut(context: Context): ShortcutInfoCompat { - return ShortcutInfoCompat - .Builder(context, "add_new_note") + private fun createNoteShortCut(context: Context): ShortcutInfoCompat = + ShortcutInfoCompat.Builder(context, "add_new_note") .setShortLabel(context.getString(R.string.add_new_note_shortcut_label)) .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_add_icon)) .setIntent( @@ -25,11 +24,9 @@ object AppShortcuts { } ) .build() - } - private fun openTrashShortCut(context: Context): ShortcutInfoCompat { - return ShortcutInfoCompat - .Builder(context, "open_trash") + private fun openTrashShortCut(context: Context): ShortcutInfoCompat = + ShortcutInfoCompat.Builder(context, "open_trash") .setShortLabel(context.getString(R.string.open_trash_shortcut_label)) .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_delete_icon)) .setIntent( @@ -40,19 +37,15 @@ object AppShortcuts { } ) .build() - } fun showShortCuts(context: Context) { - // shortcuts to appear val shortcut1 = createNoteShortCut(context) val shortcut2 = openTrashShortCut(context) try { - val isSuccess = ShortcutManagerCompat.addDynamicShortcuts(context, listOf(shortcut1, shortcut2)) Log.d("SHORTCUTS", "CREATED $isSuccess") - } catch (e: Exception) { Log.e("SHORTCUTS", "ERROR IN LAYING SHORTCUTS", e) } } -} \ No newline at end of file +} From 518491a6e6d094f3da0d8ddd166130bb92f21cef Mon Sep 17 00:00:00 2001 From: tuuhin Date: Thu, 13 Jun 2024 18:34:23 +0530 Subject: [PATCH 8/9] removed unwanted open trash shortcut Removed shortcut to open trash and removed the associated resources with the shortcut. --- .../aritra/notify/navigation/NavDeepLinks.kt | 4 -- .../com/aritra/notify/navigation/NotifyApp.kt | 8 +-- .../com/aritra/notify/utils/AppShortcuts.kt | 18 +----- .../res/drawable/shortcut_delete_icon.xml | 58 ------------------- app/src/main/res/values/strings.xml | 3 - 5 files changed, 3 insertions(+), 88 deletions(-) delete mode 100644 app/src/main/res/drawable/shortcut_delete_icon.xml diff --git a/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt index ed84529b..92e14905 100644 --- a/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt +++ b/app/src/main/java/com/aritra/notify/navigation/NavDeepLinks.kt @@ -9,8 +9,4 @@ object NavDeepLinks { // deeplinks for add notes screen set to -1 means only to add note val addNotesUriPattern = BASE_URI + NotifyScreens.AddEditNotes.name + "/{noteId}" val addNotesUri = (BASE_URI + NotifyScreens.AddEditNotes.name + "/-1").toUri() - - // deeplinks to open trash notes - val trashNoteUriPattern = BASE_URI + NotifyScreens.TrashNoteScreen.name - val trashNoteUri = trashNoteUriPattern.toUri() } diff --git a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt index 5144118a..df021b9e 100644 --- a/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt +++ b/app/src/main/java/com/aritra/notify/navigation/NotifyApp.kt @@ -128,13 +128,7 @@ fun NotifyApp(navController: NavHostController = rememberNavController()) { } composable( - route = NotifyScreens.TrashNoteScreen.name, - deepLinks = listOf( - navDeepLink { - uriPattern = NavDeepLinks.addNotesUriPattern - action = Intent.ACTION_VIEW - } - ) + route = NotifyScreens.TrashNoteScreen.name ) { TrashNoteScreen(trashNoteState = state, onEvent = trashViewModel::onEvent) } diff --git a/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt index ad53aa8a..5110a847 100644 --- a/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt +++ b/app/src/main/java/com/aritra/notify/utils/AppShortcuts.kt @@ -18,31 +18,17 @@ object AppShortcuts { .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_add_icon)) .setIntent( Intent(context, MainActivity::class.java).apply { - // opens create screen + // opens create note screen data = NavDeepLinks.addNotesUri action = Intent.ACTION_VIEW } ) .build() - private fun openTrashShortCut(context: Context): ShortcutInfoCompat = - ShortcutInfoCompat.Builder(context, "open_trash") - .setShortLabel(context.getString(R.string.open_trash_shortcut_label)) - .setIcon(IconCompat.createWithResource(context, R.drawable.shortcut_delete_icon)) - .setIntent( - Intent(context, MainActivity::class.java).apply { - // opens create screen - data = NavDeepLinks.trashNoteUri - action = Intent.ACTION_VIEW - } - ) - .build() - fun showShortCuts(context: Context) { val shortcut1 = createNoteShortCut(context) - val shortcut2 = openTrashShortCut(context) try { - val isSuccess = ShortcutManagerCompat.addDynamicShortcuts(context, listOf(shortcut1, shortcut2)) + val isSuccess = ShortcutManagerCompat.addDynamicShortcuts(context, listOf(shortcut1)) Log.d("SHORTCUTS", "CREATED $isSuccess") } catch (e: Exception) { Log.e("SHORTCUTS", "ERROR IN LAYING SHORTCUTS", e) diff --git a/app/src/main/res/drawable/shortcut_delete_icon.xml b/app/src/main/res/drawable/shortcut_delete_icon.xml deleted file mode 100644 index c1fb85e2..00000000 --- a/app/src/main/res/drawable/shortcut_delete_icon.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ecf29457..87836548 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,14 +42,12 @@ Rate us on Google Play https://play.google.com/store/apps/details?id=com.aritra.notify Image - No Clicked Photos Clear Image Speech to Text Drawing Add image Take Photo Add Box - notify Request permission Notification permission The notification permission is important for this app. Please grant the permission. @@ -62,5 +60,4 @@ General By Aritra Das 💙 Add New Note - Show trash \ No newline at end of file From daf4f6f72886dd3dbc289d3588201a6a1e716c8e Mon Sep 17 00:00:00 2001 From: aritra Date: Thu, 20 Jun 2024 20:36:42 +0530 Subject: [PATCH 9/9] Bumped Version Name and code --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c2b2c749..ae2d6b53 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { applicationId = "com.aritra.notify" minSdk = 24 targetSdk = 34 - versionCode = 14 - versionName = "1.9.3" + versionCode = 15 + versionName = "1.10.3" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables {