Graphic restyling of the interface

This commit is contained in:
CappielloAntonio 2021-04-24 20:01:46 +02:00
parent 1ffe52b8a0
commit 658e69dcb9
23 changed files with 971 additions and 240 deletions

View file

@ -5,6 +5,9 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
@ -14,19 +17,23 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.ui.activities.MainActivity;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAdapter.ViewHolder> {
public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAdapter.ViewHolder> implements Filterable {
private static final String TAG = "AlbumCatalogueAdapter";
private List<Album> albums;
private List<Album> albumsFull;
private LayoutInflater inflater;
private MainActivity activity;
private Context context;
public AlbumCatalogueAdapter(Context context) {
public AlbumCatalogueAdapter(MainActivity activity, Context context) {
this.activity = activity;
this.context = context;
this.inflater = LayoutInflater.from(context);
this.albums = new ArrayList<>();
@ -87,6 +94,9 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
else if(Objects.requireNonNull(Navigation.findNavController(view).getCurrentDestination()).getId() == R.id.albumCatalogueFragment) {
Navigation.findNavController(view).navigate(R.id.action_albumCatalogueFragment_to_albumPageFragment, bundle);
}
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
@Override
@ -104,6 +114,43 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
public void setItems(List<Album> albums) {
this.albums = albums;
this.albumsFull = new ArrayList<>(albums);
notifyDataSetChanged();
}
@Override
public Filter getFilter() {
return filtering;
}
private Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Album> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(albumsFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Album item : albumsFull) {
if (item.getTitle().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
albums.clear();
albums.addAll((List) results.values);
notifyDataSetChanged();
}
};
}

View file

@ -5,6 +5,9 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
@ -13,20 +16,25 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.ui.activities.MainActivity;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogueAdapter.ViewHolder> {
public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogueAdapter.ViewHolder> implements Filterable {
private static final String TAG = "ArtistCatalogueAdapter";
private List<Artist> artists;
private List<Artist> artistFull;
private LayoutInflater inflater;
private MainActivity activity;
private Context context;
public ArtistCatalogueAdapter(Context context) {
public ArtistCatalogueAdapter(MainActivity activity, Context context) {
this.activity = activity;
this.context = context;
this.inflater = LayoutInflater.from(context);
this.artists = new ArrayList<>();
@ -83,6 +91,9 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
else if(Objects.requireNonNull(Navigation.findNavController(view).getCurrentDestination()).getId() == R.id.artistCatalogueFragment) {
Navigation.findNavController(view).navigate(R.id.action_artistCatalogueFragment_to_artistPageFragment, bundle);
}
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
@Override
@ -100,6 +111,43 @@ public class ArtistCatalogueAdapter extends RecyclerView.Adapter<ArtistCatalogue
public void setItems(List<Artist> artists) {
this.artists = artists;
this.artistFull = new ArrayList<>(artists);
notifyDataSetChanged();
}
@Override
public Filter getFilter() {
return filtering;
}
private Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Artist> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(artistFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Artist item : artistFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
artists.clear();
artists.addAll((List) results.values);
notifyDataSetChanged();
}
};
}

View file

@ -4,25 +4,33 @@ import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Genre;
import com.cappielloantonio.play.ui.activities.MainActivity;
import java.util.ArrayList;
import java.util.List;
public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAdapter.ViewHolder> {
public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAdapter.ViewHolder> implements Filterable {
private static final String TAG = "GenreCatalogueAdapter";
private List<Genre> genres;
private List<Genre> genresFull;
private LayoutInflater mInflater;
private MainActivity activity;
private Context context;
private ItemClickListener itemClickListener;
public GenreCatalogueAdapter(Context context) {
public GenreCatalogueAdapter(MainActivity activity, Context context) {
this.activity = activity;
this.context = context;
this.mInflater = LayoutInflater.from(context);
this.genres = new ArrayList<>();
@ -60,7 +68,12 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
@Override
public void onClick(View view) {
if (itemClickListener != null) itemClickListener.onItemClick(view, getBindingAdapterPosition());
if (itemClickListener != null) {
itemClickListener.onItemClick(view, getBindingAdapterPosition());
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
}
@ -70,6 +83,7 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
public void setItems(List<Genre> genres) {
this.genres = genres;
this.genresFull = new ArrayList<>(genres);
notifyDataSetChanged();
}
@ -80,4 +94,40 @@ public class GenreCatalogueAdapter extends RecyclerView.Adapter<GenreCatalogueAd
public interface ItemClickListener {
void onItemClick(View view, int position);
}
@Override
public Filter getFilter() {
return filtering;
}
private Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Genre> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(genresFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Genre item : genresFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
genres.clear();
genres.addAll((List) results.values);
notifyDataSetChanged();
}
};
}

View file

@ -5,6 +5,9 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
@ -13,19 +16,24 @@ import androidx.recyclerview.widget.RecyclerView;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Genre;
import com.cappielloantonio.play.model.Playlist;
import com.cappielloantonio.play.ui.activities.MainActivity;
import java.util.ArrayList;
import java.util.List;
public class PlaylistCatalogueAdapter extends RecyclerView.Adapter<PlaylistCatalogueAdapter.ViewHolder> {
public class PlaylistCatalogueAdapter extends RecyclerView.Adapter<PlaylistCatalogueAdapter.ViewHolder> implements Filterable {
private List<Playlist> playlists;
private List<Playlist> playlistsFull;
private LayoutInflater mInflater;
private MainActivity activity;
private Context context;
public PlaylistCatalogueAdapter(Context context) {
public PlaylistCatalogueAdapter(MainActivity activity, Context context) {
this.activity = activity;
this.context = context;
this.mInflater = LayoutInflater.from(context);
this.playlists = new ArrayList<>();
@ -73,6 +81,8 @@ public class PlaylistCatalogueAdapter extends RecyclerView.Adapter<PlaylistCatal
bundle.putParcelable("playlist_object", playlists.get(getBindingAdapterPosition()));
Navigation.findNavController(view).navigate(R.id.action_playlistCatalogueFragment_to_playlistPageFragment, bundle);
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
@ -82,6 +92,43 @@ public class PlaylistCatalogueAdapter extends RecyclerView.Adapter<PlaylistCatal
public void setItems(List<Playlist> playlists) {
this.playlists = playlists;
this.playlistsFull = new ArrayList<>(playlists);
notifyDataSetChanged();
}
@Override
public Filter getFilter() {
return filtering;
}
private Filter filtering = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Playlist> filteredList = new ArrayList<>();
if (constraint == null || constraint.length() == 0) {
filteredList.addAll(playlistsFull);
} else {
String filterPattern = constraint.toString().toLowerCase().trim();
for (Playlist item : playlistsFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults results = new FilterResults();
results.values = filteredList;
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
playlists.clear();
playlists.addAll((List) results.values);
notifyDataSetChanged();
}
};
}