diff --git a/app/build.gradle b/app/build.gradle index e18f876..6c1a9a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 9 targetSdkVersion 23 // 24+ file:// unable to open - versionCode 223 - versionName "3.0.57" + versionCode 224 + versionName "3.0.58" } signingConfigs { release { @@ -55,5 +55,5 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.github.axet:android-audio-library:1.0.65' // compile project(':android-audio-library') + compile 'com.github.axet:android-audio-library:1.0.67' // compile project(':android-audio-library') } diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java index 7af6ae2..123e952 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java @@ -37,9 +37,7 @@ import com.github.axet.audiorecorder.services.RecordingService; public class MainActivity extends AppCompatActivity { public final static String TAG = MainActivity.class.getSimpleName(); - public static final String READ_EXTERNAL_STORAGE = "android.permission.READ_EXTERNAL_STORAGE"; // Manifest.permission.READ_EXTERNAL_STORAGE - - public static final String[] PERMISSIONS = new String[]{READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + public static final String[] PERMISSIONS = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; FloatingActionButton fab; Handler handler = new Handler(); diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java index 44136d6..207fc85 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/SettingsActivity.java @@ -25,6 +25,7 @@ import android.view.MenuItem; import android.widget.ProgressBar; import android.widget.Toast; +import com.github.axet.androidlibrary.widgets.NameFormatPreferenceCompat; import com.github.axet.androidlibrary.widgets.SilencePreferenceCompat; import com.github.axet.androidlibrary.widgets.StoragePathPreferenceCompat; import com.github.axet.androidlibrary.widgets.ThemeUtils; @@ -50,7 +51,7 @@ import java.util.List; * href="http://developer.android.com/guide/topics/ui/settings.html">Settings * API Guide for more information on developing a Settings UI. */ -public class SettingsActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener { +public class SettingsActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener, PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback { public static final String[] PERMISSIONS = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; @@ -75,7 +76,9 @@ public class SettingsActivity extends AppCompatActivity implements SharedPrefere String stringValue = value.toString(); String key = preference.getKey(); - if (preference instanceof ListPreference) { + if (preference instanceof NameFormatPreferenceCompat) { + preference.setSummary(((NameFormatPreferenceCompat) preference).getFormatted(stringValue)); + } else if (preference instanceof ListPreference) { // For list preferences, look up the correct display value in // the preference's 'entries' list. ListPreference listPreference = (ListPreference) preference; @@ -212,6 +215,15 @@ public class SettingsActivity extends AppCompatActivity implements SharedPrefere finish(); } + @Override + public boolean onPreferenceDisplayDialog(PreferenceFragmentCompat caller, Preference pref) { + if (pref instanceof NameFormatPreferenceCompat) { + NameFormatPreferenceCompat.show(caller, pref.getKey()); + return true; + } + return false; + } + /** * This fragment shows general preferences only. It is used when the * activity is showing a two-pane settings UI. diff --git a/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java b/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java index 1064b79..5b7c72d 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java +++ b/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java @@ -16,6 +16,13 @@ public class Storage extends com.github.axet.audiolibrary.app.Storage { super(context); } + public static String getFormatted(String format, Date date) { + format = format.replaceAll("%s", SIMPLE.format(date)); + format = format.replaceAll("%I", ISO8601.format(date)); + format = format.replaceAll("%T", "" + System.currentTimeMillis() / 1000); + return format; + } + public Uri getNewFile() { SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(context); String ext = shared.getString(MainApplication.PREFERENCE_ENCODING, ""); @@ -24,9 +31,7 @@ public class Storage extends com.github.axet.audiolibrary.app.Storage { format = shared.getString(MainApplication.PREFERENCE_FORMAT, format); - format = format.replaceAll("%s", SIMPLE.format(new Date())); - format = format.replaceAll("%I", ISO8601.format(new Date())); - format = format.replaceAll("%T", "" + System.currentTimeMillis() / 1000); + format = getFormatted(format, new Date()); Uri path = getStoragePath(); String s = path.getScheme(); diff --git a/app/src/main/java/com/github/axet/audiorecorder/widgets/NameFormatPreferenceCompat.java b/app/src/main/java/com/github/axet/audiorecorder/widgets/NameFormatPreferenceCompat.java new file mode 100644 index 0000000..d981e82 --- /dev/null +++ b/app/src/main/java/com/github/axet/audiorecorder/widgets/NameFormatPreferenceCompat.java @@ -0,0 +1,39 @@ +package com.github.axet.audiorecorder.widgets; + +import android.content.Context; +import android.util.AttributeSet; + +import com.github.axet.audiorecorder.app.Storage; + +import java.util.Date; + +public class NameFormatPreferenceCompat extends com.github.axet.androidlibrary.widgets.NameFormatPreferenceCompat { + public NameFormatPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + public NameFormatPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public NameFormatPreferenceCompat(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public NameFormatPreferenceCompat(Context context) { + super(context); + } + + @Override + public String getFormatted(String str) { + CharSequence[] text = getEntries(); + CharSequence[] values = getEntryValues(); + for (int i = 0; i < text.length; i++) { + String t = text[i].toString(); + String v = values[i].toString(); + if (v.equals(str)) + return t; + } + return Storage.getFormatted(str, new Date(1487926249000l)); + } +} diff --git a/app/src/main/res/drawable/ic_close_24dp.xml b/app/src/main/res/drawable/ic_close_24dp.xml index d11cc5c..774248a 100644 --- a/app/src/main/res/drawable/ic_close_24dp.xml +++ b/app/src/main/res/drawable/ic_close_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_content_cut_24dp.xml b/app/src/main/res/drawable/ic_content_cut_24dp.xml index 0a920da..453afa9 100644 --- a/app/src/main/res/drawable/ic_content_cut_24dp.xml +++ b/app/src/main/res/drawable/ic_content_cut_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_done_black_24dp.xml b/app/src/main/res/drawable/ic_done_black_24dp.xml index 7affe9b..776845a 100644 --- a/app/src/main/res/drawable/ic_done_black_24dp.xml +++ b/app/src/main/res/drawable/ic_done_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/layout/activity_recording.xml b/app/src/main/res/layout/activity_recording.xml index 380adbf..9f210ba 100644 --- a/app/src/main/res/layout/activity_recording.xml +++ b/app/src/main/res/layout/activity_recording.xml @@ -61,7 +61,8 @@ android:layout_height="40dp" android:background="?attr/roundButton" android:contentDescription="@string/cut_button" - android:src="@drawable/ic_content_cut_24dp" /> + android:src="@drawable/ic_content_cut_24dp" + android:tint="@android:color/white" /> + android:src="@drawable/ic_play_arrow_black_24dp" + android:tint="@android:color/white" /> + android:src="@drawable/ic_close_24dp" + android:tint="@android:color/white" /> @@ -108,7 +111,8 @@ android:background="?attr/roundButton" android:contentDescription="@string/cancel_button" android:gravity="center" - android:src="@drawable/ic_close_24dp" /> + android:src="@drawable/ic_close_24dp" + android:tint="@android:color/white" /> + android:src="@drawable/ic_pause_black_24dp" + android:tint="@android:color/white" />