Android Open Source - sms-backup-plus Backup Items Fetcher From Project Back to project page sms-backup-plus .
License The source code is released under:
Apache License
If you think the Android project sms-backup-plus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.zegoggles.smssync.service;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.sqlite.SQLiteException;
import android.util.Log;
import com.zegoggles.smssync.contacts.ContactGroupIds;
import com.zegoggles.smssync.mail.DataType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import static com.zegoggles.smssync.App.LOCAL_LOGV;
import static com.zegoggles.smssync.App.TAG;
public class BackupItemsFetcher {
private final Context context;
private final ContentResolver resolver;
private final BackupQueryBuilder queryBuilder;
public BackupItemsFetcher(@NotNull Context context,
@NotNull ContentResolver resolver,
@NotNull BackupQueryBuilder queryBuilder) {
if (resolver == null) throw new IllegalArgumentException("resolver cannot be null" );
if (queryBuilder == null) throw new IllegalArgumentException("queryBuilder cannot be null" );
this.queryBuilder = queryBuilder;
this.context = context;
this.resolver = resolver;
}
public @NotNull Cursor getItemsForDataType(DataType dataType, ContactGroupIds group, int max) {
if (LOCAL_LOGV) Log.v(TAG, "getItemsForDataType(type=" + dataType + ", max=" + max + ")" );
switch (dataType) {
case WHATSAPP: return new WhatsAppItemsFetcher(context).getItems(DataType.WHATSAPP.getMaxSyncedDate(context), max);
default : return performQuery(queryBuilder.buildQueryForDataType(dataType, group, max));
}
}
public long getMostRecentTimestamp(DataType dataType) {
switch (dataType) {
case WHATSAPP: return new WhatsAppItemsFetcher(context).getMostRecentTimestamp();
default : return getMostRecentTimestampForQuery(queryBuilder.buildMostRecentQueryForDataType(dataType));
}
}
private long getMostRecentTimestampForQuery(BackupQueryBuilder.Query query) {
Cursor cursor = performQuery(query);
try {
if (cursor.moveToFirst()) {
return cursor.getLong(0);
} else {
return DataType.Defaults.MAX_SYNCED_DATE;
}
} finally {
cursor.close();
}
}
private @NotNull Cursor performQuery(@Nullable BackupQueryBuilder.Query query) {
if (query == null) return emptyCursor();
try {
final Cursor cursor = resolver.query(
query.uri,
query.projection,
query.selection,
query.selectionArgs,
query.sortOrder
);
return cursor == null ? emptyCursor() : cursor;
} catch (SQLiteException e) {
Log.w(TAG, "error querying DB" , e);
return emptyCursor();
} catch (NullPointerException e) {
Log.w(TAG, "error querying DB" , e);
return emptyCursor();
}
}
static Cursor emptyCursor() {
return new MatrixCursor(new String[] {});
}
}
Java Source Code List com.zegoggles.smssync.App.java com.zegoggles.smssync.Consts.java com.zegoggles.smssync.MmsConsts.java com.zegoggles.smssync.SmsConsts.java com.zegoggles.smssync.activity.Dialogs.java com.zegoggles.smssync.activity.MainActivity.java com.zegoggles.smssync.activity.StatusPreference.java com.zegoggles.smssync.activity.auth.AccountManagerAuthActivity.java com.zegoggles.smssync.activity.auth.WebAuthActivity.java com.zegoggles.smssync.activity.donation.DonationActivity.java com.zegoggles.smssync.auth.TokenRefreshException.java com.zegoggles.smssync.auth.TokenRefresher.java com.zegoggles.smssync.auth.XOAuthConsumer.java com.zegoggles.smssync.calendar.CalendarAccessorPost40.java com.zegoggles.smssync.calendar.CalendarAccessorPre40.java com.zegoggles.smssync.calendar.CalendarAccessor.java com.zegoggles.smssync.compat.ComposeSmsActivity.java com.zegoggles.smssync.compat.HeadlessSmsSendService.java com.zegoggles.smssync.compat.MmsReceiver.java com.zegoggles.smssync.compat.SmsReceiver.java com.zegoggles.smssync.compat.package-info.java com.zegoggles.smssync.contacts.ContactAccessorPost20.java com.zegoggles.smssync.contacts.ContactAccessorPre20.java com.zegoggles.smssync.contacts.ContactAccessor.java com.zegoggles.smssync.contacts.ContactGroupIds.java com.zegoggles.smssync.contacts.ContactGroup.java com.zegoggles.smssync.contacts.Group.java com.zegoggles.smssync.mail.AllTrustedSocketFactory.java com.zegoggles.smssync.mail.Attachment.java com.zegoggles.smssync.mail.BackupImapStore.java com.zegoggles.smssync.mail.BackupStoreConfig.java com.zegoggles.smssync.mail.CallFormatter.java com.zegoggles.smssync.mail.ConversionResult.java com.zegoggles.smssync.mail.DataType.java com.zegoggles.smssync.mail.HeaderGenerator.java com.zegoggles.smssync.mail.Headers.java com.zegoggles.smssync.mail.MessageConverter.java com.zegoggles.smssync.mail.MessageGenerator.java com.zegoggles.smssync.mail.MmsSupport.java com.zegoggles.smssync.mail.PersonLookup.java com.zegoggles.smssync.mail.PersonRecord.java com.zegoggles.smssync.preferences.AddressStyle.java com.zegoggles.smssync.preferences.AuthMode.java com.zegoggles.smssync.preferences.AuthPreferences.java com.zegoggles.smssync.preferences.BackupManagerWrapper.java com.zegoggles.smssync.preferences.CalendarPreferences.java com.zegoggles.smssync.preferences.CallLogTypes.java com.zegoggles.smssync.preferences.Defaults.java com.zegoggles.smssync.preferences.MarkAsReadTypes.java com.zegoggles.smssync.preferences.PreferenceBackupAgent.java com.zegoggles.smssync.preferences.Preferences.java com.zegoggles.smssync.preferences.ServerPreferences.java com.zegoggles.smssync.receiver.BackupBroadcastReceiver.java com.zegoggles.smssync.receiver.SmsBroadcastReceiver.java com.zegoggles.smssync.service.Alarms.java com.zegoggles.smssync.service.BackupConfig.java com.zegoggles.smssync.service.BackupCursors.java com.zegoggles.smssync.service.BackupItemsFetcher.java com.zegoggles.smssync.service.BackupQueryBuilder.java com.zegoggles.smssync.service.BackupTask.java com.zegoggles.smssync.service.BackupType.java com.zegoggles.smssync.service.BulkFetcher.java com.zegoggles.smssync.service.CalendarSyncer.java com.zegoggles.smssync.service.RestoreConfig.java com.zegoggles.smssync.service.RestoreTask.java com.zegoggles.smssync.service.ServiceBase.java com.zegoggles.smssync.service.SmsBackupService.java com.zegoggles.smssync.service.SmsRestoreService.java com.zegoggles.smssync.service.UserCanceled.java com.zegoggles.smssync.service.WhatsAppItemsFetcher.java com.zegoggles.smssync.service.exception.BackupDisabledException.java com.zegoggles.smssync.service.exception.ConnectivityException.java com.zegoggles.smssync.service.exception.LocalizableException.java com.zegoggles.smssync.service.exception.NoConnectionException.java com.zegoggles.smssync.service.exception.RequiresBackgroundDataException.java com.zegoggles.smssync.service.exception.RequiresLoginException.java com.zegoggles.smssync.service.exception.RequiresWifiException.java com.zegoggles.smssync.service.exception.SmsProviderNotWritableException.java com.zegoggles.smssync.service.state.BackupState.java com.zegoggles.smssync.service.state.RestoreState.java com.zegoggles.smssync.service.state.SmsSyncState.java com.zegoggles.smssync.service.state.State.java com.zegoggles.smssync.tasks.OAuthCallbackTask.java com.zegoggles.smssync.tasks.RequestTokenTask.java com.zegoggles.smssync.utils.AppLog.java com.zegoggles.smssync.utils.ListPreferenceHelper.java com.zegoggles.smssync.utils.Sanitizer.java com.zegoggles.smssync.utils.ThreadHelper.java