Add usage of PrintHelper to PrintApp.

Change-Id: I45026e008df317b7128a1d6fee709a58e7b8580c
diff --git a/PrintApp/Android.mk b/PrintApp/Android.mk
index 5e1c4fa..81ab231 100644
--- a/PrintApp/Android.mk
+++ b/PrintApp/Android.mk
@@ -6,6 +6,8 @@
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
-LOCAL_PACKAGE_NAME := Print
+LOCAL_PACKAGE_NAME := PrintApp
+
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
 
 include $(BUILD_PACKAGE)
diff --git a/PrintApp/AndroidManifest.xml b/PrintApp/AndroidManifest.xml
index 1442178..38cf86c 100644
--- a/PrintApp/AndroidManifest.xml
+++ b/PrintApp/AndroidManifest.xml
@@ -1,11 +1,5 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="foo.bar.print"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-    <uses-sdk
-        android:minSdkVersion="19"
-        android:targetSdkVersion="19" />
+    package="foo.bar.print" >
 
     <application
         android:icon="@drawable/ic_launcher"
diff --git a/PrintApp/res/menu/activity_main.xml b/PrintApp/res/menu/activity_main.xml
index 060c09a..08d043d 100644
--- a/PrintApp/res/menu/activity_main.xml
+++ b/PrintApp/res/menu/activity_main.xml
@@ -3,4 +3,16 @@
         android:title="@string/print"
         android:orderInCategory="100"
         android:showAsAction="never" />
+    <item android:id="@+id/menu_print_uri_portrait_force"
+        android:title="@string/print_uri_portrait_force"
+        android:orderInCategory="101"
+        android:showAsAction="never" />
+    <item android:id="@+id/menu_print_uri_portrait"
+        android:title="@string/print_uri_portrait"
+        android:orderInCategory="102"
+        android:showAsAction="never" />
+    <item android:id="@+id/menu_print_uri_landscape"
+        android:title="@string/print_uri_landscape"
+        android:orderInCategory="103"
+        android:showAsAction="never" />
 </menu>
diff --git a/PrintApp/res/raw/landscape.png b/PrintApp/res/raw/landscape.png
new file mode 100644
index 0000000..c3978f9
--- /dev/null
+++ b/PrintApp/res/raw/landscape.png
Binary files differ
diff --git a/PrintApp/res/raw/portrait.png b/PrintApp/res/raw/portrait.png
new file mode 100644
index 0000000..657a012
--- /dev/null
+++ b/PrintApp/res/raw/portrait.png
Binary files differ
diff --git a/PrintApp/res/values/strings.xml b/PrintApp/res/values/strings.xml
index 352494a..f7de66d 100644
--- a/PrintApp/res/values/strings.xml
+++ b/PrintApp/res/values/strings.xml
@@ -1,9 +1,12 @@
 <resources>
 
-    <string name="app_name">Print</string>
+    <string name="app_name">Print App</string>
     <string name="menu_settings">Settings</string>
     <string name="title_activity_main">MainActivity</string>
     <string name="print">Print</string>
+    <string name="print_uri_portrait_force">Print Uri Portrait (force)</string>
+    <string name="print_uri_portrait">Print Uri Portrait</string>
+    <string name="print_uri_landscape">Print Uri Landscape</string>
     <string name="name">Name</string>
     <string name="enter_name">Enter your name</string>
     <string name="done">Done</string>
diff --git a/PrintApp/src/foo/bar/permission2/PrintActivity.java b/PrintApp/src/foo/bar/permission2/PrintActivity.java
index 34bec6f..314e57c 100644
--- a/PrintApp/src/foo/bar/permission2/PrintActivity.java
+++ b/PrintApp/src/foo/bar/permission2/PrintActivity.java
@@ -44,6 +44,8 @@
 import android.view.MenuItem;
 import android.view.View;
 
+import foo.bar.print.R;
+
 /**
  * Simple sample of how to use the print APIs.
  */
diff --git a/PrintApp/src/foo/bar/print/PrintActivity.java b/PrintApp/src/foo/bar/print/PrintActivity.java
index 03c3b89..9676128 100644
--- a/PrintApp/src/foo/bar/print/PrintActivity.java
+++ b/PrintApp/src/foo/bar/print/PrintActivity.java
@@ -16,6 +16,7 @@
 
 package foo.bar.print;
 
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -24,6 +25,7 @@
 import android.app.Activity;
 import android.content.Context;
 import android.graphics.pdf.PdfDocument.Page;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.CancellationSignal;
@@ -35,6 +37,7 @@
 import android.print.PrintDocumentInfo;
 import android.print.PrintManager;
 import android.print.pdf.PrintedPdfDocument;
+import android.support.v4.print.PrintHelper;
 import android.util.SparseIntArray;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -64,11 +67,36 @@
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.menu_print) {
-            printView();
-            return true;
+        switch (item.getItemId()) {
+            case R.id.menu_print:
+                printView();
+                return true;
+            case R.id.menu_print_uri_portrait_force:
+            case R.id.menu_print_uri_portrait:
+            case R.id.menu_print_uri_landscape:
+                try {
+                    PrintHelper ph = new PrintHelper(this);
+                    Uri uri = null;
+                    switch (item.getItemId()) {
+                        case R.id.menu_print_uri_portrait_force:
+                            ph.setOrientation(PrintHelper.ORIENTATION_PORTRAIT);
+                            /* fall through */
+                        case R.id.menu_print_uri_portrait:
+                            uri = Uri.parse("android.resource://foo.bar.print/raw/portrait");
+                            break;
+                        case R.id.menu_print_uri_landscape:
+                            uri = Uri.parse("android.resource://foo.bar.print/raw/landscape");
+                            break;
+                    }
+
+                    ph.printBitmap("Print Uri", uri);
+                } catch (FileNotFoundException e) {
+                    e.printStackTrace();
+                }
+                return true;
+            default:
+                return super.onOptionsItemSelected(item);
         }
-        return super.onOptionsItemSelected(item);
     }
 
     private void printView() {