Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c854022 authored by Svetoslav Ganov's avatar Svetoslav Ganov Committed by Android (Google) Code Review
Browse files

Merge "Choosing default paper size for the "Save to PDF" fake printer" into klp-dev

parents d2534f8c 0ce3e874
Loading
Loading
Loading
Loading
+32 −2
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import android.text.Editable;
import android.text.TextUtils;
import android.text.TextUtils.SimpleStringSplitter;
import android.text.TextWatcher;
import android.util.ArraySet;
import android.util.AttributeSet;
import android.util.Log;
import android.view.KeyEvent;
@@ -90,6 +91,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -147,6 +149,26 @@ public class PrintJobConfigActivity extends Activity {
            "[\\s]*[0-9]*[\\s]*[\\-]?[\\s]*[0-9]*[\\s]*?(([,])"
            + "[\\s]*[0-9]*[\\s]*[\\-]?[\\s]*[0-9]*[\\s]*|[\\s]*)+");

    // The list of countries where Letter is the default paper size. Culled from
    // the OpenOffice wiki at http://wiki.openoffice.org/wiki/DefaultPaperSize.
    private static final Set<String> sLetterDefaultCountries = new ArraySet<String>();
    static {
        sLetterDefaultCountries.add("US");
        sLetterDefaultCountries.add("CA");
        sLetterDefaultCountries.add("BZ");
        sLetterDefaultCountries.add("CL");
        sLetterDefaultCountries.add("CR");
        sLetterDefaultCountries.add("GT");
        sLetterDefaultCountries.add("NI");
        sLetterDefaultCountries.add("PA");
        sLetterDefaultCountries.add("PR");
        sLetterDefaultCountries.add("SV");
        sLetterDefaultCountries.add("VE");
        sLetterDefaultCountries.add("MX");
        sLetterDefaultCountries.add("CO");
        sLetterDefaultCountries.add("PH");
    }

    public static final PageRange[] ALL_PAGES_ARRAY = new PageRange[] {PageRange.ALL_PAGES};

    private final PrintAttributes mOldPrintAttributes = new PrintAttributes.Builder().build();
@@ -2136,12 +2158,20 @@ public class PrintJobConfigActivity extends Activity {
            }

            private PrinterInfo createFakePdfPrinter() {
                final MediaSize defaultMediaSize;
                String currentCountry = getResources().getConfiguration().locale.getCountry();
                if (sLetterDefaultCountries.contains(currentCountry)) {
                    defaultMediaSize = MediaSize.NA_LETTER;
                } else {
                    defaultMediaSize = MediaSize.ISO_A4;
                }

                PrinterId printerId = new PrinterId(getComponentName(), "PDF printer");

                PrinterCapabilitiesInfo capabilities =
                        new PrinterCapabilitiesInfo.Builder(printerId)
                    .addMediaSize(MediaSize.ISO_A4, true)
                    .addMediaSize(MediaSize.NA_LETTER, false)
                    .addMediaSize(MediaSize.ISO_A4, MediaSize.ISO_A4 == defaultMediaSize)
                    .addMediaSize(MediaSize.NA_LETTER, MediaSize.NA_LETTER == defaultMediaSize)
                    .addResolution(new Resolution("PDF resolution", "PDF resolution",
                            300, 300), true)
                    .setColorModes(PrintAttributes.COLOR_MODE_COLOR