add file select preference for media downloads
This commit is contained in:
parent
fbffb4ef8a
commit
dd599c6979
5 changed files with 71 additions and 0 deletions
|
|
@ -79,6 +79,8 @@ dependencies {
|
||||||
implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
|
implementation 'com.afollestad.material-dialogs:commons:0.9.6.0'
|
||||||
implementation 'com.afollestad:material-cab:0.1.12'
|
implementation 'com.afollestad:material-cab:0.1.12'
|
||||||
|
|
||||||
|
implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
|
||||||
|
implementation 'com.github.codekidX:storage-chooser:2.0.4.4'
|
||||||
implementation 'com.pacioianu.david:ink-page-indicator:1.3.0'
|
implementation 'com.pacioianu.david:ink-page-indicator:1.3.0'
|
||||||
implementation 'com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:1.0.0'
|
implementation 'com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:1.0.0'
|
||||||
implementation 'com.android.support:multidex:1.0.3'
|
implementation 'com.android.support:multidex:1.0.3'
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,10 @@ public final class PreferenceUtil {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SharedPreferences getPreferences() {
|
||||||
|
return mPreferences;
|
||||||
|
}
|
||||||
|
|
||||||
public void registerOnSharedPreferenceChangedListener(SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener) {
|
public void registerOnSharedPreferenceChangedListener(SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener) {
|
||||||
mPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
mPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.dkanada.gramophone.views.settings;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.app.FragmentManager;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceViewHolder;
|
||||||
|
|
||||||
|
import com.codekidlabs.storagechooser.StorageChooser;
|
||||||
|
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||||
|
|
||||||
|
public class FilePreference extends Preference implements View.OnClickListener, StorageChooser.OnSelectListener {
|
||||||
|
private final SharedPreferences preferences;
|
||||||
|
private final String defaultLocation;
|
||||||
|
|
||||||
|
public FilePreference(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
|
||||||
|
preferences = PreferenceUtil.getInstance(getContext()).getPreferences();
|
||||||
|
defaultLocation = getContext().getCacheDir().toString();
|
||||||
|
|
||||||
|
setSummary(preferences.getString(getKey(), defaultLocation));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||||
|
super.onBindViewHolder(holder);
|
||||||
|
|
||||||
|
holder.itemView.setOnClickListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelect(String path) {
|
||||||
|
preferences.edit().putString(getKey(), path).apply();
|
||||||
|
setSummary(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Activity activity = (Activity) getContext();
|
||||||
|
FragmentManager fragmentManager = activity.getFragmentManager();
|
||||||
|
|
||||||
|
StorageChooser chooser = new StorageChooser.Builder()
|
||||||
|
.withActivity(activity)
|
||||||
|
.withFragmentManager(fragmentManager)
|
||||||
|
.withPredefinedPath(preferences.getString(getKey(), defaultLocation))
|
||||||
|
.allowCustomPath(true)
|
||||||
|
.allowAddFolder(true)
|
||||||
|
.setType(StorageChooser.DIRECTORY_CHOOSER)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
chooser.setOnSelectListener(this);
|
||||||
|
chooser.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -126,6 +126,7 @@
|
||||||
<string name="pref_title_remember_shuffle">Remember Shuffle</string>
|
<string name="pref_title_remember_shuffle">Remember Shuffle</string>
|
||||||
<string name="pref_title_remember_queue">Remember Queue</string>
|
<string name="pref_title_remember_queue">Remember Queue</string>
|
||||||
<string name="pref_title_page_size">Page Size</string>
|
<string name="pref_title_page_size">Page Size</string>
|
||||||
|
<string name="pref_title_download_location">Download Location</string>
|
||||||
<string name="pref_title_image_cache_size">Images</string>
|
<string name="pref_title_image_cache_size">Images</string>
|
||||||
<string name="pref_title_media_cache_size">Media</string>
|
<string name="pref_title_media_cache_size">Media</string>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,11 @@
|
||||||
|
|
||||||
<com.dkanada.gramophone.views.settings.JellyPreferenceCategory android:title="@string/pref_header_cache">
|
<com.dkanada.gramophone.views.settings.JellyPreferenceCategory android:title="@string/pref_header_cache">
|
||||||
|
|
||||||
|
<com.dkanada.gramophone.views.settings.FilePreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
android:key="location_download"
|
||||||
|
android:title="@string/pref_title_download_location" />
|
||||||
|
|
||||||
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEListPreference
|
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEListPreference
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="400"
|
android:defaultValue="400"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue