diff --git a/build.gradle b/build.gradle
index d40fe08..34e6830 100644
--- a/build.gradle
+++ b/build.gradle
@@ -27,7 +27,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.4.0-alpha3'
+ classpath 'com.android.tools.build:gradle:2.3.0'
}
}
diff --git a/framework/src/main/java/de/arcus/framework/utils/FileTools.java b/framework/src/main/java/de/arcus/framework/utils/FileTools.java
index 7e4173c..b6a0c45 100644
--- a/framework/src/main/java/de/arcus/framework/utils/FileTools.java
+++ b/framework/src/main/java/de/arcus/framework/utils/FileTools.java
@@ -29,6 +29,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -309,9 +310,7 @@ public class FileTools {
}
// Remove all blacklisted paths
- for (String blacklistPath : mountPointBlacklist) {
- storages.remove(blacklistPath);
- }
+ storages.removeAll(Arrays.asList(mountPointBlacklist));
// Sort the list
Collections.sort(storages);
diff --git a/playmusicexporter/build.gradle b/playmusicexporter/build.gradle
index 2ec692f..954e749 100644
--- a/playmusicexporter/build.gradle
+++ b/playmusicexporter/build.gradle
@@ -31,8 +31,8 @@ android {
minSdkVersion 21
targetSdkVersion 25
// TODO Change Version with releases
- versionCode 109
- versionName '0.9.5.2'
+ versionCode 110
+ versionName '0.9.6.0'
vectorDrawables.useSupportLibrary = true
jackOptions {
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/Intro.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/Intro.java
index 3676a14..fa1d05a 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/Intro.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/Intro.java
@@ -4,7 +4,6 @@ import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
-import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/SettingsActivity.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/SettingsActivity.java
index db1aee2..22ee299 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/SettingsActivity.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/activities/SettingsActivity.java
@@ -25,7 +25,6 @@ import re.jcg.playmusicexporter.settings.PlayMusicExporterPreferences;
import java.text.SimpleDateFormat;
import java.util.List;
-import java.util.stream.Collectors;
/**
* A {@link PreferenceActivity} that presents a set of application settings. On
@@ -47,31 +46,28 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
* A preference value change listener that updates the preference's summary
* to reflect its new value.
*/
- private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object value) {
- String stringValue = value.toString();
+ private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = (preference, value) -> {
+ String stringValue = value.toString();
- if (preference instanceof ListPreference) {
- // For list preferences, look up the correct display value in
- // the preference's 'entries' list.
- ListPreference listPreference = (ListPreference) preference;
- int index = listPreference.findIndexOfValue(stringValue);
+ if (preference instanceof ListPreference) {
+ // For list preferences, look up the correct display value in
+ // the preference's 'entries' list.
+ ListPreference listPreference = (ListPreference) preference;
+ int index = listPreference.findIndexOfValue(stringValue);
- // Set the summary to reflect the new value.
- preference.setSummary(
- index >= 0
- ? listPreference.getEntries()[index]
- : null);
+ // Set the summary to reflect the new value.
+ preference.setSummary(
+ index >= 0
+ ? listPreference.getEntries()[index]
+ : null);
- } else {
- // For all other preferences, set the summary to the value's
- // simple string representation.
- preference.setSummary(stringValue);
- }
-
- return true;
+ } else {
+ // For all other preferences, set the summary to the value's
+ // simple string representation.
+ preference.setSummary(stringValue);
}
+
+ return true;
};
/**
@@ -154,19 +150,13 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
setHasOptionsMenu(true);
- findPreference("preference_alba_export_path").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_ALBA_PATH);
- return true;
- }
+ findPreference("preference_alba_export_path").setOnPreferenceClickListener(preference -> {
+ startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_ALBA_PATH);
+ return true;
});
- findPreference("preference_groups_export_path").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_GROUPS_PATH);
- return true;
- }
+ findPreference("preference_groups_export_path").setOnPreferenceClickListener(preference -> {
+ startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_GROUPS_PATH);
+ return true;
});
}
@@ -240,12 +230,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
}
private void setupOnClickListeners() {
- findPreference(PlayMusicExporterPreferences.AUTO_EXPORT_PATH).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_AUTO_PATH);
- return true;
- }
+ findPreference(PlayMusicExporterPreferences.AUTO_EXPORT_PATH).setOnPreferenceClickListener(preference -> {
+ startActivityForResult(new Intent("android.intent.action.OPEN_DOCUMENT_TREE"), REQUEST_CODE_OPEN_DOCUMENT_TREE_AUTO_PATH);
+ return true;
});
//For every setting that is used to define the export job, setup a listener that
@@ -256,12 +243,9 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
}
private void setupRescheduler(String preference) {
- findPreference(preference).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- ExportAllJob.scheduleExport(getContext());
- return false;
- }
+ findPreference(preference).setOnPreferenceClickListener(preference1 -> {
+ ExportAllJob.scheduleExport(getContext());
+ return false;
});
}
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicContainerListFragment.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicContainerListFragment.java
index fcc971f..b68d09c 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicContainerListFragment.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicContainerListFragment.java
@@ -79,10 +79,7 @@ public class MusicContainerListFragment extends ListFragment {
* A dummy implementation of the {@link Callbacks} interface that does
* nothing. Used only when this fragment is not attached to an activity.
*/
- private static Callbacks sDummyCallbacks = new Callbacks() {
- @Override
- public void onItemSelected(MusicTrackList musicTrackList) {
- }
+ private static Callbacks sDummyCallbacks = musicTrackList -> {
};
private MusicContainerListAdapter mMusicTrackListAdapter;
@@ -112,9 +109,7 @@ public class MusicContainerListFragment extends ListFragment {
// Null check
if (list != null) {
// Copy the list
- for (MusicTrackList musicTrackList : list) {
- newList.add(musicTrackList);
- }
+ newList.addAll(list);
}
// Set the list in the adapter
@@ -145,7 +140,8 @@ public class MusicContainerListFragment extends ListFragment {
setActivatedPosition(savedInstanceState.getInt(STATE_ACTIVATED_POSITION));
}
}
-// DEPRECATED
+
+ // DEPRECATED
@Override
public void onAttach(Context context) {
super.onAttach(context);
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicTrackListFragment.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicTrackListFragment.java
index defe8fe..b8454f5 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicTrackListFragment.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/MusicTrackListFragment.java
@@ -32,7 +32,6 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -197,43 +196,36 @@ public class MusicTrackListFragment extends Fragment {
mListView.setAdapter(mMusicTrackAdapter);
// Click on one list item
- mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> parent, View view, int position, long id) {
- // The header is not clicked
- if (position > 0) {
- // We need to subtract the header view
- position -= 1;
+ mListView.setOnItemClickListener((parent, view, position, id) -> {
+ // The header is not clicked
+ if (position > 0) {
+ // We need to subtract the header view
+ position -= 1;
- // Gets the selected track
- MusicTrack musicTrack = mMusicTrackAdapter.getItem(position);
+ // Gets the selected track
+ MusicTrack musicTrack = mMusicTrackAdapter.getItem(position);
- // Toggle the track
- selectTrack(musicTrack, view, TrackSelectionState.Toggle);
- }
+ // Toggle the track
+ selectTrack(musicTrack, view, TrackSelectionState.Toggle);
}
});
// The floating action button
mFloatingButtonExport = (FloatingActionButton) rootView.findViewById(R.id.floating_button_export);
- mFloatingButtonExport.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v)
- {
- m_CPULock.acquire();
- // Export all selected tracks
- for (SelectedTrack selectedTrack : SelectedTrackList.getInstance().getSelectedItems()) {
- selectedTrack.export(getActivity());
- }
-
- if ( m_CPULock.isHeld())
- {
- m_CPULock.release();
- }
-
- // Clear the selection
- SelectedTrackList.getInstance().clear(true);
+ mFloatingButtonExport.setOnClickListener(v -> {
+ m_CPULock.acquire();
+ // Export all selected tracks
+ for (SelectedTrack selectedTrack : SelectedTrackList.getInstance().getSelectedItems()) {
+ selectedTrack.export(getActivity());
}
+
+ if ( m_CPULock.isHeld())
+ {
+ m_CPULock.release();
+ }
+
+ // Clear the selection
+ SelectedTrackList.getInstance().clear(true);
});
updateFloatingButton();
}
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/NavigationDrawerFragment.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/NavigationDrawerFragment.java
index 321dd89..2adde17 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/NavigationDrawerFragment.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/fragments/NavigationDrawerFragment.java
@@ -22,7 +22,6 @@
package re.jcg.playmusicexporter.fragments;
-import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -160,47 +159,24 @@ public class NavigationDrawerFragment extends Fragment {
setViewType(mViewType);
// Click on album
- mButtonTypeAlbum.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- setViewType(ViewType.Album);
- }
- });
+ mButtonTypeAlbum.setOnClickListener(v -> setViewType(ViewType.Album));
// Click on artist
- mButtonTypeArtist.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- setViewType(ViewType.Artist);
- }
- });
+ mButtonTypeArtist.setOnClickListener(v -> setViewType(ViewType.Artist));
// Click on playlist
- mButtonTypePlaylist.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- setViewType(ViewType.Playlist);
- }
- });
+ mButtonTypePlaylist.setOnClickListener(v -> setViewType(ViewType.Playlist));
// Click on rated
- mButtonTypeRated.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- setViewType(ViewType.Rated);
- }
- });
+ mButtonTypeRated.setOnClickListener(v -> setViewType(ViewType.Rated));
// Click on settings
- mButtonSettings.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intentSettings = new Intent(getActivity(), SettingsActivity.class);
- startActivity(intentSettings);
+ mButtonSettings.setOnClickListener(v -> {
+ Intent intentSettings = new Intent(getActivity(), SettingsActivity.class);
+ startActivity(intentSettings);
- // Close the drawer
- mDrawerLayout.closeDrawers();
- }
+ // Close the drawer
+ mDrawerLayout.closeDrawers();
});
// Color the settings button
@@ -307,12 +283,7 @@ public class NavigationDrawerFragment extends Fragment {
}
// Defer code dependent on restoration of previous instance state.
- mDrawerLayout.post(new Runnable() {
- @Override
- public void run() {
- mDrawerToggle.syncState();
- }
- });
+ mDrawerLayout.post(mDrawerToggle::syncState);
mDrawerLayout.setDrawerListener(mDrawerToggle);
}
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportAllService.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportAllService.java
index 00a2977..f136677 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportAllService.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportAllService.java
@@ -7,11 +7,6 @@ import android.net.Uri;
import android.os.PowerManager;
import android.util.Log;
-import com.mpatric.mp3agic.InvalidDataException;
-import com.mpatric.mp3agic.NotSupportedException;
-import com.mpatric.mp3agic.UnsupportedTagException;
-
-import java.io.IOException;
import java.util.List;
import ly.count.android.sdk.Countly;
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportService.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportService.java
index 8fa970f..b151357 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportService.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/services/ExportService.java
@@ -30,12 +30,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
-import com.mpatric.mp3agic.InvalidDataException;
-import com.mpatric.mp3agic.NotSupportedException;
-import com.mpatric.mp3agic.UnsupportedTagException;
-
-import java.io.IOException;
-
import de.arcus.framework.logger.Logger;
import ly.count.android.sdk.Countly;
import re.jcg.playmusicexporter.R;
diff --git a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/utils/ArtworkViewLoader.java b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/utils/ArtworkViewLoader.java
index c4822bc..c359e62 100644
--- a/playmusicexporter/src/main/java/re/jcg/playmusicexporter/utils/ArtworkViewLoader.java
+++ b/playmusicexporter/src/main/java/re/jcg/playmusicexporter/utils/ArtworkViewLoader.java
@@ -22,14 +22,12 @@
package re.jcg.playmusicexporter.utils;
-import android.graphics.Bitmap;
import android.widget.ImageView;
import java.lang.ref.WeakReference;
import re.jcg.playmusicexporter.R;
import de.arcus.playmusiclib.ArtworkLoader;
-import de.arcus.playmusiclib.ArtworkLoaderCallback;
import de.arcus.playmusiclib.items.ArtworkEntry;
/**
@@ -121,13 +119,10 @@ public class ArtworkViewLoader {
maximalArtworkSize = imageViewDefault.getContext().getResources().getDimensionPixelSize(R.dimen.music_track_artwork_loading_size);
// Sets the bitmap in the UI thread
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- // Default icon
- imageViewDefault.setImageResource(mDefaultImage);
+ Runnable runnable = () -> {
+ // Default icon
+ imageViewDefault.setImageResource(mDefaultImage);
- }
};
imageViewDefault.post(runnable);
}
@@ -138,36 +133,30 @@ public class ArtworkViewLoader {
mIsLoading = true;
// Load the artwork
- ArtworkLoader.loadArtworkAsync(mArtworkEntry, maximalArtworkSize, new ArtworkLoaderCallback() {
- @Override
- public void onFinished(final Bitmap bitmap) {
- final ImageView imageView = mImageView.get();
+ ArtworkLoader.loadArtworkAsync(mArtworkEntry, maximalArtworkSize, bitmap -> {
+ final ImageView imageView = mImageView.get();
- if (imageViewDefault != null) {
- // Sets the bitmap in the UI thread
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- // Bitmap is valid
- if (bitmap != null)
- imageView.setImageBitmap(bitmap);
- else
- imageView.setImageResource(mDefaultImage);
- }
- };
- imageView.post(runnable);
- }
+ if (imageViewDefault != null) {
+ // Sets the bitmap in the UI thread
+ Runnable runnable = () -> {
+ // Bitmap is valid
+ if (bitmap != null)
+ imageView.setImageBitmap(bitmap);
+ else
+ imageView.setImageResource(mDefaultImage);
+ };
+ imageView.post(runnable);
+ }
- // Loading is done
- mIsLoading = false;
+ // Loading is done
+ mIsLoading = false;
- // Loads the next image
- if (mNewArtworkEntry != null) {
- mArtworkEntry = mNewArtworkEntry;
- mNewArtworkEntry = null;
+ // Loads the next image
+ if (mNewArtworkEntry != null) {
+ mArtworkEntry = mNewArtworkEntry;
+ mNewArtworkEntry = null;
- loadImage();
- }
+ loadImage();
}
});
}
diff --git a/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_normal.xml b/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_normal.xml
deleted file mode 100644
index 62a8436..0000000
--- a/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_normal.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_selected.xml b/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_selected.xml
deleted file mode 100644
index 7110152..0000000
--- a/playmusicexporter/src/main/res/drawable-v21/button_navigation_drawer_selected.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/playmusicexporter/src/main/res/drawable/button_navigation_drawer_normal.xml b/playmusicexporter/src/main/res/drawable/button_navigation_drawer_normal.xml
index 32cc3ba..62a8436 100644
--- a/playmusicexporter/src/main/res/drawable/button_navigation_drawer_normal.xml
+++ b/playmusicexporter/src/main/res/drawable/button_navigation_drawer_normal.xml
@@ -21,7 +21,11 @@
~ THE SOFTWARE.
-->
-
-
-
\ No newline at end of file
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/playmusicexporter/src/main/res/drawable/button_navigation_drawer_selected.xml b/playmusicexporter/src/main/res/drawable/button_navigation_drawer_selected.xml
index 755155d..7110152 100644
--- a/playmusicexporter/src/main/res/drawable/button_navigation_drawer_selected.xml
+++ b/playmusicexporter/src/main/res/drawable/button_navigation_drawer_selected.xml
@@ -21,7 +21,11 @@
~ THE SOFTWARE.
-->
-
-
-
\ No newline at end of file
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/playmusiclib/src/main/java/de/arcus/playmusiclib/PlayMusicManager.java b/playmusiclib/src/main/java/de/arcus/playmusiclib/PlayMusicManager.java
index 445dc89..48bca36 100644
--- a/playmusiclib/src/main/java/de/arcus/playmusiclib/PlayMusicManager.java
+++ b/playmusiclib/src/main/java/de/arcus/playmusiclib/PlayMusicManager.java
@@ -25,7 +25,6 @@ package de.arcus.playmusiclib;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
-import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
@@ -33,10 +32,8 @@ import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
-import android.support.v4.content.FileProvider;
import android.support.v4.provider.DocumentFile;
import android.text.TextUtils;
-import android.util.Log;
import com.mpatric.mp3agic.ID3v1Genres;
import com.mpatric.mp3agic.ID3v1Tag;
@@ -557,7 +554,7 @@ public class PlayMusicManager {
DocumentFile document = DocumentFile.fromTreeUri(mContext, uri);
// Creates the subdirectories
- String[] directories = path.split("\\/");
+ String[] directories = path.split("/");
for (int i = 0; i < directories.length - 1; i++) {
String directoryName = directories[i];
boolean found = false;