summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perf-tests/src/com/android/documentsui/FilesJankPerfTest.java9
-rw-r--r--res/values/strings.xml2
-rw-r--r--src/com/android/documentsui/Events.java29
-rw-r--r--src/com/android/documentsui/dirlist/BandController.java8
-rw-r--r--src/com/android/documentsui/dirlist/TouchSwipeRefreshLayout.java10
-rw-r--r--src/com/android/documentsui/services/CopyJob.java7
-rw-r--r--src/com/android/documentsui/services/DeleteJob.java4
-rw-r--r--tests/src/com/android/documentsui/FileManagementUiTest.java21
-rw-r--r--tests/src/com/android/documentsui/TestInputEvent.java5
9 files changed, 45 insertions, 50 deletions
diff --git a/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java b/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
index cb2d904c9..9925d5b0c 100644
--- a/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
+++ b/perf-tests/src/com/android/documentsui/FilesJankPerfTest.java
@@ -56,6 +56,10 @@ public class FilesJankPerfTest extends JankTestBase {
final Intent intent = new Intent(context, FilesActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity = getInstrumentation().startActivitySync(intent);
+ try {
+ device.setOrientationNatural();
+ } catch (RemoteException e) {
+ }
}
public void tearDownInLoop() {
@@ -63,6 +67,11 @@ public class FilesJankPerfTest extends JankTestBase {
mActivity.finish();
mActivity = null;
}
+ try {
+ final UiDevice device = UiDevice.getInstance(getInstrumentation());
+ device.unfreezeRotation();
+ } catch (RemoteException e) {
+ }
}
public void setupAndOpenInLoop() throws Exception {
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 28f5f883e..416bb6f4f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -16,7 +16,7 @@
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title of the documents application [CHAR LIMIT=32] -->
- <string name="app_label">Documents</string>
+ <string name="app_label">Files</string>
<!-- Title of the standalone downloads activity. [CHAR LIMIT=32] -->
<string name="downloads_label">Downloads</string>
diff --git a/src/com/android/documentsui/Events.java b/src/com/android/documentsui/Events.java
index 2d0dbe8ce..95934c3fb 100644
--- a/src/com/android/documentsui/Events.java
+++ b/src/com/android/documentsui/Events.java
@@ -35,34 +35,13 @@ public final class Events {
* Returns true if event was triggered by a mouse.
*/
public static boolean isMouseEvent(MotionEvent e) {
- return isMouseType(e.getToolType(0));
- }
-
- /**
- * Returns true if event was triggered by a finger or stylus touch.
- */
- public static boolean isTouchEvent(MotionEvent e) {
- return isTouchType(e.getToolType(0));
- }
-
- /**
- * Returns true if event was triggered by a mouse.
- */
- public static boolean isMouseType(int toolType) {
+ int toolType = e.getToolType(0);
return toolType == MotionEvent.TOOL_TYPE_MOUSE;
}
/**
* Returns true if event was triggered by a finger or stylus touch.
*/
- public static boolean isTouchType(int toolType) {
- return toolType == MotionEvent.TOOL_TYPE_FINGER
- || toolType == MotionEvent.TOOL_TYPE_STYLUS;
- }
-
- /**
- * Returns true if event was triggered by a finger or stylus touch.
- */
public static boolean isActionDown(MotionEvent e) {
return e.getActionMasked() == MotionEvent.ACTION_DOWN;
}
@@ -116,7 +95,6 @@ public final class Events {
* of related code.
*/
public interface InputEvent extends AutoCloseable {
- boolean isTouchEvent();
boolean isMouseEvent();
boolean isPrimaryButtonPressed();
boolean isSecondaryButtonPressed();
@@ -212,11 +190,6 @@ public final class Events {
}
@Override
- public boolean isTouchEvent() {
- return Events.isTouchEvent(mEvent);
- }
-
- @Override
public boolean isMouseEvent() {
return Events.isMouseEvent(mEvent);
}
diff --git a/src/com/android/documentsui/dirlist/BandController.java b/src/com/android/documentsui/dirlist/BandController.java
index bcaf182ed..5ab85c1fc 100644
--- a/src/com/android/documentsui/dirlist/BandController.java
+++ b/src/com/android/documentsui/dirlist/BandController.java
@@ -84,14 +84,14 @@ public class BandController extends RecyclerView.OnScrollListener {
new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
- try (MotionInputEvent event = MotionInputEvent.obtain(e, view)) {
+ try (InputEvent event = MotionInputEvent.obtain(e, view)) {
return handleEvent(event);
}
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
if (Events.isMouseEvent(e)) {
- try (MotionInputEvent event = MotionInputEvent.obtain(e, view)) {
+ try (InputEvent event = MotionInputEvent.obtain(e, view)) {
processInputEvent(event);
}
}
@@ -199,7 +199,7 @@ public class BandController extends RecyclerView.OnScrollListener {
mSelection = selection;
}
- private boolean handleEvent(MotionInputEvent e) {
+ private boolean handleEvent(InputEvent e) {
// Don't start, or extend bands on right click.
if (e.isSecondaryButtonPressed()) {
return false;
@@ -248,7 +248,7 @@ public class BandController extends RecyclerView.OnScrollListener {
}
}
- boolean shouldStart(MotionInputEvent e) {
+ boolean shouldStart(InputEvent e) {
return !isActive()
&& e.isActionDown() // the initial button press
&& mAdapter.getItemCount() > 0
diff --git a/src/com/android/documentsui/dirlist/TouchSwipeRefreshLayout.java b/src/com/android/documentsui/dirlist/TouchSwipeRefreshLayout.java
index 42634ba08..32bb5b183 100644
--- a/src/com/android/documentsui/dirlist/TouchSwipeRefreshLayout.java
+++ b/src/com/android/documentsui/dirlist/TouchSwipeRefreshLayout.java
@@ -17,6 +17,8 @@
package com.android.documentsui.dirlist;
import android.content.Context;
+import android.content.res.TypedArray;
+import android.support.annotation.ColorRes;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
import android.view.MotionEvent;
@@ -28,12 +30,20 @@ import com.android.documentsui.Events;
*/
public class TouchSwipeRefreshLayout extends SwipeRefreshLayout {
+ private static final int[] COLOR_RES = new int[] { android.R.attr.colorAccent };
+ private static int COLOR_ACCENT_INDEX = 0;
+
public TouchSwipeRefreshLayout(Context context) {
this(context, null);
}
public TouchSwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
+
+ TypedArray a = context.obtainStyledAttributes(COLOR_RES);
+ @ColorRes int colorId = a.getResourceId(COLOR_ACCENT_INDEX, -1);
+ a.recycle();
+ setColorSchemeResources(colorId);
}
@Override
diff --git a/src/com/android/documentsui/services/CopyJob.java b/src/com/android/documentsui/services/CopyJob.java
index c8f6a64e9..8eabbe41f 100644
--- a/src/com/android/documentsui/services/CopyJob.java
+++ b/src/com/android/documentsui/services/CopyJob.java
@@ -273,6 +273,8 @@ class CopyJob extends Job {
try {
final ContentResolver resolver = appContext.getContentResolver();
final Iterable<Uri> uris = srcs.getUris(appContext);
+
+ int docProcessed = 0;
for (Uri uri : uris) {
DocumentInfo doc = DocumentInfo.fromUri(resolver, uri);
if (canCopy(doc, stack.root)) {
@@ -280,11 +282,16 @@ class CopyJob extends Job {
} else {
onFileFailed(doc);
}
+ ++docProcessed;
if (isCanceled()) {
return;
}
}
+
+ // If docProcessed is different than the count claimed by UrisSupplier, add the number
+ // to failedFileCount.
+ failedFileCount += (srcs.getItemCount() - docProcessed);
} catch(IOException e) {
failedFileCount += srcs.getItemCount();
throw new ResourceException("Failed to open the list of docs to copy.", e);
diff --git a/src/com/android/documentsui/services/DeleteJob.java b/src/com/android/documentsui/services/DeleteJob.java
index 64bc1a78f..5a3681836 100644
--- a/src/com/android/documentsui/services/DeleteJob.java
+++ b/src/com/android/documentsui/services/DeleteJob.java
@@ -120,6 +120,10 @@ final class DeleteJob extends Job {
++mDocsProcessed;
}
+
+ // If mDocProcessed is different than the count claimed by UrisSupplier, add the number
+ // to failedFileCount.
+ failedFileCount += (this.srcs.getItemCount() - mDocsProcessed);
Metrics.logFileOperation(service, operationType, srcs, null);
} catch(IOException e) {
Log.e(TAG, "Failed to get list of docs or parent source.", e);
diff --git a/tests/src/com/android/documentsui/FileManagementUiTest.java b/tests/src/com/android/documentsui/FileManagementUiTest.java
index 623f68ae7..44f417dbd 100644
--- a/tests/src/com/android/documentsui/FileManagementUiTest.java
+++ b/tests/src/com/android/documentsui/FileManagementUiTest.java
@@ -67,17 +67,6 @@ public class FileManagementUiTest extends ActivityTest<FilesActivity> {
bots.directory.waitForDocument("Kung Fu Panda");
}
- public void testDeleteDocument() throws Exception {
- bots.directory.clickDocument("file1.png");
- device.waitForIdle();
- bots.main.clickToolbarItem(R.id.menu_delete);
-
- bots.main.clickDialogOkButton();
- device.waitForIdle();
-
- bots.directory.assertDocumentsAbsent("file1.png");
- }
-
public void testKeyboard_CutDocument() throws Exception {
bots.directory.clickDocument("file1.png");
device.waitForIdle();
@@ -111,7 +100,7 @@ public class FileManagementUiTest extends ActivityTest<FilesActivity> {
bots.directory.waitForDocument("file1.png");
}
- public void testDeleteDocument_Cancel() throws Exception {
+ public void testDeleteDocument_Cancel_ThenOK() throws Exception {
bots.directory.clickDocument("file1.png");
device.waitForIdle();
bots.main.clickToolbarItem(R.id.menu_delete);
@@ -119,5 +108,13 @@ public class FileManagementUiTest extends ActivityTest<FilesActivity> {
bots.main.clickDialogCancelButton();
bots.directory.waitForDocument("file1.png");
+
+ device.waitForIdle();
+ bots.main.clickToolbarItem(R.id.menu_delete);
+
+ bots.main.clickDialogOkButton();
+ device.waitForIdle();
+
+ bots.directory.assertDocumentsAbsent("file1.png");
}
}
diff --git a/tests/src/com/android/documentsui/TestInputEvent.java b/tests/src/com/android/documentsui/TestInputEvent.java
index 36e7c1bf7..e6936d68e 100644
--- a/tests/src/com/android/documentsui/TestInputEvent.java
+++ b/tests/src/com/android/documentsui/TestInputEvent.java
@@ -22,11 +22,6 @@ public class TestInputEvent implements Events.InputEvent {
}
@Override
- public boolean isTouchEvent() {
- return !mouseEvent;
- }
-
- @Override
public boolean isMouseEvent() {
return mouseEvent;
}