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