blob: 6687fcb4f8ab8c948643c5312a46d14bff316c30 [file] [log] [blame]
Dianne Hackborn231cc602009-04-27 17:10:36 -07001/*
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}