Loading Android.mk +0 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,6 @@ LOCAL_SRC_FILES += \ core/java/android/print/ILayoutResultCallback.aidl \ core/java/android/print/IPrinterDiscoveryObserver.aidl \ core/java/android/print/IPrintDocumentAdapter.aidl \ core/java/android/print/IPrintClient.aidl \ core/java/android/print/IPrintJobStateChangeListener.aidl \ core/java/android/print/IPrintManager.aidl \ core/java/android/print/IPrintSpooler.aidl \ Loading CleanSpec.mk +2 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ $(call add-clean-step, rm -f $(PRODUCT_OUT)/system/media/video/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/effects/) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/framework-res_intermediates) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/print/IPrintClient.*) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ core/java/android/print/IPrintManager.aidl +3 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package android.print; import android.os.Bundle; import android.print.IPrinterDiscoveryObserver; import android.print.IPrintDocumentAdapter; import android.print.IPrintClient; import android.print.PrintJobId; import android.print.IPrintJobStateChangeListener; import android.print.PrinterId; Loading @@ -34,9 +34,8 @@ import android.printservice.PrintServiceInfo; interface IPrintManager { List<PrintJobInfo> getPrintJobInfos(int appId, int userId); PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId); PrintJobInfo print(String printJobName, in IPrintClient client, in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes, int appId, int userId); Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes, String packageName, int appId, int userId); void cancelPrintJob(in PrintJobId printJobId, int appId, int userId); void restartPrintJob(in PrintJobId printJobId, int appId, int userId); Loading core/java/android/print/IPrintSpooler.aidl +1 −4 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package android.print; import android.content.ComponentName; import android.os.ParcelFileDescriptor; import android.print.IPrintDocumentAdapter; import android.print.IPrintClient; import android.print.IPrintSpoolerClient; import android.print.IPrintSpoolerCallbacks; import android.print.PrinterInfo; Loading @@ -40,8 +38,7 @@ oneway interface IPrintSpooler { int state, int appId, int sequence); void getPrintJobInfo(in PrintJobId printJobId, IPrintSpoolerCallbacks callback, int appId, int sequence); void createPrintJob(in PrintJobInfo printJob, in IPrintClient client, in IPrintDocumentAdapter printAdapter); void createPrintJob(in PrintJobInfo printJob); void setPrintJobState(in PrintJobId printJobId, int status, String stateReason, IPrintSpoolerCallbacks callback, int sequence); void setPrintJobTag(in PrintJobId printJobId, String tag, IPrintSpoolerCallbacks callback, Loading core/java/android/print/PrintManager.java +56 −45 Original line number Diff line number Diff line Loading @@ -60,8 +60,47 @@ public final class PrintManager { private static final boolean DEBUG = false; private static final int MSG_START_PRINT_JOB_CONFIG_ACTIVITY = 1; private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 2; private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 1; /** * The action for launching the print dialog activity. * * @hide */ public static final String ACTION_PRINT_DIALOG = "android.print.PRINT_DIALOG"; /** * Extra with the intent for starting the print dialog. * <p> * <strong>Type:</strong> {@link android.content.IntentSender} * </p> * * @hide */ public static final String EXTRA_PRINT_DIALOG_INTENT = "android.print.intent.extra.EXTRA_PRINT_DIALOG_INTENT"; /** * Extra with a print job. * <p> * <strong>Type:</strong> {@link android.print.PrintJobInfo} * </p> * * @hide */ public static final String EXTRA_PRINT_JOB = "android.print.intent.extra.EXTRA_PRINT_JOB"; /** * Extra with the print document adapter to be printed. * <p> * <strong>Type:</strong> {@link android.print.IPrintDocumentAdapter} * </p> * * @hide */ public static final String EXTRA_PRINT_DOCUMENT_ADAPTER = "android.print.intent.extra.EXTRA_PRINT_DOCUMENT_ADAPTER"; /** @hide */ public static final int APP_ID_ANY = -2; Loading @@ -74,8 +113,6 @@ public final class PrintManager { private final int mAppId; private final PrintClient mPrintClient; private final Handler mHandler; private Map<PrintJobStateChangeListener, PrintJobStateChangeListenerWrapper> mPrintJobStateChangeListeners; Loading Loading @@ -103,24 +140,10 @@ public final class PrintManager { mService = service; mUserId = userId; mAppId = appId; mPrintClient = new PrintClient(this); mHandler = new Handler(context.getMainLooper(), null, false) { @Override public void handleMessage(Message message) { switch (message.what) { case MSG_START_PRINT_JOB_CONFIG_ACTIVITY: { SomeArgs args = (SomeArgs) message.obj; Context context = (Context) args.arg1; IntentSender intent = (IntentSender) args.arg2; args.recycle(); try { context.startIntentSender(intent, null, 0, 0, 0); } catch (SendIntentException sie) { Log.e(LOG_TAG, "Couldn't start print job config activity.", sie); } } break; case MSG_NOTIFY_PRINT_JOB_STATE_CHANGED: { SomeArgs args = (SomeArgs) message.obj; PrintJobStateChangeListener listener = Loading @@ -128,8 +151,7 @@ public final class PrintManager { PrintJobId printJobId = (PrintJobId) args.arg2; args.recycle(); listener.onPrintJobStateChanged(printJobId); } break; } break; } } }; Loading Loading @@ -279,10 +301,20 @@ public final class PrintManager { PrintDocumentAdapterDelegate delegate = new PrintDocumentAdapterDelegate(documentAdapter, mContext.getMainLooper()); try { PrintJobInfo printJob = mService.print(printJobName, mPrintClient, delegate, attributes, mAppId, mUserId); if (printJob != null) { Bundle result = mService.print(printJobName, delegate, attributes, mContext.getPackageName(), mAppId, mUserId); if (result != null) { PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB); IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT); if (printJob == null || intent == null) { return null; } try { mContext.startIntentSender(intent, null, 0, 0, 0); return new PrintJob(printJob, this); } catch (SendIntentException sie) { Log.e(LOG_TAG, "Couldn't start print job config activity.", sie); } } } catch (RemoteException re) { Log.e(LOG_TAG, "Error creating a print job", re); Loading Loading @@ -333,27 +365,6 @@ public final class PrintManager { return new PrinterDiscoverySession(mService, mContext, mUserId); } private static final class PrintClient extends IPrintClient.Stub { private final WeakReference<PrintManager> mWeakPrintManager; public PrintClient(PrintManager manager) { mWeakPrintManager = new WeakReference<PrintManager>(manager); } @Override public void startPrintJobConfigActivity(IntentSender intent) { PrintManager manager = mWeakPrintManager.get(); if (manager != null) { SomeArgs args = SomeArgs.obtain(); args.arg1 = manager.mContext; args.arg2 = intent; manager.mHandler.obtainMessage(MSG_START_PRINT_JOB_CONFIG_ACTIVITY, args).sendToTarget(); } } } private static final class PrintDocumentAdapterDelegate extends IPrintDocumentAdapter.Stub { private final Object mLock = new Object(); Loading Loading
Android.mk +0 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,6 @@ LOCAL_SRC_FILES += \ core/java/android/print/ILayoutResultCallback.aidl \ core/java/android/print/IPrinterDiscoveryObserver.aidl \ core/java/android/print/IPrintDocumentAdapter.aidl \ core/java/android/print/IPrintClient.aidl \ core/java/android/print/IPrintJobStateChangeListener.aidl \ core/java/android/print/IPrintManager.aidl \ core/java/android/print/IPrintSpooler.aidl \ Loading
CleanSpec.mk +2 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,8 @@ $(call add-clean-step, rm -f $(PRODUCT_OUT)/system/media/video/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/effects/) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/framework-res_intermediates) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/print/IPrintClient.*) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************
core/java/android/print/IPrintManager.aidl +3 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package android.print; import android.os.Bundle; import android.print.IPrinterDiscoveryObserver; import android.print.IPrintDocumentAdapter; import android.print.IPrintClient; import android.print.PrintJobId; import android.print.IPrintJobStateChangeListener; import android.print.PrinterId; Loading @@ -34,9 +34,8 @@ import android.printservice.PrintServiceInfo; interface IPrintManager { List<PrintJobInfo> getPrintJobInfos(int appId, int userId); PrintJobInfo getPrintJobInfo(in PrintJobId printJobId, int appId, int userId); PrintJobInfo print(String printJobName, in IPrintClient client, in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes, int appId, int userId); Bundle print(String printJobName, in IPrintDocumentAdapter printAdapter, in PrintAttributes attributes, String packageName, int appId, int userId); void cancelPrintJob(in PrintJobId printJobId, int appId, int userId); void restartPrintJob(in PrintJobId printJobId, int appId, int userId); Loading
core/java/android/print/IPrintSpooler.aidl +1 −4 Original line number Diff line number Diff line Loading @@ -18,8 +18,6 @@ package android.print; import android.content.ComponentName; import android.os.ParcelFileDescriptor; import android.print.IPrintDocumentAdapter; import android.print.IPrintClient; import android.print.IPrintSpoolerClient; import android.print.IPrintSpoolerCallbacks; import android.print.PrinterInfo; Loading @@ -40,8 +38,7 @@ oneway interface IPrintSpooler { int state, int appId, int sequence); void getPrintJobInfo(in PrintJobId printJobId, IPrintSpoolerCallbacks callback, int appId, int sequence); void createPrintJob(in PrintJobInfo printJob, in IPrintClient client, in IPrintDocumentAdapter printAdapter); void createPrintJob(in PrintJobInfo printJob); void setPrintJobState(in PrintJobId printJobId, int status, String stateReason, IPrintSpoolerCallbacks callback, int sequence); void setPrintJobTag(in PrintJobId printJobId, String tag, IPrintSpoolerCallbacks callback, Loading
core/java/android/print/PrintManager.java +56 −45 Original line number Diff line number Diff line Loading @@ -60,8 +60,47 @@ public final class PrintManager { private static final boolean DEBUG = false; private static final int MSG_START_PRINT_JOB_CONFIG_ACTIVITY = 1; private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 2; private static final int MSG_NOTIFY_PRINT_JOB_STATE_CHANGED = 1; /** * The action for launching the print dialog activity. * * @hide */ public static final String ACTION_PRINT_DIALOG = "android.print.PRINT_DIALOG"; /** * Extra with the intent for starting the print dialog. * <p> * <strong>Type:</strong> {@link android.content.IntentSender} * </p> * * @hide */ public static final String EXTRA_PRINT_DIALOG_INTENT = "android.print.intent.extra.EXTRA_PRINT_DIALOG_INTENT"; /** * Extra with a print job. * <p> * <strong>Type:</strong> {@link android.print.PrintJobInfo} * </p> * * @hide */ public static final String EXTRA_PRINT_JOB = "android.print.intent.extra.EXTRA_PRINT_JOB"; /** * Extra with the print document adapter to be printed. * <p> * <strong>Type:</strong> {@link android.print.IPrintDocumentAdapter} * </p> * * @hide */ public static final String EXTRA_PRINT_DOCUMENT_ADAPTER = "android.print.intent.extra.EXTRA_PRINT_DOCUMENT_ADAPTER"; /** @hide */ public static final int APP_ID_ANY = -2; Loading @@ -74,8 +113,6 @@ public final class PrintManager { private final int mAppId; private final PrintClient mPrintClient; private final Handler mHandler; private Map<PrintJobStateChangeListener, PrintJobStateChangeListenerWrapper> mPrintJobStateChangeListeners; Loading Loading @@ -103,24 +140,10 @@ public final class PrintManager { mService = service; mUserId = userId; mAppId = appId; mPrintClient = new PrintClient(this); mHandler = new Handler(context.getMainLooper(), null, false) { @Override public void handleMessage(Message message) { switch (message.what) { case MSG_START_PRINT_JOB_CONFIG_ACTIVITY: { SomeArgs args = (SomeArgs) message.obj; Context context = (Context) args.arg1; IntentSender intent = (IntentSender) args.arg2; args.recycle(); try { context.startIntentSender(intent, null, 0, 0, 0); } catch (SendIntentException sie) { Log.e(LOG_TAG, "Couldn't start print job config activity.", sie); } } break; case MSG_NOTIFY_PRINT_JOB_STATE_CHANGED: { SomeArgs args = (SomeArgs) message.obj; PrintJobStateChangeListener listener = Loading @@ -128,8 +151,7 @@ public final class PrintManager { PrintJobId printJobId = (PrintJobId) args.arg2; args.recycle(); listener.onPrintJobStateChanged(printJobId); } break; } break; } } }; Loading Loading @@ -279,10 +301,20 @@ public final class PrintManager { PrintDocumentAdapterDelegate delegate = new PrintDocumentAdapterDelegate(documentAdapter, mContext.getMainLooper()); try { PrintJobInfo printJob = mService.print(printJobName, mPrintClient, delegate, attributes, mAppId, mUserId); if (printJob != null) { Bundle result = mService.print(printJobName, delegate, attributes, mContext.getPackageName(), mAppId, mUserId); if (result != null) { PrintJobInfo printJob = result.getParcelable(EXTRA_PRINT_JOB); IntentSender intent = result.getParcelable(EXTRA_PRINT_DIALOG_INTENT); if (printJob == null || intent == null) { return null; } try { mContext.startIntentSender(intent, null, 0, 0, 0); return new PrintJob(printJob, this); } catch (SendIntentException sie) { Log.e(LOG_TAG, "Couldn't start print job config activity.", sie); } } } catch (RemoteException re) { Log.e(LOG_TAG, "Error creating a print job", re); Loading Loading @@ -333,27 +365,6 @@ public final class PrintManager { return new PrinterDiscoverySession(mService, mContext, mUserId); } private static final class PrintClient extends IPrintClient.Stub { private final WeakReference<PrintManager> mWeakPrintManager; public PrintClient(PrintManager manager) { mWeakPrintManager = new WeakReference<PrintManager>(manager); } @Override public void startPrintJobConfigActivity(IntentSender intent) { PrintManager manager = mWeakPrintManager.get(); if (manager != null) { SomeArgs args = SomeArgs.obtain(); args.arg1 = manager.mContext; args.arg2 = intent; manager.mHandler.obtainMessage(MSG_START_PRINT_JOB_CONFIG_ACTIVITY, args).sendToTarget(); } } } private static final class PrintDocumentAdapterDelegate extends IPrintDocumentAdapter.Stub { private final Object mLock = new Object(); Loading