all: fix lints

Fix lints that have accumulated over time.

Apparently Android Studio just...stopped using lints. For no reason. I
had to upgrade to the beta version to actually get lints.
This commit is contained in:
OxygenCobalt 2022-08-04 13:14:21 -06:00
parent f6429a878a
commit 4af45031b0
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
46 changed files with 82 additions and 124 deletions

View file

@ -17,7 +17,7 @@ android {
// API 33 is still busted, waiting until the XML element issue is fixed // API 33 is still busted, waiting until the XML element issue is fixed
// noinspection OldTargetApi // noinspection OldTargetApi
minSdk 21 minSdk 21
targetSdk 33 targetSdk 32
buildFeatures { buildFeatures {
viewBinding true viewBinding true

View file

@ -284,7 +284,6 @@ class HomeFragment : ViewBindingFragment<FragmentHomeBinding>(), Toolbar.OnMenuI
logD("Received non-ok response $response") logD("Received non-ok response $response")
when (response) { when (response) {
is Indexer.Response.Ok -> error("Unreachable")
is Indexer.Response.Err -> { is Indexer.Response.Err -> {
binding.homeIndexingProgress.visibility = View.INVISIBLE binding.homeIndexingProgress.visibility = View.INVISIBLE
binding.homeIndexingStatus.textSafe = getString(R.string.err_index_failed) binding.homeIndexingStatus.textSafe = getString(R.string.err_index_failed)
@ -315,6 +314,7 @@ class HomeFragment : ViewBindingFragment<FragmentHomeBinding>(), Toolbar.OnMenuI
} }
} }
} }
else -> {}
} }
} }
} }

View file

@ -168,7 +168,7 @@ constructor(context: Context, attrs: AttributeSet? = null, defStyleRes: Int = 0)
} }
companion object { companion object {
// Cache sqrt(2) for faster calculations // Pre-calculate sqrt(2) for faster drawing
private const val SQRT2 = 1.4142135623730950488f private const val SQRT2 = 1.4142135f
} }
} }

View file

@ -160,20 +160,11 @@ abstract class BaseFetcher : Fetcher {
else -> continue else -> continue
} }
// Ensure the picture type here is a front cover image so that we don't extract
// an incorrect cover image.
// Yes, this does add some latency, but its quality covers so we can prioritize
// correctness over speed.
if (type == MediaMetadata.PICTURE_TYPE_FRONT_COVER) { if (type == MediaMetadata.PICTURE_TYPE_FRONT_COVER) {
logD("Front cover successfully found") logD("Front cover found")
// We have a front cover image. Great.
stream = ByteArrayInputStream(pic) stream = ByteArrayInputStream(pic)
break break
} else if (stream != null) { } else if (stream == null) {
// In the case a front cover is not found, use the first image in the tag instead.
// This can be corrected later on if a front cover frame is found.
logW("No front cover image, using image of type $type instead")
stream = ByteArrayInputStream(pic) stream = ByteArrayInputStream(pic)
} }
} }

View file

