1 // Copyright (C) 2014 Google Inc. 2 3 package com.android.mail.ui; 4 5 import android.app.LoaderManager; 6 import android.content.Context; 7 import android.content.Loader; 8 import android.net.Uri; 9 import android.os.Bundle; 10 11 import com.android.mail.content.CursorCreator; 12 import com.android.mail.content.ObjectCursor; 13 import com.android.mail.content.ObjectCursorLoader; 14 import com.android.mail.providers.Account; 15 import com.android.mail.providers.UIProvider; 16 17 /** 18 * Callbacks for loading an account cursor. 19 */ 20 public class AccountLoadCallbacks implements LoaderManager.LoaderCallbacks<ObjectCursor<Account>> { 21 22 public interface AccountLoadCallbackListener { onAccountLoadCallbackFinished(ObjectCursor<Account> data)23 void onAccountLoadCallbackFinished(ObjectCursor<Account> data); 24 } 25 26 private final Context mContext; 27 private final Uri mAccountUri; 28 private final AccountLoadCallbackListener mAccountLoadCallbackListener; 29 AccountLoadCallbacks(Context context, Uri accountUri, AccountLoadCallbackListener accountLoadCallbackListener)30 public AccountLoadCallbacks(Context context, Uri accountUri, 31 AccountLoadCallbackListener accountLoadCallbackListener) { 32 mContext = context; 33 mAccountUri = accountUri; 34 mAccountLoadCallbackListener = accountLoadCallbackListener; 35 } 36 37 @Override onCreateLoader(int id, Bundle args)38 public Loader<ObjectCursor<Account>> onCreateLoader(int id, Bundle args) { 39 final String[] projection = UIProvider.ACCOUNTS_PROJECTION; 40 final CursorCreator<Account> factory = Account.FACTORY; 41 return new ObjectCursorLoader<Account>(mContext, mAccountUri, projection, factory); 42 } 43 44 @Override onLoadFinished(Loader<ObjectCursor<Account>> loader, ObjectCursor<Account> data)45 public void onLoadFinished(Loader<ObjectCursor<Account>> loader, 46 ObjectCursor<Account> data) { 47 mAccountLoadCallbackListener.onAccountLoadCallbackFinished(data); 48 } 49 50 @Override onLoaderReset(Loader<ObjectCursor<Account>> loader)51 public void onLoaderReset(Loader<ObjectCursor<Account>> loader) { 52 } 53 } 54