docs: update metadata

Update metadata in preperation for 2.0.0.
This commit is contained in:
OxygenCobalt 2021-11-26 08:53:51 -07:00
parent 0fe73b5b18
commit ec8f538cf0
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
20 changed files with 29 additions and 27 deletions

View file

@ -41,6 +41,7 @@ I primarily built Auxio for myself, but you can use it too, I guess.
- Genres/Artists/Albums/Songs support
- Intuitive queue system
- Reliable playback state persistence
- Material You (Android 12+ only)
- Edge-to-edge (Oreo+ Only)
- Embedded covers support
- Search Functionality
@ -52,7 +53,6 @@ I primarily built Auxio for myself, but you can use it too, I guess.
- Playlists
- Liked songs
- Improved tablet layouts
- More notification actions
- And other things, probably

View file

@ -23,10 +23,8 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.activity.OnBackPressedCallback
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.findNavController
@ -106,12 +104,11 @@ class MainFragment : Fragment(), PlaybackLayout.ActionCallback {
musicModel.loaderResponse.observe(viewLifecycleOwner) { response ->
// Handle the loader response.
when (response) {
// OK, start restoring playback now
// Ok, start restoring playback now
is MusicStore.Response.Ok -> playbackModel.setupPlayback(requireContext())
// Error, show the error to the user
is MusicStore.Response.Err -> {
logD("Received Error")
val errorRes = when (response.kind) {
@ -124,13 +121,6 @@ class MainFragment : Fragment(), PlaybackLayout.ActionCallback {
binding.root, getString(errorRes), Snackbar.LENGTH_INDEFINITE
)
snackbar.view.apply {
// Change the font family to semibold
findViewById<Button>(
com.google.android.material.R.id.snackbar_action
).typeface = ResourcesCompat.getFont(requireContext(), R.font.inter_semibold)
}
when (response.kind) {
MusicStore.ErrorKind.FAILED, MusicStore.ErrorKind.NO_MUSIC -> {
snackbar.setAction(R.string.lbl_retry) {

View file

@ -48,7 +48,6 @@
<ImageView
android:id="@+id/about_auxio_icon"
style="@style/Widget.Auxio.Image.Small"
android:layout_marginStart="@dimen/spacing_medium"
android:layout_marginTop="@dimen/spacing_medium"
android:contentDescription="@string/desc_auxio_icon"
android:src="@mipmap/ic_launcher"
@ -75,8 +74,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_small"
android:gravity="center"
android:paddingStart="@dimen/spacing_small"
android:paddingEnd="@dimen/spacing_small"
android:paddingStart="@dimen/spacing_medium"
android:paddingEnd="@dimen/spacing_medium"
android:text="@string/info_app_desc"
android:textAppearance="@style/TextAppearance.Auxio.BodyLarge"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -164,5 +164,12 @@
<string name="def_playback">Keine Musik wird gespielt</string>
<string name="def_widget_song">Liedname</string>
<string name="def_widget_artist">Künstlername</string>
<string name="set_lib_tabs">Bibliothektabs</string>
<string name="set_lib_tabs_desc">Sichtbarkeit und Ordnung der Bibliothektabs ändern</string>
<string name="lbl_sort_name">Name</string>
<string name="desc_shuffle_all">Alle Lieder zufällig</string>
<string name="desc_clear_queue_item">Lied in der Warteschlange löschen</string>
<string name="desc_tab_handle">Tab versetzen</string>
<string name="def_artist">Unbekannter Künstler</string>
</resources>

View file

@ -152,4 +152,5 @@
<item quantity="one">%d Álbum</item>
<item quantity="other">%d Álbumes</item>
</plurals>
<string name="def_artist">Artista desconocido</string>
</resources>

View file

@ -150,4 +150,5 @@
<item quantity="one">%d Album</item>
<item quantity="other">%d Albums</item>
</plurals>
<string name="def_artist">Onbekend Artist</string>
</resources>

View file

@ -120,7 +120,7 @@
<string name="desc_shuffle_all">Shuffle all songs</string>
<string name="desc_clear_user_queue">Clear queue</string>
<string name="desc_clear_queue_item">Remove this queue item</string>
<string name="desc_clear_queue_item">Remove this queue song</string>
<string name="desc_queue_handle">Move this queue song</string>
<string name="desc_tab_handle">Move this tab</string>
<string name="desc_clear_search">Clear search query</string>

View file

@ -0,0 +1,3 @@
Auxio has a new look derived from Material You, with a new music loader that supports album artists, a completely revamped sorting system, greater library customization, and a more streamlined and cohesive user experience.
For more information, please read the full changelog at https://github.com/oxygencobalt/Auxio/releases/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 KiB

After

Width:  |  Height:  |  Size: 254 KiB

View file

@ -9,7 +9,7 @@ Auxio has a couple of core systems or concepts that should be understood when wo
#### Package Structure
Auxio's package structure is strictly feature-oriented. For example, playback code is exclusively in the `playback` package,
detail code is exclusively in the `detail` package. Sub-packages can be related to the code it contains, such as `detail.recycler`
and detail code is exclusively in the `detail` package. Sub-packages can be related to the code it contains, such as `detail.recycler`
for the detail UI adapters, or they can be related to a sub-feature, like `playback.queue` for the queue UI.
A full run-down of Auxio's current package structure as of the latest version is shown below.
@ -54,7 +54,7 @@ is separated into three phases:
- Create variables [Bindings, Adapters, etc]
- Set up the UI
- Set up LiveData observers
- Set up ViewModel instances and LiveData observers
`findViewById` is to **only** be used when interfacing with non-Auxio views. Otherwise, viewbinding should be
used in all cases. If one needs to keep track of a viewbinding outside of `onCreateView`, then one can declare
@ -110,12 +110,14 @@ Other data types represent a specific UI configuration or state:
#### Music Access
All music on a system is asynchronously indexed into the shared object `MusicStore`. Because of this, **`MusicStore` may not be available at all times**.
All music on a system is asynchronously loaded into the shared object `MusicStore`. Because of this, **`MusicStore` may not be available at all times**.
- ViewModels should try to await or gracefully exit if music is not available
- ViewModels should try to await or gracefully exit the called method if `MusicStore` is not available
- In the case that a ViewModel needs a `MusicStore` instance to function, an instance can be required. This should be done sparingly.
- Other shared objects that rely on `MusicStore` [like `PlaybackStateManager`] will no-op if music is not available.
If the loading status needs to be shown in a UI, `MusicViewModel` can be used to observe the current music loader response.
#### Playback System
Auxio's playback system is somewhat unorthodox, as it avoids much of the android-provided APIs in favor of a more controllable and sensible system.
@ -145,8 +147,7 @@ that UIs can use to interact with the playback state.
`PlaybackService`'s job is to use the playback state to manage the ExoPlayer instance, the notification, the widget, and also modify the state depending on
system events, such as when a button is pressed on a headset. It should **never** be bound to, mostly because there is no need given that
`PlaybackViewModel` exposes the same data in a much safer fashion. `PlaybackService` also controls the `PlaybackSessionConnector`, `AudioReactor`,
and `WidgetController` classes, which manage the `MediaSession`, Audio Focus, and Widgets respectively.
`PlaybackViewModel` exposes the same data in a much safer fashion.
#### Data Integers
@ -199,7 +200,7 @@ To prevent any strange bugs, all integer representations must be unique. A table
0xA10F | Sort.Year
```
Some datatypes [like `Tab` and `Sort`] have even more fine-grained integer representations for other information. More information can be found in
Some datatypes [like `Tab` and `Sort`] have even more fine-grained integer representations for other data. More information can be found in
the documentation for these datatypes.
## Package-by-package rundown
@ -258,7 +259,7 @@ This package contains the components for the "home" UI in Auxio, or the UI that
- The base package contains the top-level components that manage the FloatingActionButton, AppBar, and ViewPager instances.
- The `fastscroll` package contains the fast scroll component used in each list of music
- The `list` package contains the individual fragments for each list of music. These are all placed in the top-level ViewPager instance.
- The `tabs` package contains the data representation of an individual library tab and the UI's for editing them.
- The `tabs` package contains the data representation of an individual library tab and the UIs for editing them.
#### `.music`
@ -270,7 +271,7 @@ data objects have to inherit `BaseModel` so that they can be placed alongside `M
This module not only contains the playback system described above, but also multiple other components:
- `queue` contains the Queue UI and it's fancy item transitions
- `state` contains the core playback state system
- `state` contains the core playback state and persistence system
- `system` contains the system-facing playback system
The most important part of this module is `PlaybackLayout`, which is a custom `ViewGroup` that implements the playback bar and it's ability to

View file

@ -28,8 +28,8 @@ ability to be extended to music sources outside of local files. You can read mor
#### What formats does Auxio support?
As per the [Supported ExoPlayer Formats](https://exoplayer.dev/supported-formats.html), Auxio supports
MP4, MP3, MKA, OGG, WAV, MPEG, ACC on all versions of Android. FLAC files are supported on Android 8.1
or newer, on lower versions Auxio must be patched with the [FLAC Extension](https://github.com/google/ExoPlayer/tree/release-v2/extensions/flac).
MP4, MP3, MKA, OGG, WAV, MPEG, ACC on all versions of Android. However, FLAC files can only be played
on Android 8.1 and above. Below that, Auxio must be patched with the [FLAC Extension](https://github.com/google/ExoPlayer/tree/release-v2/extensions/flac).
#### Why are accents lighter/less saturated in dark mode?