SynchronousProfileProvider.java revision 5d0a768b56ed4bd0dfef81b8389247ba74766659
15d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro/*
25d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * Copyright (C) 2011 The Android Open Source Project
35d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro *
45d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * Licensed under the Apache License, Version 2.0 (the "License");
55d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * you may not use this file except in compliance with the License.
65d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * You may obtain a copy of the License at
75d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro *
85d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro *      http://www.apache.org/licenses/LICENSE-2.0
95d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro *
105d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * Unless required by applicable law or agreed to in writing, software
115d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * distributed under the License is distributed on an "AS IS" BASIS,
125d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * See the License for the specific language governing permissions and
145d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * limitations under the License.
155d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro */
165d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
175d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoropackage com.android.providers.contacts;
185d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
195d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoroimport android.accounts.Account;
205d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoroimport android.content.Context;
215d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
225d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoroimport java.util.Locale;
235d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
245d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro/**
255d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro * A version of {@link ProfileProvider} that performs all operations synchronously.
265d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro */
275d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoropublic class SynchronousProfileProvider extends ProfileProvider {
285d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
295d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    public static final String READ_ONLY_ACCOUNT_TYPE = "ro";
305d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
315d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    private static ProfileDatabaseHelper mDbHelper;
325d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
335d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    private Account mAccount;
345d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
355d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    public SynchronousProfileProvider(ContactsProvider2 delegate) {
365d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        super(delegate);
375d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
385d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
395d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
405d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected ProfileDatabaseHelper getDatabaseHelper(final Context context) {
415d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        if (mDbHelper == null) {
425d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro            mDbHelper = new ProfileDatabaseHelper(context);
435d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        }
445d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        return mDbHelper;
455d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
465d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
475d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    public static void resetOpenHelper() {
485d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        mDbHelper = null;
495d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
505d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
515d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
525d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected void onBeginTransaction() {
535d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        super.onBeginTransaction();
545d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
555d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
565d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
575d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected void scheduleBackgroundTask(int task) {
585d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        performBackgroundTask(task, null);
595d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
605d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
615d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
625d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected void scheduleBackgroundTask(int task, Object arg) {
635d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        performBackgroundTask(task, arg);
645d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
655d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
665d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
675d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected void updateLocaleInBackground() {
685d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
695d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
705d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
715d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected void updateDirectoriesInBackground(boolean rescan) {
725d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
735d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
745d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
755d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected Account getDefaultAccount() {
765d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        if (mAccount == null) {
775d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro            mAccount = new Account("androidtest@gmail.com", "com.google");
785d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        }
795d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        return mAccount;
805d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
815d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
825d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
835d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected boolean isContactsAccount(Account account) {
845d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        return true;
855d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
865d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
875d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
885d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected Locale getLocale() {
895d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        return Locale.US;
905d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
915d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro
925d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    @Override
935d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    protected boolean isWritableAccountWithDataSet(String accountType) {
945d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro        return !READ_ONLY_ACCOUNT_TYPE.equals(accountType);
955d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro    }
965d0a768b56ed4bd0dfef81b8389247ba74766659Dave Santoro}
97