From ec6f460feef3bd413b50f21edac9049ebdccc91d Mon Sep 17 00:00:00 2001 From: Duncan Steenburgh Date: Sat, 14 May 2016 15:36:13 -0500 Subject: [PATCH 1/7] Fixed #7 --- .../actionmode/ActionModeTitle.java | 13 ++++++++++++- .../activities/MusicContainerListActivity.java | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/actionmode/ActionModeTitle.java b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/actionmode/ActionModeTitle.java index fb8b428..692e112 100644 --- a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/actionmode/ActionModeTitle.java +++ b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/actionmode/ActionModeTitle.java @@ -29,8 +29,9 @@ import android.view.MenuItem; import de.arcus.playmusicexporter2.R; -import de.arcus.playmusicexporter2.activities.MusicTrackListActivity; import de.arcus.playmusicexporter2.activities.MusicContainerListActivity; +import de.arcus.playmusicexporter2.activities.MusicTrackListActivity; +import de.arcus.playmusicexporter2.fragments.MusicTrackListFragment; import de.arcus.playmusicexporter2.items.SelectedTrackList; /** @@ -88,6 +89,11 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { MusicTrackListActivity trackDetailActivity = (MusicTrackListActivity)mSelectionList.getActivity(); trackDetailActivity.selectAll(); + } else if (mSelectionList.getActivity() instanceof MusicContainerListActivity) { + MusicContainerListActivity trackDetailContainerActivity = (MusicContainerListActivity)mSelectionList.getActivity(); + MusicTrackListFragment trackDetailFragment = (MusicTrackListFragment) trackDetailContainerActivity.getSupportFragmentManager() + .findFragmentById(R.id.track_detail_container); + trackDetailFragment.selectAll(); } return true; @@ -97,6 +103,11 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { MusicTrackListActivity trackDetailActivity = (MusicTrackListActivity)mSelectionList.getActivity(); trackDetailActivity.deselectAll(); + } else if (mSelectionList.getActivity() instanceof MusicContainerListActivity) { + MusicContainerListActivity trackDetailContainerActivity = (MusicContainerListActivity)mSelectionList.getActivity(); + MusicTrackListFragment trackDetailFragment = (MusicTrackListFragment) trackDetailContainerActivity.getSupportFragmentManager() + .findFragmentById(R.id.track_detail_container); + trackDetailFragment.deselectAll(); } return true; diff --git a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/MusicContainerListActivity.java b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/MusicContainerListActivity.java index edc9717..192ee42 100644 --- a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/MusicContainerListActivity.java +++ b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/MusicContainerListActivity.java @@ -279,7 +279,7 @@ private void loadList() { musicTrackListFragment.setMusicTrackList(dataSourcePlaylist.getAll()); break; case Rated: - // Load all reated albums to the list + // Load all created albums to the list AlbumDataSource dataSourceRatedAlbum = new AlbumDataSource(mPlayMusicManager); dataSourceRatedAlbum.setOfflineOnly(true); dataSourceRatedAlbum.setRatedOnly(true); From ae877b6bbe6c10b06fc8a0e51e03988a54baa718 Mon Sep 17 00:00:00 2001 From: ddonuts4 Date: Sun, 15 May 2016 02:16:56 -0500 Subject: [PATCH 2/7] Fixed #4 --- .../java/de/arcus/playmusicexporter2/utils/MusicPathBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/utils/MusicPathBuilder.java b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/utils/MusicPathBuilder.java index d142f6b..36ab202 100644 --- a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/utils/MusicPathBuilder.java +++ b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/utils/MusicPathBuilder.java @@ -182,6 +182,7 @@ public static String cleanFilename(String filename) { // Forbidden chars filename = filename.replace('\\', '-'); + filename = filename.replace('/', '-'); filename = filename.replace(':', '-'); filename = filename.replace('*', '-'); filename = filename.replace('?', '-'); From 6d218737baf34e42435afb9521d41db245fb58fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Tue, 24 May 2016 14:29:52 +0200 Subject: [PATCH 3/7] Updated mp3agic lib --- ...c-0.8.4-SNAPSHOT.jar => mp3agic-0.8.4.jar} | Bin 66151 -> 66369 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename playmusiclib/libs/{mp3agic-0.8.4-SNAPSHOT.jar => mp3agic-0.8.4.jar} (62%) diff --git a/playmusiclib/libs/mp3agic-0.8.4-SNAPSHOT.jar b/playmusiclib/libs/mp3agic-0.8.4.jar similarity index 62% rename from playmusiclib/libs/mp3agic-0.8.4-SNAPSHOT.jar rename to playmusiclib/libs/mp3agic-0.8.4.jar index 904b347960d1404bed697ceb00113043d7081574..2ef31c9abebe809fcfef75ed289dce9f405af632 100644 GIT binary patch delta 21506 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 delta 21224 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 G-u@qPk)_uF From 74c2877d910db3bb1d39b8295ef7c2f3fbcf5673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Tue, 24 May 2016 18:08:47 +0200 Subject: [PATCH 4/7] Added .gitignore --- .gitignore | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d57b415 --- /dev/null +++ b/.gitignore @@ -0,0 +1,109 @@ +# Created by .ignore support plugin (hsz.mobi) +### Java template +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/workspace.xml +.idea/tasks.xml +.idea/dictionaries +.idea/vcs.xml +.idea/jsLibraryMappings.xml + +# Sensitive or high-churn files: +.idea/dataSources.ids +.idea/dataSources.xml +.idea/dataSources.local.xml +.idea/sqlDataSources.xml +.idea/dynamic.xml +.idea/uiDesigner.xml + +# Gradle: +.idea/gradle.xml +.idea/libraries + +# Mongo Explorer plugin: +.idea/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +### Linux template +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* +### Android template +# Built application files +*.apk +*.ap_ + +# Files for the ART/Dalvik VM +*.dex + +# Java class files + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# Intellij +*.iml + +# Keystore files +*.jks From 4b7e06f312c07bb5ef4335687875643773f9d3b0 Mon Sep 17 00:00:00 2001 From: "mark.gillespie@gmail.com" Date: Wed, 13 Jul 2016 23:18:37 +0100 Subject: [PATCH 5/7] Quick hack to make the default paths suitable for me. Might make it a preference next rainy day. --- .../playmusicexporter2/fragments/MusicTrackListFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/fragments/MusicTrackListFragment.java b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/fragments/MusicTrackListFragment.java index cb46b52..10ee4be 100644 --- a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/fragments/MusicTrackListFragment.java +++ b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/fragments/MusicTrackListFragment.java @@ -245,12 +245,12 @@ private void selectTrack(MusicTrack musicTrack, View view, TrackSelectionState s PlayMusicExporterSettings settings = new PlayMusicExporterSettings(getActivity()); // Default structure - String pathStructure = "{album-artist}/{album}/{disc=CD $}/{no=$$.} {title}.mp3"; + String pathStructure = "{album-artist} - {title}.mp3"; // Track is exported from a group (playlist or artist) if (!TextUtils.isEmpty(musicTrack.getContainerName())) { - pathStructure = "{group}/{group-no=$$.} {title}.mp3"; + pathStructure = "{group}/{album-artist} - {title}.mp3"; } // Build the path From 4d7d7eefe4250e9e1f3131cb16cd1b19f24c9b00 Mon Sep 17 00:00:00 2001 From: "mark.gillespie@gmail.com" Date: Wed, 13 Jul 2016 23:25:31 +0100 Subject: [PATCH 6/7] Missing strings stopping release compile from Android Studio 2.1 --- playmusicexporter/src/main/res/values-de/strings.xml | 1 + playmusicexporter/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/playmusicexporter/src/main/res/values-de/strings.xml b/playmusicexporter/src/main/res/values-de/strings.xml index 03a90d0..b92b53f 100644 --- a/playmusicexporter/src/main/res/values-de/strings.xml +++ b/playmusicexporter/src/main/res/values-de/strings.xml @@ -66,4 +66,5 @@ Entwicklung Daten-Zugriff verweigert Der PlayMusicExpoerter benötigt Schreibrechte auf der SD-Karte. Dies ist Teil des Marshmallow-Fix.\n\nBitte starten Sie die App neu und erlauben Sie die Berechtigung. + OK \ No newline at end of file diff --git a/playmusicexporter/src/main/res/values/strings.xml b/playmusicexporter/src/main/res/values/strings.xml index deb6a2f..c48cc5c 100644 --- a/playmusicexporter/src/main/res/values/strings.xml +++ b/playmusicexporter/src/main/res/values/strings.xml @@ -55,7 +55,7 @@ You can only export offline tracks. Try to download the album offline in Play Music. - Okay + OK Search… Export all tracks From 7c9086a9127fd85900d9817e8b3b98f993cf3168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Fri, 25 Nov 2016 23:17:43 +0100 Subject: [PATCH 7/7] Updated to API 25, switched Preference File Mode to MODE_PRIVATE, since MODE_WORLD_READABLE is not supported anymore. --- build.gradle | 2 +- framework/build.gradle | 10 +++++----- playmusicexporter/build.gradle | 14 +++++++------- .../activities/SettingsActivity.java | 2 +- playmusiclib/build.gradle | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 5924af4..643af3f 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:2.2.2' } } diff --git a/framework/build.gradle b/framework/build.gradle index bddebba..3fd9488 100644 --- a/framework/build.gradle +++ b/framework/build.gradle @@ -23,12 +23,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion 25 + buildToolsVersion "25.0.1" defaultConfig { - minSdkVersion 8 - targetSdkVersion 23 + minSdkVersion 9 + targetSdkVersion 25 versionCode 1 versionName "1.0" } @@ -42,5 +42,5 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.1.0' + compile 'com.android.support:appcompat-v7:25.0.1' } diff --git a/playmusicexporter/build.gradle b/playmusicexporter/build.gradle index cf41b27..f14d44c 100644 --- a/playmusicexporter/build.gradle +++ b/playmusicexporter/build.gradle @@ -25,13 +25,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion "23.0.2" + compileSdkVersion 25 + buildToolsVersion "25.0.1" defaultConfig { applicationId "de.arcus.playmusicexporter2" - minSdkVersion 8 - targetSdkVersion 23 + minSdkVersion 9 + targetSdkVersion 25 versionCode 102 versionName '2.4.2' } @@ -45,9 +45,9 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.1.1' - compile 'com.android.support:support-v4:23.1.1' - compile 'com.android.support:design:23.1.1' + compile 'com.android.support:appcompat-v7:25.0.1' + compile 'com.android.support:support-v4:25.0.1' + compile 'com.android.support:design:25.0.1' compile project(':framework') compile project(':playmusiclib') } diff --git a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/SettingsActivity.java b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/SettingsActivity.java index c7ee249..f7a2ae2 100644 --- a/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/SettingsActivity.java +++ b/playmusicexporter/src/main/java/de/arcus/playmusicexporter2/activities/SettingsActivity.java @@ -65,7 +65,7 @@ public void onCreate(Bundle savedInstanceState) { // Setup the default shared preference PreferenceManager prefMgr = getPreferenceManager(); prefMgr.setSharedPreferencesName(PlayMusicExporterSettings.DEFAULT_SETTINGS_FILENAME); - prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE); + prefMgr.setSharedPreferencesMode(MODE_PRIVATE); // Loads the preference xml addPreferencesFromResource(R.xml.preferences); diff --git a/playmusiclib/build.gradle b/playmusiclib/build.gradle index 1ceac52..4d76f90 100644 --- a/playmusiclib/build.gradle +++ b/playmusiclib/build.gradle @@ -23,12 +23,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion 25 + buildToolsVersion "25.0.1" defaultConfig { - minSdkVersion 8 - targetSdkVersion 23 + minSdkVersion 9 + targetSdkVersion 25 versionCode 1 versionName "1.0" }