Merge "Fix the use of WakeLock." into nyc-andromeda-dev
diff --git a/src/com/android/documentsui/Metrics.java b/src/com/android/documentsui/Metrics.java
index cc3597e..8d923ca 100644
--- a/src/com/android/documentsui/Metrics.java
+++ b/src/com/android/documentsui/Metrics.java
@@ -28,6 +28,7 @@
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.provider.DocumentsContract;
+import android.provider.DocumentsProvider;
import android.util.Log;
import com.android.documentsui.base.DocumentInfo;
@@ -64,6 +65,9 @@
private static final String COUNT_STARTUP_MS = "docsui_startup_ms";
private static final String COUNT_DRAWER_OPENED = "docsui_drawer_opened";
private static final String COUNT_USER_ACTION = "docsui_menu_action";
+ private static final String COUNT_CREATE_AT_LOCATION = "docsui_create_at_location";
+ private static final String COUNT_OPEN_AT_LOCATION = "docsui_open_at_location";
+ private static final String COUNT_GET_CONTENT_AT_LOCATION = "docsui_get_content_at_location";
// Indices for bucketing roots in the roots histogram. "Other" is the catch-all index for any
// root that is not explicitly recognized by the Metrics code (see {@link
@@ -344,6 +348,28 @@
}
/**
+ * Logs when DocumentsUI are launched with {@link DocumentsContract#EXTRA_INITIAL_URI}.
+ *
+ * @param context
+ * @param state used to resolve action
+ * @param rootUri the resolved rootUri, or {@code null} if the provider doesn't
+ * support {@link DocumentsProvider#findDocumentPath(String, String)}
+ */
+ public static void logLaunchAtLocation(Context context, State state, @Nullable Uri rootUri) {
+ switch (state.action) {
+ case State.ACTION_CREATE:
+ logHistogram(context, COUNT_CREATE_AT_LOCATION, sanitizeRoot(rootUri));
+ break;
+ case State.ACTION_GET_CONTENT:
+ logHistogram(context, COUNT_GET_CONTENT_AT_LOCATION, sanitizeRoot(rootUri));
+ break;
+ case State.ACTION_OPEN:
+ logHistogram(context, COUNT_OPEN_AT_LOCATION, sanitizeRoot(rootUri));
+ break;
+ }
+ }
+
+ /**
* Logs a root visited event. Call this when the user visits on a root in the RootsFragment.
*
* @param context
diff --git a/src/com/android/documentsui/picker/ActionHandler.java b/src/com/android/documentsui/picker/ActionHandler.java
index 29cdf19..b67f45a 100644
--- a/src/com/android/documentsui/picker/ActionHandler.java
+++ b/src/com/android/documentsui/picker/ActionHandler.java
@@ -140,10 +140,15 @@
}
mState.stack.reset(stack);
mActivity.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
+
+ Metrics.logLaunchAtLocation(mActivity, mState, stack.getRoot().getUri());
} else {
Log.w(TAG, "Failed to launch into the given uri. Load last accessed stack.");
loadLastAccessedStack();
+
+ Metrics.logLaunchAtLocation(mActivity, mState, null);
}
+
}
private void loadLastAccessedStack() {