From 4fbb455175d7cb4a28cf9ef6767b25dc0ba3a7e2 Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Sun, 9 Jun 2013 02:36:47 +0200 Subject: [PATCH] multiline support for checkbox preferences (see #358) --- .../iitc_mobile/IITC_PluginPreference.java | 34 +++++++++++++++++++ .../iitc_mobile/IITC_SettingsFragment.java | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 mobile/src/com/cradle/iitc_mobile/IITC_PluginPreference.java diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_PluginPreference.java b/mobile/src/com/cradle/iitc_mobile/IITC_PluginPreference.java new file mode 100644 index 00000000..fecc46e4 --- /dev/null +++ b/mobile/src/com/cradle/iitc_mobile/IITC_PluginPreference.java @@ -0,0 +1,34 @@ +package com.cradle.iitc_mobile; + +import android.content.Context; +import android.preference.CheckBoxPreference; +import android.util.AttributeSet; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +// multiline checkbox preference +public class IITC_PluginPreference extends CheckBoxPreference { + + public IITC_PluginPreference(Context context) { + super(context); + } + + protected void onBindView( View view) { + super.onBindView(view); + makeMultiline(view); + } + + protected void makeMultiline( View view) { + if ( view instanceof ViewGroup) { + ViewGroup grp=(ViewGroup)view; + for ( int index = 0; index < grp.getChildCount(); index++) { + makeMultiline(grp.getChildAt(index)); + } + } else if (view instanceof TextView) { + TextView t = (TextView)view; + t.setSingleLine(false); + t.setEllipsize(null); + } + } +} diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_SettingsFragment.java b/mobile/src/com/cradle/iitc_mobile/IITC_SettingsFragment.java index 354af173..0eb33ec8 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_SettingsFragment.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_SettingsFragment.java @@ -175,7 +175,7 @@ public class IITC_SettingsFragment extends PreferenceFragment { } // now build a new checkable preference for the plugin - CheckBoxPreference plugin_pref = new CheckBoxPreference(pref_screen.getContext()); + IITC_PluginPreference plugin_pref = new IITC_PluginPreference(pref_screen.getContext()); plugin_pref.setKey(plugin_key); plugin_pref.setTitle(plugin_name); plugin_pref.setSummary(plugin_desc);