songs, DownloadFile currentPlaying, int currentPlayingIndex) {
- if(this.currentPlaying != currentPlaying || this.currentPlaying == null) {
+ if (this.currentPlaying != currentPlaying || this.currentPlaying == null) {
onSongChanged(currentPlaying, currentPlayingIndex);
}
}
@@ -831,7 +746,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo
}
@Override
- public void onStateUpdate(DownloadFile downloadFile, PlayerState playerState) {
+ public void onStateUpdate(PlayerState playerState) {
int[] attrs = new int[]{(playerState == PlayerState.STARTED) ? R.attr.actionbar_pause : R.attr.actionbar_start};
TypedArray typedArray = this.obtainStyledAttributes(attrs);
startButton.setImageResource(typedArray.getResourceId(0, 0));
@@ -840,7 +755,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo
@Override
public void onMetadataUpdate(MusicDirectory.Entry song, int fieldChange) {
- if(song != null && coverArtView != null && fieldChange == DownloadService.METADATA_UPDATED_COVER_ART) {
+ if (song != null && coverArtView != null && fieldChange == DownloadService.METADATA_UPDATED_COVER_ART) {
int height = coverArtView.getHeight();
if (height <= 0) {
int[] attrs = new int[]{R.attr.actionBarSize};
@@ -851,7 +766,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo
getImageLoader().loadImage(coverArtView, song, false, height, false);
// We need to update it immediately since it won't update if updater is not running for it
- if(nowPlayingFragment != null && slideUpPanel.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
+ if (nowPlayingFragment != null && slideUpPanel.getPanelState() == SlidingUpPanelLayout.PanelState.COLLAPSED) {
nowPlayingFragment.onMetadataUpdate(song, fieldChange);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/activity/VoiceQueryReceiverActivity.java b/app/src/main/java/net/nullsum/audinaut/activity/VoiceQueryReceiverActivity.java
index 9aea6a1..b8402c6 100644
--- a/app/src/main/java/net/nullsum/audinaut/activity/VoiceQueryReceiverActivity.java
+++ b/app/src/main/java/net/nullsum/audinaut/activity/VoiceQueryReceiverActivity.java
@@ -24,23 +24,18 @@ import android.app.SearchManager;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
-import android.provider.SearchRecentSuggestions;
-import android.util.Log;
-import net.nullsum.audinaut.fragments.SubsonicFragment;
import net.nullsum.audinaut.util.Constants;
import net.nullsum.audinaut.util.Util;
-import net.nullsum.audinaut.provider.AudinautSearchProvider;
/**
* Receives voice search queries and forwards to the SearchFragment.
- *
+ *
* http://android-developers.blogspot.com/2010/09/supporting-new-music-voice-action.html
*
* @author Sindre Mehus
*/
public class VoiceQueryReceiverActivity extends Activity {
- private static final String TAG = VoiceQueryReceiverActivity.class.getSimpleName();
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -57,6 +52,5 @@ public class VoiceQueryReceiverActivity extends Activity {
Util.startActivityWithoutTransition(VoiceQueryReceiverActivity.this, intent);
}
finish();
- Util.disablePendingTransition(this);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/AlphabeticalAlbumAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/AlphabeticalAlbumAdapter.java
index e91fdd2..f65f8a0 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/AlphabeticalAlbumAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/AlphabeticalAlbumAdapter.java
@@ -17,12 +17,12 @@ package net.nullsum.audinaut.adapter;
import android.content.Context;
-import java.util.List;
-
import net.nullsum.audinaut.domain.MusicDirectory;
import net.nullsum.audinaut.util.ImageLoader;
import net.nullsum.audinaut.view.FastScroller;
+import java.util.List;
+
public class AlphabeticalAlbumAdapter extends EntryInfiniteGridAdapter implements FastScroller.BubbleTextGetter {
public AlphabeticalAlbumAdapter(Context context, List entries, ImageLoader imageLoader, boolean largeCell) {
super(context, entries, imageLoader, largeCell);
@@ -31,8 +31,8 @@ public class AlphabeticalAlbumAdapter extends EntryInfiniteGridAdapter implement
@Override
public String getTextToShowInBubble(int position) {
// Make sure that we are not trying to get an item for the loading placeholder
- if(position >= sections.get(0).size()) {
- if(sections.get(0).size() > 0) {
+ if (position >= sections.get(0).size()) {
+ if (sections.get(0).size() > 0) {
return getTextToShowInBubble(position - 1);
} else {
return "*";
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/ArtistAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/ArtistAdapter.java
index 64a98ed..9f16cd9 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/ArtistAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/ArtistAdapter.java
@@ -18,17 +18,12 @@ package net.nullsum.audinaut.adapter;
import android.content.Context;
import android.support.v7.widget.PopupMenu;
import android.view.LayoutInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-import java.io.Serializable;
-import java.util.List;
-
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.domain.Artist;
-import net.nullsum.audinaut.domain.MusicDirectory;
import net.nullsum.audinaut.domain.MusicDirectory.Entry;
import net.nullsum.audinaut.domain.MusicFolder;
import net.nullsum.audinaut.util.Util;
@@ -37,16 +32,14 @@ import net.nullsum.audinaut.view.FastScroller;
import net.nullsum.audinaut.view.SongView;
import net.nullsum.audinaut.view.UpdateView;
+import java.io.Serializable;
+import java.util.List;
+
public class ArtistAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter {
- public static int VIEW_TYPE_SONG = 3;
- public static int VIEW_TYPE_ARTIST = 4;
-
- private List musicFolders;
- private OnMusicFolderChanged onMusicFolderChanged;
-
- public ArtistAdapter(Context context, List artists, OnItemClickedListener listener) {
- this(context, artists, null, listener, null);
- }
+ public static final int VIEW_TYPE_ARTIST = 4;
+ private static final int VIEW_TYPE_SONG = 3;
+ private final List musicFolders;
+ private final OnMusicFolderChanged onMusicFolderChanged;
public ArtistAdapter(Context context, List artists, List musicFolders, OnItemClickedListener onItemClickedListener, OnMusicFolderChanged onMusicFolderChanged) {
super(context, artists);
@@ -54,7 +47,7 @@ public class ArtistAdapter extends SectionAdapter implements FastS
this.onItemClickedListener = onItemClickedListener;
this.onMusicFolderChanged = onMusicFolderChanged;
- if(musicFolders != null) {
+ if (musicFolders != null) {
this.singleSectionHeader = true;
}
}
@@ -62,46 +55,41 @@ public class ArtistAdapter extends SectionAdapter implements FastS
@Override
public UpdateView.UpdateViewHolder onCreateHeaderHolder(ViewGroup parent) {
final View header = LayoutInflater.from(context).inflate(R.layout.select_artist_header, parent, false);
- header.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- PopupMenu popup = new PopupMenu(context, header.findViewById(R.id.select_artist_folder_2));
+ header.setOnClickListener(v -> {
+ PopupMenu popup = new PopupMenu(context, header.findViewById(R.id.select_artist_folder_2));
- popup.getMenu().add(R.string.select_artist_all_folders);
+ popup.getMenu().add(R.string.select_artist_all_folders);
+ for (MusicFolder musicFolder : musicFolders) {
+ popup.getMenu().add(musicFolder.getName());
+ }
+
+ popup.setOnMenuItemClickListener(item -> {
for (MusicFolder musicFolder : musicFolders) {
- popup.getMenu().add(musicFolder.getName());
- }
-
- popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- for (MusicFolder musicFolder : musicFolders) {
- if(item.getTitle().equals(musicFolder.getName())) {
- if(onMusicFolderChanged != null) {
- onMusicFolderChanged.onMusicFolderChanged(musicFolder);
- }
- return true;
- }
- }
-
- if(onMusicFolderChanged != null) {
- onMusicFolderChanged.onMusicFolderChanged(null);
+ if (item.getTitle().equals(musicFolder.getName())) {
+ if (onMusicFolderChanged != null) {
+ onMusicFolderChanged.onMusicFolderChanged(musicFolder);
}
return true;
}
- });
- popup.show();
- }
+ }
+
+ if (onMusicFolderChanged != null) {
+ onMusicFolderChanged.onMusicFolderChanged(null);
+ }
+ return true;
+ });
+ popup.show();
});
- return new UpdateView.UpdateViewHolder(header, false);
+ return new UpdateView.UpdateViewHolder(header);
}
+
@Override
public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String header, int sectionIndex) {
- TextView folderName = (TextView) holder.getView().findViewById(R.id.select_artist_folder_2);
+ TextView folderName = holder.getView().findViewById(R.id.select_artist_folder_2);
String musicFolderId = Util.getSelectedMusicFolderId(context);
- if(musicFolderId != null) {
+ if (musicFolderId != null) {
for (MusicFolder musicFolder : musicFolders) {
if (musicFolder.getId().equals(musicFolderId)) {
folderName.setText(musicFolder.getName());
@@ -114,11 +102,11 @@ public class ArtistAdapter extends SectionAdapter implements FastS
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
UpdateView updateView = null;
- if(viewType == VIEW_TYPE_ARTIST) {
+ if (viewType == VIEW_TYPE_ARTIST) {
updateView = new ArtistView(context);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
updateView = new SongView(context);
}
@@ -128,9 +116,9 @@ public class ArtistAdapter extends SectionAdapter implements FastS
@Override
public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Serializable item, int viewType) {
UpdateView view = holder.getUpdateView();
- if(viewType == VIEW_TYPE_ARTIST) {
+ if (viewType == VIEW_TYPE_ARTIST) {
view.setObject(item);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
SongView songView = (SongView) view;
Entry entry = (Entry) item;
songView.setObject(entry, checkable);
@@ -139,7 +127,7 @@ public class ArtistAdapter extends SectionAdapter implements FastS
@Override
public int getItemViewType(Serializable item) {
- if(item instanceof Artist) {
+ if (item instanceof Artist) {
return VIEW_TYPE_ARTIST;
} else {
return VIEW_TYPE_SONG;
@@ -149,7 +137,7 @@ public class ArtistAdapter extends SectionAdapter implements FastS
@Override
public String getTextToShowInBubble(int position) {
Object item = getItemForPosition(position);
- if(item instanceof Artist) {
+ if (item instanceof Artist) {
return getNameIndex(((Artist) item).getName(), true);
} else {
return null;
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/BasicListAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/BasicListAdapter.java
index ae04bca..8912677 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/BasicListAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/BasicListAdapter.java
@@ -16,15 +16,14 @@
package net.nullsum.audinaut.adapter;
import android.content.Context;
-import android.view.ViewGroup;
-
-import java.util.List;
import net.nullsum.audinaut.view.BasicListView;
import net.nullsum.audinaut.view.UpdateView;
+import java.util.List;
+
public class BasicListAdapter extends SectionAdapter {
- public static int VIEW_TYPE_LINE = 1;
+ private static final int VIEW_TYPE_LINE = 1;
public BasicListAdapter(Context context, List strings, OnItemClickedListener listener) {
super(context, strings);
@@ -32,7 +31,7 @@ public class BasicListAdapter extends SectionAdapter {
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
return new UpdateView.UpdateViewHolder(new BasicListView(context));
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/DetailsAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/DetailsAdapter.java
index dcb03f1..d45cad0 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/DetailsAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/DetailsAdapter.java
@@ -16,8 +16,6 @@
package net.nullsum.audinaut.adapter;
import android.content.Context;
-import android.text.SpannableString;
-import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
@@ -25,32 +23,32 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
-import java.util.List;
-
import net.nullsum.audinaut.R;
-public class DetailsAdapter extends ArrayAdapter {
- private List headers;
- private List details;
+import java.util.List;
- public DetailsAdapter(Context context, int layout, List headers, List details) {
- super(context, layout, headers);
+public class DetailsAdapter extends ArrayAdapter {
+ private final List headers;
+ private final List details;
+
+ public DetailsAdapter(Context context, List headers, List details) {
+ super(context, R.layout.details_item, headers);
this.headers = headers;
this.details = details;
}
@Override
- public View getView(int position, View convertView, ViewGroup parent){
+ public View getView(int position, View convertView, ViewGroup parent) {
View view;
- if(convertView == null) {
+ if (convertView == null) {
view = LayoutInflater.from(getContext()).inflate(R.layout.details_item, null);
} else {
view = convertView;
}
- TextView nameView = (TextView) view.findViewById(R.id.detail_name);
- TextView detailsView = (TextView) view.findViewById(R.id.detail_value);
+ TextView nameView = view.findViewById(R.id.detail_name);
+ TextView detailsView = view.findViewById(R.id.detail_value);
nameView.setText(headers.get(position));
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/DownloadFileAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/DownloadFileAdapter.java
index 6a1d1dc..131bbea 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/DownloadFileAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/DownloadFileAdapter.java
@@ -18,12 +18,6 @@ package net.nullsum.audinaut.adapter;
import android.content.Context;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-
-import java.util.List;
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.service.DownloadFile;
@@ -32,8 +26,10 @@ import net.nullsum.audinaut.view.FastScroller;
import net.nullsum.audinaut.view.SongView;
import net.nullsum.audinaut.view.UpdateView;
+import java.util.List;
+
public class DownloadFileAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter {
- public static int VIEW_TYPE_DOWNLOAD_FILE = 1;
+ private static final int VIEW_TYPE_DOWNLOAD_FILE = 1;
public DownloadFileAdapter(Context context, List entries, OnItemClickedListener onItemClickedListener) {
super(context, entries);
@@ -42,7 +38,7 @@ public class DownloadFileAdapter extends SectionAdapter implements
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
return new UpdateView.UpdateViewHolder(new SongView(context));
}
@@ -65,7 +61,7 @@ public class DownloadFileAdapter extends SectionAdapter implements
@Override
public void onCreateActionModeMenu(Menu menu, MenuInflater menuInflater) {
- if(Util.isOffline(context)) {
+ if (Util.isOffline(context)) {
menuInflater.inflate(R.menu.multiselect_nowplaying_offline, menu);
} else {
menuInflater.inflate(R.menu.multiselect_nowplaying, menu);
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/EntryGridAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/EntryGridAdapter.java
index 017dfa0..e57ecf8 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/EntryGridAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/EntryGridAdapter.java
@@ -18,11 +18,6 @@ package net.nullsum.audinaut.adapter;
import android.content.Context;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-
-import java.util.List;
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.domain.MusicDirectory;
@@ -34,19 +29,17 @@ import net.nullsum.audinaut.view.SongView;
import net.nullsum.audinaut.view.UpdateView;
import net.nullsum.audinaut.view.UpdateView.UpdateViewHolder;
+import java.util.List;
+
public class EntryGridAdapter extends SectionAdapter {
- private static String TAG = EntryGridAdapter.class.getSimpleName();
-
- public static int VIEW_TYPE_ALBUM_CELL = 1;
- public static int VIEW_TYPE_ALBUM_LINE = 2;
- public static int VIEW_TYPE_SONG = 3;
-
- private ImageLoader imageLoader;
- private boolean largeAlbums;
+ public static final int VIEW_TYPE_ALBUM_CELL = 1;
+ public static final int VIEW_TYPE_ALBUM_LINE = 2;
+ public static final int VIEW_TYPE_SONG = 3;
+ private final ImageLoader imageLoader;
+ private final boolean largeAlbums;
private boolean showArtist = false;
private boolean showAlbum = false;
private boolean removeFromPlaylist = false;
- private View header;
public EntryGridAdapter(Context context, List entries, ImageLoader imageLoader, boolean largeCell) {
super(context, entries);
@@ -55,12 +48,12 @@ public class EntryGridAdapter extends SectionAdapter {
// Always show artist if they aren't all the same
String artist = null;
- for(MusicDirectory.Entry entry: entries) {
- if(artist == null) {
+ for (MusicDirectory.Entry entry : entries) {
+ if (artist == null) {
artist = entry.getArtist();
}
- if(artist != null && !artist.equals(entry.getArtist())) {
+ if (artist != null && !artist.equals(entry.getArtist())) {
showArtist = true;
}
}
@@ -68,11 +61,11 @@ public class EntryGridAdapter extends SectionAdapter {
}
@Override
- public UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateViewHolder onCreateSectionViewHolder(int viewType) {
UpdateView updateView = null;
- if(viewType == VIEW_TYPE_ALBUM_LINE || viewType == VIEW_TYPE_ALBUM_CELL) {
+ if (viewType == VIEW_TYPE_ALBUM_LINE || viewType == VIEW_TYPE_ALBUM_CELL) {
updateView = new AlbumView(context, viewType == VIEW_TYPE_ALBUM_CELL);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
updateView = new SongView(context);
}
@@ -82,27 +75,24 @@ public class EntryGridAdapter extends SectionAdapter {
@Override
public void onBindViewHolder(UpdateViewHolder holder, Entry entry, int viewType) {
UpdateView view = holder.getUpdateView();
- if(viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
+ if (viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
AlbumView albumView = (AlbumView) view;
albumView.setShowArtist(showArtist);
albumView.setObject(entry, imageLoader);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
SongView songView = (SongView) view;
songView.setShowAlbum(showAlbum);
songView.setObject(entry, checkable);
}
}
- public UpdateViewHolder onCreateHeaderHolder(ViewGroup parent) {
- return new UpdateViewHolder(header, false);
- }
public void onBindHeaderHolder(UpdateViewHolder holder, String header, int sectionIndex) {
}
@Override
public int getItemViewType(Entry entry) {
- if(entry.isDirectory()) {
+ if (entry.isDirectory()) {
if (largeAlbums) {
return VIEW_TYPE_ALBUM_CELL;
} else {
@@ -113,27 +103,16 @@ public class EntryGridAdapter extends SectionAdapter {
}
}
- public void setHeader(View header) {
- this.header = header;
- this.singleSectionHeader = true;
- }
- public View getHeader() {
- return header;
+ public void setShowArtist() {
+ this.showArtist = true;
}
- public void setShowArtist(boolean showArtist) {
- this.showArtist = showArtist;
- }
-
- public void setShowAlbum(boolean showAlbum) {
- this.showAlbum = showAlbum;
+ public void setShowAlbum() {
+ this.showAlbum = true;
}
public void removeAt(int index) {
sections.get(0).remove(index);
- if(header != null) {
- index++;
- }
notifyItemRemoved(index);
}
@@ -143,13 +122,13 @@ public class EntryGridAdapter extends SectionAdapter {
@Override
public void onCreateActionModeMenu(Menu menu, MenuInflater menuInflater) {
- if(Util.isOffline(context)) {
+ if (Util.isOffline(context)) {
menuInflater.inflate(R.menu.multiselect_media_offline, menu);
} else {
menuInflater.inflate(R.menu.multiselect_media, menu);
}
- if(!removeFromPlaylist) {
+ if (!removeFromPlaylist) {
menu.removeItem(R.id.menu_remove_playlist);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/EntryInfiniteGridAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/EntryInfiniteGridAdapter.java
index 5af5066..f05aace 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/EntryInfiniteGridAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/EntryInfiniteGridAdapter.java
@@ -20,8 +20,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import java.util.List;
-
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.domain.MusicDirectory;
import net.nullsum.audinaut.domain.MusicDirectory.Entry;
@@ -32,8 +30,10 @@ import net.nullsum.audinaut.util.ImageLoader;
import net.nullsum.audinaut.util.SilentBackgroundTask;
import net.nullsum.audinaut.view.UpdateView;
+import java.util.List;
+
public class EntryInfiniteGridAdapter extends EntryGridAdapter {
- public static int VIEW_TYPE_LOADING = 4;
+ public static final int VIEW_TYPE_LOADING = 4;
private String type;
private String extra;
@@ -48,10 +48,10 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
@Override
public UpdateView.UpdateViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- if(viewType == VIEW_TYPE_LOADING) {
+ if (viewType == VIEW_TYPE_LOADING) {
View progress = LayoutInflater.from(context).inflate(R.layout.tab_progress, null);
progress.setVisibility(View.VISIBLE);
- return new UpdateView.UpdateViewHolder(progress, false);
+ return new UpdateView.UpdateViewHolder(progress);
}
return super.onCreateViewHolder(parent, viewType);
@@ -59,7 +59,7 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
@Override
public int getItemViewType(int position) {
- if(isLoadingView(position)) {
+ if (isLoadingView(position)) {
return VIEW_TYPE_LOADING;
}
@@ -68,7 +68,7 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
@Override
public void onBindViewHolder(UpdateView.UpdateViewHolder holder, int position) {
- if(!isLoadingView(position)) {
+ if (!isLoadingView(position)) {
super.onBindViewHolder(holder, position);
}
}
@@ -77,7 +77,7 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
public int getItemCount() {
int size = super.getItemCount();
- if(!allLoaded) {
+ if (!allLoaded) {
size++;
}
@@ -89,13 +89,13 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
this.extra = extra;
this.size = size;
- if(super.getItemCount() < size) {
+ if (super.getItemCount() < size) {
allLoaded = true;
}
}
public void loadMore() {
- if(loading || allLoaded) {
+ if (loading || allLoaded) {
return;
}
loading = true;
@@ -114,7 +114,7 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
appendCachedData(newData);
loading = false;
- if(newData.size() < size) {
+ if (newData.size() < size) {
allLoaded = true;
notifyDataSetChanged();
}
@@ -122,15 +122,15 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
}.execute();
}
- protected List cacheInBackground() throws Exception {
+ private List cacheInBackground() throws Exception {
MusicService service = MusicServiceFactory.getMusicService(context);
MusicDirectory result;
int offset = sections.get(0).size();
- if("genres".equals(type) || "years".equals(type)) {
+ if ("genres".equals(type) || "years".equals(type)) {
result = service.getAlbumList(type, extra, size, offset, false, context, null);
- } else if("genres".equals(type) || "genres-songs".equals(type)) {
+ } else if ("genres".equals(type) || "genres-songs".equals(type)) {
result = service.getSongsByGenre(extra, size, offset, context, null);
- }else if(type.indexOf(MainFragment.SONGS_LIST_PREFIX) != -1) {
+ } else if (type.contains(MainFragment.SONGS_LIST_PREFIX)) {
result = service.getSongList(type, size, offset, context, null);
} else {
result = service.getAlbumList(type, size, offset, false, context, null);
@@ -138,15 +138,15 @@ public class EntryInfiniteGridAdapter extends EntryGridAdapter {
return result.getChildren();
}
- protected void appendCachedData(List newData) {
- if(newData.size() > 0) {
+ private void appendCachedData(List newData) {
+ if (newData.size() > 0) {
int start = sections.get(0).size();
sections.get(0).addAll(newData);
this.notifyItemRangeInserted(start, newData.size());
}
}
- protected boolean isLoadingView(int position) {
+ private boolean isLoadingView(int position) {
return !allLoaded && position >= sections.get(0).size();
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/ExpandableSectionAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/ExpandableSectionAdapter.java
index 7212496..0a8985c 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/ExpandableSectionAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/ExpandableSectionAdapter.java
@@ -16,51 +16,34 @@
package net.nullsum.audinaut.adapter;
import android.content.Context;
-import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.util.DrawableTint;
import net.nullsum.audinaut.view.BasicHeaderView;
import net.nullsum.audinaut.view.UpdateView;
-public abstract class ExpandableSectionAdapter extends SectionAdapter {
- private static final String TAG = ExpandableSectionAdapter.class.getSimpleName();
+import java.util.ArrayList;
+import java.util.List;
+
+abstract class ExpandableSectionAdapter extends SectionAdapter {
private static final int DEFAULT_VISIBLE = 4;
private static final int EXPAND_TOGGLE = R.attr.select_server;
private static final int COLLAPSE_TOGGLE = R.attr.select_tabs;
- protected List sectionsDefaultVisible;
- protected List> sectionsExtras;
- protected int expandToggleRes;
- protected int collapseToggleRes;
+ private List> sectionsExtras;
- protected ExpandableSectionAdapter() {}
- public ExpandableSectionAdapter(Context context, List section) {
- List> sections = new ArrayList<>();
- sections.add(section);
+ ExpandableSectionAdapter() {
+ }
- init(context, Arrays.asList("Section"), sections, Arrays.asList((Integer) null));
- }
- public ExpandableSectionAdapter(Context context, List headers, List> sections) {
- init(context, headers, sections, null);
- }
- public ExpandableSectionAdapter(Context context, List headers, List> sections, List sectionsDefaultVisible) {
- init(context, headers, sections, sectionsDefaultVisible);
- }
- protected void init(Context context, List headers, List> fullSections, List sectionsDefaultVisible) {
+ void init(Context context, List headers, List> fullSections, List sectionsDefaultVisible) {
this.context = context;
this.headers = headers;
- this.sectionsDefaultVisible = sectionsDefaultVisible;
- if(sectionsDefaultVisible == null) {
+ if (sectionsDefaultVisible == null) {
sectionsDefaultVisible = new ArrayList<>(fullSections.size());
- for(int i = 0; i < fullSections.size(); i++) {
+ for (int i = 0; i < fullSections.size(); i++) {
sectionsDefaultVisible.add(DEFAULT_VISIBLE);
}
}
@@ -68,11 +51,11 @@ public abstract class ExpandableSectionAdapter extends SectionAdapter {
this.sections = new ArrayList<>();
this.sectionsExtras = new ArrayList<>();
int i = 0;
- for(List fullSection: fullSections) {
+ for (List fullSection : fullSections) {
List visibleSection = new ArrayList<>();
Integer defaultVisible = sectionsDefaultVisible.get(i);
- if(defaultVisible == null || defaultVisible >= fullSection.size()) {
+ if (defaultVisible == null || defaultVisible >= fullSection.size()) {
visibleSection.addAll(fullSection);
this.sectionsExtras.add(null);
} else {
@@ -83,9 +66,6 @@ public abstract class ExpandableSectionAdapter extends SectionAdapter {
i++;
}
-
- expandToggleRes = DrawableTint.getDrawableRes(context, EXPAND_TOGGLE);
- collapseToggleRes = DrawableTint.getDrawableRes(context, COLLAPSE_TOGGLE);
}
@Override
@@ -96,39 +76,36 @@ public abstract class ExpandableSectionAdapter extends SectionAdapter {
@Override
public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String header, final int sectionIndex) {
UpdateView view = holder.getUpdateView();
- ImageView toggleSelectionView = (ImageView) view.findViewById(R.id.item_select);
+ ImageView toggleSelectionView = view.findViewById(R.id.item_select);
List visibleSelection = sections.get(sectionIndex);
List sectionExtras = sectionsExtras.get(sectionIndex);
- if(sectionExtras != null && !sectionExtras.isEmpty()) {
+ if (sectionExtras != null && !sectionExtras.isEmpty()) {
toggleSelectionView.setVisibility(View.VISIBLE);
- toggleSelectionView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- List visibleSelection = sections.get(sectionIndex);
- List sectionExtras = sectionsExtras.get(sectionIndex);
+ toggleSelectionView.setOnClickListener(v -> {
+ List visibleSelection1 = sections.get(sectionIndex);
+ List sectionExtras1 = sectionsExtras.get(sectionIndex);
- // Update icon
- int selectToggleAttr;
- if (!visibleSelection.contains(sectionExtras.get(0))) {
- selectToggleAttr = COLLAPSE_TOGGLE;
+ // Update icon
+ int selectToggleAttr;
+ if (!visibleSelection1.contains(sectionExtras1.get(0))) {
+ selectToggleAttr = COLLAPSE_TOGGLE;
- // Update how many are displayed
- int lastIndex = getItemPosition(visibleSelection.get(visibleSelection.size() - 1));
- visibleSelection.addAll(sectionExtras);
- notifyItemRangeInserted(lastIndex, sectionExtras.size());
- } else {
- selectToggleAttr = EXPAND_TOGGLE;
+ // Update how many are displayed
+ int lastIndex = getItemPosition(visibleSelection1.get(visibleSelection1.size() - 1));
+ visibleSelection1.addAll(sectionExtras1);
+ notifyItemRangeInserted(lastIndex, sectionExtras1.size());
+ } else {
+ selectToggleAttr = EXPAND_TOGGLE;
- // Update how many are displayed
- visibleSelection.removeAll(sectionExtras);
- int lastIndex = getItemPosition(visibleSelection.get(visibleSelection.size() - 1));
- notifyItemRangeRemoved(lastIndex, sectionExtras.size());
- }
-
- ((ImageView) v).setImageResource(DrawableTint.getDrawableRes(context, selectToggleAttr));
+ // Update how many are displayed
+ visibleSelection1.removeAll(sectionExtras1);
+ int lastIndex = getItemPosition(visibleSelection1.get(visibleSelection1.size() - 1));
+ notifyItemRangeRemoved(lastIndex, sectionExtras1.size());
}
+
+ ((ImageView) v).setImageResource(DrawableTint.getDrawableRes(context, selectToggleAttr));
});
int selectToggleAttr;
@@ -143,7 +120,7 @@ public abstract class ExpandableSectionAdapter extends SectionAdapter {
toggleSelectionView.setVisibility(View.GONE);
}
- if(view != null) {
+ if (view != null) {
view.setObject(header);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/GenreAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/GenreAdapter.java
index eb9fab0..b0ed006 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/GenreAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/GenreAdapter.java
@@ -16,7 +16,7 @@
package net.nullsum.audinaut.adapter;
import android.content.Context;
-import android.view.ViewGroup;
+
import net.nullsum.audinaut.domain.Genre;
import net.nullsum.audinaut.view.FastScroller;
import net.nullsum.audinaut.view.GenreView;
@@ -24,8 +24,8 @@ import net.nullsum.audinaut.view.UpdateView;
import java.util.List;
-public class GenreAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter{
- public static int VIEW_TYPE_GENRE = 1;
+public class GenreAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter {
+ private static final int VIEW_TYPE_GENRE = 1;
public GenreAdapter(Context context, List genres, OnItemClickedListener listener) {
super(context, genres);
@@ -33,7 +33,7 @@ public class GenreAdapter extends SectionAdapter implements FastScroller.
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
return new UpdateView.UpdateViewHolder(new GenreView(context));
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/MainAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/MainAdapter.java
index b44cdd4..00182ff 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/MainAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/MainAdapter.java
@@ -19,18 +19,16 @@ import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
-import android.widget.CompoundButton;
-
-import java.util.List;
import net.nullsum.audinaut.R;
-import net.nullsum.audinaut.util.Util;
import net.nullsum.audinaut.view.BasicHeaderView;
import net.nullsum.audinaut.view.BasicListView;
import net.nullsum.audinaut.view.UpdateView;
+import java.util.List;
+
public class MainAdapter extends SectionAdapter {
- public static final int VIEW_TYPE_ALBUM_LIST = 1;
+ private static final int VIEW_TYPE_ALBUM_LIST = 1;
public MainAdapter(Context context, List headers, List> sections, OnItemClickedListener onItemClickedListener) {
super(context, headers, sections);
@@ -38,7 +36,7 @@ public class MainAdapter extends SectionAdapter {
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
UpdateView updateView = new BasicListView(context);
return new UpdateView.UpdateViewHolder(updateView);
}
@@ -47,7 +45,7 @@ public class MainAdapter extends SectionAdapter {
public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Integer item, int viewType) {
UpdateView updateView = holder.getUpdateView();
- if(viewType == VIEW_TYPE_ALBUM_LIST) {
+ if (viewType == VIEW_TYPE_ALBUM_LIST) {
updateView.setObject(context.getResources().getString(item));
} else {
updateView.setObject(item);
@@ -63,13 +61,14 @@ public class MainAdapter extends SectionAdapter {
public UpdateView.UpdateViewHolder onCreateHeaderHolder(ViewGroup parent) {
return new UpdateView.UpdateViewHolder(new BasicHeaderView(context, R.layout.album_list_header));
}
+
@Override
public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String header, int sectionIndex) {
UpdateView view = holder.getUpdateView();
- CheckBox checkBox = (CheckBox) view.findViewById(R.id.item_checkbox);
+ CheckBox checkBox = view.findViewById(R.id.item_checkbox);
String display;
- if("songs".equals(header)) {
+ if ("songs".equals(header)) {
display = context.getResources().getString(R.string.search_songs);
checkBox.setVisibility(View.GONE);
} else {
@@ -77,7 +76,7 @@ public class MainAdapter extends SectionAdapter {
checkBox.setVisibility(View.GONE);
}
- if(view != null) {
+ if (view != null) {
view.setObject(display);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/PlaylistAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/PlaylistAdapter.java
index 94a48a4..7ad551f 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/PlaylistAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/PlaylistAdapter.java
@@ -16,20 +16,19 @@ package net.nullsum.audinaut.adapter;
import android.content.Context;
-import java.util.List;
-
-import android.view.ViewGroup;
import net.nullsum.audinaut.domain.Playlist;
import net.nullsum.audinaut.util.ImageLoader;
import net.nullsum.audinaut.view.FastScroller;
import net.nullsum.audinaut.view.PlaylistView;
import net.nullsum.audinaut.view.UpdateView;
-public class PlaylistAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter {
- public static int VIEW_TYPE_PLAYLIST = 1;
+import java.util.List;
- private ImageLoader imageLoader;
- private boolean largeCell;
+public class PlaylistAdapter extends SectionAdapter implements FastScroller.BubbleTextGetter {
+ private static final int VIEW_TYPE_PLAYLIST = 1;
+
+ private final ImageLoader imageLoader;
+ private final boolean largeCell;
public PlaylistAdapter(Context context, List playlists, ImageLoader imageLoader, boolean largeCell, OnItemClickedListener listener) {
super(context, playlists);
@@ -37,15 +36,9 @@ public class PlaylistAdapter extends SectionAdapter implements FastScr
this.largeCell = largeCell;
this.onItemClickedListener = listener;
}
- public PlaylistAdapter(Context context, List headers, List> sections, ImageLoader imageLoader, boolean largeCell, OnItemClickedListener listener) {
- super(context, headers, sections);
- this.imageLoader = imageLoader;
- this.largeCell = largeCell;
- this.onItemClickedListener = listener;
- }
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
return new UpdateView.UpdateViewHolder(new PlaylistView(context, imageLoader, largeCell));
}
@@ -63,7 +56,7 @@ public class PlaylistAdapter extends SectionAdapter implements FastScr
@Override
public String getTextToShowInBubble(int position) {
Object item = getItemForPosition(position);
- if(item instanceof Playlist) {
+ if (item instanceof Playlist) {
return getNameIndex(((Playlist) item).getName());
} else {
return null;
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/SearchAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/SearchAdapter.java
index b76ffa2..113b59d 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/SearchAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/SearchAdapter.java
@@ -19,38 +19,32 @@ import android.content.Context;
import android.content.res.Resources;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.domain.MusicDirectory.Entry;
import net.nullsum.audinaut.domain.SearchResult;
-import net.nullsum.audinaut.util.DrawableTint;
import net.nullsum.audinaut.util.ImageLoader;
import net.nullsum.audinaut.util.Util;
import net.nullsum.audinaut.view.AlbumView;
import net.nullsum.audinaut.view.ArtistView;
-import net.nullsum.audinaut.view.BasicHeaderView;
import net.nullsum.audinaut.view.SongView;
import net.nullsum.audinaut.view.UpdateView;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
import static net.nullsum.audinaut.adapter.ArtistAdapter.VIEW_TYPE_ARTIST;
import static net.nullsum.audinaut.adapter.EntryGridAdapter.VIEW_TYPE_ALBUM_CELL;
import static net.nullsum.audinaut.adapter.EntryGridAdapter.VIEW_TYPE_ALBUM_LINE;
import static net.nullsum.audinaut.adapter.EntryGridAdapter.VIEW_TYPE_SONG;
public class SearchAdapter extends ExpandableSectionAdapter {
- private ImageLoader imageLoader;
- private boolean largeAlbums;
-
private static final int MAX_ARTISTS = 10;
private static final int MAX_ALBUMS = 4;
private static final int MAX_SONGS = 10;
+ private final ImageLoader imageLoader;
+ private final boolean largeAlbums;
public SearchAdapter(Context context, SearchResult searchResult, ImageLoader imageLoader, boolean largeAlbums, OnItemClickedListener listener) {
this.imageLoader = imageLoader;
@@ -60,17 +54,17 @@ public class SearchAdapter extends ExpandableSectionAdapter {
List headers = new ArrayList<>();
List defaultVisible = new ArrayList<>();
Resources res = context.getResources();
- if(!searchResult.getArtists().isEmpty()) {
+ if (!searchResult.getArtists().isEmpty()) {
sections.add((List) (List>) searchResult.getArtists());
headers.add(res.getString(R.string.search_artists));
defaultVisible.add(MAX_ARTISTS);
}
- if(!searchResult.getAlbums().isEmpty()) {
+ if (!searchResult.getAlbums().isEmpty()) {
sections.add((List) (List>) searchResult.getAlbums());
headers.add(res.getString(R.string.search_albums));
defaultVisible.add(MAX_ALBUMS);
}
- if(!searchResult.getSongs().isEmpty()) {
+ if (!searchResult.getSongs().isEmpty()) {
sections.add((List) (List>) searchResult.getSongs());
headers.add(res.getString(R.string.search_songs));
defaultVisible.add(MAX_SONGS);
@@ -82,13 +76,13 @@ public class SearchAdapter extends ExpandableSectionAdapter {
}
@Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
+ public UpdateView.UpdateViewHolder onCreateSectionViewHolder(int viewType) {
UpdateView updateView = null;
- if(viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
+ if (viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
updateView = new AlbumView(context, viewType == VIEW_TYPE_ALBUM_CELL);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
updateView = new SongView(context);
- } else if(viewType == VIEW_TYPE_ARTIST) {
+ } else if (viewType == VIEW_TYPE_ARTIST) {
updateView = new ArtistView(context);
}
@@ -98,20 +92,20 @@ public class SearchAdapter extends ExpandableSectionAdapter {
@Override
public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Serializable item, int viewType) {
UpdateView view = holder.getUpdateView();
- if(viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
+ if (viewType == VIEW_TYPE_ALBUM_CELL || viewType == VIEW_TYPE_ALBUM_LINE) {
AlbumView albumView = (AlbumView) view;
albumView.setObject((Entry) item, imageLoader);
- } else if(viewType == VIEW_TYPE_SONG) {
+ } else if (viewType == VIEW_TYPE_SONG) {
SongView songView = (SongView) view;
songView.setObject((Entry) item, true);
- } else if(viewType == VIEW_TYPE_ARTIST) {
+ } else if (viewType == VIEW_TYPE_ARTIST) {
view.setObject(item);
}
}
@Override
public int getItemViewType(Serializable item) {
- if(item instanceof Entry) {
+ if (item instanceof Entry) {
Entry entry = (Entry) item;
if (entry.isDirectory()) {
if (largeAlbums) {
@@ -129,7 +123,7 @@ public class SearchAdapter extends ExpandableSectionAdapter {
@Override
public void onCreateActionModeMenu(Menu menu, MenuInflater menuInflater) {
- if(Util.isOffline(context)) {
+ if (Util.isOffline(context)) {
menuInflater.inflate(R.menu.multiselect_media_offline, menu);
} else {
menuInflater.inflate(R.menu.multiselect_media, menu);
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/SectionAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/SectionAdapter.java
index 1a310b1..6b97749 100644
--- a/app/src/main/java/net/nullsum/audinaut/adapter/SectionAdapter.java
+++ b/app/src/main/java/net/nullsum/audinaut/adapter/SectionAdapter.java
@@ -32,10 +32,6 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.PopupMenu;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
import net.nullsum.audinaut.R;
import net.nullsum.audinaut.activity.SubsonicFragmentActivity;
import net.nullsum.audinaut.util.Constants;
@@ -45,129 +41,103 @@ import net.nullsum.audinaut.view.BasicHeaderView;
import net.nullsum.audinaut.view.UpdateView;
import net.nullsum.audinaut.view.UpdateView.UpdateViewHolder;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
public abstract class SectionAdapter extends RecyclerView.Adapter> {
- private static String TAG = SectionAdapter.class.getSimpleName();
- public static int VIEW_TYPE_HEADER = 0;
- public static String[] ignoredArticles;
+ public static final int VIEW_TYPE_HEADER = 0;
+ private static final String TAG = SectionAdapter.class.getSimpleName();
+ private static String[] ignoredArticles;
+ private final List selected = new ArrayList<>();
+ private final List selectedViews = new ArrayList<>();
+ Context context;
+ List headers;
+ List> sections;
+ boolean singleSectionHeader;
+ OnItemClickedListener onItemClickedListener;
+ boolean checkable = false;
+ private ActionMode currentActionMode;
- protected Context context;
- protected List headers;
- protected List> sections;
- protected boolean singleSectionHeader;
- protected OnItemClickedListener onItemClickedListener;
- protected List selected = new ArrayList<>();
- protected List selectedViews = new ArrayList<>();
- protected ActionMode currentActionMode;
- protected boolean checkable = false;
-
- protected SectionAdapter() {}
- public SectionAdapter(Context context, List section) {
- this(context, section, false);
+ SectionAdapter() {
}
- public SectionAdapter(Context context, List section, boolean singleSectionHeader) {
+
+ SectionAdapter(Context context, List section) {
this.context = context;
- this.headers = Arrays.asList("Section");
+ this.headers = Collections.singletonList("Section");
this.sections = new ArrayList<>();
this.sections.add(section);
- this.singleSectionHeader = singleSectionHeader;
+ this.singleSectionHeader = false;
}
- public SectionAdapter(Context context, List headers, List> sections) {
- this(context, headers, sections, true);
- }
- public SectionAdapter(Context context, List headers, List> sections, boolean singleSectionHeader){
+
+ SectionAdapter(Context context, List headers, List> sections) {
this.context = context;
this.headers = headers;
this.sections = sections;
- this.singleSectionHeader = singleSectionHeader;
- }
-
- public void replaceExistingData(List section) {
- this.sections = new ArrayList<>();
- this.sections.add(section);
- notifyDataSetChanged();
- }
- public void replaceExistingData(List headers, List> sections) {
- this.headers = headers;
- this.sections = sections;
- notifyDataSetChanged();
+ this.singleSectionHeader = true;
}
@Override
public UpdateViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- if(viewType == VIEW_TYPE_HEADER) {
+ if (viewType == VIEW_TYPE_HEADER) {
return onCreateHeaderHolder(parent);
} else {
- final UpdateViewHolder holder = onCreateSectionViewHolder(parent, viewType);
+ final UpdateViewHolder holder = onCreateSectionViewHolder(viewType);
final UpdateView updateView = holder.getUpdateView();
- if(updateView != null) {
- updateView.getChildAt(0).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- T item = holder.getItem();
- updateView.onClick();
- if (currentActionMode != null) {
- if(updateView.isCheckable()) {
- if (selected.contains(item)) {
- selected.remove(item);
- selectedViews.remove(updateView);
- setChecked(updateView, false);
- } else {
- selected.add(item);
- selectedViews.add(updateView);
- setChecked(updateView, true);
- }
-
- if (selected.isEmpty()) {
- currentActionMode.finish();
- } else {
- currentActionMode.setTitle(context.getResources().getString(R.string.select_album_n_selected, selected.size()));
- }
+ if (updateView != null) {
+ updateView.getChildAt(0).setOnClickListener(v -> {
+ T item = holder.getItem();
+ if (currentActionMode != null) {
+ if (updateView.isCheckable()) {
+ if (selected.contains(item)) {
+ selected.remove(item);
+ selectedViews.remove(updateView);
+ setChecked(updateView, false);
+ } else {
+ selected.add(item);
+ selectedViews.add(updateView);
+ setChecked(updateView, true);
+ }
+
+ if (selected.isEmpty()) {
+ currentActionMode.finish();
+ } else {
+ currentActionMode.setTitle(context.getResources().getString(R.string.select_album_n_selected, selected.size()));
}
- } else if (onItemClickedListener != null) {
- onItemClickedListener.onItemClicked(updateView, item);
}
+ } else if (onItemClickedListener != null) {
+ onItemClickedListener.onItemClicked(updateView, item);
}
});
View moreButton = updateView.findViewById(R.id.item_more);
if (moreButton != null) {
- moreButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- final T item = holder.getItem();
- if (onItemClickedListener != null) {
- PopupMenu popup = new PopupMenu(context, v);
- onItemClickedListener.onCreateContextMenu(popup.getMenu(), popup.getMenuInflater(), updateView, item);
+ moreButton.setOnClickListener(v -> {
+ try {
+ final T item = holder.getItem();
+ if (onItemClickedListener != null) {
+ PopupMenu popup = new PopupMenu(context, v);
+ onItemClickedListener.onCreateContextMenu(popup.getMenu(), popup.getMenuInflater(), updateView, item);
- popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem menuItem) {
- return onItemClickedListener.onContextItemSelected(menuItem, updateView, item);
- }
- });
- popup.show();
- }
- } catch(Exception e) {
- Log.w(TAG, "Failed to show popup", e);
+ popup.setOnMenuItemClickListener(menuItem -> onItemClickedListener.onContextItemSelected(menuItem, updateView, item));
+ popup.show();
}
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to show popup", e);
}
});
- if(checkable) {
- updateView.getChildAt(0).setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- if(updateView.isCheckable()) {
- if (currentActionMode == null) {
- startActionMode(holder);
- } else {
- updateView.getChildAt(0).performClick();
- }
+ if (checkable) {
+ updateView.getChildAt(0).setOnLongClickListener(v -> {
+ if (updateView.isCheckable()) {
+ if (currentActionMode == null) {
+ startActionMode(holder);
+ } else {
+ updateView.getChildAt(0).performClick();
}
- return true;
}
+ return true;
});
}
}
@@ -181,7 +151,7 @@ public abstract class SectionAdapter extends RecyclerView.Adapter extends RecyclerView.Adapter section: sections) {
+ for (List section : sections) {
boolean validHeader = headers.get(subHeader) != null;
- if(position == subPosition && validHeader) {
+ if (position == subPosition && validHeader) {
onBindHeaderHolder(holder, headers.get(subHeader), subHeader);
return;
}
int headerOffset = validHeader ? 1 : 0;
- if(position < (subPosition + section.size() + headerOffset)) {
+ if (position < (subPosition + section.size() + headerOffset)) {
T item = section.get(position - subPosition - headerOffset);
onBindViewHolder(holder, item, getItemViewType(item));
@@ -209,7 +179,7 @@ public abstract class SectionAdapter extends RecyclerView.Adapter extends RecyclerView.Adapter extends RecyclerView.Adapter section: sections) {
+ for (List section : sections) {
count += section.size();
}
@@ -259,25 +229,25 @@ public abstract class SectionAdapter extends RecyclerView.Adapter section: sections) {
+ for (List section : sections) {
boolean validHeader = headers.get(subHeader) != null;
- if(position == subPosition && validHeader) {
+ if (position == subPosition && validHeader) {
return VIEW_TYPE_HEADER;
}
int headerOffset = validHeader ? 1 : 0;
- if(position < (subPosition + section.size() + headerOffset)) {
+ if (position < (subPosition + section.size() + headerOffset)) {
return getItemViewType(section.get(position - subPosition - headerOffset));
}
subPosition += section.size();
- if(validHeader) {
+ if (validHeader) {
subPosition += 1;
}
subHeader++;
@@ -286,28 +256,29 @@ public abstract class SectionAdapter extends RecyclerView.Adapter section: sections) {
- if(position == subPosition) {
+ for (List section : sections) {
+ if (position == subPosition) {
return null;
}
- if(position <= (subPosition + section.size())) {
+ if (position <= (subPosition + section.size())) {
return section.get(position - subPosition - 1);
}
@@ -316,17 +287,18 @@ public abstract class SectionAdapter extends RecyclerView.Adapter section: sections) {
+ for (List section : sections) {
subPosition += section.size() + 1;
int position = section.indexOf(item);
- if(position != -1) {
+ if (position != -1) {
return position + subPosition;
}
}
@@ -341,6 +313,7 @@ public abstract class SectionAdapter extends RecyclerView.Adapter getSelected() {
List selected = new ArrayList<>();
selected.addAll(this.selected);
@@ -348,17 +321,9 @@ public abstract class SectionAdapter extends RecyclerView.Adapter extends RecyclerView.Adapter section = sections.get(0);
int max = section.size();
- if(to >= max) {
+ if (to >= max) {
to = max - 1;
- } else if(to < 0) {
+ } else if (to < 0) {
to = 0;
}
@@ -377,10 +342,11 @@ public abstract class SectionAdapter extends RecyclerView.Adapter section: sections) {
- if(sections.size() > 1 || singleSectionHeader) {
+ for (List section : sections) {
+ if (sections.size() > 1 || singleSectionHeader) {
subPosition++;
}
@@ -395,16 +361,18 @@ public abstract class SectionAdapter extends RecyclerView.Adapter holder) {
final UpdateView updateView = holder.getUpdateView();
@@ -470,21 +438,23 @@ public abstract class SectionAdapter extends RecyclerView.Adapter extends RecyclerView.Adapter {
void onItemClicked(UpdateView updateView, T item);
+
void onCreateContextMenu(Menu menu, MenuInflater menuInflater, UpdateView updateView, T item);
+
boolean onContextItemSelected(MenuItem menuItem, UpdateView updateView, T item);
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/adapter/SettingsAdapter.java b/app/src/main/java/net/nullsum/audinaut/adapter/SettingsAdapter.java
deleted file mode 100644
index 4cf06cf..0000000
--- a/app/src/main/java/net/nullsum/audinaut/adapter/SettingsAdapter.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- This file is part of Subsonic.
- Subsonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- Subsonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with Subsonic. If not, see .
- Copyright 2014 (C) Scott Jackson
-*/
-
-package net.nullsum.audinaut.adapter;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.nullsum.audinaut.R;
-import net.nullsum.audinaut.domain.User;
-import net.nullsum.audinaut.util.ImageLoader;
-import net.nullsum.audinaut.util.UserUtil;
-import net.nullsum.audinaut.view.BasicHeaderView;
-import net.nullsum.audinaut.view.RecyclingImageView;
-import net.nullsum.audinaut.view.SettingView;
-import net.nullsum.audinaut.view.UpdateView;
-
-import static net.nullsum.audinaut.domain.User.Setting;
-
-public class SettingsAdapter extends SectionAdapter {
- private static final String TAG = SettingsAdapter.class.getSimpleName();
- public final int VIEW_TYPE_SETTING = 1;
- public final int VIEW_TYPE_SETTING_HEADER = 2;
-
- private final User user;
- private final boolean editable;
- private final ImageLoader imageLoader;
-
- public SettingsAdapter(Context context, User user, List headers, List> settingSections, ImageLoader imageLoader, boolean editable, OnItemClickedListener onItemClickedListener) {
- super(context, headers, settingSections, imageLoader != null);
- this.user = user;
- this.imageLoader = imageLoader;
- this.editable = editable;
- this.onItemClickedListener = onItemClickedListener;
-
- for(List settings: sections) {
- for (Setting setting : settings) {
- if (setting.getValue()) {
- addSelected(setting);
- }
- }
- }
- }
-
- @Override
- public int getItemViewType(int position) {
- int viewType = super.getItemViewType(position);
- if(viewType == SectionAdapter.VIEW_TYPE_HEADER) {
- if(position == 0 && imageLoader != null) {
- return VIEW_TYPE_HEADER;
- } else {
- return VIEW_TYPE_SETTING_HEADER;
- }
- } else {
- return viewType;
- }
- }
-
- public void onBindHeaderHolder(UpdateView.UpdateViewHolder holder, String description, int sectionIndex) {
- View header = holder.getView();
- }
-
- @Override
- public UpdateView.UpdateViewHolder onCreateSectionViewHolder(ViewGroup parent, int viewType) {
- if(viewType == VIEW_TYPE_SETTING_HEADER) {
- return new UpdateView.UpdateViewHolder(new BasicHeaderView(context));
- } else {
- return new UpdateView.UpdateViewHolder(new SettingView(context));
- }
- }
-
- @Override
- public void onBindViewHolder(UpdateView.UpdateViewHolder holder, Setting item, int viewType) {
- holder.getUpdateView().setObject(item, editable);
- }
-
- @Override
- public int getItemViewType(Setting item) {
- return VIEW_TYPE_SETTING;
- }
-
- @Override
- public void setChecked(UpdateView updateView, boolean checked) {
- if(updateView instanceof SettingView) {
- updateView.setChecked(checked);
- }
- }
-
- public static SettingsAdapter getSettingsAdapter(Context context, User user, ImageLoader imageLoader, OnItemClickedListener onItemClickedListener) {
- return getSettingsAdapter(context, user, imageLoader, true, onItemClickedListener);
- }
- public static SettingsAdapter getSettingsAdapter(Context context, User user, ImageLoader imageLoader, boolean isEditable, OnItemClickedListener onItemClickedListener) {
- List headers = new ArrayList<>();
- List> settingsSections = new ArrayList<>();
- settingsSections.add(user.getSettings());
-
- if(user.getMusicFolderSettings() != null) {
- settingsSections.add(user.getMusicFolderSettings());
- }
-
- return new SettingsAdapter(context, user, headers, settingsSections, imageLoader, isEditable, onItemClickedListener);
- }
-}
diff --git a/app/src/main/java/net/nullsum/audinaut/audiofx/AudioEffectsController.java b/app/src/main/java/net/nullsum/audinaut/audiofx/AudioEffectsController.java
index 6549538..d9505f2 100644
--- a/app/src/main/java/net/nullsum/audinaut/audiofx/AudioEffectsController.java
+++ b/app/src/main/java/net/nullsum/audinaut/audiofx/AudioEffectsController.java
@@ -19,14 +19,8 @@
package net.nullsum.audinaut.audiofx;
import android.content.Context;
-import android.media.MediaPlayer;
-import android.media.audiofx.AudioEffect;
-import android.media.audiofx.LoudnessEnhancer;
-import android.os.Build;
-import android.util.Log;
public class AudioEffectsController {
- private static final String TAG = AudioEffectsController.class.getSimpleName();
private final Context context;
private int audioSessionId = 0;
@@ -39,7 +33,7 @@ public class AudioEffectsController {
}
public void release() {
- if(equalizerController != null) {
+ if (equalizerController != null) {
equalizerController.release();
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/audiofx/EqualizerController.java b/app/src/main/java/net/nullsum/audinaut/audiofx/EqualizerController.java
index 1b2b3be..1801647 100644
--- a/app/src/main/java/net/nullsum/audinaut/audiofx/EqualizerController.java
+++ b/app/src/main/java/net/nullsum/audinaut/audiofx/EqualizerController.java
@@ -18,14 +18,15 @@
*/
package net.nullsum.audinaut.audiofx;
-import java.io.Serializable;
-
import android.content.Context;
import android.media.audiofx.BassBoost;
import android.media.audiofx.Equalizer;
import android.util.Log;
+
import net.nullsum.audinaut.util.FileUtil;
+import java.io.Serializable;
+
/**
* Backward-compatible wrapper for {@link Equalizer}, which is API Level 9.
*
@@ -54,7 +55,7 @@ public class EqualizerController {
equalizer = new Equalizer(0, audioSessionId);
bass = new BassBoost(0, audioSessionId);
loudnessAvailable = true;
- loudnessEnhancerController = new LoudnessEnhancerController(context, audioSessionId);
+ loudnessEnhancerController = new LoudnessEnhancerController(audioSessionId);
}
public void saveSettings() {
@@ -80,14 +81,14 @@ public class EqualizerController {
}
}
- public boolean isAvailable() {
+ private boolean isAvailable() {
return equalizer != null && bass != null;
}
public boolean isEnabled() {
try {
return isAvailable() && equalizer.getEnabled();
- } catch(Exception e) {
+ } catch (Exception e) {
return false;
}
}
@@ -97,14 +98,14 @@ public class EqualizerController {
released = true;
equalizer.release();
bass.release();
- if(loudnessEnhancerController != null && loudnessEnhancerController.isAvailable()) {
+ if (loudnessEnhancerController != null && loudnessEnhancerController.isAvailable()) {
loudnessEnhancerController.release();
}
}
}
public Equalizer getEqualizer() {
- if(released) {
+ if (released) {
released = false;
try {
init();
@@ -116,8 +117,9 @@ public class EqualizerController {
}
return equalizer;
}
+
public BassBoost getBassBoost() {
- if(released) {
+ if (released) {
released = false;
try {
init();
@@ -128,8 +130,9 @@ public class EqualizerController {
}
return bass;
}
+
public LoudnessEnhancerController getLoudnessEnhancerController() {
- if(loudnessAvailable && released) {
+ if (loudnessAvailable && released) {
released = false;
try {
init();
@@ -144,7 +147,6 @@ public class EqualizerController {
private static class EqualizerSettings implements Serializable {
private short[] bandLevels;
- private short preset;
private boolean enabled;
private short bass;
private int loudness;
@@ -152,26 +154,22 @@ public class EqualizerController {
public EqualizerSettings() {
}
+
public EqualizerSettings(Equalizer equalizer, BassBoost boost, LoudnessEnhancerController loudnessEnhancerController) {
enabled = equalizer.getEnabled();
bandLevels = new short[equalizer.getNumberOfBands()];
for (short i = 0; i < equalizer.getNumberOfBands(); i++) {
bandLevels[i] = equalizer.getBandLevel(i);
}
- try {
- preset = equalizer.getCurrentPreset();
- } catch (Exception x) {
- preset = -1;
- }
try {
bass = boost.getRoundedStrength();
- } catch(Exception e) {
+ } catch (Exception e) {
bass = 0;
}
try {
loudness = (int) loudnessEnhancerController.getGain();
- } catch(Exception e) {
+ } catch (Exception e) {
loudness = 0;
}
}
@@ -181,11 +179,11 @@ public class EqualizerController {
equalizer.setBandLevel(i, bandLevels[i]);
}
equalizer.setEnabled(enabled);
- if(bass != 0) {
+ if (bass != 0) {
boost.setEnabled(true);
boost.setStrength(bass);
}
- if(loudness != 0) {
+ if (loudness != 0) {
loudnessController.enable();
loudnessController.setGain(loudness);
}
diff --git a/app/src/main/java/net/nullsum/audinaut/audiofx/LoudnessEnhancerController.java b/app/src/main/java/net/nullsum/audinaut/audiofx/LoudnessEnhancerController.java
index 3e67334..2e433e6 100644
--- a/app/src/main/java/net/nullsum/audinaut/audiofx/LoudnessEnhancerController.java
+++ b/app/src/main/java/net/nullsum/audinaut/audiofx/LoudnessEnhancerController.java
@@ -18,22 +18,16 @@
*/
package net.nullsum.audinaut.audiofx;
-import android.content.Context;
import android.media.audiofx.LoudnessEnhancer;
import android.util.Log;
public class LoudnessEnhancerController {
private static final String TAG = LoudnessEnhancerController.class.getSimpleName();
- private final Context context;
private LoudnessEnhancer enhancer;
- private boolean released = false;
- private int audioSessionId = 0;
- public LoudnessEnhancerController(Context context, int audioSessionId) {
- this.context = context;
+ public LoudnessEnhancerController(int audioSessionId) {
try {
- this.audioSessionId = audioSessionId;
enhancer = new LoudnessEnhancer(audioSessionId);
} catch (Throwable x) {
Log.w(TAG, "Failed to create enhancer", x);
@@ -47,7 +41,7 @@ public class LoudnessEnhancerController {
public boolean isEnabled() {
try {
return isAvailable() && enhancer.getEnabled();
- } catch(Exception e) {
+ } catch (Exception e) {
return false;
}
}
@@ -55,6 +49,7 @@ public class LoudnessEnhancerController {
public void enable() {
enhancer.setEnabled(true);
}
+
public void disable() {
enhancer.setEnabled(false);
}
@@ -62,6 +57,7 @@ public class LoudnessEnhancerController {
public float getGain() {
return enhancer.getTargetGain();
}
+
public void setGain(int gain) {
enhancer.setTargetGain(gain);
}
@@ -69,7 +65,6 @@ public class LoudnessEnhancerController {
public void release() {
if (isAvailable()) {
enhancer.release();
- released = true;
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/MusicDirectory.java b/app/src/main/java/net/nullsum/audinaut/domain/MusicDirectory.java
index 61d9512..caa9fe0 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/MusicDirectory.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/MusicDirectory.java
@@ -19,26 +19,25 @@
package net.nullsum.audinaut.domain;
import android.content.Context;
-import android.content.SharedPreferences;
import android.media.MediaMetadataRetriever;
-import android.os.Build;
import android.util.Log;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.io.File;
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Locale;
-
import net.nullsum.audinaut.service.DownloadService;
import net.nullsum.audinaut.util.Constants;
import net.nullsum.audinaut.util.UpdateHelper;
import net.nullsum.audinaut.util.Util;
+import java.io.File;
+import java.io.Serializable;
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+
/**
* @author Sindre Mehus
*/
@@ -51,8 +50,9 @@ public class MusicDirectory implements Serializable {
private List children;
public MusicDirectory() {
- children = new ArrayList();
+ children = new ArrayList<>();
}
+
public MusicDirectory(List children) {
this.children = children;
}
@@ -65,7 +65,7 @@ public class MusicDirectory implements Serializable {
this.name = name;
}
- public String getId() {
+ public String getId() {
return id;
}
@@ -82,10 +82,11 @@ public class MusicDirectory implements Serializable {
}
public void addChild(Entry child) {
- if(child != null) {
+ if (child != null) {
children.add(child);
}
}
+
public void addChildren(List children) {
this.children.addAll(children);
}
@@ -103,7 +104,7 @@ public class MusicDirectory implements Serializable {
return children;
}
- List result = new ArrayList(children.size());
+ List result = new ArrayList<>(children.size());
for (Entry child : children) {
if (child != null && child.isDirectory() && includeDirs || !child.isDirectory() && includeFiles) {
result.add(child);
@@ -111,8 +112,9 @@ public class MusicDirectory implements Serializable {
}
return result;
}
+
public synchronized List getSongs() {
- List result = new ArrayList();
+ List result = new ArrayList<>();
for (Entry child : children) {
if (child != null && !child.isDirectory()) {
result.add(child);
@@ -125,24 +127,19 @@ public class MusicDirectory implements Serializable {
return children.size();
}
- public void shuffleChildren() {
- Collections.shuffle(this.children);
- }
-
- public void sortChildren(Context context, int instance) {
+ public void sortChildren(Context context) {
sortChildren(Util.getPreferences(context).getBoolean(Constants.PREFERENCES_KEY_CUSTOM_SORT_ENABLED, true));
}
+
public void sortChildren(boolean byYear) {
EntryComparator.sort(children, byYear);
}
public synchronized boolean updateMetadata(MusicDirectory refreshedDirectory) {
boolean metadataUpdated = false;
- Iterator it = children.iterator();
- while(it.hasNext()) {
- Entry entry = it.next();
+ for (Entry entry : children) {
int index = refreshedDirectory.children.indexOf(entry);
- if(index != -1) {
+ if (index != -1) {
final Entry refreshed = refreshedDirectory.children.get(index);
entry.setTitle(refreshed.getTitle());
@@ -155,7 +152,7 @@ public class MusicDirectory implements Serializable {
entry.setTranscodedSuffix(refreshed.getTranscodedSuffix());
entry.setDiscNumber(refreshed.getDiscNumber());
entry.setType(refreshed.getType());
- if(!Util.equals(entry.getCoverArt(), refreshed.getCoverArt())) {
+ if (!Util.equals(entry.getCoverArt(), refreshed.getCoverArt())) {
metadataUpdated = true;
entry.setCoverArt(refreshed.getCoverArt());
}
@@ -173,7 +170,7 @@ public class MusicDirectory implements Serializable {
found.setTranscodedSuffix(refreshed.getTranscodedSuffix());
found.setDiscNumber(refreshed.getDiscNumber());
found.setType(refreshed.getType());
- if(!Util.equals(found.getCoverArt(), refreshed.getCoverArt())) {
+ if (!Util.equals(found.getCoverArt(), refreshed.getCoverArt())) {
found.setCoverArt(refreshed.getCoverArt());
metadataUpdate = DownloadService.METADATA_UPDATED_COVER_ART;
}
@@ -184,13 +181,14 @@ public class MusicDirectory implements Serializable {
return metadataUpdated;
}
- public synchronized boolean updateEntriesList(Context context, int instance, MusicDirectory refreshedDirectory) {
+
+ public synchronized boolean updateEntriesList(Context context, MusicDirectory refreshedDirectory) {
boolean changed = false;
Iterator it = children.iterator();
- while(it.hasNext()) {
+ while (it.hasNext()) {
Entry entry = it.next();
// No longer exists in here
- if(refreshedDirectory.children.indexOf(entry) == -1) {
+ if (refreshedDirectory.children.indexOf(entry) == -1) {
it.remove();
changed = true;
}
@@ -198,16 +196,16 @@ public class MusicDirectory implements Serializable {
// Make sure we contain all children from refreshed set
boolean resort = false;
- for(Entry refreshed: refreshedDirectory.children) {
- if(!this.children.contains(refreshed)) {
+ for (Entry refreshed : refreshedDirectory.children) {
+ if (!this.children.contains(refreshed)) {
this.children.add(refreshed);
resort = true;
changed = true;
}
}
- if(resort) {
- this.sortChildren(context, instance);
+ if (resort) {
+ this.sortChildren(context);
}
return changed;
@@ -218,7 +216,6 @@ public class MusicDirectory implements Serializable {
private String id;
private String parent;
- private String grandParent;
private String albumId;
private String artistId;
private boolean directory;
@@ -233,26 +230,25 @@ public class MusicDirectory implements Serializable {
private String transcodedContentType;
private String transcodedSuffix;
private String coverArt;
- private Long size;
private Integer duration;
private Integer bitRate;
private String path;
private Integer discNumber;
private int type = 0;
private int closeness;
- private transient Artist linkedArtist;
public Entry() {
}
+
public Entry(String id) {
this.id = id;
}
+
public Entry(Artist artist) {
this.id = artist.getId();
this.title = artist.getName();
this.directory = true;
- this.linkedArtist = artist;
}
public void loadMetadata(File file) {
@@ -260,16 +256,16 @@ public class MusicDirectory implements Serializable {
MediaMetadataRetriever metadata = new MediaMetadataRetriever();
metadata.setDataSource(file.getAbsolutePath());
String discNumber = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER);
- if(discNumber == null) {
+ if (discNumber == null) {
discNumber = "1/1";
}
int slashIndex = discNumber.indexOf("/");
- if(slashIndex > 0) {
+ if (slashIndex > 0) {
discNumber = discNumber.substring(0, slashIndex);
}
try {
setDiscNumber(Integer.parseInt(discNumber));
- } catch(Exception e) {
+ } catch (Exception e) {
Log.w(TAG, "Non numbers in disc field!");
}
String bitrate = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE);
@@ -277,22 +273,23 @@ public class MusicDirectory implements Serializable {
String length = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
setDuration(Integer.parseInt(length) / 1000);
String artist = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
- if(artist != null) {
+ if (artist != null) {
setArtist(artist);
}
String album = metadata.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
- if(album != null) {
+ if (album != null) {
setAlbum(album);
}
metadata.release();
- } catch(Exception e) {
+ } catch (Exception e) {
Log.i(TAG, "Device doesn't properly support MediaMetadataRetreiver", e);
}
}
+
public void rebaseTitleOffPath() {
try {
String filename = getPath();
- if(filename == null) {
+ if (filename == null) {
return;
}
@@ -304,13 +301,13 @@ public class MusicDirectory implements Serializable {
}
index = filename.lastIndexOf('.');
- if(index != -1) {
+ if (index != -1) {
filename = filename.substring(0, index);
}
setTitle(filename);
}
- } catch(Exception e) {
+ } catch (Exception e) {
Log.w(TAG, "Failed to update title based off of path", e);
}
}
@@ -331,14 +328,6 @@ public class MusicDirectory implements Serializable {
this.parent = parent;
}
- public String getGrandParent() {
- return grandParent;
- }
-
- public void setGrandParent(String grandParent) {
- this.grandParent = grandParent;
- }
-
public String getAlbumId() {
return albumId;
}
@@ -379,18 +368,18 @@ public class MusicDirectory implements Serializable {
return getParent() != null || getArtist() != null;
}
+ public void setAlbum(String album) {
+ this.album = album;
+ }
+
public String getAlbumDisplay() {
- if(album != null && title.startsWith("Disc ")) {
+ if (album != null && title.startsWith("Disc ")) {
return album;
} else {
return title;
}
}
- public void setAlbum(String album) {
- this.album = album;
- }
-
public String getArtist() {
return artist;
}
@@ -455,14 +444,6 @@ public class MusicDirectory implements Serializable {
this.transcodedSuffix = transcodedSuffix;
}
- public Long getSize() {
- return size;
- }
-
- public void setSize(Long size) {
- this.size = size;
- }
-
public Integer getDuration() {
return duration;
}
@@ -506,9 +487,11 @@ public class MusicDirectory implements Serializable {
public int getType() {
return type;
}
+
public void setType(int type) {
this.type = type;
}
+
public boolean isSong() {
return type == TYPE_SONG;
}
@@ -521,18 +504,6 @@ public class MusicDirectory implements Serializable {
this.closeness = closeness;
}
- public boolean isOnlineId(Context context) {
- try {
- String cacheLocation = Util.getPreferences(context).getString(Constants.PREFERENCES_KEY_CACHE_LOCATION, null);
- return cacheLocation == null || id == null || id.indexOf(cacheLocation) == -1;
- } catch(Exception e) {
- Log.w(TAG, "Failed to check online id validity");
-
- // Err on the side of default functionality
- return true;
- }
- }
-
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -558,8 +529,8 @@ public class MusicDirectory implements Serializable {
}
public static class EntryComparator implements Comparator {
- private boolean byYear;
- private Collator collator;
+ private final boolean byYear;
+ private final Collator collator;
public EntryComparator(boolean byYear) {
this.byYear = byYear;
@@ -567,20 +538,28 @@ public class MusicDirectory implements Serializable {
this.collator.setStrength(Collator.PRIMARY);
}
+ public static void sort(List entries, boolean byYear) {
+ try {
+ Collections.sort(entries, new EntryComparator(byYear));
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to sort MusicDirectory");
+ }
+ }
+
public int compare(Entry lhs, Entry rhs) {
- if(lhs.isDirectory() && !rhs.isDirectory()) {
+ if (lhs.isDirectory() && !rhs.isDirectory()) {
return -1;
- } else if(!lhs.isDirectory() && rhs.isDirectory()) {
+ } else if (!lhs.isDirectory() && rhs.isDirectory()) {
return 1;
- } else if(lhs.isDirectory() && rhs.isDirectory()) {
- if(byYear) {
+ } else if (lhs.isDirectory() && rhs.isDirectory()) {
+ if (byYear) {
Integer lhsYear = lhs.getYear();
Integer rhsYear = rhs.getYear();
- if(lhsYear != null && rhsYear != null) {
+ if (lhsYear != null && rhsYear != null) {
return lhsYear.compareTo(rhsYear);
- } else if(lhsYear != null) {
+ } else if (lhsYear != null) {
return -1;
- } else if(rhsYear != null) {
+ } else if (rhsYear != null) {
return 1;
}
}
@@ -591,36 +570,25 @@ public class MusicDirectory implements Serializable {
Integer lhsDisc = lhs.getDiscNumber();
Integer rhsDisc = rhs.getDiscNumber();
- if(lhsDisc != null && rhsDisc != null) {
- if(lhsDisc < rhsDisc) {
+ if (lhsDisc != null && rhsDisc != null) {
+ if (lhsDisc < rhsDisc) {
return -1;
- } else if(lhsDisc > rhsDisc) {
+ } else if (lhsDisc > rhsDisc) {
return 1;
}
}
Integer lhsTrack = lhs.getTrack();
Integer rhsTrack = rhs.getTrack();
- if(lhsTrack != null && rhsTrack != null && lhsTrack != rhsTrack) {
+ if (lhsTrack != null && rhsTrack != null && !Objects.equals(lhsTrack, rhsTrack)) {
return lhsTrack.compareTo(rhsTrack);
- } else if(lhsTrack != null) {
+ } else if (lhsTrack != null) {
return -1;
- } else if(rhsTrack != null) {
+ } else if (rhsTrack != null) {
return 1;
}
return collator.compare(lhs.getTitle(), rhs.getTitle());
}
-
- public static void sort(List entries) {
- sort(entries, true);
- }
- public static void sort(List entries, boolean byYear) {
- try {
- Collections.sort(entries, new EntryComparator(byYear));
- } catch (Exception e) {
- Log.w(TAG, "Failed to sort MusicDirectory");
- }
- }
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/MusicFolder.java b/app/src/main/java/net/nullsum/audinaut/domain/MusicFolder.java
index 0524b6e..83453b5 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/MusicFolder.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/MusicFolder.java
@@ -35,16 +35,24 @@ public class MusicFolder implements Serializable {
private static final String TAG = MusicFolder.class.getSimpleName();
private String id;
private String name;
- private boolean enabled;
public MusicFolder() {
}
+
public MusicFolder(String id, String name) {
this.id = id;
this.name = name;
}
+ public static void sort(List musicFolders) {
+ try {
+ Collections.sort(musicFolders, new MusicFolderComparator());
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to sort music folders", e);
+ }
+ }
+
public String getId() {
return id;
}
@@ -53,28 +61,13 @@ public class MusicFolder implements Serializable {
return name;
}
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
- public boolean getEnabled() {
- return enabled;
- }
-
public static class MusicFolderComparator implements Comparator {
public int compare(MusicFolder lhsMusicFolder, MusicFolder rhsMusicFolder) {
- if(lhsMusicFolder == rhsMusicFolder || lhsMusicFolder.getName().equals(rhsMusicFolder.getName())) {
+ if (lhsMusicFolder == rhsMusicFolder || lhsMusicFolder.getName().equals(rhsMusicFolder.getName())) {
return 0;
} else {
return lhsMusicFolder.getName().compareToIgnoreCase(rhsMusicFolder.getName());
}
}
}
-
- public static void sort(List musicFolders) {
- try {
- Collections.sort(musicFolders, new MusicFolderComparator());
- } catch (Exception e) {
- Log.w(TAG, "Failed to sort music folders", e);
- }
- }
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/PlayerQueue.java b/app/src/main/java/net/nullsum/audinaut/domain/PlayerQueue.java
index 827f27b..42e98f4 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/PlayerQueue.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/PlayerQueue.java
@@ -17,14 +17,12 @@ package net.nullsum.audinaut.domain;
import java.io.Serializable;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
public class PlayerQueue implements Serializable {
- public List songs = new ArrayList();
- public List toDelete = new ArrayList();
+ public final List songs = new ArrayList<>();
+ public final List toDelete = new ArrayList<>();
public int currentPlayingIndex;
public int currentPlayingPosition;
public boolean renameCurrent = false;
- public Date changed = null;
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/Playlist.java b/app/src/main/java/net/nullsum/audinaut/domain/Playlist.java
index 86708dd..c3b1380 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/Playlist.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/Playlist.java
@@ -45,10 +45,12 @@ public class Playlist implements Serializable {
public Playlist() {
}
+
public Playlist(String id, String name) {
this.id = id;
this.name = name;
}
+
public Playlist(String id, String name, String owner, String comment, String songCount, String pub, String created, String changed, Integer duration) {
this.id = id;
this.name = name;
@@ -65,10 +67,6 @@ public class Playlist implements Serializable {
return id;
}
- public void setId(String id) {
- this.id = id;
- }
-
public String getName() {
return name;
}
@@ -81,10 +79,6 @@ public class Playlist implements Serializable {
return this.owner;
}
- public void setOwner(String owner) {
- this.owner = owner;
- }
-
public String getComment() {
return this.comment;
}
@@ -104,6 +98,7 @@ public class Playlist implements Serializable {
public Boolean getPublic() {
return this.pub;
}
+
public void setPublic(Boolean pub) {
this.pub = pub;
}
@@ -112,7 +107,7 @@ public class Playlist implements Serializable {
return created;
}
- public void setCreated(String created) {
+ private void setCreated(String created) {
if (created != null) {
try {
this.created = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).parse(created);
@@ -123,14 +118,12 @@ public class Playlist implements Serializable {
this.created = null;
}
}
- public void setCreated(Date created) {
- this.created = created;
- }
public Date getChanged() {
return changed;
}
- public void setChanged(String changed) {
+
+ private void setChanged(String changed) {
if (changed != null) {
try {
this.changed = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH).parse(changed);
@@ -141,16 +134,10 @@ public class Playlist implements Serializable {
this.changed = null;
}
}
- public void setChanged(Date changed) {
- this.changed = changed;
- }
public Integer getDuration() {
return duration;
}
- public void setDuration(Integer duration) {
- this.duration = duration;
- }
@Override
public String toString() {
@@ -159,13 +146,13 @@ public class Playlist implements Serializable {
@Override
public boolean equals(Object o) {
- if(o == this) {
+ if (o == this) {
return true;
- } else if(o == null) {
+ } else if (o == null) {
return false;
- } else if(o instanceof String) {
+ } else if (o instanceof String) {
return o.equals(this.id);
- } else if(o.getClass() != getClass()) {
+ } else if (o.getClass() != getClass()) {
return false;
}
@@ -174,14 +161,14 @@ public class Playlist implements Serializable {
}
public static class PlaylistComparator implements Comparator {
- @Override
- public int compare(Playlist playlist1, Playlist playlist2) {
- return playlist1.getName().compareToIgnoreCase(playlist2.getName());
- }
-
public static List sort(List playlists) {
Collections.sort(playlists, new PlaylistComparator());
return playlists;
}
+
+ @Override
+ public int compare(Playlist playlist1, Playlist playlist2) {
+ return playlist1.getName().compareToIgnoreCase(playlist2.getName());
+ }
}
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/SearchCritera.java b/app/src/main/java/net/nullsum/audinaut/domain/SearchCritera.java
index beacdb3..e065587 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/SearchCritera.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/SearchCritera.java
@@ -68,24 +68,24 @@ public class SearchCritera {
// * Replace spaces and wildcard '*' characters with ".*"
// * All other characters are properly quoted
if (this.pattern == null) {
- String regex = ".*";
- String currentPart = "";
+ StringBuilder regex = new StringBuilder(".*");
+ StringBuilder currentPart = new StringBuilder();
for (int i = 0; i < query.length(); i++) {
char c = query.charAt(i);
if (c == '*' || c == ' ') {
- regex += Pattern.quote(currentPart);
- regex += ".*";
- currentPart = "";
+ regex.append(Pattern.quote(currentPart.toString()));
+ regex.append(".*");
+ currentPart = new StringBuilder();
} else {
- currentPart += c;
+ currentPart.append(c);
}
}
if (currentPart.length() > 0) {
- regex += Pattern.quote(currentPart);
+ regex.append(Pattern.quote(currentPart.toString()));
}
- regex += ".*";
- this.pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
+ regex.append(".*");
+ this.pattern = Pattern.compile(regex.toString(), Pattern.CASE_INSENSITIVE);
}
return this.pattern;
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/SearchResult.java b/app/src/main/java/net/nullsum/audinaut/domain/SearchResult.java
index 18835f6..c98b8c0 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/SearchResult.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/SearchResult.java
@@ -50,13 +50,4 @@ public class SearchResult implements Serializable {
return songs;
}
- public boolean hasArtists() {
- return !artists.isEmpty();
- }
- public boolean hasAlbums() {
- return !albums.isEmpty();
- }
- public boolean hasSongs() {
- return !songs.isEmpty();
- }
}
diff --git a/app/src/main/java/net/nullsum/audinaut/domain/User.java b/app/src/main/java/net/nullsum/audinaut/domain/User.java
index cf0b15c..cabbf95 100644
--- a/app/src/main/java/net/nullsum/audinaut/domain/User.java
+++ b/app/src/main/java/net/nullsum/audinaut/domain/User.java
@@ -15,21 +15,19 @@
package net.nullsum.audinaut.domain;
-import android.util.Pair;
-
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class User implements Serializable {
- public static final String ADMIN = "adminRole";
- public static final String SETTINGS = "settingsRole";
- public static final String DOWNLOAD = "downloadRole";
- public static final String UPLOAD = "uploadRole";
- public static final String COVERART = "coverArtRole";
- public static final String COMMENT = "commentRole";
- public static final String STREAM = "streamRole";
public static final List ROLES = new ArrayList<>();
+ private static final String ADMIN = "adminRole";
+ private static final String SETTINGS = "settingsRole";
+ private static final String DOWNLOAD = "downloadRole";
+ private static final String UPLOAD = "uploadRole";
+ private static final String COVERART = "coverArtRole";
+ private static final String COMMENT = "commentRole";
+ private static final String STREAM = "streamRole";
static {
ROLES.add(ADMIN);
@@ -41,66 +39,25 @@ public class User implements Serializable {
ROLES.add(COMMENT);
}
- private String username;
- private String password;
- private String email;
-
- private List settings = new ArrayList();
+ private final List settings = new ArrayList<>();
private List musicFolders;
public User() {
}
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public List getSettings() {
- return settings;
- }
- public void setSettings(List settings) {
- this.settings.clear();
- this.settings.addAll(settings);
- }
public void addSetting(String name, Boolean value) {
settings.add(new Setting(name, value));
}
public void addMusicFolder(MusicFolder musicFolder) {
- if(musicFolders == null) {
+ if (musicFolders == null) {
musicFolders = new ArrayList<>();
}
- musicFolders.add(new MusicFolderSetting(musicFolder.getId(), musicFolder.getName(), false));
+ musicFolders.add(new MusicFolderSetting(musicFolder.getId(), musicFolder.getName()));
}
- public void addMusicFolder(MusicFolderSetting musicFolderSetting, boolean defaultValue) {
- if(musicFolders == null) {
- musicFolders = new ArrayList<>();
- }
- musicFolders.add(new MusicFolderSetting(musicFolderSetting.getName(), musicFolderSetting.getLabel(), defaultValue));
- }
public List getMusicFolderSettings() {
return musicFolders;
}
@@ -112,6 +69,7 @@ public class User implements Serializable {
public Setting() {
}
+
public Setting(String name, Boolean value) {
this.name = name;
this.value = value;
@@ -120,22 +78,21 @@ public class User implements Serializable {
public String getName() {
return name;
}
+
public Boolean getValue() {
return value;
}
+
public void setValue(Boolean value) {
this.value = value;
}
}
public static class MusicFolderSetting extends Setting {
- private String label;
+ private final String label;
- public MusicFolderSetting() {
-
- }
- public MusicFolderSetting(String name, String label, Boolean value) {
- super(name, value);
+ public MusicFolderSetting(String name, String label) {
+ super(name, false);
this.label = label;
}
diff --git a/app/src/main/java/net/nullsum/audinaut/fragments/DownloadFragment.java b/app/src/main/java/net/nullsum/audinaut/fragments/DownloadFragment.java
index 6c1ea72..9046ac7 100644
--- a/app/src/main/java/net/nullsum/audinaut/fragments/DownloadFragment.java
+++ b/app/src/main/java/net/nullsum/audinaut/fragments/DownloadFragment.java
@@ -15,7 +15,6 @@
package net.nullsum.audinaut.fragments;
-import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.widget.helper.ItemTouchHelper;
@@ -26,13 +25,8 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
import net.nullsum.audinaut.R;
+import net.nullsum.audinaut.adapter.DownloadFileAdapter;
import net.nullsum.audinaut.adapter.SectionAdapter;
import net.nullsum.audinaut.domain.MusicDirectory;
import net.nullsum.audinaut.service.DownloadFile;
@@ -42,9 +36,14 @@ import net.nullsum.audinaut.util.DownloadFileItemHelperCallback;
import net.nullsum.audinaut.util.ProgressListener;
import net.nullsum.audinaut.util.SilentBackgroundTask;
import net.nullsum.audinaut.util.Util;
-import net.nullsum.audinaut.adapter.DownloadFileAdapter;
import net.nullsum.audinaut.view.UpdateView;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
public class DownloadFragment extends SelectRecyclerFragment implements SectionAdapter.OnItemClickedListener {
private long currentRevision;
private ScheduledExecutorService executorService;
@@ -69,17 +68,7 @@ public class DownloadFragment extends SelectRecyclerFragment imple
super.onResume();
final Handler handler = new Handler();
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- handler.post(new Runnable() {
- @Override
- public void run() {
- update();
- }
- });
- }
- };
+ Runnable runnable = () -> handler.post(this::update);
executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleWithFixedDelay(runnable, 0L, 1000L, TimeUnit.MILLISECONDS);
@@ -104,11 +93,11 @@ public class DownloadFragment extends SelectRecyclerFragment imple
@Override
public List getObjects(MusicService musicService, boolean refresh, ProgressListener listener) throws Exception {
DownloadService downloadService = getDownloadService();
- if(downloadService == null) {
- return new ArrayList();
+ if (downloadService == null) {
+ return new ArrayList<>();
}
- List songList = new ArrayList();
+ List songList = new ArrayList<>();
songList.addAll(downloadService.getBackgroundDownloads());
currentRevision = downloadService.getDownloadListUpdateRevision();
return songList;
@@ -128,7 +117,7 @@ public class DownloadFragment extends SelectRecyclerFragment imple
public void onCreateContextMenu(Menu menu, MenuInflater menuInflater, UpdateView updateView, DownloadFile downloadFile) {
MusicDirectory.Entry selectedItem = downloadFile.getSong();
onCreateContextMenuSupport(menu, menuInflater, updateView, selectedItem);
- if(!Util.isOffline(context)) {
+ if (!Util.isOffline(context)) {
menu.removeItem(R.id.song_menu_remove_playlist);
}
@@ -143,29 +132,24 @@ public class DownloadFragment extends SelectRecyclerFragment imple
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
- if(super.onOptionsItemSelected(menuItem)) {
+ if (super.onOptionsItemSelected(menuItem)) {
return true;
}
switch (menuItem.getItemId()) {
case R.id.menu_remove_all:
- Util.confirmDialog(context, R.string.download_menu_remove_all, "", new DialogInterface.OnClickListener() {
+ Util.confirmDialog(context, R.string.download_menu_remove_all, "", (dialog, which) -> new SilentBackgroundTask(context) {
@Override
- public void onClick(DialogInterface dialog, int which) {
- new SilentBackgroundTask