From 56100cab0a611a8c6db88a9217adf4a1e1acc335 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Thu, 17 Feb 2022 21:11:12 +0530 Subject: [PATCH] Fixed MainActivity restart when opening activity from notification & widget --- app/src/main/AndroidManifest.xml | 3 ++- .../name/monkey/retromusic/activities/MainActivity.kt | 8 ++++---- .../monkey/retromusic/extensions/ActivityExtensions.kt | 9 +++++++-- .../java/code/name/monkey/retromusic/util/MusicUtil.kt | 3 --- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9518270a5..0dbf3e677 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,7 +38,8 @@ android:name=".activities.MainActivity" android:exported="true" android:label="@string/app_name" - android:theme="@style/SplashTheme"> + android:theme="@style/SplashTheme" + android:launchMode="singleTop"> diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 3a2b249a0..5bde635bb 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -129,15 +129,15 @@ class MainActivity : AbsCastActivity(), OnSharedPreferenceChangeListener { override fun onSupportNavigateUp(): Boolean = findNavController(R.id.fragment_container).navigateUp() - override fun onResume() { - super.onResume() + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) PreferenceUtil.registerOnSharedPreferenceChangedListener(this) - val expand = extra(EXPAND_PANEL).value ?: false + val expand = intent?.extra(EXPAND_PANEL)?.value ?: false if (expand && PreferenceUtil.isExpandPanel) { fromNotification = true slidingPanel.bringToFront() expandPanel() - intent.removeExtra(EXPAND_PANEL) + intent?.removeExtra(EXPAND_PANEL) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityExtensions.kt index 3ccc81f4a..bf3d9d8cd 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityExtensions.kt @@ -14,8 +14,8 @@ */ package code.name.monkey.retromusic.extensions -import android.R import android.app.Activity +import android.content.Intent import android.view.View import android.view.ViewGroup import androidx.annotation.DimenRes @@ -33,6 +33,11 @@ inline fun Activity.extra(key: String, default: T? = null) = l if (value is T) value else default } +inline fun Intent.extra(key: String, default: T? = null) = lazy { + val value = extras?.get(key) + if (value is T) value else default +} + inline fun Activity.extraNotNull(key: String, default: T? = null) = lazy { val value = intent?.extras?.get(key) requireNotNull(if (value is T) value else default) { key } @@ -42,4 +47,4 @@ fun Activity.dip(@DimenRes id: Int): Int { return resources.getDimensionPixelSize(id) } -inline val Activity.rootView: View get() = findViewById(R.id.content).getChildAt(0) \ No newline at end of file +inline val Activity.rootView: View get() = findViewById(android.R.id.content).getChildAt(0) \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt index 334dfec79..4f5bb0ede 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/MusicUtil.kt @@ -1,20 +1,17 @@ package code.name.monkey.retromusic.util -import android.app.Activity import android.content.ContentUris import android.content.ContentValues import android.content.Context import android.content.Intent import android.database.Cursor import android.net.Uri -import android.os.Build import android.os.Environment import android.provider.BaseColumns import android.provider.MediaStore import android.text.TextUtils import android.util.Log import android.widget.Toast -import androidx.annotation.RequiresApi import androidx.core.content.FileProvider import androidx.fragment.app.FragmentActivity import code.name.monkey.appthemehelper.util.VersionUtils