Add shadow to searchbar when user scrolls vertically
Bug: 63528057 Test: robotests Change-Id: Ib85676d78b43be38aab1eacd0820d0755a601f60
This commit is contained in:
@@ -17,12 +17,19 @@
|
||||
package com.android.settings.widget;
|
||||
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.app.Activity;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
|
||||
@@ -31,17 +38,12 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
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 ActionBarShadowControllerTest {
|
||||
@@ -53,11 +55,13 @@ public class ActionBarShadowControllerTest {
|
||||
@Mock
|
||||
private ActionBar mActionBar;
|
||||
private Lifecycle mLifecycle;
|
||||
private View mView;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
when(mActivity.getActionBar()).thenReturn(mActionBar);
|
||||
mView = new View(RuntimeEnvironment.application);
|
||||
mLifecycle = new Lifecycle();
|
||||
}
|
||||
|
||||
@@ -67,9 +71,23 @@ public class ActionBarShadowControllerTest {
|
||||
|
||||
ActionBarShadowController.attachToRecyclerView(mActivity, mLifecycle, mRecyclerView);
|
||||
|
||||
verify(mActionBar).setElevation(0);
|
||||
verify(mActionBar).setElevation(ActionBarShadowController.ELEVATION_LOW);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void attachToRecyclerView_customViewAsActionBar_shouldUpdateElevationOnScroll() {
|
||||
// Setup
|
||||
mView.setElevation(50);
|
||||
when(mRecyclerView.canScrollVertically(-1)).thenReturn(false);
|
||||
final ActionBarShadowController controller =
|
||||
ActionBarShadowController.attachToRecyclerView(mView, mLifecycle, mRecyclerView);
|
||||
assertThat(mView.getElevation()).isEqualTo(ActionBarShadowController.ELEVATION_LOW);
|
||||
|
||||
// Scroll
|
||||
when(mRecyclerView.canScrollVertically(-1)).thenReturn(true);
|
||||
controller.mScrollChangeWatcher.onScrolled(mRecyclerView, 10 /* dx */, 10 /* dy */);
|
||||
assertThat(mView.getElevation()).isEqualTo(ActionBarShadowController.ELEVATION_HIGH);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void attachToRecyclerView_lifecycleChange_shouldAttachDetach() {
|
||||
|
Reference in New Issue
Block a user