remove direct play preference dialog
This commit is contained in:
parent
e5f59cc81a
commit
0acbba651c
5 changed files with 57 additions and 71 deletions
|
|
@ -15,7 +15,6 @@ import androidx.preference.TwoStatePreference;
|
|||
|
||||
import com.afollestad.materialdialogs.color.ColorChooserDialog;
|
||||
import com.dkanada.gramophone.databinding.ActivitySettingsBinding;
|
||||
import com.dkanada.gramophone.dialogs.preferences.DirectPlayPreferenceDialog;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference;
|
||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||
|
|
@ -113,7 +112,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
final TwoStatePreference coloredNotification = findPreference(PreferenceUtil.COLORED_NOTIFICATION);
|
||||
final TwoStatePreference colorAppShortcuts = findPreference(PreferenceUtil.COLORED_SHORTCUTS);
|
||||
final Preference categoryPreference = findPreference(PreferenceUtil.CATEGORIES);
|
||||
final Preference directPlayPreference = findPreference(PreferenceUtil.DIRECT_PLAY_CODECS);
|
||||
final Preference nowPlayingPreference = findPreference(PreferenceUtil.NOW_PLAYING_SCREEN);
|
||||
|
||||
final int primaryColor = ThemeStore.primaryColor(requireActivity());
|
||||
|
|
@ -154,11 +152,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
return false;
|
||||
});
|
||||
|
||||
directPlayPreference.setOnPreferenceClickListener(preference -> {
|
||||
DirectPlayPreferenceDialog.newInstance().show(getParentFragmentManager(), DirectPlayPreferenceDialog.TAG);
|
||||
return false;
|
||||
});
|
||||
|
||||
nowPlayingPreference.setOnPreferenceClickListener(preference -> {
|
||||
NowPlayingPreferenceDialog.newInstance().show(getParentFragmentManager(), NowPlayingPreferenceDialog.TAG);
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
package com.dkanada.gramophone.dialogs.preferences;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.adapter.DirectPlayCodecAdapter;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
|
||||
public class DirectPlayPreferenceDialog extends DialogFragment {
|
||||
public static final String TAG = DirectPlayPreferenceDialog.class.getSimpleName();
|
||||
|
||||
public static DirectPlayPreferenceDialog newInstance() {
|
||||
return new DirectPlayPreferenceDialog();
|
||||
}
|
||||
|
||||
private DirectPlayCodecAdapter adapter;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
View view = requireActivity().getLayoutInflater().inflate(R.layout.preference_dialog_direct_play_codecs, null);
|
||||
|
||||
adapter = new DirectPlayCodecAdapter(PreferenceUtil.getInstance(getContext()).getDirectPlayCodecs());
|
||||
|
||||
RecyclerView recyclerView = view.findViewById(R.id.recycler_view);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
return new MaterialDialog.Builder(requireActivity())
|
||||
.customView(view, false)
|
||||
.title(R.string.pref_title_direct_play_codecs)
|
||||
.positiveText(android.R.string.ok)
|
||||
.negativeText(android.R.string.cancel)
|
||||
.onPositive((dialog, action) -> PreferenceUtil.getInstance(getContext()).setDirectPlayCodecs(adapter.getCodecs()))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,6 @@ import android.os.Build;
|
|||
import android.preference.PreferenceManager;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.dkanada.gramophone.model.Theme;
|
||||
import com.dkanada.gramophone.R;
|
||||
|
|
@ -92,7 +91,6 @@ public final class PreferenceUtil {
|
|||
public static final String IMAGE_CACHE_SIZE = "image_cache_size";
|
||||
public static final String MEDIA_CACHE_SIZE = "media_cache_size";
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
private static final PreferenceMigration Migration1 = new PreferenceMigration(0, 1) {
|
||||
@Override
|
||||
public void migrate(SharedPreferences preferences) {
|
||||
|
|
@ -185,7 +183,6 @@ public final class PreferenceUtil {
|
|||
mPreferences.edit().putInt(ACCENT_COLOR, color).apply();
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public final int getPageSize() {
|
||||
return Integer.parseInt(mPreferences.getString(PAGE_SIZE, "100"));
|
||||
}
|
||||
|
|
@ -399,12 +396,10 @@ public final class PreferenceUtil {
|
|||
return mPreferences.getString(LOCATION_CACHE, mContext.getCacheDir().toString());
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public final long getImageCacheSize() {
|
||||
return Long.parseLong(mPreferences.getString(IMAGE_CACHE_SIZE, "400")) * 100000;
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public final long getMediaCacheSize() {
|
||||
return Long.parseLong(mPreferences.getString(MEDIA_CACHE_SIZE, "400")) * 100000;
|
||||
}
|
||||
|
|
@ -412,15 +407,7 @@ public final class PreferenceUtil {
|
|||
public List<CategoryInfo> getCategories() {
|
||||
String data = mPreferences.getString(CATEGORIES, null);
|
||||
if (data != null) {
|
||||
Gson gson = new Gson();
|
||||
Type collectionType = new TypeToken<List<CategoryInfo>>() {
|
||||
}.getType();
|
||||
|
||||
try {
|
||||
return gson.fromJson(data, collectionType);
|
||||
} catch (JsonSyntaxException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return new Gson().fromJson(data, new TypeToken<List<CategoryInfo>>(){}.getType());
|
||||
}
|
||||
|
||||
return getDefaultCategories();
|
||||
|
|
@ -428,23 +415,24 @@ public final class PreferenceUtil {
|
|||
|
||||
public void setCategories(List<CategoryInfo> categories) {
|
||||
Gson gson = new Gson();
|
||||
Type collectionType = new TypeToken<List<CategoryInfo>>() {}.getType();
|
||||
Type type = new TypeToken<List<CategoryInfo>>(){}.getType();
|
||||
|
||||
mPreferences.edit().putString(CATEGORIES, gson.toJson(categories, collectionType)).apply();
|
||||
mPreferences.edit().putString(CATEGORIES, gson.toJson(categories, type)).apply();
|
||||
}
|
||||
|
||||
public List<CategoryInfo> getDefaultCategories() {
|
||||
List<CategoryInfo> defaultCategories = new ArrayList<>(5);
|
||||
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.SONGS, true));
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.ALBUMS, true));
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.ARTISTS, true));
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.GENRES, true));
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.PLAYLISTS, true));
|
||||
defaultCategories.add(new CategoryInfo(CategoryInfo.Category.FAVORITES, true));
|
||||
|
||||
return defaultCategories;
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public List<Codec> getDirectPlayCodecs() {
|
||||
Set<String> defaultValues = Arrays.stream(Codec.values()).map(Enum::toString).collect(Collectors.toSet());
|
||||
Set<String> values = mPreferences.getStringSet(DIRECT_PLAY_CODECS, defaultValues);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package com.dkanada.gramophone.views.settings;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.adapter.DirectPlayCodecAdapter;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
|
||||
public class DirectPlayPreference extends Preference implements View.OnClickListener {
|
||||
public DirectPlayPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||
super.onBindViewHolder(holder);
|
||||
|
||||
holder.itemView.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressLint("InflateParams")
|
||||
public void onClick(View v) {
|
||||
Activity activity = (Activity) getContext();
|
||||
View view = activity.getLayoutInflater().inflate(R.layout.preference_dialog_direct_play_codecs, null);
|
||||
DirectPlayCodecAdapter adapter = new DirectPlayCodecAdapter(PreferenceUtil.getInstance(getContext()).getDirectPlayCodecs());
|
||||
RecyclerView recyclerView = view.findViewById(R.id.recycler_view);
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(activity));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
new MaterialDialog.Builder(activity)
|
||||
.customView(view, false)
|
||||
.title(R.string.pref_title_direct_play_codecs)
|
||||
.positiveText(android.R.string.ok)
|
||||
.negativeText(android.R.string.cancel)
|
||||
.onPositive((dialog, action) -> PreferenceUtil.getInstance(getContext()).setDirectPlayCodecs(adapter.getCodecs()))
|
||||
.build()
|
||||
.show();
|
||||
}
|
||||
}
|
||||
|
|
@ -14,9 +14,8 @@
|
|||
android:positiveButtonText="@null"
|
||||
android:title="@string/pref_title_transcode_codec" />
|
||||
|
||||
<Preference
|
||||
<com.dkanada.gramophone.views.settings.DirectPlayPreference
|
||||
app:iconSpaceReserved="false"
|
||||
android:key="direct_play_codecs"
|
||||
android:summary="@string/pref_summary_direct_play_codecs"
|
||||
android:title="@string/pref_title_direct_play_codecs" />
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue