#15: Enabled "Add to playlist" in the search screen. Localized strings and improved UI.

housekeeping/remove-warnings
Antoine POPINEAU 2020-09-04 16:56:31 +02:00
rodzic 54d4dc2235
commit d796fca26b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: A78AC64694F84063
8 zmienionych plików z 29 dodań i 7 usunięć

Wyświetl plik

@ -19,6 +19,7 @@ import androidx.core.graphics.drawable.toDrawable
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.github.apognu.otter.Otter import com.github.apognu.otter.Otter
import com.github.apognu.otter.R import com.github.apognu.otter.R
@ -380,7 +381,9 @@ class MainActivity : AppCompatActivity() {
is Command.RefreshTrack -> refreshCurrentTrack(command.track) is Command.RefreshTrack -> refreshCurrentTrack(command.track)
is Command.AddToPlaylist -> AddToPlaylistDialog.show(this@MainActivity, lifecycleScope, command.track) is Command.AddToPlaylist -> if (lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
AddToPlaylistDialog.show(this@MainActivity, lifecycleScope, command.track)
}
} }
} }
} }

Wyświetl plik

@ -3,10 +3,12 @@ package com.github.apognu.otter.activities
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.github.apognu.otter.R import com.github.apognu.otter.R
import com.github.apognu.otter.adapters.SearchAdapter import com.github.apognu.otter.adapters.SearchAdapter
import com.github.apognu.otter.fragments.AddToPlaylistDialog
import com.github.apognu.otter.fragments.AlbumsFragment import com.github.apognu.otter.fragments.AlbumsFragment
import com.github.apognu.otter.fragments.ArtistsFragment import com.github.apognu.otter.fragments.ArtistsFragment
import com.github.apognu.otter.repositories.* import com.github.apognu.otter.repositories.*
@ -47,6 +49,16 @@ class SearchActivity : AppCompatActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
lifecycleScope.launch(Dispatchers.Main) {
CommandBus.get().collect { command ->
when (command) {
is Command.AddToPlaylist -> if (lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
AddToPlaylistDialog.show(this@SearchActivity, lifecycleScope, command.track)
}
}
}
}
lifecycleScope.launch(Dispatchers.IO) { lifecycleScope.launch(Dispatchers.IO) {
EventBus.get().collect { message -> EventBus.get().collect { message ->
when (message) { when (message) {

Wyświetl plik

@ -215,6 +215,7 @@ class SearchAdapter(private val context: Context?, private val listener: OnSearc
R.id.track_add_to_queue -> CommandBus.send(Command.AddToQueue(listOf(track))) R.id.track_add_to_queue -> CommandBus.send(Command.AddToQueue(listOf(track)))
R.id.track_play_next -> CommandBus.send(Command.PlayNext(track)) R.id.track_play_next -> CommandBus.send(Command.PlayNext(track))
R.id.track_pin -> CommandBus.send(Command.PinTrack(track)) R.id.track_pin -> CommandBus.send(Command.PinTrack(track))
R.id.track_add_to_playlist -> CommandBus.send(Command.AddToPlaylist(track))
R.id.queue_remove -> CommandBus.send(Command.RemoveFromQueue(track)) R.id.queue_remove -> CommandBus.send(Command.RemoveFromQueue(track))
} }

Wyświetl plik

@ -18,7 +18,7 @@ import kotlinx.coroutines.launch
object AddToPlaylistDialog { object AddToPlaylistDialog {
fun show(activity: Activity, lifecycleScope: CoroutineScope, track: Track) { fun show(activity: Activity, lifecycleScope: CoroutineScope, track: Track) {
val dialog = AlertDialog.Builder(activity).run { val dialog = AlertDialog.Builder(activity).run {
setTitle("Add track to playlist") setTitle(activity.getString(R.string.playlist_add_to))
setView(activity.layoutInflater.inflate(R.layout.dialog_add_to_playlist, null)) setView(activity.layoutInflater.inflate(R.layout.dialog_add_to_playlist, null))
create() create()

Wyświetl plik

@ -11,9 +11,9 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:hint="New playlist..." android:hint="@string/playlist_add_to_new"
app:boxStrokeColor="@color/controlForeground" app:boxStrokeColor="@color/controlForeground"
app:hintTextColor="@color/controlForeground" app:hintTextColor="@color/controlForeground"
app:placeholderTextColor="@color/controlForeground"> app:placeholderTextColor="@color/controlForeground">
@ -30,9 +30,9 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="16dp"
android:enabled="false" android:enabled="false"
android:text="Create playlist" android:text="@string/playlist_add_to_create"
android:textColor="@color/controlForeground" android:textColor="@color/controlForeground"
app:rippleColor="@color/ripple" /> app:rippleColor="@color/ripple" />

Wyświetl plik

@ -11,7 +11,7 @@
<item <item
android:id="@+id/track_add_to_playlist" android:id="@+id/track_add_to_playlist"
android:title="Add to playlist" /> android:title="@string/playlist_add_to" />
<item <item
android:id="@+id/track_pin" android:id="@+id/track_pin"

Wyświetl plik

@ -113,6 +113,9 @@
<item quantity="one">%1$d piste • %2$s</item> <item quantity="one">%1$d piste • %2$s</item>
<item quantity="other">%1$d pistes • %2$s</item> <item quantity="other">%1$d pistes • %2$s</item>
</plurals> </plurals>
<string name="playlist_add_to">Ajouter à une playlist</string>
<string name="playlist_add_to_new">Nouvelle playlist...</string>
<string name="playlist_add_to_create">Créer playlist</string>
<string name="filters">Filtres</string> <string name="filters">Filtres</string>
<string name="fiters_all">Toute la musique</string> <string name="fiters_all">Toute la musique</string>
<string name="filters_my_music">Ma musique</string> <string name="filters_my_music">Ma musique</string>

Wyświetl plik

@ -114,6 +114,9 @@
<item quantity="one">%1$d track • %2$s"</item> <item quantity="one">%1$d track • %2$s"</item>
<item quantity="other">%1$d tracks • %2$s"</item> <item quantity="other">%1$d tracks • %2$s"</item>
</plurals> </plurals>
<string name="playlist_add_to">Add to playlist</string>
<string name="playlist_add_to_new">New playlist…</string>
<string name="playlist_add_to_create">Create playlist</string>
<string name="filters">Filters</string> <string name="filters">Filters</string>
<string name="fiters_all">All music</string> <string name="fiters_all">All music</string>
<string name="filters_my_music">My music</string> <string name="filters_my_music">My music</string>