@ -73,7 +73,7 @@ data class Directory(val volume: StorageVolume, val relativePath: String) {
val volume = val volume =
when (split[0]) { when (split[0]) {
DOCUMENT_URI_PRIMARY_NAME -> storageManager.primaryStorageVolume DOCUMENT_URI_PRIMARY_NAME -> storageManager.primaryStorageVolumeCompat
else -> storageManager.storageVolumesCompat.find { it.uuidCompat == split[0] } else -> storageManager.storageVolumesCompat.find { it.uuidCompat == split[0] }
} }
@ -84,10 +84,17 @@ data class Directory(val volume: StorageVolume, val relativePath: String) {
} }
} }
@Suppress("NewApi")
private val SM_API21_GET_VOLUME_LIST_METHOD: Method by private val SM_API21_GET_VOLUME_LIST_METHOD: Method by
lazyReflectedMethod(StorageManager::class, "getVolumeList") lazyReflectedMethod(StorageManager::class, "getVolumeList")
@Suppress("NewApi")
private val SV_API21_GET_PATH_METHOD: Method by lazyReflectedMethod(StorageVolume::class, "getPath") private val SV_API21_GET_PATH_METHOD: Method by lazyReflectedMethod(StorageVolume::class, "getPath")
/** The "primary" storage volume containing the OS. May be an SD Card. */
val StorageManager.primaryStorageVolumeCompat: StorageVolume
@Suppress("NewApi") get() = primaryStorageVolume
/** /**
* A list of recognized volumes, retrieved in a compatible manner. Note that these volumes may be * A list of recognized volumes, retrieved in a compatible manner. Note that these volumes may be
* mounted or unmounted. * mounted or unmounted.
@ -158,6 +165,7 @@ val StorageVolume.mediaStoreVolumeNameCompat: String?
} else { } else {
// Replicate API: primary_external if primary storage, lowercase uuid otherwise // Replicate API: primary_external if primary storage, lowercase uuid otherwise
if (isPrimaryCompat) { if (isPrimaryCompat) {
@Suppress("NewApi") // Inlined constant
MediaStore.VOLUME_EXTERNAL_PRIMARY MediaStore.VOLUME_EXTERNAL_PRIMARY
} else { } else {
uuidCompat?.lowercase() uuidCompat?.lowercase()

View file

@ -17,9 +17,9 @@
package org.oxycblt.auxio.music.system package org.oxycblt.auxio.music.system
import android.app.NotificationManager
import android.content.Context import android.content.Context
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.IntegerTable
import org.oxycblt.auxio.R import org.oxycblt.auxio.R
@ -90,4 +90,4 @@ private val INDEXER_CHANNEL =
ServiceNotification.ChannelInfo( ServiceNotification.ChannelInfo(
id = BuildConfig.APPLICATION_ID + ".channel.INDEXER", id = BuildConfig.APPLICATION_ID + ".channel.INDEXER",
R.string.info_indexer_channel_name, R.string.info_indexer_channel_name,
NotificationManager.IMPORTANCE_LOW) NotificationManagerCompat.IMPORTANCE_LOW)

View file

@ -75,7 +75,7 @@ class IndexerService : Service(), Indexer.Controller, Settings.Callback {
wakeLock = wakeLock =
getSystemServiceSafe(PowerManager::class) getSystemServiceSafe(PowerManager::class)
.newWakeLock( .newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, BuildConfig.APPLICATION_ID + ".IndexerService") PowerManager.PARTIAL_WAKE_LOCK, BuildConfig.APPLICATION_ID + ":IndexerService")
settings = Settings(this, this) settings = Settings(this, this)
indexerContentObserver = SystemContentObserver() indexerContentObserver = SystemContentObserver()
@ -200,7 +200,9 @@ class IndexerService : Service(), Indexer.Controller, Settings.Callback {
private fun PowerManager.WakeLock.acquireSafe() { private fun PowerManager.WakeLock.acquireSafe() {
if (!wakeLock.isHeld) { if (!wakeLock.isHeld) {
logD("Acquiring wake lock") logD("Acquiring wake lock")
acquire()
// We always drop the wakelock eventually. Timeout is not needed.
@Suppress("WakelockTimeout") acquire()
} }
} }

View file

@ -18,13 +18,13 @@
package org.oxycblt.auxio.playback.system package org.oxycblt.auxio.playback.system
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import android.support.v4.media.MediaMetadataCompat import android.support.v4.media.MediaMetadataCompat
import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.MediaSessionCompat
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.media.app.NotificationCompat.MediaStyle import androidx.media.app.NotificationCompat.MediaStyle
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.IntegerTable import org.oxycblt.auxio.IntegerTable
@ -154,6 +154,6 @@ class NotificationComponent(private val context: Context, sessionToken: MediaSes
ChannelInfo( ChannelInfo(
id = BuildConfig.APPLICATION_ID + ".channel.PLAYBACK", id = BuildConfig.APPLICATION_ID + ".channel.PLAYBACK",
nameRes = R.string.info_playback_channel_name, nameRes = R.string.info_playback_channel_name,
importance = NotificationManager.IMPORTANCE_LOW) importance = NotificationManagerCompat.IMPORTANCE_LOW)
} }
} }

View file

@ -358,8 +358,7 @@ data class Sort(val mode: Mode, val isAscending: Boolean) {
aSortName.compareTo(bSortName, ignoreCase = true) aSortName.compareTo(bSortName, ignoreCase = true)
aSortName == null && bSortName != null -> -1 // a < b aSortName == null && bSortName != null -> -1 // a < b
aSortName == null && bSortName == null -> 0 // a = b aSortName == null && bSortName == null -> 0 // a = b
aSortName != null && bSortName == null -> 1 // a < b else -> 1 // a < b
else -> error("Unreachable")
} }
} }
@ -377,8 +376,7 @@ data class Sort(val mode: Mode, val isAscending: Boolean) {
a != null && b != null -> a.compareTo(b) a != null && b != null -> a.compareTo(b)
a == null && b != null -> -1 // a < b a == null && b != null -> -1 // a < b
a == null && b == null -> 0 // a = b a == null && b == null -> 0 // a = b
a != null && b == null -> 1 // a < b else -> 1 // a < b
else -> error("Unreachable")
} }
companion object { companion object {

View file

@ -151,7 +151,7 @@ class ArtistViewHolder private constructor(private val binding: ItemParentBindin
override fun areItemsTheSame(oldItem: Artist, newItem: Artist) = override fun areItemsTheSame(oldItem: Artist, newItem: Artist) =
oldItem.rawName == newItem.rawName && oldItem.rawName == newItem.rawName &&
oldItem.albums.size == newItem.albums.size && oldItem.albums.size == newItem.albums.size &&
newItem.songs.size == newItem.songs.size oldItem.songs.size == newItem.songs.size
} }
} }
} }

View file

@ -102,6 +102,7 @@ private val Any.autoTag: String
* *
* UNITED ARAB EMIRATES ENSLAVED MIGRANT WORKERS * UNITED ARAB EMIRATES ENSLAVED MIGRANT WORKERS
*/ */
@Suppress("KotlinConstantConditions")
private fun basedCopyleftNotice() { private fun basedCopyleftNotice() {
if (BuildConfig.APPLICATION_ID != "org.oxycblt.auxio" && if (BuildConfig.APPLICATION_ID != "org.oxycblt.auxio" &&
BuildConfig.APPLICATION_ID != "org.oxycblt.auxio.debug") { BuildConfig.APPLICATION_ID != "org.oxycblt.auxio.debug") {

View file

@ -1,14 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="@dimen/m3_ripple_selectable_pressed_alpha" <item android:alpha="0.12" android:color="?attr/colorOnSurfaceVariant" android:state_pressed="true" />
android:color="?attr/colorOnSurfaceVariant" <item android:alpha="0.2" android:color="?attr/colorOnSurfaceVariant" android:state_focused="true" />
android:state_pressed="true"/> <item android:alpha="0.4" android:color="?attr/colorOnSurfaceVariant" android:state_hovered="true" />
<item android:alpha="@dimen/m3_ripple_focused_alpha" <item android:alpha="0.16" android:color="?attr/colorOnSurfaceVariant" />
android:color="?attr/colorOnSurfaceVariant"
android:state_focused="true"/>
<item android:alpha="@dimen/m3_ripple_hovered_alpha"
android:color="?attr/colorOnSurfaceVariant"
android:state_hovered="true"/>
<item android:alpha="@dimen/m3_ripple_default_alpha"
android:color="?attr/colorOnSurfaceVariant"/>
</selector> </selector>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_activated="true" /> <item android:color="?attr/colorPrimary" android:state_activated="true" />
<item android:color="?android:attr/textColorPrimary" android:alpha="0.5" android:state_enabled="false" /> <item android:alpha="0.5" android:color="?android:attr/textColorPrimary" android:state_enabled="false" />
<item android:color="?android:attr/textColorPrimary" /> <item android:color="?android:attr/textColorPrimary" />
</selector> </selector>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?android:attr/textColorSecondary" android:state_activated="true" /> <item android:color="?android:attr/textColorSecondary" android:state_activated="true" />
<item android:color="?android:attr/textColorSecondary" android:alpha="0.5" android:state_enabled="false" /> <item android:alpha="0.5" android:color="?android:attr/textColorSecondary" android:state_enabled="false" />
<item android:color="?android:attr/textColorSecondary" /> <item android:color="?android:attr/textColorSecondary" />
</selector> </selector>

View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="?attr/colorSurface" />
</shape>
</item>
<item android:id="@+id/panel_overlay">
<shape android:shape="rectangle" />
</item>
</layer-list>

View file

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<size android:height="4dp" android:width="32dp" /> <size
<corners android:radius="2dp" /> android:width="32dp"
<solid android:color="#FFF" /> android:height="4dp" />
<corners android:radius="2dp" />
<solid android:color="#FFF" />
</shape> </shape>

View file

@ -28,7 +28,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal"> android:orientation="horizontal">
@ -37,21 +37,23 @@
android:id="@+id/playback_panel_fragment" android:id="@+id/playback_panel_fragment"
android:name="org.oxycblt.auxio.playback.PlaybackPanelFragment" android:name="org.oxycblt.auxio.playback.PlaybackPanelFragment"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_height="match_parent"
android:layout_height="match_parent" /> app:layout_constraintEnd_toStartOf="@+id/queue_sheet"
app:layout_constraintStart_toStartOf="parent" />
<LinearLayout <LinearLayout
android:id="@+id/queue_sheet" android:id="@+id/queue_sheet"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/playback_panel_fragment">
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:text="@string/lbl_queue"
android:gravity="center" android:gravity="center"
android:text="@string/lbl_queue"
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" android:textAppearance="@style/TextAppearance.Material3.LabelLarge"
android:textColor="?attr/colorOnSurfaceVariant" android:textColor="?attr/colorOnSurfaceVariant"
app:layout_constraintBottom_toBottomOf="@+id/handle" app:layout_constraintBottom_toBottomOf="@+id/handle"
@ -60,14 +62,14 @@
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/queue_fragment" android:id="@+id/queue_fragment"
android:name="org.oxycblt.auxio.playback.queue.QueueFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1" />
android:name="org.oxycblt.auxio.playback.queue.QueueFragment" />
</LinearLayout> </LinearLayout>
</LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View file

@ -4,8 +4,8 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"
android:background="?attr/colorSurface" android:background="?attr/colorSurface"
android:orientation="vertical"
tools:context=".settings.AboutFragment"> tools:context=".settings.AboutFragment">
<org.oxycblt.auxio.ui.coordinator.EdgeAppBarLayout <org.oxycblt.auxio.ui.coordinator.EdgeAppBarLayout

View file

@ -53,8 +53,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:fitsSystemWindows="true"
android:layout_margin="@dimen/spacing_medium" android:layout_margin="@dimen/spacing_medium"
android:fitsSystemWindows="true"
android:visibility="invisible"> android:visibility="invisible">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView

View file

@ -51,12 +51,12 @@
android:id="@+id/handle" android:id="@+id/handle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/size_btn" android:layout_height="@dimen/size_btn"
android:scaleType="center"
android:paddingBottom="@dimen/spacing_mid_large"
android:src="@drawable/ui_queue_drag_handle"
app:tint="?attr/colorOnSurfaceVariant"
android:contentDescription="@string/desc_queue_bar" android:contentDescription="@string/desc_queue_bar"
app:layout_constraintTop_toTopOf="parent" /> android:paddingBottom="@dimen/spacing_mid_large"
android:scaleType="center"
android:src="@drawable/ui_queue_drag_handle"
app:layout_constraintTop_toTopOf="parent"
app:tint="?attr/colorOnSurfaceVariant" />
<TextView <TextView
android:id="@+id/queue_title" android:id="@+id/queue_title"
@ -73,10 +73,10 @@
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/queue_fragment" android:id="@+id/queue_fragment"
android:name="org.oxycblt.auxio.playback.queue.QueueFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1" />
android:name="org.oxycblt.auxio.playback.queue.QueueFragment" />
</LinearLayout> </LinearLayout>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/queue_layout" android:id="@+id/queue_layout"

View file

@ -4,8 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:background="?attr/colorSurface"
android:background="?attr/colorSurface"> android:orientation="vertical">
<org.oxycblt.auxio.ui.coordinator.EdgeAppBarLayout <org.oxycblt.auxio.ui.coordinator.EdgeAppBarLayout
android:id="@+id/settings_appbar" android:id="@+id/settings_appbar"

View file

@ -106,7 +106,6 @@
<string name="err_no_perms">اوكسيو يحتاج إلى صلاحيات لقراءة للاطلاع على مكتبتك للموسيقى</string> <string name="err_no_perms">اوكسيو يحتاج إلى صلاحيات لقراءة للاطلاع على مكتبتك للموسيقى</string>
<string name="err_no_app">لا يوجد تطبيق لفتح هذا الرابط</string> <string name="err_no_app">لا يوجد تطبيق لفتح هذا الرابط</string>
<string name="err_bad_dir">هذا المجلد غير مدعوم</string> <string name="err_bad_dir">هذا المجلد غير مدعوم</string>
<string name="err_too_small">اوكسيو لا يدعم حجم النافذة هذه</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">البحث في مكتبتك…</string> <string name="hint_search_library">البحث في مكتبتك…</string>

View file

@ -109,7 +109,6 @@
<string name="err_no_app">Žádná aplikace nedokáže otevřít tento odkaz</string> <string name="err_no_app">Žádná aplikace nedokáže otevřít tento odkaz</string>
<string name="err_no_dirs">Žádné složky</string> <string name="err_no_dirs">Žádné složky</string>
<string name="err_bad_dir">Tato složka není podporována</string> <string name="err_bad_dir">Tato složka není podporována</string>
<string name="err_too_small">Auxio nepodporuje velikost tohoto okna</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">Prohledat vaší knihovnu…</string> <string name="hint_search_library">Prohledat vaší knihovnu…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->

View file

@ -201,7 +201,6 @@
<string name="lbl_format">Format</string> <string name="lbl_format">Format</string>
<string name="lbl_size">Größe</string> <string name="lbl_size">Größe</string>
<string name="lbl_bitrate">Bitrate</string> <string name="lbl_bitrate">Bitrate</string>
<string name="err_too_small">Auxio unterstützt diese Fenstergröße nicht</string>
<string name="set_quality_tags">MediaStore-Tags ignorieren</string> <string name="set_quality_tags">MediaStore-Tags ignorieren</string>
<string name="set_quality_tags_desc">Erhöht Tag-Qualität, benötigt aber längere Ladezeiten (Experimentell)</string> <string name="set_quality_tags_desc">Erhöht Tag-Qualität, benötigt aber längere Ladezeiten (Experimentell)</string>
<string name="lbl_observing">Überwachen der Musikbibliothek</string> <string name="lbl_observing">Überwachen der Musikbibliothek</string>

View file

@ -91,7 +91,6 @@
<string name="err_no_perms">Auxio necesita permiso para leer su biblioteca de música</string> <string name="err_no_perms">Auxio necesita permiso para leer su biblioteca de música</string>
<string name="err_no_app">Sin aplicación para abrir este enlace</string> <string name="err_no_app">Sin aplicación para abrir este enlace</string>
<string name="err_bad_dir">Directorio no soportado</string> <string name="err_bad_dir">Directorio no soportado</string>
<string name="err_too_small">Auxio no soporta este tamaño de ventana</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">Buscar en la biblioteca…</string> <string name="hint_search_library">Buscar en la biblioteca…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->

View file

@ -114,7 +114,6 @@
<string name="err_no_app">Nijedna aplikacija ne može otvoriti ovaj link</string> <string name="err_no_app">Nijedna aplikacija ne može otvoriti ovaj link</string>
<string name="err_no_dirs">Nema mapa</string> <string name="err_no_dirs">Nema mapa</string>
<string name="err_bad_dir">Ova mapa nije podržana</string> <string name="err_bad_dir">Ova mapa nije podržana</string>
<string name="err_too_small">Auxio ne podržava ovu veličinu prozora</string>
<string name="err_did_not_restore">Nijedno stanje nije bilo moguće vratiti</string> <string name="err_did_not_restore">Nijedno stanje nije bilo moguće vratiti</string>
<string name="hint_search_library">Pretražite vašu zbirku…</string> <string name="hint_search_library">Pretražite vašu zbirku…</string>
<string name="desc_track_number">Zvučni zapis %d</string> <string name="desc_track_number">Zvučni zapis %d</string>

View file

@ -138,7 +138,7 @@
<string name="fmt_db_neg">-%.1f dB</string> <string name="fmt_db_neg">-%.1f dB</string>
<string name="fmt_bitrate">%d kbps</string> <string name="fmt_bitrate">%d kbps</string>
<string name="fmt_sample_rate">%d Hz</string> <string name="fmt_sample_rate">%d Hz</string>
<string name="fmt_indexing">Memuat perpustakaan musik Anda... (%1$d/%2$d)</string> <string name="fmt_indexing">Memuat perpustakaan musik Anda (%1$d/%2$d)</string>
<string name="fmt_lib_song_count">Lagu yang dimuat: %d</string> <string name="fmt_lib_song_count">Lagu yang dimuat: %d</string>
<string name="fmt_lib_album_count">Album yang dimuat: %d</string> <string name="fmt_lib_album_count">Album yang dimuat: %d</string>
<string name="fmt_lib_artist_count">Artis yang dimuat: %d</string> <string name="fmt_lib_artist_count">Artis yang dimuat: %d</string>
@ -164,7 +164,6 @@
<string name="def_widget_artist">Nama Artis</string> <string name="def_widget_artist">Nama Artis</string>
<string name="set_dirs_mode_include_desc">Musik <b>hanya</b> akan dimuat dari folder yang Anda tambahkan.</string> <string name="set_dirs_mode_include_desc">Musik <b>hanya</b> akan dimuat dari folder yang Anda tambahkan.</string>
<string name="err_index_failed">Pemuatan musik gagal</string> <string name="err_index_failed">Pemuatan musik gagal</string>
<string name="err_too_small">Auxio tidak mendukung ukuran jendela ini</string>
<string name="desc_album_cover">Sampul Album untuk %s</string> <string name="desc_album_cover">Sampul Album untuk %s</string>
<string name="def_artist">Artis Tidak Dikenal</string> <string name="def_artist">Artis Tidak Dikenal</string>
<string name="err_no_dirs">Tidak ada Folder</string> <string name="err_no_dirs">Tidak ada Folder</string>

View file

@ -94,7 +94,6 @@
<string name="err_no_perms">Auxio ha bisogno del permesso per leggere la tua libreria musicale</string> <string name="err_no_perms">Auxio ha bisogno del permesso per leggere la tua libreria musicale</string>
<string name="err_no_app">Nessuna app può aprire il link</string> <string name="err_no_app">Nessuna app può aprire il link</string>
<string name="err_bad_dir">Questa cartella non è supportata</string> <string name="err_bad_dir">Questa cartella non è supportata</string>
<string name="err_too_small">Auxio non supporta questa dimensione di finestra</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">Cerca nella tua libreria…</string> <string name="hint_search_library">Cerca nella tua libreria…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->

View file

@ -123,7 +123,6 @@
<string name="err_no_app">이 링크를 열 수 있는 앱 없음</string> <string name="err_no_app">이 링크를 열 수 있는 앱 없음</string>
<string name="err_no_dirs">폴더 없음</string> <string name="err_no_dirs">폴더 없음</string>
<string name="err_bad_dir">이 폴더는 지원하지 않는 폴더입니다.</string> <string name="err_bad_dir">이 폴더는 지원하지 않는 폴더입니다.</string>
<string name="err_too_small">앱이 이 크기의 창을 지원하지 않습니다.</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">라이브러리에서 검색…</string> <string name="hint_search_library">라이브러리에서 검색…</string>

View file

@ -105,6 +105,7 @@
<plurals name="fmt_album_count"> <plurals name="fmt_album_count">
<item quantity="one">%d Albumas</item> <item quantity="one">%d Albumas</item>
<item quantity="few">%d Albumai</item> <item quantity="few">%d Albumai</item>
<item quantity="many">%d Albumo</item>
<item quantity="other">%d Albumo</item> <item quantity="other">%d Albumo</item>
</plurals> </plurals>
<string name="lbl_remix_group">Remiksai</string> <string name="lbl_remix_group">Remiksai</string>
@ -116,6 +117,7 @@
<plurals name="fmt_song_count"> <plurals name="fmt_song_count">
<item quantity="one">%d Daina</item> <item quantity="one">%d Daina</item>
<item quantity="few">%d Dainos</item> <item quantity="few">%d Dainos</item>
<item quantity="many">%d Albumo</item>
<item quantity="other">%d Dainą</item> <item quantity="other">%d Dainą</item>
</plurals> </plurals>
<string name="clr_dynamic">Dinaminis</string> <string name="clr_dynamic">Dinaminis</string>
@ -135,7 +137,6 @@
<string name="set_replay_gain_track">Pageidaujamas takelis</string> <string name="set_replay_gain_track">Pageidaujamas takelis</string>
<string name="err_no_dirs">Jokių aplankų</string> <string name="err_no_dirs">Jokių aplankų</string>
<string name="err_bad_dir">Šis aplankas nepalaikomas</string> <string name="err_bad_dir">Šis aplankas nepalaikomas</string>
<string name="err_too_small">„Auxio“ nepalaiko šio lango dydžio</string>
<string name="desc_play_pause">Groti arba pristabdyti</string> <string name="desc_play_pause">Groti arba pristabdyti</string>
<string name="desc_skip_next">Pereiti į kitą dainą</string> <string name="desc_skip_next">Pereiti į kitą dainą</string>
<string name="desc_skip_prev">Pereiti į paskutinę dainą</string> <string name="desc_skip_prev">Pereiti į paskutinę dainą</string>

View file

@ -149,7 +149,7 @@
<string name="desc_shuffle">Schakel shuffle aan of uit</string> <string name="desc_shuffle">Schakel shuffle aan of uit</string>
<string name="def_widget_song">Naam van het lied</string> <string name="def_widget_song">Naam van het lied</string>
<string name="set_reindex_desc">Kan afspeelstatus wissen</string> <string name="set_reindex_desc">Kan afspeelstatus wissen</string>
<string name="fmt_indexing">Uw muziekbibliotheek wordt geladen... (%1$d/%2$d)</string> <string name="fmt_indexing">Uw muziekbibliotheek wordt geladen (%1$d/%2$d)</string>
<string name="set_dirs_mode_exclude">Uitgezonderd</string> <string name="set_dirs_mode_exclude">Uitgezonderd</string>
<string name="desc_shuffle_all">Alle liedjes shuffelen</string> <string name="desc_shuffle_all">Alle liedjes shuffelen</string>
<string name="def_codec">Onbekend Formaat</string> <string name="def_codec">Onbekend Formaat</string>
@ -158,7 +158,6 @@
<string name="set_dirs_mode_exclude_desc">Muziek zal <b>niet</b> worden geladen vanuit de mappen die u toevoegt.</string> <string name="set_dirs_mode_exclude_desc">Muziek zal <b>niet</b> worden geladen vanuit de mappen die u toevoegt.</string>
<string name="set_reindex">Muziek herladen</string> <string name="set_reindex">Muziek herladen</string>
<string name="set_dirs_mode_include_desc">Muziek zal <b>alleen</b> worden geladen uit de mappen die u toevoegt.</string> <string name="set_dirs_mode_include_desc">Muziek zal <b>alleen</b> worden geladen uit de mappen die u toevoegt.</string>
<string name="err_too_small">Auxio ondersteunt deze venstergrootte niet</string>
<string name="set_pre_amp_with">Aanpassing met tags</string> <string name="set_pre_amp_with">Aanpassing met tags</string>
<string name="set_pre_amp_without">Aanpassing zonder tags</string> <string name="set_pre_amp_without">Aanpassing zonder tags</string>
<string name="def_playback">Er speelt geen muziek</string> <string name="def_playback">Er speelt geen muziek</string>

View file

@ -90,7 +90,6 @@
<string name="err_no_app">Nenhum aplicativo pode abrir este link</string> <string name="err_no_app">Nenhum aplicativo pode abrir este link</string>
<string name="err_no_dirs">Sem Pastas</string> <string name="err_no_dirs">Sem Pastas</string>
<string name="err_bad_dir">Esta pasta não é compatível</string> <string name="err_bad_dir">Esta pasta não é compatível</string>
<string name="err_too_small">O Auxio não suporta este tamanho de janela</string>
<string name="set_show_covers">Mostrar capas de álbuns</string> <string name="set_show_covers">Mostrar capas de álbuns</string>
<string name="set_reindex_desc">Pode limpar o estado de reprodução</string> <string name="set_reindex_desc">Pode limpar o estado de reprodução</string>
<string name="set_rewind_prev">Retroceder antes de pular para trás</string> <string name="set_rewind_prev">Retroceder antes de pular para trás</string>

View file

@ -93,7 +93,6 @@
<string name="err_no_perms">Auxio требуется разрешение на чтение музыкальной библиотеки</string> <string name="err_no_perms">Auxio требуется разрешение на чтение музыкальной библиотеки</string>
<string name="err_no_app">Нет приложений для открытия данной ссылки</string> <string name="err_no_app">Нет приложений для открытия данной ссылки</string>
<string name="err_bad_dir">Эта папка не поддерживается</string> <string name="err_bad_dir">Эта папка не поддерживается</string>
<string name="err_too_small">Auxio не поддерживает данное разрешние экрана</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">Найти в библиотеке…</string> <string name="hint_search_library">Найти в библиотеке…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->

View file

@ -170,7 +170,6 @@
<string name="set_reindex_desc">Uygulamayı yeniden başlatacaktır</string> <string name="set_reindex_desc">Uygulamayı yeniden başlatacaktır</string>
<string name="err_no_dirs">Klasör yok</string> <string name="err_no_dirs">Klasör yok</string>
<string name="err_bad_dir">Bu klasör desteklenmiyor</string> <string name="err_bad_dir">Bu klasör desteklenmiyor</string>
<string name="err_too_small">Auxio bu pencere boyutunu desteklemiyor</string>
<string name="desc_skip_next">Sonraki şarkıya geç</string> <string name="desc_skip_next">Sonraki şarkıya geç</string>
<string name="desc_skip_prev">Son şarkıya geç</string> <string name="desc_skip_prev">Son şarkıya geç</string>
<string name="desc_change_repeat">Tekrarlama modunu değiştir</string> <string name="desc_change_repeat">Tekrarlama modunu değiştir</string>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Theme.Auxio.V23" parent="Theme.Auxio"> <style name="Theme.Auxio.V23" parent="Theme.Auxio">
<!-- Fix dumb default android behavior --> <!-- Fix dumb default android behavior -->

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Theme.Auxio.V29" parent="Theme.Auxio.V27"> <style name="Theme.Auxio.V29" parent="Theme.Auxio.V27">
<!-- <!--
Android 10 finally allows you to use fully transparent system bars without it automatically Android 10 finally allows you to use fully transparent system bars without it automatically

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="Theme.Auxio.App" parent="Theme.Auxio.Base" /> <style name="Theme.Auxio.App" parent="Theme.Auxio.Base" />
<style name="Theme.Auxio.Widget" parent="@android:style/Theme.DeviceDefault.DayNight"> <style name="Theme.Auxio.Widget" parent="@android:style/Theme.DeviceDefault.DayNight">

View file

@ -93,7 +93,6 @@
<string name="err_no_perms">Auxio 需要权限来读取音乐库</string> <string name="err_no_perms">Auxio 需要权限来读取音乐库</string>
<string name="err_no_app">没有可以打开该链接的应用</string> <string name="err_no_app">没有可以打开该链接的应用</string>
<string name="err_bad_dir">该目录不受支持</string> <string name="err_bad_dir">该目录不受支持</string>
<string name="err_too_small">Auxio 不支持该窗口尺寸</string>
<!-- Hint Namespace | EditText Hints --> <!-- Hint Namespace | EditText Hints -->
<string name="hint_search_library">在曲库中搜索…</string> <string name="hint_search_library">在曲库中搜索…</string>
<!-- Description Namespace | Accessibility Strings --> <!-- Description Namespace | Accessibility Strings -->

View file

@ -9,11 +9,6 @@
<dimen name="spacing_large">24dp</dimen> <dimen name="spacing_large">24dp</dimen>
<dimen name="spacing_huge">32dp</dimen> <dimen name="spacing_huge">32dp</dimen>
<dimen name="spacing_tiny_inv">-4dp</dimen>
<dimen name="spacing_small_inv">-8dp</dimen>
<dimen name="spacing_medium_icon">6dp</dimen>
<!-- Size Namespace | Width & Heights for UI elements --> <!-- Size Namespace | Width & Heights for UI elements -->
<dimen name="size_cover_compact">48dp</dimen> <dimen name="size_cover_compact">48dp</dimen>
<dimen name="size_cover_normal">56dp</dimen> <dimen name="size_cover_normal">56dp</dimen>
@ -48,7 +43,6 @@
<dimen name="fast_scroll_thumb_touch_target_size">16dp</dimen> <dimen name="fast_scroll_thumb_touch_target_size">16dp</dimen>
<dimen name="slider_thumb_radius">6dp</dimen> <dimen name="slider_thumb_radius">6dp</dimen>
<dimen name="slider_halo_radius">16dp</dimen>
<dimen name="recycler_fab_space_normal">88dp</dimen> <dimen name="recycler_fab_space_normal">88dp</dimen>
<dimen name="recycler_fab_space_large">128dp</dimen> <dimen name="recycler_fab_space_large">128dp</dimen>

View file

@ -81,8 +81,6 @@
<string name="lbl_shuffle">Shuffle</string> <string name="lbl_shuffle">Shuffle</string>
<string name="lbl_queue">Queue</string> <string name="lbl_queue">Queue</string>
<string name="lbl_next_up">Next up</string>
<string name="lbl_later">Later</string>
<string name="lbl_play_next">Play next</string> <string name="lbl_play_next">Play next</string>
<string name="lbl_queue_add">Add to queue</string> <string name="lbl_queue_add">Add to queue</string>
<string name="lbl_queue_added">Added to queue</string> <string name="lbl_queue_added">Added to queue</string>
@ -214,7 +212,6 @@
<!-- No folders in the "Music Folders" setting --> <!-- No folders in the "Music Folders" setting -->
<string name="err_no_dirs">No Folders</string> <string name="err_no_dirs">No Folders</string>
<string name="err_bad_dir">This folder is not supported</string> <string name="err_bad_dir">This folder is not supported</string>
<string name="err_too_small">Auxio does not support this window size</string>
<!-- Referring to playback state --> <!-- Referring to playback state -->
<string name="err_did_not_restore">No state could be restored</string> <string name="err_did_not_restore">No state could be restored</string>

View file

@ -90,12 +90,4 @@
<item name="android:background">@drawable/ui_remote_fab_bg</item> <item name="android:background">@drawable/ui_remote_fab_bg</item>
<item name="android:tint">?attr/colorOnPrimary</item> <item name="android:tint">?attr/colorOnPrimary</item>
</style> </style>
<!-- Widget panel -->
<style name="Widget.Auxio.AppWidget.Panel" parent="">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
<item name="android:padding">@dimen/spacing_medium</item>
<item name="android:orientation">vertical</item>
</style>
</resources> </resources>

View file

@ -2,14 +2,14 @@
<resources> <resources>
<!-- Master parent theme --> <!-- Master parent theme -->
<style name="Theme.Auxio" parent="Theme.Material3.DynamicColors.DayNight" /> <style name="Theme.Auxio" parent="Theme.Material3.DynamicColors.DayNight" />
<!-- Theme that implements nicer selector attributes not supported on lollipop--> <!-- Adds nicer selector attributes not supported on lollipop-->
<style name="Theme.Auxio.V23" parent="Theme.Auxio" /> <style name="Theme.Auxio.V23" parent="Theme.Auxio" />
<!-- Template theme that handles edge-to-edge on other styles variants --> <!-- Handles edge-to-edge on other styles variants -->
<style name="Theme.Auxio.V27" parent="Theme.Auxio.V23"> <style name="Theme.Auxio.V27" parent="Theme.Auxio.V23">
<item name="android:statusBarColor">@color/chrome_translucent</item> <item name="android:statusBarColor">@color/chrome_translucent</item>
<item name="android:navigationBarColor">@color/chrome_translucent</item> <item name="android:navigationBarColor">@color/chrome_translucent</item>
</style> </style>
<!-- Adds fully transparent system bars -->
<style name="Theme.Auxio.V29" parent="Theme.Auxio.V27" /> <style name="Theme.Auxio.V29" parent="Theme.Auxio.V27" />
<!-- Base theme --> <!-- Base theme -->

View file

@ -130,8 +130,8 @@
<Preference <Preference
app:key="@string/set_key_wipe_state" app:key="@string/set_key_wipe_state"
app:title="@string/set_wipe" app:summary="@string/set_wipe_desc"
app:summary="@string/set_wipe_desc" /> app:title="@string/set_wipe" />
<Preference <Preference
app:key="@string/set_key_restore_state" app:key="@string/set_key_restore_state"

View file

@ -23,8 +23,8 @@ of Android through the use of the ExoPlayer FLAC extension.
This depends on the context: This depends on the context:
1. If "Ignore MediaStore Tags" is enabled, please create a bug report. 1. If "Ignore MediaStore Tags" is enabled, please create a bug report.
2. If "Ignore MediaStore Tags" is not enabled, please check below to make sure your issue is not already 2. If "Ignore MediaStore Tags" is not enabled, please check below to make sure your issue is not already
awknowledged before reporting a bug. acknowledged before reporting a bug.
- Moreso, if the issue encountered does not appear in other apps like Music Player GO, Phonograph, - Moreover, if the issue encountered does not appear in other apps like Music Player GO, Phonograph,
or Retro Music then it should definitely be reported, as it is a logic bug on Auxio's part. or Retro Music then it should definitely be reported, as it is a logic bug on Auxio's part.
***Known unfixable music loading issues*** ***Known unfixable music loading issues***
@ -80,7 +80,7 @@ Auxio actually takes several types of metadata in account in searching:
- The file name, as some users don't have usable title metadata, and instead use the file name as the title. - The file name, as some users don't have usable title metadata, and instead use the file name as the title.
#### Why does playback pause whenever music is reloaded? #### Why does playback pause whenever music is reloaded?
Whenever the music library signifigantly changes, updating the player's data while it is still playing may result in Whenever the music library significantly changes, updating the player's data while it is still playing may result in
unwanted bugs or unexpected music playing. To safeguard against this, Auxio will pause whenever it reloads a new unwanted bugs or unexpected music playing. To safeguard against this, Auxio will pause whenever it reloads a new
music library. music library.

View file

@ -5,9 +5,9 @@ Auxio is licensed under the GPLv3.
Alongside this, Auxio uses a number of third-party libraries. These are listed below with Alongside this, Auxio uses a number of third-party libraries. These are listed below with
their licenses: their licenses:
| Library Name | Author(s) | Purpose | License | | Library Name | Author(s) | Purpose | License |
|--------------|-----------|---------|---------| |-----------------------------------------------------|----------------------------------------------|----------------|------------|
| [ExoPlayer](https://github.com/google/ExoPlayer) | [Google](https://github.com/google) | Music Playback | Apache-2.0 | | [ExoPlayer](https://github.com/google/ExoPlayer) | [Google](https://github.com/google) | Music Playback | Apache-2.0 |
| [Coil](https://github.com/coil-kt/coil) | [Square](https://github.com/coil-kt) | Image Loading | Apache-2.0 | | [Coil](https://github.com/coil-kt/coil) | [Square](https://github.com/coil-kt) | Image Loading | Apache-2.0 |
| [Spotless](https://github.com/diffplug/spotless) | [DiffPlug](https://github.com/diffplug) | Formatting | Apache-2.0 | | [Spotless](https://github.com/diffplug/spotless) | [DiffPlug](https://github.com/diffplug) | Formatting | Apache-2.0 |
| [ktfmt](https://github.com/facebookincubator/ktfmt) | [Meta](https://github.com/facebookincubator) | Formatting | Apache-2.0 | | [ktfmt](https://github.com/facebookincubator/ktfmt) | [Meta](https://github.com/facebookincubator) | Formatting | Apache-2.0 |