1 /* 2 * Copyright (C) 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.adservices.common; 18 19 import android.annotation.NonNull; 20 import android.annotation.Nullable; 21 import android.os.Parcel; 22 import android.os.Parcelable; 23 24 import java.util.Objects; 25 26 /** 27 * Result from the isAdServicesEnabled API. 28 * 29 * @hide 30 */ 31 public final class IsAdServicesEnabledResult implements Parcelable { 32 @Nullable private final String mErrorMessage; 33 private final boolean mAdServicesEnabled; 34 IsAdServicesEnabledResult(@ullable String errorMessage, @NonNull boolean enabled)35 private IsAdServicesEnabledResult(@Nullable String errorMessage, @NonNull boolean enabled) { 36 mErrorMessage = errorMessage; 37 mAdServicesEnabled = enabled; 38 } 39 IsAdServicesEnabledResult(@onNull Parcel in)40 private IsAdServicesEnabledResult(@NonNull Parcel in) { 41 mErrorMessage = in.readString(); 42 mAdServicesEnabled = in.readBoolean(); 43 } 44 45 public static final @NonNull Creator<IsAdServicesEnabledResult> CREATOR = 46 new Creator<IsAdServicesEnabledResult>() { 47 @Override 48 public IsAdServicesEnabledResult createFromParcel(Parcel in) { 49 return new IsAdServicesEnabledResult(in); 50 } 51 52 @Override 53 public IsAdServicesEnabledResult[] newArray(int size) { 54 return new IsAdServicesEnabledResult[size]; 55 } 56 }; 57 58 /** @hide */ 59 @Override describeContents()60 public int describeContents() { 61 return 0; 62 } 63 64 /** @hide */ 65 @Override writeToParcel(@onNull Parcel out, int flags)66 public void writeToParcel(@NonNull Parcel out, int flags) { 67 out.writeString(mErrorMessage); 68 out.writeBoolean(mAdServicesEnabled); 69 } 70 71 /** Returns the error message associated with this result. */ 72 @Nullable getErrorMessage()73 public String getErrorMessage() { 74 return mErrorMessage; 75 } 76 77 /** Returns the Adservices enabled status. */ 78 @NonNull getAdServicesEnabled()79 public boolean getAdServicesEnabled() { 80 return mAdServicesEnabled; 81 } 82 83 @Override toString()84 public String toString() { 85 return "GetAdserviceStatusResult{" 86 + ", mErrorMessage='" 87 + mErrorMessage 88 + ", mAdservicesEnabled=" 89 + mAdServicesEnabled 90 + '}'; 91 } 92 93 @Override equals(Object o)94 public boolean equals(Object o) { 95 if (this == o) { 96 return true; 97 } 98 99 if (!(o instanceof IsAdServicesEnabledResult)) { 100 return false; 101 } 102 103 IsAdServicesEnabledResult that = (IsAdServicesEnabledResult) o; 104 105 return Objects.equals(mErrorMessage, that.mErrorMessage) 106 && mAdServicesEnabled == that.mAdServicesEnabled; 107 } 108 109 @Override hashCode()110 public int hashCode() { 111 return Objects.hash(mErrorMessage, mAdServicesEnabled); 112 } 113 114 /** 115 * Builder for {@link IsAdServicesEnabledResult} objects. 116 * 117 * @hide 118 */ 119 public static final class Builder { 120 @Nullable private String mErrorMessage; 121 private boolean mAdServicesEnabled; 122 Builder()123 public Builder() {} 124 125 /** Set the Error Message. */ setErrorMessage(@ullable String errorMessage)126 public @NonNull Builder setErrorMessage(@Nullable String errorMessage) { 127 mErrorMessage = errorMessage; 128 return this; 129 } 130 131 /** Set the list of the returned Status */ setAdServicesEnabled(@onNull boolean adServicesEnabled)132 public @NonNull Builder setAdServicesEnabled(@NonNull boolean adServicesEnabled) { 133 mAdServicesEnabled = adServicesEnabled; 134 return this; 135 } 136 137 /** 138 * Builds a {@link IsAdServicesEnabledResult} instance. 139 * 140 * <p>throws IllegalArgumentException if any of the params are null or there is any mismatch 141 * in the size of ModelVersions and TaxonomyVersions. 142 */ build()143 public @NonNull IsAdServicesEnabledResult build() { 144 return new IsAdServicesEnabledResult(mErrorMessage, mAdServicesEnabled); 145 } 146 } 147 } 148