Loading res/values/attrs.xml +5 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ <attr name="footerPreferenceStyle" format="reference" /> <declare-styleable name="FixedLineSummaryPreference"> <attr name="summaryLineCount" format="integer" /> </declare-styleable> <!-- For Search --> <declare-styleable name="Preference"> <attr name="keywords" format="string" /> Loading res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -8432,7 +8432,7 @@ <!-- Preference menu title for accessing the deletion helper from the storage manager settings. [CHAR LIMIT=30]--> <string name="deletion_helper_preference_title">Free up space now</string> <!-- Preference title for gesture settings [CHAR LIMIT=25]--> <!-- Preference title for gesture settings [CHAR LIMIT=40]--> <string name="gesture_preference_title">Gesture shortcuts</string> <!-- Preference summary for gesture settings (phone) [CHAR LIMIT=NONE]--> res/xml/installed_app_details.xml +7 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,9 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <com.android.settings.applications.LayoutPreference android:key="header_view" Loading @@ -40,11 +42,12 @@ android:title="@string/notifications_label" android:selectable="true"/> <com.android.settings.widget.SingleLineSummaryPreference <com.android.settings.widget.FixedLineSummaryPreference android:key="permission_settings" android:title="@string/permissions_label" android:summary="@string/summary_placeholder" android:selectable="true"/> android:summary="@string/summary_two_lines_placeholder" android:selectable="true" app:summaryLineCount="2" /> <Preference android:key="storage_settings" Loading src/com/android/settings/widget/SingleLineSummaryPreference.java→src/com/android/settings/widget/FixedLineSummaryPreference.java +21 −3 Original line number Diff line number Diff line Loading @@ -15,19 +15,36 @@ package com.android.settings.widget; import android.content.Context; import android.content.res.TypedArray; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceViewHolder; import android.text.TextUtils.TruncateAt; import android.util.AttributeSet; import android.widget.TextView; import com.android.settings.R; /** * A preference whose summary text will only span one single line. */ public class SingleLineSummaryPreference extends Preference { public class FixedLineSummaryPreference extends Preference { private int mSummaryLineCount; public SingleLineSummaryPreference(Context context, AttributeSet attrs) { public FixedLineSummaryPreference(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FixedLineSummaryPreference, 0, 0); if (a.hasValue(R.styleable.FixedLineSummaryPreference_summaryLineCount)) { mSummaryLineCount = a.getInteger( R.styleable.FixedLineSummaryPreference_summaryLineCount, 1); } else { mSummaryLineCount = 1; } } public void setSummaryLineCount(int count) { mSummaryLineCount = count; } @Override Loading @@ -35,7 +52,8 @@ public class SingleLineSummaryPreference extends Preference { super.onBindViewHolder(holder); TextView summary = (TextView) holder.findViewById(android.R.id.summary); if (summary != null) { summary.setSingleLine(); summary.setMinLines(mSummaryLineCount); summary.setMaxLines(mSummaryLineCount); summary.setEllipsize(TruncateAt.END); } } Loading tests/robotests/src/com/android/settings/widget/SingleLineSummaryPreferenceTest.java→tests/robotests/src/com/android/settings/widget/FixedLineSummaryPreferenceTest.java +23 −12 Original line number Diff line number Diff line Loading @@ -15,19 +15,16 @@ */ package com.android.settings.widget; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.support.v7.preference.PreferenceViewHolder; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.widget.SingleLineSummaryPreference; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -36,22 +33,27 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class SingleLineSummaryPreferenceTest { public class FixedLineSummaryPreferenceTest { @Mock private TextView mSummary; @Mock private TextView mSummary; private Context mContext; private PreferenceViewHolder mHolder; private SingleLineSummaryPreference mPreference; private FixedLineSummaryPreference mPreference; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mPreference = new SingleLineSummaryPreference(mContext, null); mPreference = new FixedLineSummaryPreference(mContext, null); LayoutInflater inflater = LayoutInflater.from(mContext); final View view = inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext), false); Loading @@ -62,8 +64,17 @@ public class SingleLineSummaryPreferenceTest { @Test public void onBindViewHolder_shouldSetSingleLine() { mPreference.onBindViewHolder(mHolder); final TextView summary = (TextView) mHolder.findViewById(android.R.id.summary); verify(mSummary).setSingleLine(); verify(mSummary).setMinLines(1); verify(mSummary).setMaxLines(1); } @Test public void onBindViewHolder_TwoLineSummary_shouldSetTwoLines() { mPreference.setSummaryLineCount(2); mPreference.onBindViewHolder(mHolder); verify(mSummary).setMinLines(2); verify(mSummary).setMaxLines(2); } } Loading
res/values/attrs.xml +5 −1 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ <attr name="footerPreferenceStyle" format="reference" /> <declare-styleable name="FixedLineSummaryPreference"> <attr name="summaryLineCount" format="integer" /> </declare-styleable> <!-- For Search --> <declare-styleable name="Preference"> <attr name="keywords" format="string" /> Loading
res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -8432,7 +8432,7 @@ <!-- Preference menu title for accessing the deletion helper from the storage manager settings. [CHAR LIMIT=30]--> <string name="deletion_helper_preference_title">Free up space now</string> <!-- Preference title for gesture settings [CHAR LIMIT=25]--> <!-- Preference title for gesture settings [CHAR LIMIT=40]--> <string name="gesture_preference_title">Gesture shortcuts</string> <!-- Preference summary for gesture settings (phone) [CHAR LIMIT=NONE]-->
res/xml/installed_app_details.xml +7 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,9 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <com.android.settings.applications.LayoutPreference android:key="header_view" Loading @@ -40,11 +42,12 @@ android:title="@string/notifications_label" android:selectable="true"/> <com.android.settings.widget.SingleLineSummaryPreference <com.android.settings.widget.FixedLineSummaryPreference android:key="permission_settings" android:title="@string/permissions_label" android:summary="@string/summary_placeholder" android:selectable="true"/> android:summary="@string/summary_two_lines_placeholder" android:selectable="true" app:summaryLineCount="2" /> <Preference android:key="storage_settings" Loading
src/com/android/settings/widget/SingleLineSummaryPreference.java→src/com/android/settings/widget/FixedLineSummaryPreference.java +21 −3 Original line number Diff line number Diff line Loading @@ -15,19 +15,36 @@ package com.android.settings.widget; import android.content.Context; import android.content.res.TypedArray; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceViewHolder; import android.text.TextUtils.TruncateAt; import android.util.AttributeSet; import android.widget.TextView; import com.android.settings.R; /** * A preference whose summary text will only span one single line. */ public class SingleLineSummaryPreference extends Preference { public class FixedLineSummaryPreference extends Preference { private int mSummaryLineCount; public SingleLineSummaryPreference(Context context, AttributeSet attrs) { public FixedLineSummaryPreference(Context context, AttributeSet attrs) { super(context, attrs); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FixedLineSummaryPreference, 0, 0); if (a.hasValue(R.styleable.FixedLineSummaryPreference_summaryLineCount)) { mSummaryLineCount = a.getInteger( R.styleable.FixedLineSummaryPreference_summaryLineCount, 1); } else { mSummaryLineCount = 1; } } public void setSummaryLineCount(int count) { mSummaryLineCount = count; } @Override Loading @@ -35,7 +52,8 @@ public class SingleLineSummaryPreference extends Preference { super.onBindViewHolder(holder); TextView summary = (TextView) holder.findViewById(android.R.id.summary); if (summary != null) { summary.setSingleLine(); summary.setMinLines(mSummaryLineCount); summary.setMaxLines(mSummaryLineCount); summary.setEllipsize(TruncateAt.END); } } Loading
tests/robotests/src/com/android/settings/widget/SingleLineSummaryPreferenceTest.java→tests/robotests/src/com/android/settings/widget/FixedLineSummaryPreferenceTest.java +23 −12 Original line number Diff line number Diff line Loading @@ -15,19 +15,16 @@ */ package com.android.settings.widget; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; import android.support.v7.preference.PreferenceViewHolder; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.widget.SingleLineSummaryPreference; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -36,22 +33,27 @@ import org.mockito.MockitoAnnotations; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) public class SingleLineSummaryPreferenceTest { public class FixedLineSummaryPreferenceTest { @Mock private TextView mSummary; @Mock private TextView mSummary; private Context mContext; private PreferenceViewHolder mHolder; private SingleLineSummaryPreference mPreference; private FixedLineSummaryPreference mPreference; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mPreference = new SingleLineSummaryPreference(mContext, null); mPreference = new FixedLineSummaryPreference(mContext, null); LayoutInflater inflater = LayoutInflater.from(mContext); final View view = inflater.inflate(mPreference.getLayoutResource(), new LinearLayout(mContext), false); Loading @@ -62,8 +64,17 @@ public class SingleLineSummaryPreferenceTest { @Test public void onBindViewHolder_shouldSetSingleLine() { mPreference.onBindViewHolder(mHolder); final TextView summary = (TextView) mHolder.findViewById(android.R.id.summary); verify(mSummary).setSingleLine(); verify(mSummary).setMinLines(1); verify(mSummary).setMaxLines(1); } @Test public void onBindViewHolder_TwoLineSummary_shouldSetTwoLines() { mPreference.setSummaryLineCount(2); mPreference.onBindViewHolder(mHolder); verify(mSummary).setMinLines(2); verify(mSummary).setMaxLines(2); } }