From 61341cf61e0ce8050ad2216c6cb06b8a80a9c766 Mon Sep 17 00:00:00 2001 From: maxwen <max.weninger@gmail.com> Date: Sun, 6 Oct 2019 23:13:52 +0200 Subject: [PATCH] Navbar: Fix navbar layout switch and remove old cruft [2/2] Change-Id: Ie08dfa88f258fa9a2894f2e362d081217b0f1514 Signed-off-by: SagarMakhar <sagarmakhar@gmail.com> Signed-off-by: spezi77 <spezi7713@gmx.net> --- .../SystemUI/res/values/lmodroid_strings.xml | 1 + packages/SystemUI/res/xml/nav_bar_tuner.xml | 42 +---- .../NavigationBarInflaterView.java | 21 +++ .../systemui/tuner/CustomListPreference.java | 170 ------------------ .../android/systemui/tuner/NavBarTuner.java | 140 +-------------- .../systemui/tuner/RadioListPreference.java | 146 --------------- .../tuner/TunerPreferenceFragment.java | 36 ---- 7 files changed, 28 insertions(+), 528 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/tuner/CustomListPreference.java delete mode 100644 packages/SystemUI/src/com/android/systemui/tuner/RadioListPreference.java delete mode 100644 packages/SystemUI/src/com/android/systemui/tuner/TunerPreferenceFragment.java diff --git a/packages/SystemUI/res/values/lmodroid_strings.xml b/packages/SystemUI/res/values/lmodroid_strings.xml index e7da5cf19163..57b5a0b0c2e8 100644 --- a/packages/SystemUI/res/values/lmodroid_strings.xml +++ b/packages/SystemUI/res/values/lmodroid_strings.xml @@ -89,6 +89,7 @@ <!-- Navbar --> <string name="systemui_tuner_navbar_title">Layout</string> + <string name="navigation_bar_format_title">Navbar format</string> <!-- WiFi standard numbering on statusbar --> <string name="status_bar_wifi_standard">Wi-Fi standard number</string> diff --git a/packages/SystemUI/res/xml/nav_bar_tuner.xml b/packages/SystemUI/res/xml/nav_bar_tuner.xml index ff423ca26bc8..a1bbc2fde8fc 100644 --- a/packages/SystemUI/res/xml/nav_bar_tuner.xml +++ b/packages/SystemUI/res/xml/nav_bar_tuner.xml @@ -18,50 +18,12 @@ xmlns:sysui="http://schemas.android.com/apk/res-auto" android:title="@string/systemui_tuner_navbar_title"> - <com.android.systemui.tuner.RadioListPreference + <ListPreference android:key="layout" - android:title="@string/nav_bar_layout" + android:title="@string/navigation_bar_format_title" android:summary="%s" android:persistent="false" android:entries="@array/nav_bar_layouts" android:entryValues="@array/nav_bar_layouts_values" /> - <com.android.systemui.tuner.RadioListPreference - android:key="type_left" - android:title="@string/left_nav_bar_button_type" - android:persistent="false" - android:summary="%s" - android:entries="@array/nav_bar_buttons" - android:entryValues="@array/nav_bar_button_values" /> - - <Preference - android:key="keycode_left" - android:persistent="false" - android:title="@string/left_keycode" /> - - <com.android.systemui.tuner.RadioListPreference - android:key="icon_left" - android:persistent="false" - android:summary="%s" - android:title="@string/left_icon" /> - - <com.android.systemui.tuner.RadioListPreference - android:key="type_right" - android:title="@string/right_nav_bar_button_type" - android:summary="%s" - android:persistent="false" - android:entries="@array/nav_bar_buttons" - android:entryValues="@array/nav_bar_button_values" /> - - <Preference - android:key="keycode_right" - android:persistent="false" - android:title="@string/right_keycode" /> - - <com.android.systemui.tuner.RadioListPreference - android:key="icon_right" - android:persistent="false" - android:summary="%s" - android:title="@string/right_icon" /> - </PreferenceScreen> diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java index be88f96ed957..55ccf8f1efab 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarInflaterView.java @@ -139,6 +139,8 @@ public class NavigationBarInflaterView extends FrameLayout { private final ContentObserver mContentObserver; + private boolean mUsingCustomLayout; + public NavigationBarInflaterView(Context context, AttributeSet attrs) { super(context, attrs); createInflaters(); @@ -162,6 +164,11 @@ public class NavigationBarInflaterView extends FrameLayout { mContext.getMainExecutor().execute(() -> { onLikelyDefaultLayoutChange(); }); + } else if (Settings.Secure.getUriFor(NAV_BAR_VIEWS).equals(uri)) { + mContext.getMainExecutor().execute(() -> { + setNavigationBarLayout(Settings.Secure.getString(mContext.getContentResolver(), + NAV_BAR_VIEWS)); + }); } } }; @@ -218,12 +225,16 @@ public class NavigationBarInflaterView extends FrameLayout { Uri navBarInverse = Settings.Secure.getUriFor(NAV_BAR_INVERSE); Uri navigationBarHint = Settings.System.getUriFor( LMOSettings.System.NAVIGATION_BAR_HINT); + Uri navigationBarView = Settings.Secure.getUriFor(NAV_BAR_VIEWS); mContext.getContentResolver().registerContentObserver(navBarInverse, false, mContentObserver); mContext.getContentResolver().registerContentObserver(navigationBarHint, false, mContentObserver); + mContext.getContentResolver().registerContentObserver(navigationBarView, false, + mContentObserver); mContentObserver.onChange(true, navBarInverse); mContentObserver.onChange(true, navigationBarHint); + mContentObserver.onChange(true, navigationBarView); } @Override @@ -239,7 +250,17 @@ public class NavigationBarInflaterView extends FrameLayout { updateLayoutInversion(); } + public void setNavigationBarLayout(String layoutValue) { + if (!Objects.equals(mCurrentLayout, layoutValue)) { + mUsingCustomLayout = layoutValue != null; + clearViews(); + inflateLayout(layoutValue); + } + } + public void onLikelyDefaultLayoutChange() { + // Don't override custom layouts + if (mUsingCustomLayout) return; // Reevaluate new layout final String newValue = getDefaultLayout(); if (!Objects.equals(mCurrentLayout, newValue)) { diff --git a/packages/SystemUI/src/com/android/systemui/tuner/CustomListPreference.java b/packages/SystemUI/src/com/android/systemui/tuner/CustomListPreference.java deleted file mode 100644 index ade1f8258335..000000000000 --- a/packages/SystemUI/src/com/android/systemui/tuner/CustomListPreference.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.systemui.tuner; - -import android.app.AlertDialog; -import android.app.Dialog; -import android.app.DialogFragment; -import android.content.Context; -import android.content.DialogInterface; -import android.content.DialogInterface.OnClickListener; -import android.os.Bundle; -import android.util.AttributeSet; - -import androidx.preference.ListPreference; -import androidx.preference.ListPreferenceDialogFragment; - -public class CustomListPreference extends ListPreference { - - public CustomListPreference(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public CustomListPreference(Context context, AttributeSet attrs, int defStyleAttr, - int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - protected void onPrepareDialogBuilder(AlertDialog.Builder builder, - OnClickListener listener) { - } - - protected void onDialogClosed(boolean positiveResult) { - } - - protected Dialog onDialogCreated(DialogFragment fragment, Dialog dialog) { - return dialog; - } - - protected boolean isAutoClosePreference() { - return true; - } - - /** - * Called when a user is about to choose the given value, to determine if we - * should show a confirmation dialog. - * - * @param value the value the user is about to choose - * @return the message to show in a confirmation dialog, or {@code null} to - * not request confirmation - */ - protected CharSequence getConfirmationMessage(String value) { - return null; - } - - protected void onDialogStateRestored(DialogFragment fragment, Dialog dialog, - Bundle savedInstanceState) { - } - - public static class CustomListPreferenceDialogFragment extends ListPreferenceDialogFragment { - - private static final String KEY_CLICKED_ENTRY_INDEX - = "settings.CustomListPrefDialog.KEY_CLICKED_ENTRY_INDEX"; - - private int mClickedDialogEntryIndex; - - public static ListPreferenceDialogFragment newInstance(String key) { - final ListPreferenceDialogFragment fragment = new CustomListPreferenceDialogFragment(); - final Bundle b = new Bundle(1); - b.putString(ARG_KEY, key); - fragment.setArguments(b); - return fragment; - } - - public CustomListPreference getCustomizablePreference() { - return (CustomListPreference) getPreference(); - } - - @Override - protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { - super.onPrepareDialogBuilder(builder); - mClickedDialogEntryIndex = getCustomizablePreference() - .findIndexOfValue(getCustomizablePreference().getValue()); - getCustomizablePreference().onPrepareDialogBuilder(builder, getOnItemClickListener()); - if (!getCustomizablePreference().isAutoClosePreference()) { - builder.setPositiveButton(com.android.internal.R.string.ok, new OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - onItemConfirmed(); - } - }); - } - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - Dialog dialog = super.onCreateDialog(savedInstanceState); - if (savedInstanceState != null) { - mClickedDialogEntryIndex = savedInstanceState.getInt(KEY_CLICKED_ENTRY_INDEX, - mClickedDialogEntryIndex); - } - return getCustomizablePreference().onDialogCreated(this, dialog); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putInt(KEY_CLICKED_ENTRY_INDEX, mClickedDialogEntryIndex); - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - getCustomizablePreference().onDialogStateRestored(this, getDialog(), savedInstanceState); - } - - protected OnClickListener getOnItemClickListener() { - return new OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - setClickedDialogEntryIndex(which); - if (getCustomizablePreference().isAutoClosePreference()) { - onItemConfirmed(); - } - } - }; - } - - protected void setClickedDialogEntryIndex(int which) { - mClickedDialogEntryIndex = which; - } - - private String getValue() { - final ListPreference preference = getCustomizablePreference(); - if (mClickedDialogEntryIndex >= 0 && preference.getEntryValues() != null) { - return preference.getEntryValues()[mClickedDialogEntryIndex].toString(); - } else { - return null; - } - } - - protected void onItemConfirmed() { - onClick(getDialog(), DialogInterface.BUTTON_POSITIVE); - getDialog().dismiss(); - } - - @Override - public void onDialogClosed(boolean positiveResult) { - getCustomizablePreference().onDialogClosed(positiveResult); - final ListPreference preference = getCustomizablePreference(); - final String value = getValue(); - if (positiveResult && value != null) { - if (preference.callChangeListener(value)) { - preference.setValue(value); - } - } - } - } -} diff --git a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java index ec6f86297bae..96ce68143f3a 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/NavBarTuner.java @@ -44,6 +44,7 @@ import android.widget.EditText; import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.Preference.OnPreferenceChangeListener; +import androidx.preference.PreferenceFragment; import com.android.systemui.Dependency; import com.android.systemui.res.R; @@ -51,25 +52,9 @@ import com.android.systemui.tuner.TunerService.Tunable; import java.util.ArrayList; -@Deprecated -public class NavBarTuner extends TunerPreferenceFragment { +public class NavBarTuner extends PreferenceFragment { private static final String LAYOUT = "layout"; - private static final String LEFT = "left"; - private static final String RIGHT = "right"; - - private static final String TYPE = "type"; - private static final String KEYCODE = "keycode"; - private static final String ICON = "icon"; - - private static final int[][] ICONS = new int[][]{ - {R.drawable.ic_qs_circle, R.string.tuner_circle}, - {R.drawable.ic_add, R.string.tuner_plus}, - {R.drawable.ic_remove, R.string.tuner_minus}, - {R.drawable.ic_left, R.string.tuner_left}, - {R.drawable.ic_right, R.string.tuner_right}, - {R.drawable.ic_menu, R.string.tuner_menu}, - }; private final ArrayList<Tunable> mTunables = new ArrayList<>(); private Handler mHandler; @@ -90,8 +75,6 @@ public class NavBarTuner extends TunerPreferenceFragment { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.nav_bar_tuner); bindLayout((ListPreference) findPreference(LAYOUT)); - bindButton(NAV_BAR_LEFT, NAVSPACE, LEFT); - bindButton(NAV_BAR_RIGHT, MENU_IME_ROTATE, RIGHT); } @Override @@ -115,126 +98,11 @@ public class NavBarTuner extends TunerPreferenceFragment { }), NAV_BAR_VIEWS); preference.setOnPreferenceChangeListener((preference1, newValue) -> { String val = (String) newValue; + int valueIndex = preference.findIndexOfValue(val); + preference.setSummary(preference.getEntries()[valueIndex]); if ("default".equals(val)) val = null; Dependency.get(TunerService.class).setValue(NAV_BAR_VIEWS, val); return true; }); } - - private void bindButton(String setting, String def, String k) { - ListPreference type = (ListPreference) findPreference(TYPE + "_" + k); - Preference keycode = findPreference(KEYCODE + "_" + k); - ListPreference icon = (ListPreference) findPreference(ICON + "_" + k); - setupIcons(icon); - addTunable((key, newValue) -> mHandler.post(() -> { - String val = newValue; - if (val == null) { - val = def; - } - String button = extractButton(val); - if (button.startsWith(KEY)) { - type.setValue(KEY); - String uri = extractImage(button); - int code = extractKeycode(button); - icon.setValue(uri); - updateSummary(icon); - keycode.setSummary(code + ""); - keycode.setVisible(true); - icon.setVisible(true); - } else { - type.setValue(button); - keycode.setVisible(false); - icon.setVisible(false); - } - }), setting); - OnPreferenceChangeListener listener = (preference, newValue) -> { - mHandler.post(() -> { - setValue(setting, type, keycode, icon); - updateSummary(icon); - }); - return true; - }; - type.setOnPreferenceChangeListener(listener); - icon.setOnPreferenceChangeListener(listener); - keycode.setOnPreferenceClickListener(preference -> { - EditText editText = new EditText(getContext()); - new AlertDialog.Builder(getContext()) - .setTitle(preference.getTitle()) - .setView(editText) - .setNegativeButton(android.R.string.cancel, null) - .setPositiveButton(android.R.string.ok, (dialog, which) -> { - int code = KeyEvent.KEYCODE_ENTER; - try { - code = Integer.parseInt(editText.getText().toString()); - } catch (Exception e) { - } - keycode.setSummary(code + ""); - setValue(setting, type, keycode, icon); - }).show(); - return true; - }); - } - - private void updateSummary(ListPreference icon) { - try { - int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, - getContext().getResources().getDisplayMetrics()); - String pkg = icon.getValue().split("/")[0]; - int id = Integer.parseInt(icon.getValue().split("/")[1]); - SpannableStringBuilder builder = new SpannableStringBuilder(); - Drawable d = Icon.createWithResource(pkg, id) - .loadDrawable(getContext()); - d.setTint(Color.BLACK); - d.setBounds(0, 0, size, size); - ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); - builder.append(" ", span, 0); - builder.append(" "); - for (int i = 0; i < ICONS.length; i++) { - if (ICONS[i][0] == id) { - builder.append(getString(ICONS[i][1])); - } - } - icon.setSummary(builder); - } catch (Exception e) { - Log.d("NavButton", "Problem with summary", e); - icon.setSummary(null); - } - } - - private void setValue(String setting, ListPreference type, Preference keycode, - ListPreference icon) { - String button = type.getValue(); - if (KEY.equals(button)) { - String uri = icon.getValue(); - int code = KeyEvent.KEYCODE_ENTER; - try { - code = Integer.parseInt(keycode.getSummary().toString()); - } catch (Exception e) { - } - button = button + KEY_CODE_START + code + KEY_IMAGE_DELIM + uri + KEY_CODE_END; - } - Dependency.get(TunerService.class).setValue(setting, button); - } - - private void setupIcons(ListPreference icon) { - CharSequence[] labels = new CharSequence[ICONS.length]; - CharSequence[] values = new CharSequence[ICONS.length]; - int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, - getContext().getResources().getDisplayMetrics()); - for (int i = 0; i < ICONS.length; i++) { - SpannableStringBuilder builder = new SpannableStringBuilder(); - Drawable d = Icon.createWithResource(getContext().getPackageName(), ICONS[i][0]) - .loadDrawable(getContext()); - d.setTint(Color.BLACK); - d.setBounds(0, 0, size, size); - ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); - builder.append(" ", span, 0); - builder.append(" "); - builder.append(getString(ICONS[i][1])); - labels[i] = builder; - values[i] = getContext().getPackageName() + "/" + ICONS[i][0]; - } - icon.setEntries(labels); - icon.setEntryValues(values); - } } diff --git a/packages/SystemUI/src/com/android/systemui/tuner/RadioListPreference.java b/packages/SystemUI/src/com/android/systemui/tuner/RadioListPreference.java deleted file mode 100644 index 20ce23077cdd..000000000000 --- a/packages/SystemUI/src/com/android/systemui/tuner/RadioListPreference.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.systemui.tuner; - -import android.app.AlertDialog.Builder; -import android.app.Dialog; -import android.app.DialogFragment; -import android.content.Context; -import android.content.DialogInterface.OnClickListener; -import android.os.Bundle; -import android.util.AttributeSet; -import android.view.View; -import android.widget.Toolbar; - -import androidx.preference.Preference; -import androidx.preference.PreferenceScreen; - -import com.android.settingslib.Utils; -import com.android.systemui.Dependency; -import com.android.systemui.res.R; -import com.android.systemui.fragments.FragmentService; - -import java.util.Objects; - -public class RadioListPreference extends CustomListPreference { - - private OnClickListener mOnClickListener; - private CharSequence mSummary; - - public RadioListPreference(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onPrepareDialogBuilder(Builder builder, OnClickListener listener) { - mOnClickListener = listener; - } - - @Override - public void setSummary(CharSequence summary) { - super.setSummary(summary); - mSummary = summary; - } - - @Override - public CharSequence getSummary() { - if (mSummary == null || mSummary.toString().contains("%s")) { - return super.getSummary(); - } - return mSummary; - } - - @Override - protected Dialog onDialogCreated(DialogFragment fragment, Dialog dialog) { - Dialog d = new Dialog(getContext(), android.R.style.Theme_DeviceDefault_Settings); - Toolbar t = (Toolbar) d.findViewById(com.android.internal.R.id.action_bar); - View v = new View(getContext()); - v.setId(R.id.content); - d.setContentView(v); - t.setTitle(getTitle()); - t.setNavigationIcon(Utils.getDrawable(d.getContext(), android.R.attr.homeAsUpIndicator)); - t.setNavigationOnClickListener(view -> d.dismiss()); - - RadioFragment f = new RadioFragment(); - f.setPreference(this); - Dependency.get(FragmentService.class).getFragmentHostManager(v).getFragmentManager() - .beginTransaction() - .add(android.R.id.content, f) - .commit(); - return d; - } - - @Override - protected void onDialogStateRestored(DialogFragment fragment, Dialog dialog, - Bundle savedInstanceState) { - super.onDialogStateRestored(fragment, dialog, savedInstanceState); - View view = dialog.findViewById(R.id.content); - RadioFragment radioFragment = (RadioFragment) Dependency.get(FragmentService.class) - .getFragmentHostManager(view) - .getFragmentManager() - .findFragmentById(R.id.content); - if (radioFragment != null) { - radioFragment.setPreference(this); - } - } - - @Override - protected void onDialogClosed(boolean positiveResult) { - super.onDialogClosed(positiveResult); - } - - public static class RadioFragment extends TunerPreferenceFragment { - private RadioListPreference mListPref; - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - Context context = getPreferenceManager().getContext(); - PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(context); - setPreferenceScreen(screen); - if (mListPref != null) { - update(); - } - } - - private void update() { - Context context = getPreferenceManager().getContext(); - - CharSequence[] entries = mListPref.getEntries(); - CharSequence[] values = mListPref.getEntryValues(); - CharSequence current = mListPref.getValue(); - for (int i = 0; i < entries.length; i++) { - CharSequence entry = entries[i]; - SelectablePreference pref = new SelectablePreference(context); - getPreferenceScreen().addPreference(pref); - pref.setTitle(entry); - pref.setChecked(Objects.equals(current, values[i])); - pref.setKey(String.valueOf(i)); - } - } - - @Override - public boolean onPreferenceTreeClick(Preference preference) { - mListPref.mOnClickListener.onClick(null, Integer.parseInt(preference.getKey())); - return true; - } - - public void setPreference(RadioListPreference radioListPreference) { - mListPref = radioListPreference; - if (getPreferenceManager() != null) { - update(); - } - } - } -} diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerPreferenceFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerPreferenceFragment.java deleted file mode 100644 index 9cc8943aa6de..000000000000 --- a/packages/SystemUI/src/com/android/systemui/tuner/TunerPreferenceFragment.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.systemui.tuner; - -import android.app.DialogFragment; - -import androidx.preference.Preference; -import androidx.preference.PreferenceFragment; - -public abstract class TunerPreferenceFragment extends PreferenceFragment { - - @Override - public void onDisplayPreferenceDialog(Preference preference) { - DialogFragment f = null; - if (preference instanceof CustomListPreference) { - f = CustomListPreference.CustomListPreferenceDialogFragment - .newInstance(preference.getKey()); - } else { - super.onDisplayPreferenceDialog(preference); - } - f.setTargetFragment(this, 0); - f.show(getFragmentManager(), "dialog_preference"); - } -} -- GitLab