summaryrefslogtreecommitdiffstats
path: root/core/java/android/print/PrinterCapabilitiesInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/print/PrinterCapabilitiesInfo.java')
-rw-r--r--core/java/android/print/PrinterCapabilitiesInfo.java65
1 files changed, 27 insertions, 38 deletions
diff --git a/core/java/android/print/PrinterCapabilitiesInfo.java b/core/java/android/print/PrinterCapabilitiesInfo.java
index ea44c87..df51ec1 100644
--- a/core/java/android/print/PrinterCapabilitiesInfo.java
+++ b/core/java/android/print/PrinterCapabilitiesInfo.java
@@ -51,7 +51,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
private int mColorModes;
private final int[] mDefaults = new int[PROPERTY_COUNT];
- private Margins mDefaultMargins = DEFAULT_MARGINS;
/**
* @hide
@@ -71,6 +70,10 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
* @hide
*/
public void copyFrom(PrinterCapabilitiesInfo other) {
+ if (this == other) {
+ return;
+ }
+
mMinMargins = other.mMinMargins;
if (other.mMediaSizes != null) {
@@ -101,8 +104,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
for (int i = 0; i < defaultCount; i++) {
mDefaults[i] = other.mDefaults[i];
}
-
- mDefaultMargins = other.mDefaultMargins;
}
/**
@@ -124,7 +125,8 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
}
/**
- * Gets the minimal supported margins.
+ * Gets the minimal margins. These are the minimal margins
+ * the printer physically supports.
*
* @return The minimal margins.
*/
@@ -147,27 +149,29 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
/**
* Gets the default print attributes.
*
- * @param outAttributes The attributes to populated.
+ * @return The default attributes.
*/
- public void getDefaults(PrintAttributes outAttributes) {
- outAttributes.clear();
+ public PrintAttributes getDefaults() {
+ PrintAttributes.Builder builder = new PrintAttributes.Builder();
- outAttributes.setMargins(mDefaultMargins);
+ builder.setMinMargins(mMinMargins);
final int mediaSizeIndex = mDefaults[PROPERTY_MEDIA_SIZE];
if (mediaSizeIndex >= 0) {
- outAttributes.setMediaSize(mMediaSizes.get(mediaSizeIndex));
+ builder.setMediaSize(mMediaSizes.get(mediaSizeIndex));
}
final int resolutionIndex = mDefaults[PROPERTY_RESOLUTION];
if (resolutionIndex >= 0) {
- outAttributes.setResolution(mResolutions.get(resolutionIndex));
+ builder.setResolution(mResolutions.get(resolutionIndex));
}
final int colorMode = mDefaults[PROPERTY_COLOR_MODE];
if (colorMode > 0) {
- outAttributes.setColorMode(colorMode);
+ builder.setColorMode(colorMode);
}
+
+ return builder.build();
}
private PrinterCapabilitiesInfo(Parcel parcel) {
@@ -178,7 +182,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
mColorModes = parcel.readInt();
readDefaults(parcel);
- mDefaultMargins = readMargins(parcel);
}
@Override
@@ -195,7 +198,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
parcel.writeInt(mColorModes);
writeDefaults(parcel);
- writeMargins(mDefaultMargins, parcel);
}
@Override
@@ -207,7 +209,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
result = prime * result + ((mResolutions == null) ? 0 : mResolutions.hashCode());
result = prime * result + mColorModes;
result = prime * result + Arrays.hashCode(mDefaults);
- result = prime * result + ((mDefaultMargins == null) ? 0 : mDefaultMargins.hashCode());
return result;
}
@@ -250,13 +251,6 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
if (!Arrays.equals(mDefaults, other.mDefaults)) {
return false;
}
- if (mDefaultMargins == null) {
- if (other.mDefaultMargins != null) {
- return false;
- }
- } else if (!mDefaultMargins.equals(other.mDefaultMargins)) {
- return false;
- }
return true;
}
@@ -279,7 +273,7 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
while (colorModes != 0) {
final int colorMode = 1 << Integer.numberOfTrailingZeros(colorModes);
colorModes &= ~colorMode;
- if (builder.length() > 0) {
+ if (builder.length() > 1) {
builder.append(", ");
}
builder.append(PrintAttributes.colorModeToString(colorMode));
@@ -442,27 +436,25 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
}
/**
- * Sets the minimal margins.
+ * Sets the minimal margins. These are the minimal margins
+ * the printer physically supports.
+ *
* <p>
- * <strong>Required:</strong> No
+ * <strong>Required:</strong> Yes
* </p>
*
* @param margins The margins.
- * @param defaultMargins The default margins.
* @return This builder.
*
+ * @throws IllegalArgumentException If margins are <code>null</code>.
+ *
* @see PrintAttributes.Margins
*/
- public Builder setMinMargins(Margins margins, Margins defaultMargins) {
- if (margins.getLeftMils() > defaultMargins.getLeftMils()
- || margins.getTopMils() > defaultMargins.getTopMils()
- || margins.getRightMils() < defaultMargins.getRightMils()
- || margins.getBottomMils() < defaultMargins.getBottomMils()) {
- throw new IllegalArgumentException("Default margins"
- + " cannot be outside of the min margins.");
+ public Builder setMinMargins(Margins margins) {
+ if (margins == null) {
+ throw new IllegalArgumentException("margins cannot be null");
}
mPrototype.mMinMargins = margins;
- mPrototype.mDefaultMargins = defaultMargins;
return this;
}
@@ -507,7 +499,7 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
*
* @throws IllegalStateException If a required attribute was not specified.
*/
- public PrinterCapabilitiesInfo create() {
+ public PrinterCapabilitiesInfo build() {
if (mPrototype.mMediaSizes == null || mPrototype.mMediaSizes.isEmpty()) {
throw new IllegalStateException("No media size specified.");
}
@@ -527,10 +519,7 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
throw new IllegalStateException("No default color mode specified.");
}
if (mPrototype.mMinMargins == null) {
- mPrototype.mMinMargins = new Margins(0, 0, 0, 0);
- }
- if (mPrototype.mDefaultMargins == null) {
- mPrototype.mDefaultMargins = mPrototype.mMinMargins;
+ throw new IllegalArgumentException("margins cannot be null");
}
return new PrinterCapabilitiesInfo(mPrototype);
}