Snap for 6613910 from afeaf38520 to mainline-release

Change-Id: I6ea53dc2495b51bab56469c527e80e14d34a4536
This commit is contained in:
android-build-team Robot
2020-06-22 03:09:42 +00:00
9 changed files with 325 additions and 51 deletions

View File

@@ -86,6 +86,11 @@
<!-- Note: There is a landscape version of panel_slice_list which supports scrolling. --> <!-- Note: There is a landscape version of panel_slice_list which supports scrolling. -->
<include layout="@layout/panel_slice_list"/> <include layout="@layout/panel_slice_list"/>
<include
android:id="@+id/footer_divider"
layout="@layout/horizontal_divider"
android:visibility="gone"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -1280,6 +1280,49 @@
<item>"1"</item> <item>"1"</item>
</string-array> </string-array>
<string-array name="enabled_networks_except_gsm_values" translatable="false">
<item>"9"</item>
<item>"0"</item>
</string-array>
<string-array name="enabled_networks_except_lte_values" translatable="false">
<item>"0"</item>
<item>"1"</item>
</string-array>
<string-array name="enabled_networks_except_gsm_lte_values" translatable="false">
<item>"0"</item>
</string-array>
<string-array name="enabled_networks_cdma_values" translatable="false">
<item>"8"</item>
<item>"4"</item>
<item>"5"</item>
<item>"10"</item>
</string-array>
<string-array name="enabled_networks_cdma_no_lte_values" translatable="false">
<item>"4"</item>
<item>"5"</item>
</string-array>
<string-array name="enabled_networks_cdma_only_lte_values" translatable="false">
<item>"8"</item>
<item>"10"</item>
</string-array>
<string-array name="enabled_networks_tdscdma_values" translatable="false">
<item>"22"</item>
<item>"18"</item>
<item>"1"</item>
</string-array>
<string-array name="preferred_network_mode_values_world_mode" translatable="false">
<item>"10"</item>
<item>"8"</item>
<item>"9"</item>
</string-array>
<string-array name="cdma_system_select_choices"> <string-array name="cdma_system_select_choices">
<!-- System select dialog screen, setting option name --> <!-- System select dialog screen, setting option name -->
<item>Home only</item> <item>Home only</item>

View File

