1 /* 2 * Copyright (C) 2020 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.view.contentcapture; 18 19 import android.annotation.NonNull; 20 import android.annotation.Nullable; 21 import android.app.ActivityThread; 22 import android.content.LocusId; 23 import android.os.Parcel; 24 import android.os.Parcelable; 25 26 import com.android.internal.util.DataClass; 27 28 import java.util.Objects; 29 30 /** Container class representing a request to share data with Content Capture service. */ 31 @DataClass( 32 genConstructor = false, 33 genEqualsHashCode = true, 34 genHiddenConstDefs = true, 35 genParcelable = true, 36 genToString = true 37 ) 38 public final class DataShareRequest implements Parcelable { 39 40 /** Name of the package making the request. */ 41 @NonNull private final String mPackageName; 42 43 /** Locus id helping to identify what data is being shared. */ 44 @Nullable private final LocusId mLocusId; 45 46 /** MIME type of the data being shared. */ 47 @NonNull private final String mMimeType; 48 49 /** Constructs a request to share data with the Content Capture Service. */ DataShareRequest(@ullable LocusId locusId, @NonNull String mimeType)50 public DataShareRequest(@Nullable LocusId locusId, @NonNull String mimeType) { 51 Objects.requireNonNull(mimeType); 52 53 mPackageName = ActivityThread.currentActivityThread().getApplication().getPackageName(); 54 mLocusId = locusId; 55 mMimeType = mimeType; 56 } 57 58 59 60 // Code below generated by codegen v1.0.14. 61 // 62 // DO NOT MODIFY! 63 // CHECKSTYLE:OFF Generated code 64 // 65 // To regenerate run: 66 // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/android/view/contentcapture/DataShareRequest.java 67 // 68 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 69 // Settings > Editor > Code Style > Formatter Control 70 //@formatter:off 71 72 73 /** 74 * Name of the package making the request. 75 */ 76 @DataClass.Generated.Member getPackageName()77 public @NonNull String getPackageName() { 78 return mPackageName; 79 } 80 81 /** 82 * Locus id helping to identify what data is being shared. 83 */ 84 @DataClass.Generated.Member getLocusId()85 public @Nullable LocusId getLocusId() { 86 return mLocusId; 87 } 88 89 /** 90 * MIME type of the data being shared. 91 */ 92 @DataClass.Generated.Member getMimeType()93 public @NonNull String getMimeType() { 94 return mMimeType; 95 } 96 97 @Override 98 @DataClass.Generated.Member toString()99 public String toString() { 100 // You can override field toString logic by defining methods like: 101 // String fieldNameToString() { ... } 102 103 return "DataShareRequest { " + 104 "packageName = " + mPackageName + ", " + 105 "locusId = " + mLocusId + ", " + 106 "mimeType = " + mMimeType + 107 " }"; 108 } 109 110 @Override 111 @DataClass.Generated.Member equals(@ullable Object o)112 public boolean equals(@Nullable Object o) { 113 // You can override field equality logic by defining either of the methods like: 114 // boolean fieldNameEquals(DataShareRequest other) { ... } 115 // boolean fieldNameEquals(FieldType otherValue) { ... } 116 117 if (this == o) return true; 118 if (o == null || getClass() != o.getClass()) return false; 119 @SuppressWarnings("unchecked") 120 DataShareRequest that = (DataShareRequest) o; 121 //noinspection PointlessBooleanExpression 122 return true 123 && java.util.Objects.equals(mPackageName, that.mPackageName) 124 && java.util.Objects.equals(mLocusId, that.mLocusId) 125 && java.util.Objects.equals(mMimeType, that.mMimeType); 126 } 127 128 @Override 129 @DataClass.Generated.Member hashCode()130 public int hashCode() { 131 // You can override field hashCode logic by defining methods like: 132 // int fieldNameHashCode() { ... } 133 134 int _hash = 1; 135 _hash = 31 * _hash + java.util.Objects.hashCode(mPackageName); 136 _hash = 31 * _hash + java.util.Objects.hashCode(mLocusId); 137 _hash = 31 * _hash + java.util.Objects.hashCode(mMimeType); 138 return _hash; 139 } 140 141 @Override 142 @DataClass.Generated.Member writeToParcel(@onNull Parcel dest, int flags)143 public void writeToParcel(@NonNull Parcel dest, int flags) { 144 // You can override field parcelling by defining methods like: 145 // void parcelFieldName(Parcel dest, int flags) { ... } 146 147 byte flg = 0; 148 if (mLocusId != null) flg |= 0x2; 149 dest.writeByte(flg); 150 dest.writeString(mPackageName); 151 if (mLocusId != null) dest.writeTypedObject(mLocusId, flags); 152 dest.writeString(mMimeType); 153 } 154 155 @Override 156 @DataClass.Generated.Member describeContents()157 public int describeContents() { return 0; } 158 159 /** @hide */ 160 @SuppressWarnings({"unchecked", "RedundantCast"}) 161 @DataClass.Generated.Member DataShareRequest(@onNull Parcel in)162 /* package-private */ DataShareRequest(@NonNull Parcel in) { 163 // You can override field unparcelling by defining methods like: 164 // static FieldType unparcelFieldName(Parcel in) { ... } 165 166 byte flg = in.readByte(); 167 String packageName = in.readString(); 168 LocusId locusId = (flg & 0x2) == 0 ? null : (LocusId) in.readTypedObject(LocusId.CREATOR); 169 String mimeType = in.readString(); 170 171 this.mPackageName = packageName; 172 com.android.internal.util.AnnotationValidations.validate( 173 NonNull.class, null, mPackageName); 174 this.mLocusId = locusId; 175 this.mMimeType = mimeType; 176 com.android.internal.util.AnnotationValidations.validate( 177 NonNull.class, null, mMimeType); 178 179 // onConstructed(); // You can define this method to get a callback 180 } 181 182 @DataClass.Generated.Member 183 public static final @NonNull Parcelable.Creator<DataShareRequest> CREATOR 184 = new Parcelable.Creator<DataShareRequest>() { 185 @Override 186 public DataShareRequest[] newArray(int size) { 187 return new DataShareRequest[size]; 188 } 189 190 @Override 191 public DataShareRequest createFromParcel(@NonNull Parcel in) { 192 return new DataShareRequest(in); 193 } 194 }; 195 196 @DataClass.Generated( 197 time = 1579870254459L, 198 codegenVersion = "1.0.14", 199 sourceFile = "frameworks/base/core/java/android/view/contentcapture/DataShareRequest.java", 200 inputSignatures = "private final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.Nullable android.content.LocusId mLocusId\nprivate final @android.annotation.NonNull java.lang.String mMimeType\nclass DataShareRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)") 201 @Deprecated __metadata()202 private void __metadata() {} 203 204 205 //@formatter:on 206 // End of generated code 207 208 } 209