diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-05-15 19:53:08 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2014-05-15 19:56:57 -0700 |
commit | 7ba17ab12c90c24cf0baa6644a64c962cb92b699 (patch) | |
tree | 58cb5fc9f1e97816e6a64d540ca65c9556dc5ac0 /src/com/android/settings/print | |
parent | 105947d0a902926bf66f2feda312179270e8f8c2 (diff) | |
download | packages_apps_Settings-7ba17ab12c90c24cf0baa6644a64c962cb92b699.zip packages_apps_Settings-7ba17ab12c90c24cf0baa6644a64c962cb92b699.tar.gz packages_apps_Settings-7ba17ab12c90c24cf0baa6644a64c962cb92b699.tar.bz2 |
Use SwitchBar for Print Settings
- follow up CL to 41937766981423c9252e12e3319b2e7532739627
Related to bug #14898161 On/Off switches must move down from Action Bar
Change-Id: Ife4990a52ef282563267dc0bff6d3a7f354b0bd0
Diffstat (limited to 'src/com/android/settings/print')
-rw-r--r-- | src/com/android/settings/print/PrintServiceSettingsFragment.java | 62 | ||||
-rw-r--r-- | src/com/android/settings/print/PrintSettingsFragment.java | 31 |
2 files changed, 23 insertions, 70 deletions
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java index ab162fb..3e1dd0f 100644 --- a/src/com/android/settings/print/PrintServiceSettingsFragment.java +++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java @@ -16,7 +16,6 @@ package com.android.settings.print; -import android.app.ActionBar; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; @@ -45,7 +44,6 @@ import android.print.PrinterId; import android.print.PrinterInfo; import android.text.TextUtils; import android.util.Log; -import android.view.Gravity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -53,30 +51,31 @@ import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityManager; import android.widget.BaseAdapter; -import android.widget.CompoundButton; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.ListView; import android.widget.SearchView; +import android.widget.Switch; import android.widget.TextView; import com.android.settings.R; +import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.print.PrintSettingsFragment.ToggleSwitch; -import com.android.settings.print.PrintSettingsFragment.ToggleSwitch.OnBeforeCheckedChangeListener; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import android.widget.CompoundButton.OnCheckedChangeListener; +import com.android.settings.widget.SwitchBar; +import com.android.settings.widget.ToggleSwitch; + /** * Fragment with print service settings. */ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment - implements DialogInterface.OnClickListener { + implements DialogInterface.OnClickListener, SwitchBar.OnSwitchChangeListener { private static final int LOADER_ID_PRINTERS_LOADER = 1; @@ -112,6 +111,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment } }; + private SwitchBar mSwitchBar; private ToggleSwitch mToggleSwitch; private String mPreferenceKey; @@ -161,16 +161,17 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment @Override public void onStart() { super.onStart(); - setupActionBarToggleSwitch(getActivity(), mToggleSwitch); + mSwitchBar.addOnSwitchChangeListener(this); + mSwitchBar.show(); } @Override public void onDestroyView() { - removeActionBarToggleSwitch(getActivity()); if (mOldActivityTitle != null) { getActivity().getActionBar().setTitle(mOldActivityTitle); } - mToggleSwitch.setOnBeforeCheckedChangeListener(null); + mSwitchBar.removeOnSwitchChangeListener(this); + mSwitchBar.hide(); super.onDestroyView(); } @@ -294,8 +295,12 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment mPrintersAdapter = new PrintersAdapter(); mPrintersAdapter.registerDataSetObserver(mDataObserver); - mToggleSwitch = createActionBarToggleSwitch(getActivity().getActionBar().getThemedContext()); - mToggleSwitch.setOnBeforeCheckedChangeListener(new OnBeforeCheckedChangeListener() { + final SettingsActivity activity = (SettingsActivity) getActivity(); + + mSwitchBar = activity.getSwitchBar(); + + mToggleSwitch = mSwitchBar.getSwitch(); + mToggleSwitch.setOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() { @Override public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) { if (checked) { @@ -312,17 +317,17 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment return false; } }); - mToggleSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - updateEmptyView(); - } - }); getListView().setSelector(new ColorDrawable(Color.TRANSPARENT)); getListView().setAdapter(mPrintersAdapter); } + + @Override + public void onSwitchChanged(Switch switchView, boolean isChecked) { + updateEmptyView(); + } + private void updateUiForArguments() { Bundle arguments = getArguments(); @@ -445,27 +450,6 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment } } - private ToggleSwitch createActionBarToggleSwitch(Context context) { - ToggleSwitch toggleSwitch = new ToggleSwitch(context); - final int padding = context.getResources().getDimensionPixelSize( - R.dimen.action_bar_switch_padding); - toggleSwitch.setPaddingRelative(0, 0, padding, 0); - return toggleSwitch; - } - - private void setupActionBarToggleSwitch(Activity activity, ToggleSwitch toggleSwitch) { - activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, - ActionBar.DISPLAY_SHOW_CUSTOM); - activity.getActionBar().setCustomView(toggleSwitch, - new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, - ActionBar.LayoutParams.WRAP_CONTENT, - Gravity.CENTER_VERTICAL | Gravity.END)); - } - - private void removeActionBarToggleSwitch(Activity activity) { - activity.getActionBar().setCustomView(null); - } - private static abstract class SettingsContentObserver extends ContentObserver { public SettingsContentObserver(Handler handler) { diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java index 07e70d8..3f7362c 100644 --- a/src/com/android/settings/print/PrintSettingsFragment.java +++ b/src/com/android/settings/print/PrintSettingsFragment.java @@ -50,7 +50,6 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Switch; import android.widget.TextView; import com.android.internal.content.PackageMonitor; @@ -294,36 +293,6 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment } } - public static class ToggleSwitch extends Switch { - - private OnBeforeCheckedChangeListener mOnBeforeListener; - - public static interface OnBeforeCheckedChangeListener { - public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked); - } - - public ToggleSwitch(Context context) { - super(context); - } - - public void setOnBeforeCheckedChangeListener(OnBeforeCheckedChangeListener listener) { - mOnBeforeListener = listener; - } - - @Override - public void setChecked(boolean checked) { - if (mOnBeforeListener != null - && mOnBeforeListener.onBeforeCheckedChanged(this, checked)) { - return; - } - super.setChecked(checked); - } - - public void setCheckedInternal(boolean checked) { - super.setChecked(checked); - } - } - private static abstract class SettingsContentObserver extends ContentObserver { public SettingsContentObserver(Handler handler) { |