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