@@ -110,9 +110,13 @@ public class EligibleCardChecker implements Callable<ContextualCard> {
@VisibleForTesting @VisibleForTesting
Slice bindSlice(Uri uri) { Slice bindSlice(Uri uri) {
final SliceViewManager manager = SliceViewManager.getInstance(mContext); final SliceViewManager manager = SliceViewManager.getInstance(mContext);
manager.pinSlice(uri); final SliceViewManager.SliceCallback callback = slice -> { };
// Register a trivial callback to pin the slice
manager.registerSliceCallback(uri, callback);
final Slice slice = manager.bindSlice(uri); final Slice slice = manager.bindSlice(uri);
manager.unpinSlice(uri); manager.unregisterSliceCallback(uri, callback);
return slice; return slice;
} }

View File

@@ -43,6 +43,7 @@ import com.android.settings.network.telephony.TelephonyConstants.TelephonyManage
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Stream;
/** /**
* Preference controller for "Enabled network mode" * Preference controller for "Enabled network mode"
@@ -221,71 +222,142 @@ public class EnabledNetworkModePreferenceController extends
void setPreferenceEntries() { void setPreferenceEntries() {
clearAllEntries(); clearAllEntries();
String[] entryValues;
int[] entryValuesInt;
switch (getEnabledNetworkType()) { switch (getEnabledNetworkType()) {
case ENABLED_NETWORKS_CDMA_CHOICES: case ENABLED_NETWORKS_CDMA_CHOICES:
add5gEntry(addNrToLteNetworkType( entryValues = mContext.getResources().getStringArray(
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO)); R.array.enabled_networks_cdma_values);
addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO); entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO); if (entryValuesInt.length < 4) {
add1xEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO); throw new IllegalArgumentException(
addGlobalEntry(); "ENABLED_NETWORKS_CDMA_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
addLteEntry(entryValuesInt[0]);
add3gEntry(entryValuesInt[1]);
add1xEntry(entryValuesInt[2]);
addGlobalEntry(entryValuesInt[3]);
break; break;
case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES: case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES:
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO); entryValues = mContext.getResources().getStringArray(
add1xEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO); R.array.enabled_networks_cdma_no_lte_values);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 2) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES index error.");
}
add3gEntry(entryValuesInt[0]);
add1xEntry(entryValuesInt[1]);
break; break;
case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES: case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES:
addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO); entryValues = mContext.getResources().getStringArray(
addGlobalEntry(); R.array.enabled_networks_cdma_only_lte_values);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 2) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES index error.");
}
addLteEntry(entryValuesInt[0]);
addGlobalEntry(entryValuesInt[1]);
break; break;
case ENABLED_NETWORKS_TDSCDMA_CHOICES: case ENABLED_NETWORKS_TDSCDMA_CHOICES:
add5gEntry(addNrToLteNetworkType( entryValues = mContext.getResources().getStringArray(
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); R.array.enabled_networks_tdscdma_values);
addLteEntry( entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); if (entryValuesInt.length < 3) {
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA); throw new IllegalArgumentException(
add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY); "ENABLED_NETWORKS_TDSCDMA_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
addLteEntry(entryValuesInt[0]);
add3gEntry(entryValuesInt[1]);
add2gEntry(entryValuesInt[2]);
break; break;
case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES: case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES:
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_gsm_lte_values);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 1) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES index error.");
}
add3gEntry(entryValuesInt[0]);
break; break;
case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES: case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES:
add5gEntry(addNrToLteNetworkType( entryValues = mContext.getResources().getStringArray(
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); R.array.enabled_networks_except_gsm_values);
add4gEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); if (entryValuesInt.length < 2) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
add4gEntry(entryValuesInt[0]);
add3gEntry(entryValuesInt[1]);
break; break;
case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES: case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES:
add5gEntry(addNrToLteNetworkType( entryValues = mContext.getResources().getStringArray(
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); R.array.enabled_networks_except_gsm_values);
addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); if (entryValuesInt.length < 2) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_EXCEPT_GSM_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
addLteEntry(entryValuesInt[0]);
add3gEntry(entryValuesInt[1]);
break; break;
case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES: case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES:
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); entryValues = mContext.getResources().getStringArray(
add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY); R.array.enabled_networks_except_lte_values);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 2) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_EXCEPT_LTE_CHOICES index error.");
}
add3gEntry(entryValuesInt[0]);
add2gEntry(entryValuesInt[1]);
break; break;
case ENABLED_NETWORKS_4G_CHOICES: case ENABLED_NETWORKS_4G_CHOICES:
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_values);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 3) {
throw new IllegalArgumentException(
"ENABLED_NETWORKS_4G_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType( add5gEntry(addNrToLteNetworkType(
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); entryValuesInt[0]));
add4gEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); add4gEntry(entryValuesInt[0]);
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); add3gEntry(entryValuesInt[1]);
add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY); add2gEntry(entryValuesInt[2]);
break; break;
case ENABLED_NETWORKS_CHOICES: case ENABLED_NETWORKS_CHOICES:
add5gEntry(addNrToLteNetworkType( entryValues = mContext.getResources().getStringArray(
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); R.array.enabled_networks_values);
addLteEntry(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
add3gEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); if (entryValuesInt.length < 3) {
add2gEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY); throw new IllegalArgumentException("ENABLED_NETWORKS_CHOICES index error.");
}
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
addLteEntry(entryValuesInt[0]);
add3gEntry(entryValuesInt[1]);
add2gEntry(entryValuesInt[2]);
break; break;
case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE: case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE:
addGlobalEntry(); entryValues = mContext.getResources().getStringArray(
R.array.preferred_network_mode_values_world_mode);
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
if (entryValuesInt.length < 3) {
throw new IllegalArgumentException(
"PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE index error.");
}
addGlobalEntry(entryValuesInt[0]);
addCustomEntry(mContext.getString(R.string.network_world_mode_cdma_lte), addCustomEntry(mContext.getString(R.string.network_world_mode_cdma_lte),
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO); entryValuesInt[1]);
addCustomEntry(mContext.getString(R.string.network_world_mode_gsm_lte), addCustomEntry(mContext.getString(R.string.network_world_mode_gsm_lte),
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); entryValuesInt[2]);
break; break;
default: default:
throw new IllegalArgumentException("Not supported enabled network types."); throw new IllegalArgumentException("Not supported enabled network types.");
@@ -590,18 +662,15 @@ public class EnabledNetworkModePreferenceController extends
} }
} }
private void addGlobalEntry() { private void addGlobalEntry(int value) {
Log.d(LOG_TAG, "addGlobalEntry. " Log.d(LOG_TAG, "addGlobalEntry. "
+ " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+ " allowed5GNetworkType: " + mAllowed5gNetworkType); + " allowed5GNetworkType: " + mAllowed5gNetworkType);
mEntries.add(mContext.getString(R.string.network_global)); mEntries.add(mContext.getString(R.string.network_global));
if (showNrList()) { if (showNrList()) {
mEntriesValue.add( value = addNrToLteNetworkType(value);
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
} else {
mEntriesValue.add(
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
} }
mEntriesValue.add(value);
} }
private boolean showNrList() { private boolean showNrList() {

View File

@@ -96,6 +96,7 @@ public class PanelFragment extends Fragment {
private TextView mHeaderTitle; private TextView mHeaderTitle;
private TextView mHeaderSubtitle; private TextView mHeaderSubtitle;
private int mMaxHeight; private int mMaxHeight;
private View mFooterDivider;
private final Map<Uri, LiveData<Slice>> mSliceLiveData = new LinkedHashMap<>(); private final Map<Uri, LiveData<Slice>> mSliceLiveData = new LinkedHashMap<>();
@@ -187,6 +188,7 @@ public class PanelFragment extends Fragment {
mTitleIcon = mLayoutView.findViewById(R.id.title_icon); mTitleIcon = mLayoutView.findViewById(R.id.title_icon);
mHeaderTitle = mLayoutView.findViewById(R.id.header_title); mHeaderTitle = mLayoutView.findViewById(R.id.header_title);
mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle); mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle);
mFooterDivider = mLayoutView.findViewById(R.id.footer_divider);
// Make the panel layout gone here, to avoid janky animation when updating from old panel. // Make the panel layout gone here, to avoid janky animation when updating from old panel.
// We will make it visible once the panel is ready to load. // We will make it visible once the panel is ready to load.
@@ -241,6 +243,13 @@ public class PanelFragment extends Fragment {
mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(size, size)); mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(size, size));
} }
} }
if (mPanel.getViewType() == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
mFooterDivider.setVisibility(View.VISIBLE);
} else {
mFooterDivider.setVisibility(View.GONE);
}
mSeeMoreButton.setOnClickListener(getSeeMoreListener()); mSeeMoreButton.setOnClickListener(getSeeMoreListener());
mDoneButton.setOnClickListener(getCloseListener()); mDoneButton.setOnClickListener(getCloseListener());

View File

@@ -175,7 +175,7 @@ public class PanelSlicesAdapter
@Override @Override
public boolean isDividerAllowedBelow() { public boolean isDividerAllowedBelow() {
return true; return mPanelFragment.getPanelViewType() != PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
} }
} }
} }

View File

@@ -24,6 +24,7 @@ import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFr
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
@@ -44,6 +45,7 @@ import androidx.lifecycle.LifecycleOwner;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -337,6 +339,49 @@ public class EnabledNetworkModePreferenceControllerTest {
assertThat(mPreference.getSummary()).isEqualTo("2G"); assertThat(mPreference.getSummary()).isEqualTo("2G");
} }
@Test
public void checkResource_stringArrayLength() {
String[] entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_values);
assertEquals(4, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_no_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_only_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_tdscdma_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_gsm_lte_values);
assertEquals(1, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_gsm_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.preferred_network_mode_values_world_mode);
assertEquals(3, entryValues.length);
}
private void mockEnabledNetworkMode(int networkMode) { private void mockEnabledNetworkMode(int networkMode) {
if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) { if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM); mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);

View File

@@ -17,6 +17,9 @@
package com.android.settings.panel; package com.android.settings.panel;
import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER;
import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
@@ -209,6 +212,54 @@ public class PanelFragmentTest {
assertThat(titleView.getVisibility()).isEqualTo(View.VISIBLE); assertThat(titleView.getVisibility()).isEqualTo(View.VISIBLE);
} }
@Test
public void sliderLargeIconPanelType_displayFooterDivider() {
mFakePanelContent.setViewType(VIEW_TYPE_SLIDER_LARGE_ICON);
final ActivityController<FakeSettingsPanelActivity> activityController =
Robolectric.buildActivity(FakeSettingsPanelActivity.class);
activityController.setup();
final PanelFragment panelFragment = (PanelFragment)
Objects.requireNonNull(activityController
.get()
.getSupportFragmentManager()
.findFragmentById(R.id.main_content));
final View footerDivider = panelFragment.mLayoutView.findViewById(R.id.footer_divider);
// Check visibility
assertThat(footerDivider.getVisibility()).isEqualTo(View.VISIBLE);
}
@Test
public void sliderPanelType_notDisplayFooterDivider() {
mFakePanelContent.setViewType(VIEW_TYPE_SLIDER);
final ActivityController<FakeSettingsPanelActivity> activityController =
Robolectric.buildActivity(FakeSettingsPanelActivity.class);
activityController.setup();
final PanelFragment panelFragment = (PanelFragment)
Objects.requireNonNull(activityController
.get()
.getSupportFragmentManager()
.findFragmentById(R.id.main_content));
final View footerDivider = panelFragment.mLayoutView.findViewById(R.id.footer_divider);
// Check visibility
assertThat(footerDivider.getVisibility()).isEqualTo(View.GONE);
}
@Test
public void defaultPanelType_notDisplayFooterDivider() {
mFakePanelContent.setViewType(0 /* viewType */);
final ActivityController<FakeSettingsPanelActivity> activityController =
Robolectric.buildActivity(FakeSettingsPanelActivity.class);
activityController.setup();
final PanelFragment panelFragment = (PanelFragment)
Objects.requireNonNull(activityController
.get()
.getSupportFragmentManager()
.findFragmentById(R.id.main_content));
final View footerDivider = panelFragment.mLayoutView.findViewById(R.id.footer_divider);
// Check visibility
assertThat(footerDivider.getVisibility()).isEqualTo(View.GONE);
}
@Test @Test
public void onHeaderChanged_updateHeader_verifyTitle() { public void onHeaderChanged_updateHeader_verifyTitle() {
mFakePanelContent.setIcon(IconCompat.createWithResource(mContext, R.drawable.ic_android)); mFakePanelContent.setIcon(IconCompat.createWithResource(mContext, R.drawable.ic_android));

View File

@@ -22,6 +22,7 @@ import static com.android.settings.panel.PanelSlicesAdapter.MAX_NUM_OF_SLICES;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI; import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI; import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI; import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
@@ -142,6 +143,53 @@ public class PanelSlicesAdapterTest {
assertThat(viewHolder.isDividerAllowedAbove()).isFalse(); assertThat(viewHolder.isDividerAllowedAbove()).isFalse();
} }
@Test
public void sliderLargeIconPanel_shouldNotAllowDividerBelow() {
addTestLiveData(MEDIA_OUTPUT_SLICE_URI);
mFakePanelContent.setViewType(PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
final PanelSlicesAdapter adapter =
new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
final int position = 0;
final ViewGroup view = new FrameLayout(mContext);
final SliceRowViewHolder viewHolder =
adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
adapter.onBindViewHolder(viewHolder, position);
assertThat(viewHolder.isDividerAllowedBelow()).isFalse();
}
@Test
public void sliderPanelType_shouldAllowDividerBelow() {
addTestLiveData(VOLUME_MEDIA_URI);
mFakePanelContent.setViewType(PanelContent.VIEW_TYPE_SLIDER);
final PanelSlicesAdapter adapter =
new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
final int position = 0;
final ViewGroup view = new FrameLayout(mContext);
final SliceRowViewHolder viewHolder =
adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER);
adapter.onBindViewHolder(viewHolder, position);
assertThat(viewHolder.isDividerAllowedBelow()).isTrue();
}
@Test
public void defaultPanelType_shouldAllowDividerBelow() {
addTestLiveData(VOLUME_MEDIA_URI);
mFakePanelContent.setViewType(0 /* viewType */);
final PanelSlicesAdapter adapter =
new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
final int position = 0;
final ViewGroup view = new FrameLayout(mContext);
final SliceRowViewHolder viewHolder = adapter.onCreateViewHolder(view, 0/* viewType */);
adapter.onBindViewHolder(viewHolder, position);
assertThat(viewHolder.isDividerAllowedBelow()).isTrue();
}
@Test @Test
public void outputSwitcherSlice_shouldAddFirstItemPadding() { public void outputSwitcherSlice_shouldAddFirstItemPadding() {
addTestLiveData(MEDIA_OUTPUT_SLICE_URI); addTestLiveData(MEDIA_OUTPUT_SLICE_URI);
@@ -151,7 +199,7 @@ public class PanelSlicesAdapterTest {
final int position = 0; final int position = 0;
final ViewGroup view = new FrameLayout(mContext); final ViewGroup view = new FrameLayout(mContext);
final SliceRowViewHolder viewHolder = final SliceRowViewHolder viewHolder =
adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER); adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
adapter.onBindViewHolder(viewHolder, position); adapter.onBindViewHolder(viewHolder, position);
@@ -169,7 +217,7 @@ public class PanelSlicesAdapterTest {
final int position = 0; final int position = 0;
final ViewGroup view = new FrameLayout(mContext); final ViewGroup view = new FrameLayout(mContext);
final SliceRowViewHolder viewHolder = final SliceRowViewHolder viewHolder =
adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER); adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
adapter.onBindViewHolder(viewHolder, position); adapter.onBindViewHolder(viewHolder, position);