Revert^2 "Allow update the max lines on the title"

Revert "Revert "Allow update the max lines on the title"

Revert submission 28661116-revert-28616239-356726764-dont-truncate-color-correction-options-LCBEOTEYHE

Reason for revert: Attempt to re-land b/356726764 with a fix to add `sdk_verion: system_current` to the SelectorWithWidgetPreference aconfig

Reverted changes: /q/submissionid:28661116-revert-28616239-356726764-dont-truncate-color-correction-options-LCBEOTEYHE

Change-Id: Iaf8c1e24632e4db56631bf0de81c1d9bf47b83ed
diff --git a/packages/SettingsLib/tests/robotests/Android.bp b/packages/SettingsLib/tests/robotests/Android.bp
index 75c40bf..f380e7f 100644
--- a/packages/SettingsLib/tests/robotests/Android.bp
+++ b/packages/SettingsLib/tests/robotests/Android.bp
@@ -56,6 +56,7 @@
         "flag-junit",
         "settingslib_media_flags_lib",
         "settingslib_illustrationpreference_flags_lib",
+        "settingslib_selectorwithwidgetpreference_flags_lib",
         "testng", // TODO: remove once JUnit on Android provides assertThrows
     ],
     java_resource_dirs: ["config"],
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
index 60885f1..243ce85 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/SelectorWithWidgetPreferenceTest.java
@@ -23,22 +23,31 @@
 import static org.mockito.Mockito.when;
 
 import android.app.Application;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settingslib.widget.preference.selector.R;
+import com.android.settingslib.widget.selectorwithwidgetpreference.flags.Flags;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class SelectorWithWidgetPreferenceTest {
 
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private Application mContext;
     private SelectorWithWidgetPreference mPreference;
 
@@ -55,7 +64,7 @@
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mPreference = new SelectorWithWidgetPreference(mContext);
 
         View view = LayoutInflater.from(mContext)
@@ -121,6 +130,60 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_ALLOW_SET_TITLE_MAX_LINES)
+    public void onBindViewHolder_titleMaxLinesSet_flagOff_titleMaxLinesMatchesDefault() {
+        final int titleMaxLines = 5;
+        AttributeSet attributeSet = Robolectric.buildAttributeSet()
+                .addAttribute(R.attr.titleMaxLines, String.valueOf(titleMaxLines))
+                .build();
+        mPreference = new SelectorWithWidgetPreference(mContext, attributeSet);
+        View view = LayoutInflater.from(mContext)
+                .inflate(mPreference.getLayoutResource(), null /* root */);
+        PreferenceViewHolder preferenceViewHolder =
+                PreferenceViewHolder.createInstanceForTests(view);
+
+        mPreference.onBindViewHolder(preferenceViewHolder);
+
+        TextView title = (TextView) preferenceViewHolder.findViewById(android.R.id.title);
+        assertThat(title.getMaxLines()).isEqualTo(SelectorWithWidgetPreference.DEFAULT_MAX_LINES);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ALLOW_SET_TITLE_MAX_LINES)
+    public void onBindViewHolder_noTitleMaxLinesSet_titleMaxLinesMatchesDefault() {
+        AttributeSet attributeSet = Robolectric.buildAttributeSet().build();
+        mPreference = new SelectorWithWidgetPreference(mContext, attributeSet);
+        View view = LayoutInflater.from(mContext)
+                .inflate(mPreference.getLayoutResource(), null /* root */);
+        PreferenceViewHolder preferenceViewHolder =
+                PreferenceViewHolder.createInstanceForTests(view);
+
+        mPreference.onBindViewHolder(preferenceViewHolder);
+
+        TextView title = (TextView) preferenceViewHolder.findViewById(android.R.id.title);
+        assertThat(title.getMaxLines()).isEqualTo(SelectorWithWidgetPreference.DEFAULT_MAX_LINES);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ALLOW_SET_TITLE_MAX_LINES)
+    public void onBindViewHolder_titleMaxLinesSet_titleMaxLinesUpdated() {
+        final int titleMaxLines = 5;
+        AttributeSet attributeSet = Robolectric.buildAttributeSet()
+                .addAttribute(R.attr.titleMaxLines, String.valueOf(titleMaxLines))
+                .build();
+        mPreference = new SelectorWithWidgetPreference(mContext, attributeSet);
+        View view = LayoutInflater.from(mContext)
+                .inflate(mPreference.getLayoutResource(), null /* root */);
+        PreferenceViewHolder preferenceViewHolder =
+                PreferenceViewHolder.createInstanceForTests(view);
+
+        mPreference.onBindViewHolder(preferenceViewHolder);
+
+        TextView title = (TextView) preferenceViewHolder.findViewById(android.R.id.title);
+        assertThat(title.getMaxLines()).isEqualTo(titleMaxLines);
+    }
+
+    @Test
     public void nullSummary_containerShouldBeGone() {
         mPreference.setSummary(null);
         View summaryContainer = new View(mContext);