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