From 787212ee59fb6c9b8e73919a89fcd7a64c2298c3 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Sun, 14 Mar 2021 09:33:15 -0600 Subject: [PATCH] Minor improvements Fix some more blacklist UI issues alongside some problems with formatting/audio focus. --- .../auxio/database/BlacklistDatabase.kt | 12 ++++++-- .../playback/state/PlaybackStateManager.kt | 1 - .../auxio/playback/system/AudioReactor.kt | 7 +++-- .../oxycblt/auxio/settings/SettingsManager.kt | 4 +-- .../settings/blacklist/BlacklistViewModel.kt | 3 -- .../main/res/layout/fragment_blacklist.xml | 29 ++++++++++--------- app/src/main/res/layout/fragment_loading.xml | 4 +-- .../main/res/layout/item_blacklist_entry.xml | 10 ++++--- 8 files changed, 39 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt b/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt index ff77b7f8d..ab1365cf0 100644 --- a/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt +++ b/app/src/main/java/org/oxycblt/auxio/database/BlacklistDatabase.kt @@ -34,7 +34,9 @@ class BlacklistDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, n * @return Whether this file has been added to the database or not. */ fun addPath(file: File): Boolean { - val path = file.mediaStorePath + assertBackgroundThread() + + val path = file.canonicalPathSafe logD("Adding path $path to blacklist") @@ -58,12 +60,16 @@ class BlacklistDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, n * Remove a [File] from this blacklist. */ fun removePath(file: File) { + assertBackgroundThread() + writableDatabase.execute { - delete(TABLE_NAME, "$COLUMN_PATH=?", arrayOf(file.mediaStorePath)) + delete(TABLE_NAME, "$COLUMN_PATH=?", arrayOf(file.canonicalPathSafe)) } } fun getPaths(): List { + assertBackgroundThread() + val paths = mutableListOf() readableDatabase.queryAll(TABLE_NAME) { cursor -> @@ -83,7 +89,7 @@ class BlacklistDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, n return exists ?: false } - private val File.mediaStorePath: String get() { + private val File.canonicalPathSafe: String get() { return try { canonicalPath } catch (e: IOException) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt index d6a97fa3d..439d3fcf7 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackStateManager.kt @@ -464,7 +464,6 @@ class PlaybackStateManager private constructor() { * Generate a new shuffled queue. * @param keepSong Whether the current song should be kept as the queue is shuffled * @param useLastSong Whether to use the last song in the queue instead of the current one - * @return A new shuffled queue */ private fun genShuffle(keepSong: Boolean, useLastSong: Boolean) { val lastSong = if (useLastSong) mQueue[0] else mSong diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt index a512a9e19..18604ff23 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt @@ -71,8 +71,11 @@ class AudioReactor( } private fun onLossTransient() { - pauseWasTransient = true - playbackManager.setPlaying(false) + // Since this loss is only temporary, mark it as such if we had to pause playback. + if (playbackManager.isPlaying) { + pauseWasTransient = true + playbackManager.setPlaying(false) + } } private fun onLossPermanent() { diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt index 1c3dab7e3..a25205155 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsManager.kt @@ -70,7 +70,7 @@ class SettingsManager private constructor(context: Context) : get() = sharedPrefs.getBoolean(Keys.KEY_USE_ALT_NOTIFICATION_ACTION, false) /** What to display on the library. */ - val libraryDisplayMode: org.oxycblt.auxio.recycler.DisplayMode + val libraryDisplayMode: DisplayMode get() = DisplayMode.valueOfOrFallback( sharedPrefs.getString( Keys.KEY_LIBRARY_DISPLAY_MODE, @@ -264,7 +264,7 @@ class SettingsManager private constructor(context: Context) : interface Callback { fun onColorizeNotifUpdate(doColorize: Boolean) {} fun onNotifActionUpdate(useAltAction: Boolean) {} - fun onLibDisplayModeUpdate(displayMode: org.oxycblt.auxio.recycler.DisplayMode) {} + fun onLibDisplayModeUpdate(displayMode: DisplayMode) {} fun onShowCoverUpdate(showCovers: Boolean) {} fun onQualityCoverUpdate(doQualityCovers: Boolean) {} } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/blacklist/BlacklistViewModel.kt b/app/src/main/java/org/oxycblt/auxio/settings/blacklist/BlacklistViewModel.kt index d756535a7..ba8ab7878 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/blacklist/BlacklistViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/blacklist/BlacklistViewModel.kt @@ -8,9 +8,6 @@ class BlacklistViewModel : ViewModel() { private val mPaths = MutableLiveData(mutableListOf()) val paths: LiveData> get() = mPaths - var modified = false - private set - fun addPath(path: String) { if (mPaths.value!!.contains(path)) { return diff --git a/app/src/main/res/layout/fragment_blacklist.xml b/app/src/main/res/layout/fragment_blacklist.xml index 613aca3f1..9a38bd786 100644 --- a/app/src/main/res/layout/fragment_blacklist.xml +++ b/app/src/main/res/layout/fragment_blacklist.xml @@ -1,25 +1,26 @@ - - + xmlns:tools="http://schemas.android.com/tools"> + + android:theme="@style/Theme.Neutral"> @@ -28,19 +29,19 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:overScrollMode="never" - tools:itemCount="1" - tools:listitem="@layout/item_blacklist_entry" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" - app:layout_constraintTop_toBottomOf="@+id/blacklist_header" /> + app:layout_constraintTop_toBottomOf="@+id/blacklist_header" + tools:itemCount="1" + tools:listitem="@layout/item_blacklist_entry" /> @@ -65,8 +66,8 @@