/BerichtsheftApp/src/android/content/ContentResolver.java
https://github.com/sefirot/androidStuff · Java · 115 lines · 89 code · 19 blank · 7 comment · 22 complexity · 57c0b9956b32b33e886293f447973fe8 MD5 · raw file
- package android.content;
- import static com.applang.Util1.*;
- import java.io.File;
- import java.util.Observable;
- import android.database.ContentObserver;
- import android.database.Cursor;
- import android.net.Uri;
- import android.util.Log;
- public class ContentResolver extends Observable
- {
- private static final String TAG = ContentResolver.class.getSimpleName();
- public static final String CURSOR_DIR_BASE_TYPE = "vnd.android.cursor.dir";
- public static final String CURSOR_ITEM_BASE_TYPE = "vnd.android.cursor.item";
- public static final String RAW = "raw";
- public static final String SCHEME_CONTENT = "content";
- public static final String SCHEME_FILE = "file";
-
- public ContentResolver(Context context) {
- mContext = context;
- }
- Context mContext;
- public ContentProvider acquireProvider(final Uri uri)
- {
- Context context = mContext;
- contentProvider = new ContentProvider();
- String flavor = null;
- try {
- if (SCHEME_CONTENT.equals(uri.getScheme())) {
- flavor = uri.getAuthority();
- if (flavor != null) {
- Class<?> c = Class.forName(flavor + "Provider");
- contentProvider = (ContentProvider) c.newInstance();
- }
- } else if (SCHEME_FILE.equals(uri.getScheme())) {
- final File file = new File(uri.getPath());
- context = new Context() {
- {
- setPackageInfo("", file.getParent());
- }
-
- @Override
- public ContentResolver getContentResolver() {
- return ContentResolver.this;
- }
- };
- }
- } catch (Exception e) {
- Log.e(TAG, "acquireProvider", e);
- }
- context.setFlavor(flavor);
- contentProvider.setContext(context);
- contentProvider.onCreate();
- com.applang.Util2.no_println("contentProvider", contentProvider.getClass());
- return contentProvider;
- }
- public ContentProvider contentProvider = null;
-
- public Cursor rawQuery(Uri uri, String...sql) {
- return acquireProvider(uri).rawQuery(uri, sql);
- }
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
- if (selection != null && projection == null && selectionArgs == null && sortOrder == null)
- return rawQuery(uri, selection);
- else if (hasAuthority(uri) || projection != null || selectionArgs != null || sortOrder != null)
- return acquireProvider(uri).query(uri, projection, selection, selectionArgs, sortOrder);
- else
- return rawQuery(uri, selection);
- }
- public int delete(Uri uri, String where, String[] whereArgs) {
- return acquireProvider(uri).delete(uri, where, whereArgs);
- }
- public Uri insert(Uri uri, ContentValues initialValues) {
- return acquireProvider(uri).insert(uri, initialValues);
- }
-
- public int update(Uri uri, ContentValues values, String where, String[] whereArgs) {
- return acquireProvider(uri).update(uri, values, where, whereArgs);
- }
- /**
- * Return the MIME type of the given content URL.
- *
- * @param url A Uri identifying content (either a list or specific type),
- * using the content:// scheme.
- * @return A MIME type for the content, or null if the URL is invalid or the type is unknown
- */
- public String getType(Uri uri) {
- return acquireProvider(uri).getType(uri);
- }
- public void notifyChange(Uri uri, ContentObserver observer) {
- setChanged();
- notifyObservers(uri);
- }
- public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer) {
- addObserver(observer);
- }
-
- public final void unregisterContentObserver(ContentObserver observer) {
- if (countObservers() > 0)
- deleteObserver(observer);
- }
- }