SynchronousContactsProvider2.java revision d35d9c748af4c3182679c4c546137acfc11eb7a8
1619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey/* 2619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * Copyright (C) 2009 The Android Open Source Project 3619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * 4619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * you may not use this file except in compliance with the License. 6619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * You may obtain a copy of the License at 7619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * 8619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * 10619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * Unless required by applicable law or agreed to in writing, software 11619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * See the License for the specific language governing permissions and 14619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * limitations under the License. 15619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey */ 16619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey 17619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkeypackage com.android.providers.contacts2; 18619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey 19d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikovimport android.content.Context; 20d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov 21619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey/** 22619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * A version of {@link ContactsProvider2} class that performs aggregation 23619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * synchronously and wipes all data at construction time. 24619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey */ 25619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkeypublic class SynchronousContactsProvider2 extends ContactsProvider2 { 26619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey private static Boolean sDataWiped = false; 27d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov private static OpenHelper mOpenHelper; 28619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey 29619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey public SynchronousContactsProvider2() { 30619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey super(false); 31619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey } 32619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey 33619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey @Override 34d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov protected OpenHelper getOpenHelper(final Context context) { 35d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov if (mOpenHelper == null) { 36d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov mOpenHelper = new OpenHelper(context); 37d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov } 38d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov return mOpenHelper; 39d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov } 40d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov 41d35d9c748af4c3182679c4c546137acfc11eb7a8Dmitri Plotnikov @Override 42619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey public boolean onCreate() { 43619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey boolean created = super.onCreate(); 44619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey synchronized (sDataWiped) { 45619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey if (!sDataWiped) { 46619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey sDataWiped = true; 47619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey wipeData(); 48619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey } 49619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey } 50619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey return created; 51619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey } 52619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey} 53