Added discover/recentryAddedAlbum/recentlyPlayedAlbum/mostPlayedAlbum data retrieval

This commit is contained in:
CappielloAntonio 2021-07-27 12:10:28 +02:00
parent 304a5f078a
commit 532fcd1ee6
45 changed files with 351 additions and 1205 deletions

View file

@ -65,9 +65,9 @@
android:paddingBottom="8dp" />
</LinearLayout>
<!-- Most played tracks -->
<!-- Most played albums -->
<LinearLayout
android:id="@+id/home_most_played_tracks_sector"
android:id="@+id/home_most_played_albums_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -93,7 +93,7 @@
<TextView
android:id="@+id/most_played_tracks_text_view_clickable"
android:id="@+id/most_played_albums_text_view_clickable"
style="@style/SubheadTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -105,7 +105,7 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/most_played_tracks_recycler_view"
android:id="@+id/most_played_albums_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
@ -117,9 +117,9 @@
android:paddingBottom="8dp" />
</LinearLayout>
<!-- Recently played tracks -->
<!-- Recently played albums -->
<LinearLayout
android:id="@+id/home_recently_played_tracks_sector"
android:id="@+id/home_recently_played_albums_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -145,7 +145,7 @@
<TextView
android:id="@+id/recently_played_tracks_text_view_clickable"
android:id="@+id/recently_played_albums_text_view_clickable"
style="@style/SubheadTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -157,7 +157,7 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recently_played_tracks_recycler_view"
android:id="@+id/recently_played_albums_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
@ -301,9 +301,9 @@
android:paddingBottom="8dp" />
</LinearLayout>
<!-- Recently added tracks -->
<!-- Recently added albums -->
<LinearLayout
android:id="@+id/home_recently_added_tracks_sector"
android:id="@+id/home_recently_added_albums_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@ -329,7 +329,7 @@
<TextView
android:id="@+id/recently_added_tracks_text_view_clickable"
android:id="@+id/recently_added_albums_text_view_clickable"
style="@style/SubheadTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -341,7 +341,7 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recently_added_tracks_recycler_view"
android:id="@+id/recently_added_albums_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"

View file

@ -1,481 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/syncing_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false">
<TextView
android:id="@+id/syncing_date_label"
style="@style/SubheadTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:paddingStart="16dp"
android:paddingTop="20dp"
android:paddingEnd="16dp"
android:text="@string/label_placeholder"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/syncing_syncing_label"
style="@style/TitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="Syncing"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/syncing_date_label" />
<ImageView
android:id="@+id/syncing_go_home_image_view"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:visibility="gone"
android:background="@drawable/ic_home_filled"
android:backgroundTint="@color/bottomNavIconColor"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
app:layout_constraintBottom_toBottomOf="@+id/syncing_syncing_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
android:id="@+id/home_top_title_divider"
style="@style/Divider"
android:layout_marginStart="18dp"
android:layout_marginTop="18dp"
android:layout_marginEnd="18dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/syncing_syncing_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Libraries -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_libraries_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="18dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_libraries_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync libraries"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_libraries_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_libraries_label" />
<TextView
android:id="@+id/sync_libraries_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toStartOf="@+id/sync_libraries_retry_image_view"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_libraries_detail_label" />
<ImageView
android:id="@+id/sync_libraries_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_libraries_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_libraries_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Albums -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_albums_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_albums_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync albums"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_albums_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_albums_label" />
<TextView
android:id="@+id/sync_albums_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_albums_detail_label" />
<ImageView
android:id="@+id/sync_albums_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_albums_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_albums_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Artists -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_artists_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_artists_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync artists"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_artists_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_artists_label" />
<TextView
android:id="@+id/sync_artists_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_artists_detail_label" />
<ImageView
android:id="@+id/sync_artists_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_artists_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_artists_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Genres -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_genres_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_genres_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync genres"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_genres_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_genres_label" />
<TextView
android:id="@+id/sync_genres_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_genres_detail_label" />
<ImageView
android:id="@+id/sync_genres_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_genres_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_genres_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Playlists -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_playlists_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_playlists_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync playlists"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_playlists_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_playlists_label" />
<TextView
android:id="@+id/sync_playlists_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_playlists_detail_label" />
<ImageView
android:id="@+id/sync_playlists_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_playlists_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_playlists_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Song x Playlist -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_song_x_playlist_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_song_x_playlist_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync song x playlist"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_song_x_playlist_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_song_x_playlist_label" />
<TextView
android:id="@+id/sync_song_x_playlist_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_song_x_playlist_detail_label" />
<ImageView
android:id="@+id/sync_song_x_playlist_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_song_x_playlist_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_song_x_playlist_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- Songs -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/sync_songs_sector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="16dp">
<TextView
android:id="@+id/sync_songs_label"
style="@style/ItemTitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sync songs"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/sync_songs_detail_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_songs_label" />
<TextView
android:id="@+id/sync_songs_status_label"
style="@style/ItemSubtitleTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp"
android:text="@string/label_placeholder"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_songs_detail_label" />
<ImageView
android:id="@+id/sync_songs_retry_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@drawable/ic_refresh"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/sync_songs_status_label"
app:layout_constraintEnd_toEndOf="parent" />
<View
style="@style/Divider"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sync_songs_status_label" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View file

