14dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt/* 24dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * Copyright (C) 2016 The Android Open Source Project 34dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * 44dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * Licensed under the Apache License, Version 2.0 (the "License"); 54dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * you may not use this file except in compliance with the License. 64dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * You may obtain a copy of the License at 74dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * 84dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * http://www.apache.org/licenses/LICENSE-2.0 94dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * 104dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * Unless required by applicable law or agreed to in writing, software 114dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * distributed under the License is distributed on an "AS IS" BASIS, 124dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * See the License for the specific language governing permissions and 144dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt * limitations under the License. 154dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt */ 164dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 174dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltpackage android.telephony.mbms; 184dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 19ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liuimport android.annotation.SystemApi; 2063c5fd60ac647d3a8c38cd783803290e13319d47Hall Liuimport android.annotation.TestApi; 214dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport android.net.Uri; 224dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport android.os.Parcel; 234dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport android.os.Parcelable; 244dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 2563c5fd60ac647d3a8c38cd783803290e13319d47Hall Liuimport java.util.Objects; 2663c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu 274dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt/** 28ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * Describes a single file that is available over MBMS. 294dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt */ 3039605add8994d6114736c2e98fa8314209215670Hall Liupublic final class FileInfo implements Parcelable { 314dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 32fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu private final Uri uri; 334dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 34fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu private final String mimeType; 354dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 364dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt public static final Parcelable.Creator<FileInfo> CREATOR = 374dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt new Parcelable.Creator<FileInfo>() { 384dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt @Override 394dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt public FileInfo createFromParcel(Parcel source) { 404dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt return new FileInfo(source); 414dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt } 424dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 434dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt @Override 444dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt public FileInfo[] newArray(int size) { 454dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt return new FileInfo[size]; 464dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt } 474dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt }; 484dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 492398921320c07e9580dbd0bc0e39302d3e0dc8e3Hall Liu /** 502398921320c07e9580dbd0bc0e39302d3e0dc8e3Hall Liu * @hide 512398921320c07e9580dbd0bc0e39302d3e0dc8e3Hall Liu */ 5239605add8994d6114736c2e98fa8314209215670Hall Liu @SystemApi 5363c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu @TestApi 548e47fe35c8d08fcf98c6d74aaf059df87369ff55Hall Liu public FileInfo(Uri uri, String mimeType) { 55fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu this.uri = uri; 56fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu this.mimeType = mimeType; 57fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu } 58fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu 594dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt private FileInfo(Parcel in) { 604dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt uri = in.readParcelable(null); 614dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt mimeType = in.readString(); 624dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt } 634dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 644dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt @Override 654dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt public void writeToParcel(Parcel dest, int flags) { 664dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt dest.writeParcelable(uri, flags); 674dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt dest.writeString(mimeType); 684dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt } 694dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt 704dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt @Override 714dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt public int describeContents() { 724dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt return 0; 734dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt } 74fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu 75ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu /** 76ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * @return The URI in the carrier's infrastructure which points to this file. Apps should 77ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * negotiate the contents of this URI separately with the carrier. 78ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu */ 79fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu public Uri getUri() { 80fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu return uri; 81fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu } 82fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu 83ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu /** 84ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * @return The MIME type of the file. 85ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu */ 86fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu public String getMimeType() { 87fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu return mimeType; 88fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu } 8963c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu 9063c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu @Override 9163c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu public boolean equals(Object o) { 9263c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu if (this == o) { 9363c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu return true; 9463c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu } 9563c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu if (o == null || getClass() != o.getClass()) { 9663c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu return false; 9763c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu } 9863c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu 9963c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu FileInfo fileInfo = (FileInfo) o; 10063c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu return Objects.equals(uri, fileInfo.uri) && 10163c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu Objects.equals(mimeType, fileInfo.mimeType); 10263c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu } 10363c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu 10463c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu @Override 10563c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu public int hashCode() { 10663c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu return Objects.hash(uri, mimeType); 10763c5fd60ac647d3a8c38cd783803290e13319d47Hall Liu } 1084dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt} 109