From 67797d957e1745fe160b0ea936454c9f9691ad01 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 11 Nov 2021 12:19:07 -0700 Subject: [PATCH] all: cleanup code Upgrade dependencies, fix deprecation issues, and just clean up code in general. --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 6 +++--- .../org/oxycblt/auxio/coil/AlbumArtFetcher.kt | 2 +- .../org/oxycblt/auxio/coil/MosaicFetcher.kt | 8 -------- .../oxycblt/auxio/detail/DetailFragment.kt | 4 ++-- .../home/fastscroll/FastScrollRecyclerView.kt | 2 +- .../org/oxycblt/auxio/music/MusicStore.kt | 7 +++++-- .../auxio/playback/PlaybackBarLayout.kt | 2 +- .../auxio/playback/PlaybackFragment.kt | 2 +- .../auxio/playback/system/AudioReactor.kt | 4 ++-- .../auxio/playback/system/PlaybackService.kt | 12 ++++++------ .../oxycblt/auxio/settings/AboutFragment.kt | 2 +- .../auxio/settings/SettingsListFragment.kt | 2 +- .../java/org/oxycblt/auxio/ui/ActionMenu.kt | 4 ++-- .../java/org/oxycblt/auxio/ui/MemberBinder.kt | 18 +++++++++--------- .../java/org/oxycblt/auxio/util/ViewUtil.kt | 1 - .../oxycblt/auxio/widgets/WidgetProvider.kt | 2 -- ...circle_ripple.xml => ui_accent_circle.xml} | 2 +- .../res/drawable/ui_background_ripple.xml | 13 ------------- .../main/res/drawable/ui_header_dividers.xml | 13 ------------- .../res/drawable/ui_play_pause_circle.xml | 12 ++++++++++++ app/src/main/res/drawable/ui_scroll_track.xml | 7 ------- app/src/main/res/layout/item_accent.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 ----- .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4337 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2827 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6206 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 9555 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 14008 -> 0 bytes app/src/main/res/values-de/strings.xml | 4 ++-- app/src/main/res/values-night/colors.xml | 1 - app/src/main/res/values/colors.xml | 1 - app/src/main/res/values/dimens.xml | 2 -- app/src/main/res/values/styles_ui.xml | 2 +- app/src/main/res/values/typography.xml | 15 --------------- 35 files changed, 54 insertions(+), 107 deletions(-) rename app/src/main/res/drawable/{ui_circle_ripple.xml => ui_accent_circle.xml} (89%) delete mode 100644 app/src/main/res/drawable/ui_background_ripple.xml delete mode 100644 app/src/main/res/drawable/ui_header_dividers.xml create mode 100644 app/src/main/res/drawable/ui_play_pause_circle.xml delete mode 100644 app/src/main/res/drawable/ui_scroll_track.xml delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/build.gradle b/app/build.gradle index 12034dc60..0223d497a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,7 +94,7 @@ dependencies { // --- THIRD PARTY --- // ExoPlayer - implementation "com.google.android.exoplayer:exoplayer-core:2.15.1" + implementation "com.google.android.exoplayer:exoplayer-core:2.16.0" // Image loading implementation 'io.coil-kt:coil:1.4.0' @@ -105,7 +105,7 @@ dependencies { // --- DEBUG --- // Lint - ktlint 'com.pinterest:ktlint:0.42.1' + ktlint 'com.pinterest:ktlint:0.43.0' } task ktlint(type: JavaExec, group: "verification") { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index becb161fe..c250ca448 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:fullBackupContent="@xml/backup_descriptor" android:icon="@mipmap/ic_launcher" android:label="@string/info_app_name" - android:roundIcon="@mipmap/ic_launcher_round" + android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/Theme.Auxio.App"> @@ -29,7 +29,7 @@ android:exported="true" android:icon="@mipmap/ic_launcher" android:launchMode="singleTask" - android:roundIcon="@mipmap/ic_launcher_round" + android:roundIcon="@mipmap/ic_launcher" android:windowSoftInputMode="adjustPan"> @@ -54,7 +54,7 @@ android:name=".playback.system.PlaybackService" android:foregroundServiceType="mediaPlayback" android:icon="@mipmap/ic_launcher" - android:roundIcon="@mipmap/ic_launcher_round" /> + android:roundIcon="@mipmap/ic_launcher" /> { if (tracks == null || tracks.isEmpty) { // Unrecognized format. This is expected, as ExoPlayer only supports a - // subset of formats. + // subset of formats. return null } diff --git a/app/src/main/java/org/oxycblt/auxio/coil/MosaicFetcher.kt b/app/src/main/java/org/oxycblt/auxio/coil/MosaicFetcher.kt index aad2264ff..da27f041b 100644 --- a/app/src/main/java/org/oxycblt/auxio/coil/MosaicFetcher.kt +++ b/app/src/main/java/org/oxycblt/auxio/coil/MosaicFetcher.kt @@ -36,7 +36,6 @@ import org.oxycblt.auxio.music.Album import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.music.MusicParent -import java.io.Closeable import java.lang.Exception /** @@ -139,13 +138,6 @@ class MosaicFetcher(private val context: Context) : Fetcher { return mosaicBitmap } - /** - * Iterate through a list of [Closeable]s, running [block] on each and closing it when done. - */ - private fun List.useForEach(block: (T) -> Unit) { - forEach { it.use(block) } - } - override fun key(data: MusicParent): String = data.hashCode().toString() override fun handles(data: MusicParent) = data !is Album // Albums are not used here diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt index 070c95eae..2c7bef056 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt @@ -76,12 +76,12 @@ abstract class DetailFragment : Fragment() { * @param onMenuClick (Optional) a click listener for that menu */ protected fun setupToolbar( - data: Music, + music: Music, @MenuRes menu: Int = -1, onMenuClick: ((itemId: Int) -> Boolean)? = null ) { binding.detailToolbar.apply { - title = data.name + title = music.name if (menu != -1) { inflateMenu(menu) diff --git a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt index e4d89e5d2..467f0798d 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt @@ -47,7 +47,7 @@ import kotlin.math.abs /** * A [RecyclerView] that enables better fast-scrolling. This is fundamentally a implementation of - * Zhanghi's AndroidFastScroll but slimmed down for Auxio and with a couple of enhancements. + * Hai Zhang's AndroidFastScroll but slimmed down for Auxio and with a couple of enhancements. * * Attributions as per the Apache 2.0 license: * ORIGINAL AUTHOR: Hai Zhang [https://github.com/zhanghai] diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt index f1e5c6680..8f417035f 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt @@ -33,7 +33,9 @@ import org.oxycblt.auxio.util.logE import java.lang.Exception /** - * The main storage for music items. Use [MusicStore.getInstance] to get the single instance of it. + * The main storage for music items. + * Getting an instance of this object is more complicated as it loads asynchronously. + * See the companion object for more. * @author OxygenCobalt */ class MusicStore private constructor() { @@ -194,7 +196,8 @@ class MusicStore private constructor() { } /** - * Maybe get a MusicStore instance. + * Maybe get a MusicStore instance. This is useful if you are running code while the + * loading process may still be going on. * * @return null if the music store instance is still loading or if the loading process has * encountered an error. An instance is returned otherwise. diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt index 599d721ed..1ce4bb516 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackBarLayout.kt @@ -246,7 +246,7 @@ class PlaybackBarLayout @JvmOverloads constructor( } /** - * Update the playback positon on this layout. This will be reflected in the compact view + * Update the playback position on this layout. This will be reflected in the compact view * at the bottom of the screen. */ fun setPosition(position: Long) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index d0d2696ee..9c72bd6ed 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -60,7 +60,7 @@ class PlaybackFragment : Fragment() { binding.playbackModel = playbackModel binding.detailModel = detailModel - binding.root.setOnApplyWindowInsetsListener { v, insets -> + binding.root.setOnApplyWindowInsetsListener { _, insets -> val bars = insets.systemBarsCompat binding.root.updatePadding( 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 24d0d9fda..2832afae1 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 @@ -22,7 +22,7 @@ import android.content.Context import android.media.AudioManager import androidx.media.AudioFocusRequestCompat import androidx.media.AudioManagerCompat -import com.google.android.exoplayer2.SimpleExoPlayer +import com.google.android.exoplayer2.ExoPlayer import org.oxycblt.auxio.playback.state.PlaybackStateManager import org.oxycblt.auxio.settings.SettingsManager import org.oxycblt.auxio.util.getSystemServiceSafe @@ -35,7 +35,7 @@ import org.oxycblt.auxio.util.logD */ class AudioReactor( context: Context, - private val player: SimpleExoPlayer + private val player: ExoPlayer ) : AudioManager.OnAudioFocusChangeListener { private val playbackManager = PlaybackStateManager.maybeGetInstance() private val settingsManager = SettingsManager.getInstance() diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt index cf096494b..02e23b509 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/PlaybackService.kt @@ -32,11 +32,11 @@ import android.os.IBinder import android.os.PowerManager import android.support.v4.media.session.MediaSessionCompat import com.google.android.exoplayer2.C +import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.MediaItem import com.google.android.exoplayer2.PlaybackException import com.google.android.exoplayer2.Player import com.google.android.exoplayer2.RenderersFactory -import com.google.android.exoplayer2.SimpleExoPlayer import com.google.android.exoplayer2.audio.AudioAttributes import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory @@ -65,7 +65,7 @@ import org.oxycblt.auxio.widgets.WidgetProvider /** * A service that manages the system-side aspects of playback, such as: - * - The single [SimpleExoPlayer] instance. + * - The single [ExoPlayer] instance. * - The Media Notification * - Headset management * - Widgets @@ -77,7 +77,7 @@ import org.oxycblt.auxio.widgets.WidgetProvider class PlaybackService : Service(), Player.Listener, PlaybackStateManager.Callback, SettingsManager.Callback { // Player components - private lateinit var player: SimpleExoPlayer + private lateinit var player: ExoPlayer private lateinit var mediaSession: MediaSessionCompat private lateinit var connector: PlaybackSessionConnector @@ -341,9 +341,9 @@ class PlaybackService : Service(), Player.Listener, PlaybackStateManager.Callbac // --- OTHER FUNCTIONS --- /** - * Create the [SimpleExoPlayer] instance. + * Create the [ExoPlayer] instance. */ - private fun newPlayer(): SimpleExoPlayer { + private fun newPlayer(): ExoPlayer { // Since Auxio is a music player, only specify an audio renderer to save // battery/apk size/cache size val audioRenderer = RenderersFactory { handler, _, audioListener, _, _ -> @@ -355,7 +355,7 @@ class PlaybackService : Service(), Player.Listener, PlaybackStateManager.Callbac // Enable constant bitrate seeking so that certain MP3s/AACs are seekable val extractorsFactory = DefaultExtractorsFactory().setConstantBitrateSeekingEnabled(true) - return SimpleExoPlayer.Builder(this, audioRenderer) + return ExoPlayer.Builder(this, audioRenderer) .setMediaSourceFactory(DefaultMediaSourceFactory(this, extractorsFactory)) .build() } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt index a1223473f..c0dab74a1 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/AboutFragment.kt @@ -54,7 +54,7 @@ class AboutFragment : Fragment() { ): View { val binding = FragmentAboutBinding.inflate(layoutInflater) - binding.aboutContents.setOnApplyWindowInsetsListener { v, insets -> + binding.aboutContents.setOnApplyWindowInsetsListener { _, insets -> binding.aboutContents.updatePadding(bottom = insets.systemBarsCompat.bottom) insets } diff --git a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt index 3c1574da5..6eedf6157 100644 --- a/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/settings/SettingsListFragment.kt @@ -65,7 +65,7 @@ class SettingsListFragment : PreferenceFragmentCompat() { view.findViewById(androidx.preference.R.id.recycler_view).apply { clipToPadding = false - setOnApplyWindowInsetsListener { v, insets -> + setOnApplyWindowInsetsListener { _, insets -> updatePadding(bottom = insets.systemBarsCompat.bottom) insets diff --git a/app/src/main/java/org/oxycblt/auxio/ui/ActionMenu.kt b/app/src/main/java/org/oxycblt/auxio/ui/ActionMenu.kt index d132f1414..b7251abb8 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/ActionMenu.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/ActionMenu.kt @@ -65,11 +65,11 @@ class ActionMenu( // Get viewmodels using the activity as the store owner private val detailModel: DetailViewModel by lazy { - ViewModelProvider(activity).get(DetailViewModel::class.java) + ViewModelProvider(activity)[DetailViewModel::class.java] } private val playbackModel: PlaybackViewModel by lazy { - ViewModelProvider(activity).get(PlaybackViewModel::class.java) + ViewModelProvider(activity)[PlaybackViewModel::class.java] } init { diff --git a/app/src/main/java/org/oxycblt/auxio/ui/MemberBinder.kt b/app/src/main/java/org/oxycblt/auxio/ui/MemberBinder.kt index e7b2e0ffe..b460b7290 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/MemberBinder.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/MemberBinder.kt @@ -23,9 +23,9 @@ import androidx.databinding.ViewDataBinding import androidx.fragment.app.Fragment import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleOwner -import androidx.lifecycle.OnLifecycleEvent import org.oxycblt.auxio.util.assertMainThread import org.oxycblt.auxio.util.inflater import kotlin.properties.ReadOnlyProperty @@ -51,7 +51,7 @@ class MemberBinder( private val fragment: Fragment, private val inflate: (LayoutInflater) -> T, private val onDestroy: T.() -> Unit -) : ReadOnlyProperty, LifecycleObserver { +) : ReadOnlyProperty, LifecycleObserver, LifecycleEventObserver { private var fragmentBinding: T? = null init { @@ -82,6 +82,13 @@ class MemberBinder( } } + override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) { + if (event == Lifecycle.Event.ON_DESTROY) { + fragmentBinding?.onDestroy() + fragmentBinding = null + } + } + private inline fun Fragment.observeOwnerThroughCreation( crossinline viewOwner: LifecycleOwner.() -> Unit ) { @@ -95,11 +102,4 @@ class MemberBinder( } }) } - - @Suppress("UNUSED") - @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) - fun destroy() { - fragmentBinding?.onDestroy() - fragmentBinding = null - } } diff --git a/app/src/main/java/org/oxycblt/auxio/util/ViewUtil.kt b/app/src/main/java/org/oxycblt/auxio/util/ViewUtil.kt index 134f19ed1..c8c6fd171 100644 --- a/app/src/main/java/org/oxycblt/auxio/util/ViewUtil.kt +++ b/app/src/main/java/org/oxycblt/auxio/util/ViewUtil.kt @@ -35,7 +35,6 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.material.shape.MaterialShapeDrawable -import org.oxycblt.auxio.R /** * Apply a [MaterialShapeDrawable] to this view, automatically initializing the elevation overlay diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt index 8f65f143f..e68ae2d37 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/WidgetProvider.kt @@ -152,8 +152,6 @@ class WidgetProvider : AppWidgetProvider() { // We can't resize the widget until we can generate the views, so request an update // from PlaybackService. requestUpdate(context) - } else { - logD(newOptions?.getParcelableArrayList(AppWidgetManager.OPTION_APPWIDGET_SIZES) ?: "nothing") } } diff --git a/app/src/main/res/drawable/ui_circle_ripple.xml b/app/src/main/res/drawable/ui_accent_circle.xml similarity index 89% rename from app/src/main/res/drawable/ui_circle_ripple.xml rename to app/src/main/res/drawable/ui_accent_circle.xml index 0d814703a..a00dfee1d 100644 --- a/app/src/main/res/drawable/ui_circle_ripple.xml +++ b/app/src/main/res/drawable/ui_accent_circle.xml @@ -1,6 +1,6 @@ + android:color="?attr/colorSurface"> - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ui_header_dividers.xml b/app/src/main/res/drawable/ui_header_dividers.xml deleted file mode 100644 index 0ce36b4d7..000000000 --- a/app/src/main/res/drawable/ui_header_dividers.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/ui_play_pause_circle.xml b/app/src/main/res/drawable/ui_play_pause_circle.xml new file mode 100644 index 000000000..023794af1 --- /dev/null +++ b/app/src/main/res/drawable/ui_play_pause_circle.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ui_scroll_track.xml b/app/src/main/res/drawable/ui_scroll_track.xml deleted file mode 100644 index 529f04b02..000000000 --- a/app/src/main/res/drawable/ui_scroll_track.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_accent.xml b/app/src/main/res/layout/item_accent.xml index c703cbe06..71d8c1db4 100644 --- a/app/src/main/res/layout/item_accent.xml +++ b/app/src/main/res/layout/item_accent.xml @@ -15,7 +15,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:background="@drawable/ui_circle_ripple" + android:background="@drawable/ui_accent_circle" android:padding="@dimen/spacing_medium" android:scaleType="fitCenter" android:src="@drawable/ic_check" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index bbd3e0212..000000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index ac6e8b931635ce7a684b3b270dbac2b716cac162..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4337 zcmVgDg@(_rKUM1 z#@be6OiYw@kX=AUJ`<(MXcNpMu-{1V7 z=f2y;!s3Ajv80m8th7q`{r{eT#xC6Vh(y->C?3_nt1A}rzk|pBJYe7i3WPdBGXz;R zKXa2d+k0lz&+^P_a-o9P_#S>w{pV@O2!BqZ^_)MAP&!2=+%x6B5K8N!gi9M%3e)7f z-P0R7-P0Qf=4Qxmfxe%cDgV)9nfymlX4ChgWlgt4%UT9Jvs*envzvE&=d=`vvRk6? z9IEHM=d7Pda8T~0fm5n{sxYlS1@xgXt>K1nX*~fz#2uC1Namt4`o{vO&w6K`q2PxAlhi^0tF;O!3U=o_g;u6HE0E03eN#U^!bwnY`I>LHn$ytEIcx5#)^til5 z;SG@H<$_kU5ud#FZ$LYJ^E*R^t^?BUp>ve#Cnrd)mAEdcYjl+Y3~8NGjH|SkK{(Vo zAibS~%4sIv%Td%p?7ZbIjL(Wz6!Fb#Bfk0V#IK;E(Z8@=qV1Xg)e~eqkupwJBWDI(RTy$dz`rI zgChQ*3b|O?XRUkV9xtQcK{qLXcX+fNK;0hfghYz-goIK{&nz9SXnvHpXvd zr$P*n{0qD81{8JYXuHIEEDDoRQ(swBq4V z=YS9lg|n(-(7&*g_`leNIxJq*H$nB9%^u1>mi34h90Gz}4MXA?>_Wuib2+EPR3&4kZAbyGl4%cODiv{)I7x-g;R8N zFtDhL1g!448&J@^K(!4f4<&u5FV6rRf`as7Muc(zt<&f(O}gskg@Bi!K% z4*RIKZS2AKaRk4wv2{tQp#^zVI7X%w0%2KpO#1DXQ`+Ga_mGga$4E$V4->ks58ms% z=9Ru@64yp!`bj*Xpl+MR2Ss~DeZFd2^$&iq=lJ~ljsWKlb^`BLKgU==qrw4& zmK|4YgqQRUhLxNk!G%o+psAL615(<}Ddk`U9eBdnN+%p63$i*K3aG&tKxeQJ>x6?~ zD4g}E6C}Lslp;)aj0EQFPf%_9$iWw8*ObEzI4b7{o|>>Oo3#~47r+kQqToFV5Z z;gp^r5oITsh%!jEqUIwOdKGLwwcJuZ3Z(NnoO8@NDp&6z8wcpD0dP)I2Srw#Az`u} z;+wNKfJ8u1cAaFs^$At>Tjxpk+q`z2Cpo(=aC+w=i7r2` zmvipHIYlBWPP3AYXGz$)qhEXfev<=-LQAR*x##%;$5yMf11f#* zveq8*NCjCRIFS{g4W|LpSvC^j`Y+#~smfw_aP`L$((3~RgLBCDE3H%qo>~DNxNH!d z(bMW490@3D<7q~+5ej@!eGM?MTDXs>*CB41#$n-RJE64pp9shl6YT16bfuN*sCS! z0Wueys7+@{Ow~CCQjG-V?OzKh)D|H*2U)qLe7GCIARtr0(I>6$%>?QOWKKBIl>n&n z91{b_kX5yNk%dYf8rov=h)`P7js+RgjL{2@kp)@XH0c{nnt;j?kPbM87G!O3u>Qn? zgJNI$gv?)aqzhO)Mr#mPhxlUT==gJYY3(I+4lW0e3TG7Oj0KKPKp$Mu3da=AK{zp0 z6c8I*eV#rGo+PjCr}%p3LcQD(@F^k6<2+p z0*bEaxh-6{MyLU3W>STlFhhO^orAk9w89z1IffKut*Z}kr~2~|ZGiq^9_LhXaAK=J zK`G*2zCfZX`tAsyF7nm@G-E-j&^=Rr2c3gkPz;4*taFqTU0MMh(T-n!l!-NJ@@TMXm28QKh{k8dcUuVo)$( z+|_zr1JH&KIY9cr8Pz$%(~820+kBotda(&x`r%r7ZaM}pazrM>Z}S%R<2^F!FCiFy zXV<833~^3;c`vCuc~hhD`e?(4S4{&)i*pc8+{@=l0yt>F)_x*c-*&~q*49o95PdPu zW9i`z>Kty%o5|qdil_YaSLDY*Mx*iihy!FkI9Qw)Y`MsQNW>a>53sOR=_qphkm2yS zd+PgpC>R7Z0vtoqDpJ-%>Q8<}{yj!G6wpUkjf0~jt(0&Qws3&(7+Ubbeq=Fh%7Y)6 zJtq9)J8QfE3P56X!7;=+3o80Z^T)R|8f>UG0w7&*#!`^g;ZQ)^E-?w4&yj%4w=0mv zu)!+tphum5Q4oMfHTV=~1RydK$U<#a zk>;A!#JSOPJhL0WKsaV*Z>nDkjUWwZ- zlKCs&ZvX}pwa!WNZ`!yndOaJR>aQ1$hV#4=8E- zB{pI6S>n5Rdm%CqOLu77TtzKq{R`LFx%0A{ZgOziS$*NC_KIcU_ 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 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index e5636ef85a7f5aa2a6867feaef13a8b87568fdde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6206 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 8a9b23ca6b10093a237ca016520e8a1bdc0957ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9555 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 UD}B7!pQQj=>bhzbDmJ12114!J9RL6T diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 59c807ec727b910bd85fa9929b3b7abb01b93562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14008 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 diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2c1236f86..0f3f1d450 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,5 +1,5 @@ - + Musikwiedergabe @@ -79,7 +79,7 @@ Wenn ein Lied ausgewählt wird Zufällig-Einstellung merken Zufällig anlassen, wenn ein neues Lied abgespielt wird - Zurückspulen bevor zurück gegangen wird + Zurückspulen bevor zurück gegangen wird Zurückspulen bevor zum vorheriger Lied gegangen wird Inhalt diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 0119bf1c2..28ab22489 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -2,7 +2,6 @@ @color/surface_night @color/surface_day - #ffffff #01151515 #fafafa @color/surface_night - #202020 #01fafafa #fafafa diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index fec2eef1b..701e863b1 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -10,7 +10,6 @@ 48dp - 56dp 64dp 48dp @@ -18,7 +17,6 @@ 128dp 256dp - 1dp 2dp 20dp diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index ca99d2f11..b157bdeb1 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -165,7 +165,7 @@ - - - - -