summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Rhed Jao <rhedjao@google.com> 2018-05-16 15:32:59 +0800
committer Rhed Jao <rhedjao@google.com> 2018-05-16 19:04:40 +0800
commit76a9d714cce99bd9b99edbed1dedef487b7a1d3e (patch)
treed9880c85f7f84ef7039681b5dc4a05b441390e9a
parent68f7d7f12106b4f2a18aad04941281ed8c07e65f (diff)
Close drawer when back button pressed.
Bug: 63929932 Test: Add small test in SharedInputHandlerTest Change-Id: Id16d6ab6e7ffcc5d4c5cdb20391c325a05d28b9e
-rw-r--r--src/com/android/documentsui/SharedInputHandler.java10
-rw-r--r--src/com/android/documentsui/files/FilesActivity.java2
-rw-r--r--src/com/android/documentsui/picker/PickActivity.java2
-rw-r--r--tests/unit/com/android/documentsui/SharedInputHandlerTest.java30
4 files changed, 38 insertions, 6 deletions
diff --git a/src/com/android/documentsui/SharedInputHandler.java b/src/com/android/documentsui/SharedInputHandler.java
index 0c91341f9..8d39204cd 100644
--- a/src/com/android/documentsui/SharedInputHandler.java
+++ b/src/com/android/documentsui/SharedInputHandler.java
@@ -35,18 +35,21 @@ public class SharedInputHandler {
private final Procedure mDirPopper;
private final Features mFeatures;
private final SelectionHelper mSelectionMgr;
+ private final DrawerController mDrawer;
public SharedInputHandler(
FocusHandler focusHandler,
SelectionHelper selectionMgr,
Procedure searchCanceler,
Procedure dirPopper,
- Features features) {
+ Features features,
+ DrawerController drawer) {
mFocusManager = focusHandler;
mSearchCanceler = searchCanceler;
mSelectionMgr = selectionMgr;
mDirPopper = dirPopper;
mFeatures = features;
+ mDrawer = drawer;
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
@@ -99,6 +102,11 @@ public class SharedInputHandler {
}
private boolean onBack() {
+ if (mDrawer.isPresent() && mDrawer.isOpen()) {
+ mDrawer.setOpen(false);
+ return true;
+ }
+
if (mSearchCanceler.run()) {
return true;
}
diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java
index a123ec83c..0050ae12a 100644
--- a/src/com/android/documentsui/files/FilesActivity.java
+++ b/src/com/android/documentsui/files/FilesActivity.java
@@ -157,7 +157,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
mInjector.selectionMgr,
mInjector.searchManager::cancelSearch,
this::popDir,
- mInjector.features);
+ mInjector.features, mDrawer);
RootsFragment.show(getFragmentManager(), null);
diff --git a/src/com/android/documentsui/picker/PickActivity.java b/src/com/android/documentsui/picker/PickActivity.java
index 0b3955362..625270a80 100644
--- a/src/com/android/documentsui/picker/PickActivity.java
+++ b/src/com/android/documentsui/picker/PickActivity.java
@@ -134,7 +134,7 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons {
mInjector.selectionMgr,
mInjector.searchManager::cancelSearch,
this::popDir,
- mInjector.features);
+ mInjector.features, mDrawer);
setupLayout(intent);
mInjector.actions.initLocation(intent);
}
diff --git a/tests/unit/com/android/documentsui/SharedInputHandlerTest.java b/tests/unit/com/android/documentsui/SharedInputHandlerTest.java
index 9c28094a5..a28b4f1ed 100644
--- a/tests/unit/com/android/documentsui/SharedInputHandlerTest.java
+++ b/tests/unit/com/android/documentsui/SharedInputHandlerTest.java
@@ -19,6 +19,9 @@ package com.android.documentsui;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
@@ -34,6 +37,8 @@ import com.android.documentsui.testing.TestFeatures;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
@RunWith(AndroidJUnit4.class)
@SmallTest
@@ -43,6 +48,7 @@ public class SharedInputHandlerTest {
private SelectionHelper mSelectionMgr = SelectionHelpers.createTestInstance();
private TestFeatures mFeatures = new TestFeatures();
private TestFocusHandler mFocusHandler = new TestFocusHandler();
+ @Mock private DrawerController mDrawer;
private boolean mDirPopHappened;
private boolean mCanceledSearch;
private Procedure mDirPopper = new Procedure() {
@@ -55,6 +61,8 @@ public class SharedInputHandlerTest {
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
mDirPopHappened = false;
mSharedInputHandler = new SharedInputHandler(
mFocusHandler,
@@ -63,7 +71,8 @@ public class SharedInputHandlerTest {
return false;
},
mDirPopper,
- mFeatures);
+ mFeatures,
+ mDrawer);
}
@Test
@@ -84,7 +93,8 @@ public class SharedInputHandlerTest {
return true;
},
mDirPopper,
- new TestFeatures());
+ new TestFeatures(),
+ mDrawer);
KeyEvent backEvent =
new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0, 0);
assertTrue(mSharedInputHandler.onKeyDown(backEvent.getKeyCode(), backEvent));
@@ -92,6 +102,7 @@ public class SharedInputHandlerTest {
assertTrue(mCanceledSearch);
assertEquals(mSelectionMgr.getSelection().size(), 1);
assertFalse(mDirPopHappened);
+ verify(mDrawer, never()).setOpen(false);
}
@Test
@@ -105,6 +116,7 @@ public class SharedInputHandlerTest {
assertFalse(mCanceledSearch);
assertEquals(mSelectionMgr.getSelection().size(), 0);
assertFalse(mDirPopHappened);
+ verify(mDrawer, never()).setOpen(false);
}
@Test
@@ -116,6 +128,17 @@ public class SharedInputHandlerTest {
assertFalse(mCanceledSearch);
assertEquals(mSelectionMgr.getSelection().size(), 0);
assertTrue(mDirPopHappened);
+ verify(mDrawer, never()).setOpen(false);
+ }
+
+ @Test
+ public void testBackButton_CloseDrawer() {
+ KeyEvent backEvent =
+ new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0, 0);
+ when(mDrawer.isPresent()).thenReturn(true);
+ when(mDrawer.isOpen()).thenReturn(true);
+ assertTrue(mSharedInputHandler.onKeyDown(backEvent.getKeyCode(), backEvent));
+ verify(mDrawer).setOpen(false);
}
@Test
@@ -129,7 +152,8 @@ public class SharedInputHandlerTest {
return true;
},
mDirPopper,
- new TestFeatures());
+ new TestFeatures(),
+ mDrawer);
KeyEvent escapeEvent =
new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_ESCAPE, 0, 0);
assertTrue(mSharedInputHandler.onKeyDown(escapeEvent.getKeyCode(), escapeEvent));