Visual update: remove card elevation for homepage cards.
- Replace CardView with MaterialCardView - Add strokeColor and strokeWidth to MaterialCardView - Set cardElevation to 0dp. And remove a few unused layout, clean up color lint whitelist. Test: rebuild, visual Change-Id: I34a4b9a985cb85c212e123b8af5353d8c548923a
This commit is contained in:
@@ -19,11 +19,10 @@ package com.android.settings.homepage.contextualcards.conditional;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
@@ -40,7 +39,8 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class ConditionContextualCardRendererTest {
|
||||
@@ -49,25 +49,29 @@ public class ConditionContextualCardRendererTest {
|
||||
private ControllerRendererPool mControllerRendererPool;
|
||||
@Mock
|
||||
private ConditionContextualCardController mController;
|
||||
private Context mContext;
|
||||
private Activity mActivity;
|
||||
private ConditionContextualCardRenderer mRenderer;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mRenderer = new ConditionContextualCardRenderer(mContext, mControllerRendererPool);
|
||||
final ActivityController<Activity> activityController = Robolectric.buildActivity(
|
||||
Activity.class);
|
||||
mActivity = activityController.get();
|
||||
mActivity.setTheme(R.style.Theme_AppCompat);
|
||||
activityController.create();
|
||||
mRenderer = new ConditionContextualCardRenderer(mActivity, mControllerRendererPool);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_shouldSetListener() {
|
||||
final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
|
||||
final View card = view.findViewById(R.id.content);
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, buildConditionContextualCard());
|
||||
@@ -79,12 +83,12 @@ public class ConditionContextualCardRendererTest {
|
||||
@Test
|
||||
public void viewClick_shouldInvokeControllerPrimaryClick() {
|
||||
final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
|
||||
final View card = view.findViewById(R.id.content);
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.CONDITIONAL)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, buildConditionContextualCard());
|
||||
@@ -103,7 +107,7 @@ public class ConditionContextualCardRendererTest {
|
||||
.setName("test_name")
|
||||
.setTitleText("test_title")
|
||||
.setSummaryText("test_summary")
|
||||
.setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
|
||||
.setIconDrawable(mActivity.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
|
||||
.setIsHalfWidth(true)
|
||||
.build();
|
||||
}
|
||||
|
@@ -18,17 +18,17 @@ package com.android.settings.homepage.contextualcards.conditional;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.homepage.contextualcards.ContextualCard;
|
||||
import com.android.settings.homepage.contextualcards.ControllerRendererPool;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
@@ -38,7 +38,8 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -50,24 +51,28 @@ public class ConditionHeaderContextualCardRendererTest {
|
||||
private ControllerRendererPool mControllerRendererPool;
|
||||
@Mock
|
||||
private ConditionContextualCardController mController;
|
||||
private Context mContext;
|
||||
private Activity mActivity;
|
||||
private ConditionHeaderContextualCardRenderer mRenderer;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
mRenderer = new ConditionHeaderContextualCardRenderer(mContext, mControllerRendererPool);
|
||||
final ActivityController<Activity> activityController = Robolectric.buildActivity(
|
||||
Activity.class);
|
||||
mActivity = activityController.get();
|
||||
mActivity.setTheme(R.style.Theme_AppCompat);
|
||||
activityController.create();
|
||||
mRenderer = new ConditionHeaderContextualCardRenderer(mActivity, mControllerRendererPool);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_shouldSetClickListener() {
|
||||
final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.CONDITIONAL_HEADER)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, generateConditionHeaderContextualCard());
|
||||
@@ -79,11 +84,11 @@ public class ConditionHeaderContextualCardRendererTest {
|
||||
@Test
|
||||
public void bindView_clickView_shouldSetTrueToIsConditionExpanded() {
|
||||
final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(view);
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.CONDITIONAL_HEADER)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, generateConditionHeaderContextualCard());
|
||||
|
@@ -23,7 +23,7 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
@@ -40,7 +40,8 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class LegacySuggestionContextualCardRendererTest {
|
||||
@@ -48,26 +49,31 @@ public class LegacySuggestionContextualCardRendererTest {
|
||||
private ControllerRendererPool mControllerRendererPool;
|
||||
@Mock
|
||||
private LegacySuggestionContextualCardController mController;
|
||||
private Context mContext;
|
||||
private Activity mActivity;
|
||||
private LegacySuggestionContextualCardRenderer mRenderer;
|
||||
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mRenderer = new LegacySuggestionContextualCardRenderer(mContext, mControllerRendererPool);
|
||||
final ActivityController<Activity> activityController = Robolectric.buildActivity(
|
||||
Activity.class);
|
||||
mActivity = activityController.get();
|
||||
mActivity.setTheme(R.style.Theme_AppCompat);
|
||||
activityController.create();
|
||||
|
||||
mRenderer = new LegacySuggestionContextualCardRenderer(mActivity, mControllerRendererPool);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_shouldSetListener() {
|
||||
final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View card = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
|
||||
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, buildContextualCard());
|
||||
@@ -79,11 +85,11 @@ public class LegacySuggestionContextualCardRendererTest {
|
||||
@Test
|
||||
public void viewClick_shouldInvokeControllerPrimaryClick() {
|
||||
final int viewType = mRenderer.getViewType(true /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View card = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View card = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView.ViewHolder viewHolder = mRenderer.createViewHolder(card);
|
||||
when(mControllerRendererPool.getController(mContext,
|
||||
when(mControllerRendererPool.getController(mActivity,
|
||||
ContextualCard.CardType.LEGACY_SUGGESTION)).thenReturn(mController);
|
||||
|
||||
mRenderer.bindView(viewHolder, buildContextualCard());
|
||||
@@ -99,7 +105,7 @@ public class LegacySuggestionContextualCardRendererTest {
|
||||
.setName("test_name")
|
||||
.setTitleText("test_title")
|
||||
.setSummaryText("test_summary")
|
||||
.setIconDrawable(mContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
|
||||
.setIconDrawable(mActivity.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
@@ -20,7 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.Context;
|
||||
import android.app.Activity;
|
||||
import android.net.Uri;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -45,7 +45,8 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.android.controller.ActivityController;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
public class SliceContextualCardRendererTest {
|
||||
@@ -54,19 +55,21 @@ public class SliceContextualCardRendererTest {
|
||||
private LiveData<Slice> mSliceLiveData;
|
||||
@Mock
|
||||
private ControllerRendererPool mControllerRendererPool;
|
||||
@Mock
|
||||
private SliceContextualCardController mController;
|
||||
|
||||
private Context mContext;
|
||||
private Activity mActivity;
|
||||
private SliceContextualCardRenderer mRenderer;
|
||||
private LifecycleOwner mLifecycleOwner;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
final ActivityController<Activity> activityController = Robolectric.buildActivity(
|
||||
Activity.class);
|
||||
mActivity = activityController.get();
|
||||
mActivity.setTheme(R.style.Theme_AppCompat);
|
||||
activityController.create();
|
||||
mLifecycleOwner = new ContextualCardsFragment();
|
||||
mRenderer = new SliceContextualCardRenderer(mContext, mLifecycleOwner,
|
||||
mRenderer = new SliceContextualCardRenderer(mActivity, mLifecycleOwner,
|
||||
mControllerRendererPool);
|
||||
}
|
||||
|
||||
@@ -156,9 +159,9 @@ public class SliceContextualCardRendererTest {
|
||||
|
||||
private RecyclerView.ViewHolder getSliceViewHolder() {
|
||||
final int viewType = mRenderer.getViewType(false /* isHalfWidth */);
|
||||
final RecyclerView recyclerView = new RecyclerView(mContext);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
final View view = LayoutInflater.from(mContext).inflate(viewType, recyclerView, false);
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(viewType, recyclerView, false);
|
||||
|
||||
return mRenderer.createViewHolder(view);
|
||||
}
|
||||
|
Reference in New Issue
Block a user