From 1602d1b63290bc3c227d32801ee27808d2ba00dd Mon Sep 17 00:00:00 2001 From: Marvin W Date: Wed, 22 Feb 2017 04:05:19 +0100 Subject: [PATCH] Add new helpers for preferences --- .../microg/tools/ui/LongTextPreference.java | 51 ++++++++++++++ .../ui/SwitchBarResourceSettingsFragment.java | 70 +++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 microg-ui-tools/src/main/java/org/microg/tools/ui/LongTextPreference.java create mode 100644 microg-ui-tools/src/main/java/org/microg/tools/ui/SwitchBarResourceSettingsFragment.java diff --git a/microg-ui-tools/src/main/java/org/microg/tools/ui/LongTextPreference.java b/microg-ui-tools/src/main/java/org/microg/tools/ui/LongTextPreference.java new file mode 100644 index 00000000..99f57503 --- /dev/null +++ b/microg-ui-tools/src/main/java/org/microg/tools/ui/LongTextPreference.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * 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 org.microg.tools.ui; + +import android.content.Context; +import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceViewHolder; +import android.util.AttributeSet; +import android.widget.TextView; + +public class LongTextPreference extends Preference { + + public LongTextPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + public LongTextPreference(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public LongTextPreference(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public LongTextPreference(Context context) { + super(context); + } + + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + TextView view = (TextView) holder.findViewById(android.R.id.summary); + if (view != null) { + view.setMaxLines(Integer.MAX_VALUE); + } + } +} diff --git a/microg-ui-tools/src/main/java/org/microg/tools/ui/SwitchBarResourceSettingsFragment.java b/microg-ui-tools/src/main/java/org/microg/tools/ui/SwitchBarResourceSettingsFragment.java new file mode 100644 index 00000000..e7eea341 --- /dev/null +++ b/microg-ui-tools/src/main/java/org/microg/tools/ui/SwitchBarResourceSettingsFragment.java @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2017 microG Project Team + * + * 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 org.microg.tools.ui; + +import android.os.Bundle; +import android.support.v7.widget.SwitchCompat; + +public abstract class SwitchBarResourceSettingsFragment extends ResourceSettingsFragment implements SwitchBar.OnSwitchChangeListener { + protected SwitchBar switchBar; + private SwitchCompat switchCompat; + private boolean listenerSetup = false; + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + AbstractSettingsActivity activity = (AbstractSettingsActivity) getActivity(); + + switchBar = activity.getSwitchBar(); + switchBar.show(); + switchCompat = switchBar.getSwitch(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + switchBar.hide(); + } + + @Override + public void onResume() { + super.onResume(); + if (!listenerSetup) { + switchBar.addOnSwitchChangeListener(this); + listenerSetup = true; + } + } + + @Override + public void onPause() { + if (listenerSetup) { + switchBar.removeOnSwitchChangeListener(this); + listenerSetup = false; + } + super.onPause(); + } + + @Override + public void onSwitchChanged(SwitchCompat switchView, boolean isChecked) { + if (switchView == switchCompat) { + onSwitchBarChanged(isChecked); + } + } + + public abstract void onSwitchBarChanged(boolean isChecked); +}