139 lines
3.5 KiB
Java
139 lines
3.5 KiB
Java
|
package com.juce;
|
||
|
|
||
|
import android.content.ContentProvider;
|
||
|
import android.content.ContentValues;
|
||
|
import android.content.res.AssetFileDescriptor;
|
||
|
import android.content.res.Resources;
|
||
|
import android.database.Cursor;
|
||
|
import android.database.MatrixCursor;
|
||
|
import android.net.Uri;
|
||
|
import android.os.FileObserver;
|
||
|
import android.os.ParcelFileDescriptor;
|
||
|
import java.lang.String;
|
||
|
|
||
|
public final class SharingContentProvider extends ContentProvider
|
||
|
{
|
||
|
private Object lock = new Object();
|
||
|
|
||
|
private native void contentSharerFileObserverEvent (long host, int event, String path);
|
||
|
|
||
|
private native Cursor contentSharerQuery (Uri uri, String[] projection, String selection,
|
||
|
String[] selectionArgs, String sortOrder);
|
||
|
|
||
|
private native void contentSharerCursorClosed (long host);
|
||
|
|
||
|
private native AssetFileDescriptor contentSharerOpenFile (Uri uri, String mode);
|
||
|
private native String[] contentSharerGetStreamTypes (Uri uri, String mimeTypeFilter);
|
||
|
|
||
|
public final class ProviderFileObserver extends FileObserver
|
||
|
{
|
||
|
public ProviderFileObserver (long hostToUse, String path, int mask)
|
||
|
{
|
||
|
super (path, mask);
|
||
|
|
||
|
host = hostToUse;
|
||
|
}
|
||
|
|
||
|
public void onEvent (int event, String path)
|
||
|
{
|
||
|
contentSharerFileObserverEvent (host, event, path);
|
||
|
}
|
||
|
|
||
|
private long host;
|
||
|
}
|
||
|
|
||
|
public final class ProviderCursor extends MatrixCursor
|
||
|
{
|
||
|
ProviderCursor (long hostToUse, String[] columnNames)
|
||
|
{
|
||
|
super (columnNames);
|
||
|
|
||
|
host = hostToUse;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public void close()
|
||
|
{
|
||
|
super.close();
|
||
|
|
||
|
contentSharerCursorClosed (host);
|
||
|
}
|
||
|
|
||
|
private long host;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public boolean onCreate()
|
||
|
{
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Cursor query (Uri url, String[] projection, String selection,
|
||
|
String[] selectionArgs, String sortOrder)
|
||
|
{
|
||
|
synchronized (lock)
|
||
|
{
|
||
|
return contentSharerQuery (url, projection, selection, selectionArgs, sortOrder);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public Uri insert (Uri uri, ContentValues values)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public int update (Uri uri, ContentValues values, String selection,
|
||
|
String[] selectionArgs)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public int delete (Uri uri, String selection, String[] selectionArgs)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getType (Uri uri)
|
||
|
{
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public AssetFileDescriptor openAssetFile (Uri uri, String mode)
|
||
|
{
|
||
|
synchronized (lock)
|
||
|
{
|
||
|
return contentSharerOpenFile (uri, mode);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public ParcelFileDescriptor openFile (Uri uri, String mode)
|
||
|
{
|
||
|
synchronized (lock)
|
||
|
{
|
||
|
AssetFileDescriptor result = contentSharerOpenFile (uri, mode);
|
||
|
|
||
|
if (result != null)
|
||
|
return result.getParcelFileDescriptor();
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
$$ContentProviderApi11
|
||
|
@Override
|
||
|
public String[] getStreamTypes (Uri uri, String mimeTypeFilter)
|
||
|
{
|
||
|
synchronized (lock)
|
||
|
{
|
||
|
return contentSharerGetStreamTypes (uri, mimeTypeFilter);
|
||
|
}
|
||
|
}
|
||
|
ContentProviderApi11$$
|
||
|
}
|