1944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock// Copyright (C) 2014 Google Inc. 2944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 3944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockpackage com.android.mail.ui; 4944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 5944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport android.app.LoaderManager; 6944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport android.content.Context; 7944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport android.content.Loader; 8944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport android.net.Uri; 9944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport android.os.Bundle; 10944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 11944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport com.android.mail.content.CursorCreator; 12944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport com.android.mail.content.ObjectCursor; 13944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport com.android.mail.content.ObjectCursorLoader; 14944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport com.android.mail.providers.Account; 15944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockimport com.android.mail.providers.UIProvider; 16944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 17944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock/** 18944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock * Callbacks for loading an account cursor. 19944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock */ 20944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullockpublic class AccountLoadCallbacks implements LoaderManager.LoaderCallbacks<ObjectCursor<Account>> { 21944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 22944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock public interface AccountLoadCallbackListener { 23944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock void onAccountLoadCallbackFinished(ObjectCursor<Account> data); 24944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock } 25944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 26944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock private final Context mContext; 27944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock private final Uri mAccountUri; 28944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock private final AccountLoadCallbackListener mAccountLoadCallbackListener; 29944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 30944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock public AccountLoadCallbacks(Context context, Uri accountUri, 31944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock AccountLoadCallbackListener accountLoadCallbackListener) { 32944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock mContext = context; 33944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock mAccountUri = accountUri; 34944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock mAccountLoadCallbackListener = accountLoadCallbackListener; 35944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock } 36944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 37944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock @Override 38944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock public Loader<ObjectCursor<Account>> onCreateLoader(int id, Bundle args) { 39944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock final String[] projection = UIProvider.ACCOUNTS_PROJECTION; 40944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock final CursorCreator<Account> factory = Account.FACTORY; 41406ae08b92f78f26fe83830897570c9db1ab23aaGreg Bullock return new ObjectCursorLoader<Account>(mContext, mAccountUri, projection, factory); 42944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock } 43944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 44944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock @Override 45944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock public void onLoadFinished(Loader<ObjectCursor<Account>> loader, 46944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock ObjectCursor<Account> data) { 47944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock mAccountLoadCallbackListener.onAccountLoadCallbackFinished(data); 48944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock } 49944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock 50944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock @Override 51944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock public void onLoaderReset(Loader<ObjectCursor<Account>> loader) { 52944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock } 53944ef3b09d15d28f13cf63e3410850e246b1d54fGreg Bullock} 54