SyncStatusInfo.java revision 9db3d07b9620b4269ab33f78604a36327e536ce1
1/*
2 * Copyright (C) 2009 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.content;
18
19import android.os.Parcel;
20import android.os.Parcelable;
21import android.util.Log;
22
23/** @hide */
24public class SyncStatusInfo implements Parcelable {
25    static final int VERSION = 1;
26
27    public final int authorityId;
28    public long totalElapsedTime;
29    public int numSyncs;
30    public int numSourcePoll;
31    public int numSourceServer;
32    public int numSourceLocal;
33    public int numSourceUser;
34    public long lastSuccessTime;
35    public int lastSuccessSource;
36    public long lastFailureTime;
37    public int lastFailureSource;
38    public String lastFailureMesg;
39    public long initialFailureTime;
40    public boolean pending;
41    public boolean initialize;
42
43    SyncStatusInfo(int authorityId) {
44        this.authorityId = authorityId;
45    }
46
47    public int getLastFailureMesgAsInt(int def) {
48        try {
49            if (lastFailureMesg != null) {
50                return Integer.parseInt(lastFailureMesg);
51            }
52        } catch (NumberFormatException e) {
53        }
54        return def;
55    }
56
57    public int describeContents() {
58        return 0;
59    }
60
61    public void writeToParcel(Parcel parcel, int flags) {
62        parcel.writeInt(VERSION);
63        parcel.writeInt(authorityId);
64        parcel.writeLong(totalElapsedTime);
65        parcel.writeInt(numSyncs);
66        parcel.writeInt(numSourcePoll);
67        parcel.writeInt(numSourceServer);
68        parcel.writeInt(numSourceLocal);
69        parcel.writeInt(numSourceUser);
70        parcel.writeLong(lastSuccessTime);
71        parcel.writeInt(lastSuccessSource);
72        parcel.writeLong(lastFailureTime);
73        parcel.writeInt(lastFailureSource);
74        parcel.writeString(lastFailureMesg);
75        parcel.writeLong(initialFailureTime);
76        parcel.writeInt(pending ? 1 : 0);
77        parcel.writeInt(initialize ? 1 : 0);
78    }
79
80    SyncStatusInfo(Parcel parcel) {
81        int version = parcel.readInt();
82        if (version != VERSION) {
83            Log.w("SyncStatusInfo", "Unknown version: " + version);
84        }
85        authorityId = parcel.readInt();
86        totalElapsedTime = parcel.readLong();
87        numSyncs = parcel.readInt();
88        numSourcePoll = parcel.readInt();
89        numSourceServer = parcel.readInt();
90        numSourceLocal = parcel.readInt();
91        numSourceUser = parcel.readInt();
92        lastSuccessTime = parcel.readLong();
93        lastSuccessSource = parcel.readInt();
94        lastFailureTime = parcel.readLong();
95        lastFailureSource = parcel.readInt();
96        lastFailureMesg = parcel.readString();
97        initialFailureTime = parcel.readLong();
98        pending = parcel.readInt() != 0;
99        initialize = parcel.readInt() != 0;
100    }
101
102    public static final Creator<SyncStatusInfo> CREATOR = new Creator<SyncStatusInfo>() {
103        public SyncStatusInfo createFromParcel(Parcel in) {
104            return new SyncStatusInfo(in);
105        }
106
107        public SyncStatusInfo[] newArray(int size) {
108            return new SyncStatusInfo[size];
109        }
110    };
111}