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