Merge pull request #233 from tinywombat765/download-ind

Add cached indicator to song list
This commit is contained in:
dkanada 2023-03-04 20:35:22 +09:00 committed by GitHub
commit c659447dcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 0 deletions

View file

@ -27,6 +27,9 @@ public class MediaEntryViewHolder extends RecyclerView.ViewHolder implements Vie
@Nullable @Nullable
public View menu; public View menu;
@Nullable
public View cached;
@Nullable @Nullable
public View separator; public View separator;
@ -47,6 +50,7 @@ public class MediaEntryViewHolder extends RecyclerView.ViewHolder implements Vie
title = itemView.findViewById(R.id.title); title = itemView.findViewById(R.id.title);
text = itemView.findViewById(R.id.text); text = itemView.findViewById(R.id.text);
menu = itemView.findViewById(R.id.menu); menu = itemView.findViewById(R.id.menu);
cached = itemView.findViewById(R.id.cached);
separator = itemView.findViewById(R.id.separator); separator = itemView.findViewById(R.id.separator);
shortSeparator = itemView.findViewById(R.id.short_separator); shortSeparator = itemView.findViewById(R.id.short_separator);
dragView = itemView.findViewById(R.id.drag_view); dragView = itemView.findViewById(R.id.drag_view);

View file

@ -1,6 +1,7 @@
package com.dkanada.gramophone.adapter.song; package com.dkanada.gramophone.adapter.song;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -12,6 +13,7 @@ import androidx.annotation.Nullable;
import androidx.core.util.Pair; import androidx.core.util.Pair;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.dkanada.gramophone.App;
import com.dkanada.gramophone.util.ThemeUtil; import com.dkanada.gramophone.util.ThemeUtil;
import com.dkanada.gramophone.R; import com.dkanada.gramophone.R;
import com.dkanada.gramophone.adapter.base.AbsMultiSelectAdapter; import com.dkanada.gramophone.adapter.base.AbsMultiSelectAdapter;
@ -111,6 +113,14 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
holder.text.setText(getSongText(song)); holder.text.setText(getSongText(song));
} }
if (holder.cached != null) {
if (App.getDatabase().cacheDao().isCached(song.id)) {
holder.cached.setVisibility(View.VISIBLE);
} else {
holder.cached.setVisibility(View.GONE);
}
}
loadAlbumCover(song, holder); loadAlbumCover(song, holder);
} }

View file

@ -16,4 +16,7 @@ public interface CacheDao {
@Query("SELECT * FROM songs LEFT JOIN cache USING(id) WHERE songs.id IN (:ids)") @Query("SELECT * FROM songs LEFT JOIN cache USING(id) WHERE songs.id IN (:ids)")
List<Song> getSongs(List<String> ids); List<Song> getSongs(List<String> ids);
@Query("SELECT cache FROM cache WHERE id = :id")
boolean isCached(String id);
} }

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M220,800Q196,800 178,782Q160,764 160,740L160,597L220,597L220,740Q220,740 220,740Q220,740 220,740L740,740Q740,740 740,740Q740,740 740,740L740,597L800,597L800,740Q800,764 782,782Q764,800 740,800L220,800ZM480,647L287,454L330,411L450,531L450,160L510,160L510,531L630,411L673,454L480,647Z"/>
</vector>

View file

@ -81,6 +81,16 @@
</LinearLayout> </LinearLayout>
<com.dkanada.gramophone.views.IconImageView
android:id="@+id/cached"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_download_24dp"
tools:ignore="ContentDescription"
android:visibility="gone"/>
<com.dkanada.gramophone.views.IconImageView <com.dkanada.gramophone.views.IconImageView
android:id="@+id/menu" android:id="@+id/menu"
style="@style/OverFlowButton" style="@style/OverFlowButton"