瀏覽代碼

Merge pull request #441 from owncloud/allow_multiline_checkbox_preferences_pr_395_with_develop

Allow multiline preferences, not just checkboxes
David A. Velasco 11 年之前
父節點
當前提交
f5a9c9600e

+ 2 - 2
res/xml/preferences.xml

@@ -25,8 +25,8 @@
         android:title="@string/prefs_select_oc_account"
         android:summary="@string/prefs_summary_select_oc_account" 
         / -->
-    <Preference android:title="@string/prefs_manage_accounts" android:key="manage_account" />
-    <CheckBoxPreference android:title="@string/prefs_pincode" android:key="set_pincode" 
+    <com.owncloud.android.ui.PreferenceMultiline android:title="@string/prefs_manage_accounts" android:key="manage_account" />
+    <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle android:title="@string/prefs_pincode" android:key="set_pincode" 
                         android:summary="@string/prefs_pincode_summary"/>
     <com.owncloud.android.ui.CheckBoxPreferenceWithLongTitle android:key="instant_uploading" 
                         android:title="@string/prefs_instant_upload"  

+ 5 - 3
src/com/owncloud/android/ui/CheckBoxPreferenceWithLongTitle.java

@@ -1,6 +1,5 @@
 /* ownCloud Android client application
- *   Copyright (C) 2011  Bartek Przybylski
- *   Copyright (C) 2012-2013 ownCloud Inc.
+ *   Copyright (C) 2014 ownCloud Inc.
  *
  *   This program is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License version 2,
@@ -15,7 +14,9 @@
  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
+
 package com.owncloud.android.ui;
+
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
@@ -39,7 +40,8 @@ public class CheckBoxPreferenceWithLongTitle extends CheckBoxPreference{
     protected void onBindView(View view) {
         super.onBindView(view);
         TextView titleView = (TextView) view.findViewById(android.R.id.title);
-	titleView.setSingleLine(false);
+        titleView.setSingleLine(false);
         titleView.setMaxLines(3);
+        titleView.setEllipsize(null);
     }
 }

+ 53 - 0
src/com/owncloud/android/ui/PreferenceMultiline.java

@@ -0,0 +1,53 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2014 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui;
+
+import android.content.Context;
+import android.preference.Preference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+/**
+ * Allow multiline titles in preferences
+ * 
+ * @author masensio
+ *
+ */
+public class PreferenceMultiline extends Preference {
+
+    public PreferenceMultiline(Context context) {
+        super(context);
+    }
+
+    public PreferenceMultiline(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public PreferenceMultiline(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    @Override
+    protected void onBindView(View view) {
+        super.onBindView(view);
+        TextView titleView = (TextView) view.findViewById(android.R.id.title);
+        titleView.setSingleLine(false);
+        titleView.setMaxLines(3);
+    }
+}