1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/* 2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2009 The Android Open Source Project 3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License. 6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at 7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and 14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License. 15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage com.android.layoutlib.bridge.android; 18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.content.ContentResolver; 20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.content.Context; 21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.content.IContentProvider; 22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.database.ContentObserver; 23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.net.Uri; 24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.os.Bundle; 25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/** 27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * A mock content resolver for the LayoutLib Bridge. 28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * <p/> 29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * It won't serve any actual data but it's good enough for all 30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * the widgets which expect to have a content resolver available via 31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * {@link BridgeContext#getContentResolver()}. 32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic class BridgeContentResolver extends ContentResolver { 34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private BridgeContentProvider mProvider = null; 36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public BridgeContentResolver(Context context) { 38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski super(context); 39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public IContentProvider acquireProvider(Context c, String name) { 43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski if (mProvider == null) { 44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mProvider = new BridgeContentProvider(); 45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return mProvider; 48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public IContentProvider acquireExistingProvider(Context c, String name) { 52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski if (mProvider == null) { 53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mProvider = new BridgeContentProvider(); 54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return mProvider; 57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean releaseProvider(IContentProvider icp) { 61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // ignore 62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return false; 63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski protected IContentProvider acquireUnstableProvider(Context c, String name) { 67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return acquireProvider(c, name); 68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean releaseUnstableProvider(IContentProvider icp) { 72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return releaseProvider(icp); 73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 75282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** @hide */ 76282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 77282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void unstableProviderDied(IContentProvider icp) { 78282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 79282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 80282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** 81282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Stub for the layoutlib bridge content resolver. 82282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 83282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 84282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void registerContentObserver(Uri uri, boolean notifyForDescendents, 85282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski ContentObserver observer) { 86282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass 87282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 88282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 89282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** 90282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Stub for the layoutlib bridge content resolver. 91282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 92282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 93282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void unregisterContentObserver(ContentObserver observer) { 94282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass 95282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 96282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 97282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** 98282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Stub for the layoutlib bridge content resolver. 99282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 100282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 101282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork) { 102282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass 103282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 104282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 105282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** 106282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Stub for the layoutlib bridge content resolver. 107282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 108282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 109282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void startSync(Uri uri, Bundle extras) { 110282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass 111282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 112282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 113282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski /** 114282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Stub for the layoutlib bridge content resolver. 115282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 116282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 117282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public void cancelSync(Uri uri) { 118282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // pass 119282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 120282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski} 121