package com.philosophicalhacker.philhackernews.data.sync; import android.accounts.Account; import android.content.AbstractThreadedSyncAdapter; import android.content.ContentProviderClient; import android.content.Context; import android.content.SyncResult; import android.os.Bundle; import android.util.Log; /** * * Created by MattDupree on 7/18/15. */ public class HackerNewsSyncAdapter extends AbstractThreadedSyncAdapter { public static final String EXTRA_KEY_LIMIT = "EXTRA_KEY_LIMIT"; private static final String TAG = HackerNewsSyncAdapter.class.getSimpleName(); public static final String EXTRA_STORY = "EXTRA_STORY"; private static final int INVALID_VALUE = Integer.MIN_VALUE; private final DataSynchronizer mDataSynchronizer; public HackerNewsSyncAdapter(Context context, boolean autoInitialize, DataSynchronizer dataSynchronizer) { super(context, autoInitialize); mDataSynchronizer = dataSynchronizer; } @Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient provider, SyncResult syncResult) { Log.d(TAG, "Performing data sync for account: " + account); int limit = extras.getInt(EXTRA_KEY_LIMIT, Integer.MAX_VALUE); int storyId = extras.getInt(EXTRA_STORY, INVALID_VALUE); if (storyId == INVALID_VALUE) { mDataSynchronizer.onSyncStories(limit); } else { mDataSynchronizer.onSyncComments(limit, storyId); } } }