PrintingControllerFactory.java revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)package org.chromium.chrome.browser.printing;
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import android.app.Activity;
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import android.content.Context;
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import android.print.PrintManager;
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.base.ApiCompatibilityUtils;
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.chrome.R;
13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)import org.chromium.printing.PrintDocumentAdapterWrapper;
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.printing.PrintManagerDelegateImpl;
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.printing.PrintingController;
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.printing.PrintingControllerImpl;
17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/**
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Creates a {@link PrintingControllerImpl}.
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) *
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Also, sets the default title of {@link TabPrinter}.
22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)public class PrintingControllerFactory {
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    public static PrintingController create(Activity activity) {
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        if (ApiCompatibilityUtils.isPrintingSupported()) {
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)            String defaultJobTitle = activity.getResources().getString(R.string.menu_print);
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)            TabPrinter.setDefaultTitle(defaultJobTitle);
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)            PrintManager printManager =
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)                    (PrintManager) activity.getSystemService(Context.PRINT_SERVICE);
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)            String errorText = activity.getResources().getString(R.string.error_printing_failed);
32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)            return PrintingControllerImpl.create(new PrintManagerDelegateImpl(printManager),
33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)                    new PrintDocumentAdapterWrapper(), errorText);
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        }
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        return null;
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    }
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}
38