SynchronousContactsProvider2.java revision 619871b0fb0175d75ff9336bfe5aec0b27b9bdad
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
19619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey/**
20619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * A version of {@link ContactsProvider2} class that performs aggregation
21619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey * synchronously and wipes all data at construction time.
22619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey */
23619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkeypublic class SynchronousContactsProvider2 extends ContactsProvider2 {
24619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    private static Boolean sDataWiped = false;
25619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey
26619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    public SynchronousContactsProvider2() {
27619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey        super(false);
28619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    }
29619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey
30619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    @Override
31619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    public boolean onCreate() {
32619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey        boolean created = super.onCreate();
33619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey        synchronized (sDataWiped) {
34619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey            if (!sDataWiped) {
35619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey                sDataWiped = true;
36619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey                wipeData();
37619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey            }
38619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey        }
39619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey        return created;
40619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey    }
41619871b0fb0175d75ff9336bfe5aec0b27b9bdadJeff Sharkey}
42