@ -20,11 +20,6 @@
app:destination="@id/homeFragment"
app:popUpTo="@id/landingFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_landingFragment_to_syncFragment"
app:destination="@id/syncFragment"
app:popUpTo="@id/landingFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
@ -32,11 +27,6 @@
android:name="com.cappielloantonio.play.ui.fragment.LoginFragment"
android:label="LoginFragment"
tools:layout="@layout/fragment_login">
<action
android:id="@+id/action_loginFragment_to_syncFragment"
app:destination="@id/syncFragment"
app:popUpTo="@id/loginFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_loginFragment_to_homeFragment"
app:destination="@id/homeFragment"
@ -44,39 +34,20 @@
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/syncFragment"
android:name="com.cappielloantonio.play.ui.fragment.SyncFragment"
android:label="SyncFragment"
tools:layout="@layout/fragment_sync">
<action
android:id="@+id/action_syncFragment_to_homeFragment"
app:destination="@id/homeFragment"
app:popUpTo="@id/syncFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_syncFragment_to_libraryFragment"
app:destination="@id/libraryFragment"
app:popUpTo="@id/syncFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/homeFragment"
android:name="com.cappielloantonio.play.ui.fragment.HomeFragment"
android:label="HomeFragment"
tools:layout="@layout/fragment_home">
<action
android:id="@+id/action_homeFragment_to_syncFragment"
app:destination="@id/syncFragment"
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_homeFragment_to_songListPageFragment"
app:destination="@id/songListPageFragment" />
<action
android:id="@+id/action_homeFragment_to_settingsFragment"
app:destination="@id/settingsFragment" />
<action
android:id="@+id/action_homeFragment_to_albumPageFragment"
app:destination="@id/albumPageFragment" />
</fragment>
<fragment
android:id="@+id/libraryFragment"
@ -104,11 +75,6 @@
<action
android:id="@+id/action_libraryFragment_to_songListPageFragment"
app:destination="@id/songListPageFragment" />
<action
android:id="@+id/action_libraryFragment_to_syncFragment"
app:destination="@id/syncFragment"
app:popUpTo="@id/libraryFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_libraryFragment_to_playlistPageFragment"
app:destination="@id/playlistPageFragment" />
@ -118,11 +84,6 @@
android:name="com.cappielloantonio.play.ui.fragment.SettingsFragment"
android:label="SettingsFragment"
tools:layout="@layout/fragment_settings">
<action
android:id="@+id/action_settingsFragment_to_syncFragment"
app:destination="@id/syncFragment"
app:popUpTo="@id/homeFragment"
app:popUpToInclusive="true" />
</fragment>
<fragment
android:id="@+id/searchFragment"

View file

@ -56,19 +56,6 @@
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/sync_header">
<Preference
android:key="@string/music_sync"
android:summary="@string/music_sync_caption"
android:title="@string/music_sync" />
<Preference
android:key="@string/playlist_song_cross_sync"
android:summary="@string/playlist_song_cross_sync_caption"
android:title="@string/playlist_song_cross_sync" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/about_header">
<Preference
app:selectable="false"