123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme/* 223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * Copyright (C) 2018 The Android Open Source Project 323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * 423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * Licensed under the Apache License, Version 2.0 (the "License"); 523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * you may not use this file except in compliance with the License. 623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * You may obtain a copy of the License at 723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * 823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * http://www.apache.org/licenses/LICENSE-2.0 923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * 1023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * Unless required by applicable law or agreed to in writing, software 1123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * distributed under the License is distributed on an "AS IS" BASIS, 1223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * See the License for the specific language governing permissions and 1423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * limitations under the License. 1523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme */ 1623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 1723a0c7a009284d5587839ea87e0e621d06774552Felipe Lemepackage android.app; 1823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 1923a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.annotation.NonNull; 2023a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.annotation.Nullable; 2123a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.content.UriPermission; 2223a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.net.Uri; 2323a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.os.Parcel; 2423a0c7a009284d5587839ea87e0e621d06774552Felipe Lemeimport android.os.Parcelable; 2523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 2623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme/** 2723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * Represents an {@link UriPermission} granted to a package. 2823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * 2923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme * {@hide} 3023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme */ 3123a0c7a009284d5587839ea87e0e621d06774552Felipe Lemepublic class GrantedUriPermission implements Parcelable { 3223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 3323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public final Uri uri; 3423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public final String packageName; 3523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 3623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public GrantedUriPermission(@NonNull Uri uri, @Nullable String packageName) { 3723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme this.uri = uri; 3823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme this.packageName = packageName; 3923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 4023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 4123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme @Override 4223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public String toString() { 4323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme return packageName + ":" + uri; 4423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 4523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 4623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme @Override 4723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public int describeContents() { 4823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme return 0; 4923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 5023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 5123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme @Override 5223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public void writeToParcel(Parcel out, int flags) { 5323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme out.writeParcelable(uri, flags); 5423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme out.writeString(packageName); 5523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 5623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 5723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public static final Parcelable.Creator<GrantedUriPermission> CREATOR = 5823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme new Parcelable.Creator<GrantedUriPermission>() { 5923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme @Override 6023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public GrantedUriPermission createFromParcel(Parcel in) { 6123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme return new GrantedUriPermission(in); 6223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 6323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 6423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme @Override 6523a0c7a009284d5587839ea87e0e621d06774552Felipe Leme public GrantedUriPermission[] newArray(int size) { 6623a0c7a009284d5587839ea87e0e621d06774552Felipe Leme return new GrantedUriPermission[size]; 6723a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 6823a0c7a009284d5587839ea87e0e621d06774552Felipe Leme }; 6923a0c7a009284d5587839ea87e0e621d06774552Felipe Leme 7023a0c7a009284d5587839ea87e0e621d06774552Felipe Leme private GrantedUriPermission(Parcel in) { 7123a0c7a009284d5587839ea87e0e621d06774552Felipe Leme uri = in.readParcelable(null); 7223a0c7a009284d5587839ea87e0e621d06774552Felipe Leme packageName = in.readString(); 7323a0c7a009284d5587839ea87e0e621d06774552Felipe Leme } 7423a0c7a009284d5587839ea87e0e621d06774552Felipe Leme} 75