SyncStatusInfo.java revision 231cc608d06ffc31c24bf8aa8c8275bdd2636581
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
42    SyncStatusInfo(int authorityId) {
43        this.authorityId = authorityId;
44    }
45
46    public int getLastFailureMesgAsInt(int def) {
47        try {
48            if (lastFailureMesg != null) {
49                return Integer.parseInt(lastFailureMesg);
50            }
51        } catch (NumberFormatException e) {
52        }
53        return def;
54    }
55
56    public int describeContents() {
57        return 0;
58    }
59
60    public void writeToParcel(Parcel parcel, int flags) {
61        parcel.writeInt(VERSION);
62        parcel.writeInt(authorityId);
63        parcel.writeLong(totalElapsedTime);
64        parcel.writeInt(numSyncs);
65        parcel.writeInt(numSourcePoll);
66        parcel.writeInt(numSourceServer);
67        parcel.writeInt(numSourceLocal);
68        parcel.writeInt(numSourceUser);
69        parcel.writeLong(lastSuccessTime);
70        parcel.writeInt(lastSuccessSource);
71        parcel.writeLong(lastFailureTime);
72        parcel.writeInt(lastFailureSource);
73        parcel.writeString(lastFailureMesg);
74        parcel.writeLong(initialFailureTime);
75        parcel.writeInt(pending ? 1 : 0);
76    }
77
78    SyncStatusInfo(Parcel parcel) {
79        int version = parcel.readInt();
80        if (version != VERSION) {
81            Log.w("SyncStatusInfo", "Unknown version: " + version);
82        }
83        authorityId = parcel.readInt();
84        totalElapsedTime = parcel.readLong();
85        numSyncs = parcel.readInt();
86        numSourcePoll = parcel.readInt();
87        numSourceServer = parcel.readInt();
88        numSourceLocal = parcel.readInt();
89        numSourceUser = parcel.readInt();
90        lastSuccessTime = parcel.readLong();
91        lastSuccessSource = parcel.readInt();
92        lastFailureTime = parcel.readLong();
93        lastFailureSource = parcel.readInt();
94        lastFailureMesg = parcel.readString();
95        initialFailureTime = parcel.readLong();
96        pending = parcel.readInt() != 0;
97    }
98
99    public static final Creator<SyncStatusInfo> CREATOR = new Creator<SyncStatusInfo>() {
100        public SyncStatusInfo createFromParcel(Parcel in) {
101            return new SyncStatusInfo(in);
102        }
103
104        public SyncStatusInfo[] newArray(int size) {
105            return new SyncStatusInfo[size];
106        }
107    };
108}