inherit regular preference fragment for simplicity
This commit is contained in:
parent
d85f95da91
commit
8c2fb62fa6
10 changed files with 30 additions and 96 deletions
|
|
@ -9,25 +9,21 @@ import android.view.View;
|
|||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.afollestad.materialdialogs.color.ColorChooserDialog;
|
||||
import com.dkanada.gramophone.databinding.ActivitySettingsBinding;
|
||||
import com.dkanada.gramophone.preferences.DirectPlayPreference;
|
||||
import com.dkanada.gramophone.preferences.DirectPlayPreferenceDialog;
|
||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEColorPreference;
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat;
|
||||
import com.kabouzeid.appthemehelper.util.ColorUtil;
|
||||
import com.dkanada.gramophone.R;
|
||||
import com.dkanada.gramophone.views.shortcuts.DynamicShortcutManager;
|
||||
import com.dkanada.gramophone.preferences.CategoryPreference;
|
||||
import com.dkanada.gramophone.preferences.CategoryPreferenceDialog;
|
||||
import com.dkanada.gramophone.preferences.NowPlayingScreenPreference;
|
||||
import com.dkanada.gramophone.preferences.NowPlayingScreenPreferenceDialog;
|
||||
import com.dkanada.gramophone.activities.base.AbsBaseActivity;
|
||||
import com.dkanada.gramophone.util.PreferenceUtil;
|
||||
|
|
@ -93,7 +89,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends ATEPreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public static class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
private static void setSummary(@NonNull Preference preference) {
|
||||
setSummary(preference, PreferenceManager
|
||||
|
|
@ -124,20 +120,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
addPreferencesFromResource(R.xml.pref_cache);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public DialogFragment onCreatePreferenceDialog(Preference preference) {
|
||||
if (preference instanceof NowPlayingScreenPreference) {
|
||||
return NowPlayingScreenPreferenceDialog.newInstance();
|
||||
} else if (preference instanceof CategoryPreference) {
|
||||
return CategoryPreferenceDialog.newInstance();
|
||||
} else if (preference instanceof DirectPlayPreference) {
|
||||
return DirectPlayPreferenceDialog.newInstance();
|
||||
}
|
||||
|
||||
return super.onCreatePreferenceDialog(preference);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
|
@ -152,6 +134,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
PreferenceUtil.getInstance(getActivity()).unregisterOnSharedPreferenceChangedListener(this);
|
||||
}
|
||||
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
private void invalidateSettings() {
|
||||
final Preference generalTheme = findPreference(PreferenceUtil.GENERAL_THEME);
|
||||
setSummary(generalTheme);
|
||||
|
|
@ -231,6 +214,24 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
});
|
||||
}
|
||||
|
||||
final Preference categoryPreference = findPreference(PreferenceUtil.CATEGORIES);
|
||||
categoryPreference.setOnPreferenceClickListener(preference -> {
|
||||
CategoryPreferenceDialog.newInstance().show(getParentFragmentManager(), CategoryPreferenceDialog.TAG);
|
||||
return false;
|
||||
});
|
||||
|
||||
final Preference directPlayPreference = findPreference(PreferenceUtil.DIRECT_PLAY_CODECS);
|
||||
directPlayPreference.setOnPreferenceClickListener(preference -> {
|
||||
DirectPlayPreferenceDialog.newInstance().show(getParentFragmentManager(), DirectPlayPreferenceDialog.TAG);
|
||||
return false;
|
||||
});
|
||||
|
||||
final Preference nowPlayingPreference = findPreference(PreferenceUtil.NOW_PLAYING_SCREEN);
|
||||
nowPlayingPreference.setOnPreferenceClickListener(preference -> {
|
||||
NowPlayingScreenPreferenceDialog.newInstance().show(getParentFragmentManager(), NowPlayingScreenPreferenceDialog.TAG);
|
||||
return false;
|
||||
});
|
||||
|
||||
updateNowPlayingScreenSummary();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
package com.dkanada.gramophone.preferences;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEDialogPreference;
|
||||
|
||||
public class CategoryPreference extends ATEDialogPreference {
|
||||
public CategoryPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public CategoryPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public CategoryPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
public CategoryPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
}
|
||||
|
|
@ -19,6 +19,8 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
public class CategoryPreferenceDialog extends DialogFragment {
|
||||
public static final String TAG = CategoryPreferenceDialog.class.getSimpleName();
|
||||
|
||||
public static CategoryPreferenceDialog newInstance() {
|
||||
return new CategoryPreferenceDialog();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
package com.dkanada.gramophone.preferences;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEDialogPreference;
|
||||
|
||||
public class DirectPlayPreference extends ATEDialogPreference {
|
||||
public DirectPlayPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public DirectPlayPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public DirectPlayPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
public DirectPlayPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,8 @@ 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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
package com.dkanada.gramophone.preferences;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEDialogPreference;
|
||||
|
||||
public class NowPlayingScreenPreference extends ATEDialogPreference {
|
||||
public NowPlayingScreenPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public NowPlayingScreenPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public NowPlayingScreenPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
public NowPlayingScreenPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
}
|
||||
|
|
@ -23,6 +23,7 @@ import com.dkanada.gramophone.util.PreferenceUtil;
|
|||
import com.pixelcan.inkpageindicator.InkPageIndicator;
|
||||
|
||||
public class NowPlayingScreenPreferenceDialog extends DialogFragment implements MaterialDialog.SingleButtonCallback, ViewPager.OnPageChangeListener {
|
||||
public static final String TAG = NowPlayingScreenPreferenceDialog.class.getSimpleName();
|
||||
|
||||
private DialogAction whichButtonClicked;
|
||||
private int viewPagerPosition;
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_library">
|
||||
|
||||
<com.dkanada.gramophone.preferences.CategoryPreference
|
||||
<Preference
|
||||
app:iconSpaceReserved="false"
|
||||
android:key="library_categories"
|
||||
android:key="categories"
|
||||
android:summary="@string/pref_summary_categories"
|
||||
android:title="@string/pref_title_categories" />
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<com.kabouzeid.appthemehelper.common.prefs.supportv7.ATEPreferenceCategory android:title="@string/pref_header_now_playing_screen">
|
||||
|
||||
<com.dkanada.gramophone.preferences.NowPlayingScreenPreference
|
||||
<Preference
|
||||
app:iconSpaceReserved="false"
|
||||
android:key="now_playing_screen"
|
||||
android:title="@string/pref_title_now_playing_appearance" />
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
android:positiveButtonText="@null"
|
||||
android:title="@string/pref_title_transcode_codec" />
|
||||
|
||||
<com.dkanada.gramophone.preferences.DirectPlayPreference
|
||||
<Preference
|
||||
app:iconSpaceReserved="false"
|
||||
android:key="direct_play_codecs"
|
||||
android:summary="@string/pref_summary_direct_play_codecs"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue