Implemented TODOs for analytics am: 00ff2c3dac

Original change: https://android-review.googlesource.com/c/platform/packages/services/BuiltInPrintService/+/3029204

Change-Id: Ic0a0346997ca3d5dcedcc2ea3c849d25e9b3ba5c
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/src/com/android/bips/LocalPrintJob.java b/src/com/android/bips/LocalPrintJob.java
index d9ff70d..630cda9 100644
--- a/src/com/android/bips/LocalPrintJob.java
+++ b/src/com/android/bips/LocalPrintJob.java
@@ -36,6 +36,7 @@
 import com.android.bips.p2p.P2pUtils;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.StringJoiner;
 import java.util.function.Consumer;
 
@@ -48,6 +49,8 @@
     private static final boolean DEBUG = false;
     private static final String IPP_SCHEME = "ipp";
     private static final String IPPS_SCHEME = "ipps";
+    private static final String SHARE_TO_PRINT = "SP";
+    private static final String DIRECT_PRINT = "DP";
 
     /** Maximum time to wait to find a printer before failing the job */
     private static final int DISCOVERY_TIMEOUT = 2 * 60 * 1000;
@@ -411,10 +414,6 @@
         Bundle bundle = new Bundle();
         bundle.putString(BackendConstants.PARAM_JOB_ID, mPrintJob.getId().toString());
         bundle.putLong(BackendConstants.PARAM_DATE_TIME, System.currentTimeMillis());
-        // TODO: Add real location
-        bundle.putString(BackendConstants.PARAM_LOCATION, "United States");
-        // TODO: Add real user id
-        bundle.putString(BackendConstants.PARAM_USER_ID, "userid");
         bundle.putString(BackendConstants.PARAM_RESULT, result);
         bundle.putLong(
                 BackendConstants.PARAM_ELAPSED_TIME_ALL, System.currentTimeMillis() - mStartTime);
@@ -430,15 +429,15 @@
         Bundle bundle = new Bundle();
         bundle.putString(BackendConstants.PARAM_JOB_ID, mPrintJob.getId().toString());
         bundle.putLong(BackendConstants.PARAM_DATE_TIME, System.currentTimeMillis());
-        // TODO: Add real location
-        bundle.putString(BackendConstants.PARAM_LOCATION, "United States");
-        bundle.putInt(
-                BackendConstants.PARAM_JOB_PAGES,
+        bundle.putInt(BackendConstants.PARAM_JOB_PAGES,
                 mPrintJob.getInfo().getCopies() * mPrintJob.getDocument().getInfo().getPageCount());
-        // TODO: Add real user id
-        bundle.putString(BackendConstants.PARAM_USER_ID, "userid");
-        // TODO: Determine whether the print job came from share to BIPS or from print system
-        bundle.putString(BackendConstants.PARAM_SOURCE_PATH, "ShareToBips || PrintSystem");
+        bundle.putString(BackendConstants.PARAM_SOURCE_PATH,
+                isSharedPrint() ? SHARE_TO_PRINT : DIRECT_PRINT);
         return bundle;
     }
+
+    private boolean isSharedPrint() {
+        return Arrays.asList(ImagePrintActivity.getLastPrintJobId(),
+                PdfPrintActivity.getLastPrintJobId()).contains(mPrintJob.getInfo().getId());
+    }
 }
diff --git a/src/com/android/bips/PdfPrintActivity.java b/src/com/android/bips/PdfPrintActivity.java
index 4463fae..2549779 100644
--- a/src/com/android/bips/PdfPrintActivity.java
+++ b/src/com/android/bips/PdfPrintActivity.java
@@ -28,6 +28,8 @@
 import android.print.PrintAttributes;
 import android.print.PrintDocumentAdapter;
 import android.print.PrintDocumentInfo;
+import android.print.PrintJob;
+import android.print.PrintJobId;
 import android.print.PrintManager;
 import android.util.Log;
 import android.webkit.URLUtil;
@@ -44,6 +46,8 @@
     private static final String TAG = PdfPrintActivity.class.getSimpleName();
     private static final boolean DEBUG = false;
 
+    private static PrintJobId sPrintJobId;
+
     private CancellationSignal mCancellationSignal;
     private String mJobName;
     Uri mContentUri = null;
@@ -73,7 +77,8 @@
         PrintAttributes printAttributes = new PrintAttributes.Builder()
                 .setColorMode(PrintAttributes.COLOR_MODE_COLOR)
                 .build();
-        printManager.print(mJobName, new PdfAdapter(), printAttributes);
+        PrintJob printJob = printManager.print(mJobName, new PdfAdapter(), printAttributes);
+        sPrintJobId = printJob.getId();
     }
 
     @Override
@@ -149,4 +154,13 @@
             return null;
         }
     }
+
+    /**
+     * Get the print job id from PrintManager created print job.
+     *
+     * @return A PrintJobId, can be null
+     */
+    static PrintJobId getLastPrintJobId() {
+        return sPrintJobId;
+    }
 }
diff --git a/src/com/android/bips/ipp/StartJobTask.java b/src/com/android/bips/ipp/StartJobTask.java
index 10aba16..196c8c9 100755
--- a/src/com/android/bips/ipp/StartJobTask.java
+++ b/src/com/android/bips/ipp/StartJobTask.java
@@ -41,6 +41,7 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.Objects;
 
 /**
  * A background task that starts sending a print job. The result of this task is an integer
@@ -279,6 +280,6 @@
     }
 
     private boolean isSharedPhoto() {
-        return mJobInfo.getId().equals(ImagePrintActivity.getLastPrintJobId());
+        return Objects.equals(mJobInfo.getId(), ImagePrintActivity.getLastPrintJobId());
     }
 }
diff --git a/src/com/android/bips/jni/BackendConstants.java b/src/com/android/bips/jni/BackendConstants.java
index 3147050..f780303 100644
--- a/src/com/android/bips/jni/BackendConstants.java
+++ b/src/com/android/bips/jni/BackendConstants.java
@@ -168,8 +168,6 @@
     public static final String PARAM_JOB_PAGES = "job_pages";
     public static final String PARAM_SOURCE_PATH = "source_path";
     public static final String PARAM_DATE_TIME = "date_time";
-    public static final String PARAM_USER_ID = "user_id";
-    public static final String PARAM_LOCATION = "location";
     public static final String PARAM_RESULT = "result";
     public static final String PARAM_ERROR_MESSAGES = "error_messages";
     public static final String PARAM_ELAPSED_TIME_ALL = "elapsed_time_all";