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;
20156b3041a9f32efa2ae9872ad3ad2a8e541c1cd0Hall Liuimport android.annotation.TestApi;
214dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport android.os.Parcel;
224dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport android.os.Parcelable;
234dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
244dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport java.util.ArrayList;
254dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport java.util.Date;
264dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport java.util.List;
274dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport java.util.Locale;
284dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwaltimport java.util.Map;
294dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
304dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt/**
31ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * Describes a file service available from the carrier from which files can be downloaded via
32ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu * cell-broadcast.
334dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt */
3439605add8994d6114736c2e98fa8314209215670Hall Liupublic final class FileServiceInfo extends ServiceInfo implements Parcelable {
35fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu    private final List<FileInfo> files;
364dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
37ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu    /** @hide */
38ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu    @SystemApi
39156b3041a9f32efa2ae9872ad3ad2a8e541c1cd0Hall Liu    @TestApi
4047c2a3e93eff59fe2309917662093e44c5ab70cfRobert Greenwalt    public FileServiceInfo(Map<Locale, String> newNames, String newClassName,
4147c2a3e93eff59fe2309917662093e44c5ab70cfRobert Greenwalt            List<Locale> newLocales, String newServiceId, Date start, Date end,
4247c2a3e93eff59fe2309917662093e44c5ab70cfRobert Greenwalt            List<FileInfo> newFiles) {
4347c2a3e93eff59fe2309917662093e44c5ab70cfRobert Greenwalt        super(newNames, newClassName, newLocales, newServiceId, start, end);
44fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu        files = new ArrayList<>(newFiles);
454dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    }
464dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
474dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    public static final Parcelable.Creator<FileServiceInfo> CREATOR =
484dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt            new Parcelable.Creator<FileServiceInfo>() {
494dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        @Override
504dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        public FileServiceInfo createFromParcel(Parcel source) {
514dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt            return new FileServiceInfo(source);
524dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        }
534dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
544dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        @Override
554dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        public FileServiceInfo[] newArray(int size) {
564dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt            return new FileServiceInfo[size];
574dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        }
584dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    };
594dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
604dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    FileServiceInfo(Parcel in) {
614dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        super(in);
624dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        files = new ArrayList<FileInfo>();
63d666a8916346ed760e809d708c63bf36f8b12aedHall Liu        in.readList(files, FileInfo.class.getClassLoader());
644dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    }
654dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
664dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    @Override
674dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    public void writeToParcel(Parcel dest, int flags) {
684dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        super.writeToParcel(dest, flags);
694dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        dest.writeList(files);
704dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    }
714dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt
724dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    @Override
734dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    public int describeContents() {
744dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt        return 0;
754dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt    }
76fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu
77ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu    /**
78ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu     * @return A list of files available from this service. Note that this list may not be
79ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu     * exhaustive -- the middleware may not have information on all files that are available.
80ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu     * Consult the carrier for an authoritative and exhaustive list.
81ff6f9862e5dd1b2fd825ed69dc11918a0565fd33Hall Liu     */
82fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu    public List<FileInfo> getFiles() {
83fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu        return files;
84fcbf24075dca399bbe94979aef770b4aef705db4Hall Liu    }
854dded7a1b5a7ff6ed7402a9c2c512e4751421d7fRobert Greenwalt}
86