Merge branch 'feature/extract_strings' into develop

This commit is contained in:
Jan Christian Grünhage 2016-12-30 16:12:14 +01:00
commit 8cca5610ab
No known key found for this signature in database
GPG key ID: 62BEE5EB8F370DC6
12 changed files with 166 additions and 63 deletions

View file

@ -67,14 +67,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
@ -83,6 +75,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />

View file

@ -32,6 +32,7 @@ android {
applicationId "re.jcg.playmusicexporter"
minSdkVersion 21
targetSdkVersion 25
// TODO Change Version with releases
versionCode 102
versionName '2.4.2'
vectorDrawables.useSupportLibrary = true

View file

@ -66,14 +66,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
@ -82,6 +74,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />

View file

@ -31,18 +31,14 @@ public class ExportAllJob extends JobService {
boolean lRequireCharging = lPreferences.getBoolean("settings", true);
JobScheduler lJobScheduler = (JobScheduler) pContext.getSystemService(JOB_SCHEDULER_SERVICE);
if (lInterval == -1) {
lJobScheduler.cancel(42);
} else {
ComponentName lComponentName = new ComponentName(pContext, ExportAllJob.class);
JobInfo.Builder lBuilder = new JobInfo.Builder(42, lComponentName);
lBuilder.setPeriodic(lInterval);
lBuilder.setPersisted(true);
if (lRequireUnmeteredNetwork)
lBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
lBuilder.setRequiresCharging(lRequireCharging);
lJobScheduler.schedule(lBuilder.build());
}
ComponentName lComponentName = new ComponentName(pContext, ExportAllJob.class);
JobInfo.Builder lBuilder = new JobInfo.Builder(42, lComponentName);
lBuilder.setPeriodic(lInterval);
lBuilder.setPersisted(true);
if (lRequireUnmeteredNetwork)
lBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
lBuilder.setRequiresCharging(lRequireCharging);
lJobScheduler.schedule(lBuilder.build());
}
@Override

View file

@ -3,14 +3,13 @@ package re.jcg.playmusicexporter.services;
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.support.v4.provider.DocumentFile;
import android.util.Log;
import java.util.List;
import re.jcg.playmusicexporter.settings.PlayMusicExporterPreferences;
import re.jcg.playmusicexporter.utils.MusicPathBuilder;
import de.arcus.playmusiclib.PlayMusicManager;
import de.arcus.playmusiclib.datasources.AlbumDataSource;
@ -50,7 +49,7 @@ public class ExportAllService extends IntentService {
}
private void export() {
SharedPreferences lPreferences = PreferenceManager.getDefaultSharedPreferences(this);
PlayMusicExporterPreferences.init(this);
PlayMusicManager lPlayMusicManager = new PlayMusicManager(this);
try {
@ -58,10 +57,9 @@ public class ExportAllService extends IntentService {
} catch (PlayMusicNotFoundException | NoSuperUserException | CouldNotOpenDatabaseException e) {
e.printStackTrace();
}
String lStringUri = lPreferences.getString("preference_export_tree_uri", null);
String lExportStructure = lPreferences.getString("preference_structure_alba", "{album-artist}/{album}/{disc=CD $}/{no=$$.} {title}.mp3");
Log.i(TAG, lStringUri);
Uri lUri = Uri.parse(lStringUri);
Uri lUri = PlayMusicExporterPreferences.getConditionedAutoExportPath();
String lExportStructure = PlayMusicExporterPreferences.getConditionedAutoExportStructure();
Log.i(TAG, lUri.toString());
AlbumDataSource lAlbumDataSource = new AlbumDataSource(lPlayMusicManager);
lAlbumDataSource.setOfflineOnly(true);
List<Album> lAlba = lAlbumDataSource.getAll();

View file

@ -0,0 +1,79 @@
package re.jcg.playmusicexporter.settings;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
public class PlayMusicExporterPreferences {
private static SharedPreferences preferences;
private static final String AUTO_EXPORT_USES_DIFFERENT_PATH = "preference_auto_export_use_different_path";
private static final boolean AUTO_EXPORT_USES_DIFFERENT_PATH_DEFAULT = false;
private static final String AUTO_EXPORT_USES_DIFFERENT_STRUCTURE = "preference_auto_export_use_different_structure";
private static final boolean AUTO_EXPORT_USES_DIFFERENT_STRUCTURE_DEFAULT = false;
private static final String AUTO_EXPORT_PATH = "preference_auto_export_path";
//TODO Split Export Paths in export prefs, this won't work else.
private static final String ALBA_EXPORT_PATH = "preference_alba_export_path";
private static final String GROUP_EXPORT_PATH = "preference_group_export_path";
private static final String URI_DEFAULT = Uri.EMPTY.toString();
private static final String AUTO_EXPORT_STRUCTURE = "preference_auto_export_structure";
private static final String ALBA_EXPORT_STRUCTURE = "preference_auto_export_structure";
private static final String EXPORT_STRUCTURE_DEFAULT = "{album-artist}/{album}/{disc=CD $}/{no=$$.} {title}.mp3";
public static void init(Context pContext) {
preferences = PreferenceManager.getDefaultSharedPreferences(pContext);
}
public static Uri getConditionedAutoExportPath() {
if (getAutoExportUsesDifferentPath()) {
return getAutoExportPath();
} else {
return getAlbaExportPath();
}
}
public static boolean getAutoExportUsesDifferentPath() {
return preferences.getBoolean(AUTO_EXPORT_USES_DIFFERENT_PATH, AUTO_EXPORT_USES_DIFFERENT_PATH_DEFAULT);
}
public static Uri getAutoExportPath() {
return getUri(AUTO_EXPORT_PATH);
}
public static Uri getAlbaExportPath() {
return getUri(ALBA_EXPORT_PATH);
}
public static Uri getGroupExportPath() {
return getUri(GROUP_EXPORT_PATH);
}
private static Uri getUri(String key) {
return Uri.parse(preferences.getString(key, URI_DEFAULT));
}
public static String getConditionedAutoExportStructure() {
if (getAutoExportUsesDifferentStructure()) {
return getAutoExportStructure();
} else {
return getAlbaExportStructure();
}
}
public static String getAlbaExportStructure() {
return preferences.getString(ALBA_EXPORT_STRUCTURE, EXPORT_STRUCTURE_DEFAULT);
}
public static String getAutoExportStructure() {
return preferences.getString(AUTO_EXPORT_STRUCTURE, EXPORT_STRUCTURE_DEFAULT);
}
public static boolean getAutoExportUsesDifferentStructure() {
return preferences.getBoolean(AUTO_EXPORT_USES_DIFFERENT_STRUCTURE, AUTO_EXPORT_USES_DIFFERENT_STRUCTURE_DEFAULT);
}
}

View file

@ -6,7 +6,6 @@
<item>Every Day</item>
<item>Every 2 Days</item>
<item>Every Week</item>
<item>Never</item>
</string-array>
<string-array name="settings_export_frequency_values" translatable="false">
<item>2160000</item>
@ -14,7 +13,6 @@
<item>86400000</item>
<item>172800000</item>
<item>604800000</item>
<item>-1</item>
</string-array>
<string-array name="settings_export_id3_artwork_size_value_names" translatable="false">

View file

@ -65,11 +65,25 @@
<string name="settings_category_about_me">About me</string>
<string name="settings_category_thanks">Thanks to</string>
<string name="settings_category_develop">About this version</string>
<string name="settings_category_auto_export_conditions">Export conditions</string>
<string name="settings_category_auto_export_path_subdir">Export path and subdirectory structure</string>
<string name="settings_category_debug">Debug</string>
<string name="settings_version_number">Version Number</string>
<string name="settings_build_date">Build date</string>
<string name="settings_auto_export_enable_checkbox">Enable automatic export</string>
<string name="settings_auto_export_require_unmetered_checkbox">Require unmetered network?</string>
<string name="settings_auto_export_require_charging_checkbox">Require charging?</string>
<string name="settings_auto_export_interval_list">Export interval</string>
<string name="settings_auto_export_different_path_switch">Use a different export path</string>
<string name="settings_auto_export_different_path_switch_summary">Off means that the automatic export uses the same export path as alba.</string>
<string name="settings_auto_export_different_path">Export path</string>
<string name="settings_auto_export_different_structure_switch">Use a different subdirectory structure</string>
<string name="settings_auto_export_different_structure_switch_summary">Off means that the automatic export uses the same subdirectory structure as alba.</string>
<string name="settings_auto_export_different_structure">Subdirectory structure</string>
<string name="settings_category_export_location">Export Location</string>
<string name="settings_export_path">Export Base Path</string>
<string name="settings_export_subdirectory_structure_dialog_message">Use / for a new folder \n Available Tags: \n - {album-artist} \n - {album} \n - {artist} \n - {title} \n - {disc=CD $} \n - {no=$$.} \n - {year} \n - {genre} \n</string>
@ -108,10 +122,14 @@
<string name="settings_donation_old_url" translatable="false"><![CDATA[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A2VD24Z5E32RU]]></string>
<string name="action_mode_track_selection">%d tracks selected</string>
<string name="pref_header_export">Export</string>
<string name="pref_header_automation">Automation</string>
<string name="pref_header_about">About</string>
<string name="pref_header_debug">Debug</string>
<string name="settings_export_structure_alba_default_value" translatable="false">{album-artist}/{album}/{disc=CD $}/{no=$$.} {title}.mp3</string>
<string name="settings_export_structure_groups_default_value" translatable="false">{group}/{group-no=$$.} {artist} - {title}.mp3</string>
<string name="debug_trigger_export_all_title">Trigger ExportAllService now</string>
</resources>

View file

@ -47,6 +47,7 @@
<!-- Develop -->
<PreferenceCategory android:title="@string/settings_category_develop">
<!-- TODO change Version number and build date with releases -->
<!-- Version number-->
<Preference
android:summary="3.0.0"

View file

@ -1,23 +1,35 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="System Requirements"
android:summary="Automated export requires Android 5.0 Lollipop, so enabling this on lower Android versions won't do anything."/>
<PreferenceCategory android:title="Automation Settings">
<SwitchPreference
android:defaultValue="false"
android:key="preference_auto_export_enabled"
android:title="@string/settings_auto_export_enable_checkbox" />
<ListPreference
android:entries="@array/settings_export_frequency_value_names"
android:entryValues="@array/settings_export_frequency_values"
android:key="preference_auto_export_frequency"
android:title="@string/settings_auto_export_interval_list" />
<PreferenceCategory android:title="@string/settings_category_auto_export_path_subdir">
<SwitchPreference
android:defaultValue="false"
android:key="preference_automatic_export_enabled"
android:title="Enable Automatic Export" />
<ListPreference
android:entries="@array/settings_export_frequency_value_names"
android:entryValues="@array/settings_export_frequency_values"
android:key="preference_automatic_export_frequency"
android:title="Export Interval" />
android:key="preference_auto_export_use_different_path"
android:summary="@string/settings_auto_export_different_path_switch_summary"
android:title="@string/settings_auto_export_different_path_switch" />
<Preference
android:key="preference_auto_export_path"
android:title="@string/settings_auto_export_different_path" />
<SwitchPreference
android:key="preference_auto_export_use_different_structure"
android:summary="@string/settings_auto_export_different_structure_switch_summary"
android:title="@string/settings_auto_export_different_structure_switch" />
<Preference
android:key="preference_auto_export_structure"
android:title="@string/settings_auto_export_different_structure" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_auto_export_conditions">
<CheckBoxPreference
android:key="preference_automatic_export_require_charging"
android:title="Require Charging?" />
android:key="preference_auto_export_require_charging"
android:title="@string/settings_auto_export_require_charging_checkbox" />
<CheckBoxPreference
android:key="preference_automatic_export_require_unmetered"
android:title="Require Unmetered Network?" />
android:key="preference_auto_export_require_unmetered"
android:title="@string/settings_auto_export_require_unmetered_checkbox" />
</PreferenceCategory>
</PreferenceScreen>

View file

@ -19,6 +19,6 @@
<header
android:fragment="re.jcg.playmusicexporter.activities.SettingsActivity$DebugPreferenceFragment"
android:icon="@drawable/ic_action_settings"
android:title="Debug" />
android:title="@string/pref_header_debug" />
</preference-headers>

View file

@ -67,14 +67,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
@ -83,6 +75,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />