PeriodicSync.java revision c5d1c6db61f208b206b260f897bb5bbc64be4d97
1c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana/* 2c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * Copyright (C) 2010 The Android Open Source Project 3c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * 4c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * Licensed under the Apache License, Version 2.0 (the "License"); 5c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * you may not use this file except in compliance with the License. 6c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * You may obtain a copy of the License at 7c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * 8c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * http://www.apache.org/licenses/LICENSE-2.0 9c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * 10c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * Unless required by applicable law or agreed to in writing, software 11c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * distributed under the License is distributed on an "AS IS" BASIS, 12c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * See the License for the specific language governing permissions and 14c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * limitations under the License. 15c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana */ 16c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 17c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanapackage android.content; 18c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 19c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanaimport android.os.Parcelable; 20c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanaimport android.os.Bundle; 21c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanaimport android.os.Parcel; 22c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanaimport android.accounts.Account; 23c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 24c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana/** 25c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * Value type that contains information about a periodic sync. Is parcelable, making it suitable 26c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana * for passing in an IPC. 27c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana */ 28c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintanapublic class PeriodicSync implements Parcelable { 29c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana /** The account to be synced */ 30c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public final Account account; 31c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana /** The authority of the sync */ 32c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public final String authority; 33c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana /** Any extras that parameters that are to be passed to the sync adapter. */ 34c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public final Bundle extras; 35c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana /** How frequently the sync should be scheduled, in seconds. */ 36c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public final long period; 37c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 38c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana /** Creates a new PeriodicSync, copying the Bundle */ 39c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public PeriodicSync(Account account, String authority, Bundle extras, long period) { 40c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana this.account = account; 41c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana this.authority = authority; 42c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana this.extras = new Bundle(extras); 43c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana this.period = period; 44c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 45c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 46c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public int describeContents() { 47c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return 0; 48c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 49c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 50c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public void writeToParcel(Parcel dest, int flags) { 51c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana account.writeToParcel(dest, flags); 52c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana dest.writeString(authority); 53c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana dest.writeBundle(extras); 54c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana dest.writeLong(period); 55c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 56c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 57c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public static final Creator<PeriodicSync> CREATOR = new Creator<PeriodicSync>() { 58c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public PeriodicSync createFromParcel(Parcel source) { 59c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return new PeriodicSync(Account.CREATOR.createFromParcel(source), 60c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana source.readString(), source.readBundle(), source.readLong()); 61c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 62c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 63c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public PeriodicSync[] newArray(int size) { 64c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return new PeriodicSync[size]; 65c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 66c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana }; 67c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 68c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana public boolean equals(Object o) { 69c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana if (o == this) { 70c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return true; 71c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 72c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 73c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana if (!(o instanceof PeriodicSync)) { 74c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return false; 75c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 76c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 77c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana final PeriodicSync other = (PeriodicSync) o; 78c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana 79c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana return account.equals(other.account) 80c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana && authority.equals(other.authority) 81c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana && period == other.period 82c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana && SyncStorageEngine.equals(extras, other.extras); 83c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana } 84c5d1c6db61f208b206b260f897bb5bbc64be4d97Fred Quintana} 85