10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony.cat;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcel;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.Parcelable;
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Class for representing "Duration" object for CAT.
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide}
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class Duration implements Parcelable {
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int timeInterval;
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public TimeUnit timeUnit;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public enum TimeUnit {
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        MINUTE(0x00),
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        SECOND(0x01),
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TENTH_SECOND(0x02);
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private int mValue;
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        TimeUnit(int value) {
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            mValue = value;
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public int value() {
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return mValue;
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param timeInterval Between 1 and 255 inclusive.
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public Duration(int timeInterval, TimeUnit timeUnit) {
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.timeInterval = timeInterval;
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        this.timeUnit = timeUnit;
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private Duration(Parcel in) {
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        timeInterval = in.readInt();
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        timeUnit = TimeUnit.values()[in.readInt()];
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
61cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void writeToParcel(Parcel dest, int flags) {
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        dest.writeInt(timeInterval);
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        dest.writeInt(timeUnit.ordinal());
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
67cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville    @Override
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int describeContents() {
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return 0;
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final Parcelable.Creator<Duration> CREATOR = new Parcelable.Creator<Duration>() {
73cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville        @Override
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public Duration createFromParcel(Parcel in) {
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return new Duration(in);
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
78cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville        @Override
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public Duration[] newArray(int size) {
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return new Duration[size];
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    };
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
84