diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 93e4ca422..909d433e1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,7 +19,7 @@
tools:ignore="ProtectedPermissions" />
" + e.localizedMessage + "
", "text/html", "UTF-8" ) } - setChangelogRead(this) + setChangelogRead(requireContext()) binding.tgFab.setOnClickListener { openUrl(Constants.TELEGRAM_CHANGE_LOG) } @@ -86,10 +98,16 @@ class WhatsNewActivity : AbsThemeActivity() { binding.tgFab.extend() } } - binding.webView.drawAboveSystemBars() + } + + override fun onDestroy() { + super.onDestroy() + _binding = null } companion object { + + const val TAG = "WhatsNewFragment" private fun colorToCSS(color: Int): String { return String.format( Locale.getDefault(), @@ -104,11 +122,20 @@ class WhatsNewActivity : AbsThemeActivity() { private fun setChangelogRead(context: Context) { try { val pInfo = context.packageManager.getPackageInfo(context.packageName, 0) - val currentVersion = pInfo.versionCode + val currentVersion = PackageInfoCompat.getLongVersionCode(pInfo) lastVersion = currentVersion } catch (e: PackageManager.NameNotFoundException) { e.printStackTrace() } } + + fun showChangeLog(activity: FragmentActivity) { + val pInfo = activity.packageManager.getPackageInfo(activity.packageName, 0) + val currentVersion = PackageInfoCompat.getLongVersionCode(pInfo) + if (currentVersion > lastVersion && BuildConfig.DEBUG) { + val changelogBottomSheet = WhatsNewFragment() + changelogBottomSheet.show(activity.supportFragmentManager, TAG) + } + } } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/model/DeviceInfo.kt b/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/model/DeviceInfo.kt index 98d0a6d55..5d1ea8977 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/model/DeviceInfo.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/bugreport/model/DeviceInfo.kt @@ -2,9 +2,11 @@ package code.name.monkey.retromusic.activities.bugreport.model import android.annotation.SuppressLint import android.content.Context +import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.os.Build import androidx.annotation.IntRange +import androidx.core.content.pm.PackageInfoCompat import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil.isAdaptiveColor import code.name.monkey.retromusic.util.PreferenceUtil.languageCode @@ -35,7 +37,7 @@ class DeviceInfo(context: Context) { @IntRange(from = 0) private val sdkVersion = Build.VERSION.SDK_INT - private var versionCode = 0 + private var versionCode = 0L private var versionName: String? = null private val selectedLang: String fun toMarkdown(): String { @@ -96,7 +98,7 @@ class DeviceInfo(context: Context) { null } if (packageInfo != null) { - versionCode = packageInfo.versionCode + versionCode = PackageInfoCompat.getLongVersionCode(packageInfo) versionName = packageInfo.versionName } else { versionCode = -1 diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt index 5f62b0711..c3cd1b3db 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt @@ -239,14 +239,12 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme protected open fun toggleFavorite(song: Song) { lifecycleScope.launch(IO) { val playlist: PlaylistEntity = libraryViewModel.favoritePlaylist() - if (playlist != null) { - val songEntity = song.toSongEntity(playlist.playListId) - val isFavorite = libraryViewModel.isSongFavorite(song.id) - if (isFavorite) { - libraryViewModel.removeSongFromPlaylist(songEntity) - } else { - libraryViewModel.insertSongs(listOf(song.toSongEntity(playlist.playListId))) - } + val songEntity = song.toSongEntity(playlist.playListId) + val isFavorite = libraryViewModel.isSongFavorite(song.id) + if (isFavorite) { + libraryViewModel.removeSongFromPlaylist(songEntity) + } else { + libraryViewModel.insertSongs(listOf(song.toSongEntity(playlist.playListId))) } libraryViewModel.forceReload(ReloadType.Playlists) requireContext().sendBroadcast(Intent(MusicService.FAVORITE_STATE_CHANGED)) diff --git a/app/src/main/java/code/name/monkey/retromusic/glide/BlurTransformation.kt b/app/src/main/java/code/name/monkey/retromusic/glide/BlurTransformation.kt index 8b2176af7..fc0434d0b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/glide/BlurTransformation.kt +++ b/app/src/main/java/code/name/monkey/retromusic/glide/BlurTransformation.kt @@ -14,6 +14,7 @@ import com.bumptech.glide.load.resource.bitmap.BitmapTransformation import java.security.MessageDigest +@Suppress("Deprecation") class BlurTransformation : BitmapTransformation { private var context: Context? = null diff --git a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.kt index 45d8f1e1a..2d960af00 100755 --- a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.kt @@ -19,6 +19,7 @@ import android.content.Context import android.content.Intent import android.media.audiofx.AudioEffect import android.widget.Toast +import androidx.fragment.app.FragmentActivity import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.* import code.name.monkey.retromusic.activities.bugreport.BugReportActivity @@ -56,10 +57,9 @@ object NavigationUtil { ) } - fun gotoWhatNews(activity: Activity) { - activity.startActivity( - Intent(activity, WhatsNewActivity::class.java), null - ) + fun gotoWhatNews(activity: FragmentActivity) { + val changelogBottomSheet = WhatsNewFragment() + changelogBottomSheet.show(activity.supportFragmentManager, WhatsNewFragment.TAG) } fun openEqualizer(activity: Activity) { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt index 614a2f519..c5295ccb6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt @@ -389,9 +389,15 @@ object PreferenceUtil { val filterLength get() = sharedPreferences.getInt(FILTER_SONG, 20) var lastVersion - get() = sharedPreferences.getInt(LAST_CHANGELOG_VERSION, 0) + // This was stored as an integer before now it's a long, so avoid a ClassCastException + get() = try { + sharedPreferences.getLong(LAST_CHANGELOG_VERSION, 0) + } catch (e: ClassCastException) { + sharedPreferences.edit { remove(LAST_CHANGELOG_VERSION) } + 0 + } set(value) = sharedPreferences.edit { - putInt(LAST_CHANGELOG_VERSION, value) + putLong(LAST_CHANGELOG_VERSION, value) } var lastSleepTimerValue diff --git a/app/src/main/res/layout/activity_whats_new.xml b/app/src/main/res/layout/fragment_whats_new.xml similarity index 64% rename from app/src/main/res/layout/activity_whats_new.xml rename to app/src/main/res/layout/fragment_whats_new.xml index b7f4b8ecb..9888221b5 100644 --- a/app/src/main/res/layout/activity_whats_new.xml +++ b/app/src/main/res/layout/fragment_whats_new.xml @@ -5,24 +5,6 @@ android:layout_height="match_parent" android:fitsSystemWindows="true"> -