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