Search in sources :

Example 11 with UriPermission

use of android.content.UriPermission in project platform_frameworks_base by android.

the class MtpDocumentsProvider method onCreate.

@Override
public boolean onCreate() {
    sSingleton = this;
    mContext = getContext();
    mResources = getContext().getResources();
    mMtpManager = new MtpManager(getContext());
    mResolver = getContext().getContentResolver();
    mDeviceToolkits = new HashMap<Integer, DeviceToolkit>();
    mDatabase = new MtpDatabase(getContext(), MtpDatabaseConstants.FLAG_DATABASE_IN_FILE);
    mRootScanner = new RootScanner(mResolver, mMtpManager, mDatabase);
    mAppFuse = new AppFuse(TAG, new AppFuseCallback());
    mIntentSender = new ServiceIntentSender(getContext());
    // after booting.
    try {
        final int bootCount = Settings.Global.getInt(mResolver, Settings.Global.BOOT_COUNT, -1);
        final int lastBootCount = mDatabase.getLastBootCount();
        if (bootCount != -1 && bootCount != lastBootCount) {
            mDatabase.setLastBootCount(bootCount);
            final List<UriPermission> permissions = mResolver.getOutgoingPersistedUriPermissions();
            final Uri[] uris = new Uri[permissions.size()];
            for (int i = 0; i < permissions.size(); i++) {
                uris[i] = permissions.get(i).getUri();
            }
            mDatabase.cleanDatabase(uris);
        }
    } catch (SQLiteDiskIOException error) {
        // It can happen due to disk shortage.
        Log.e(TAG, "Failed to clean database.", error);
        return false;
    }
    // TODO: Mount AppFuse on demands.
    try {
        mAppFuse.mount(getContext().getSystemService(StorageManager.class));
    } catch (IOException error) {
        Log.e(TAG, "Failed to start app fuse.", error);
        return false;
    }
    resume();
    return true;
}
Also used : StorageManager(android.os.storage.StorageManager) SQLiteDiskIOException(android.database.sqlite.SQLiteDiskIOException) IOException(java.io.IOException) Uri(android.net.Uri) Point(android.graphics.Point) UriPermission(android.content.UriPermission) SQLiteDiskIOException(android.database.sqlite.SQLiteDiskIOException)

Example 12 with UriPermission

use of android.content.UriPermission in project android_frameworks_base by AOSPA.

the class ActivityManagerProxy method getGrantedUriPermissions.

@Override
public ParceledListSlice<UriPermission> getGrantedUriPermissions(String packageName, int userId) throws RemoteException {
    Parcel data = Parcel.obtain();
    Parcel reply = Parcel.obtain();
    data.writeInterfaceToken(IActivityManager.descriptor);
    data.writeString(packageName);
    data.writeInt(userId);
    mRemote.transact(GET_GRANTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0);
    reply.readException();
    @SuppressWarnings("unchecked") final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel(reply);
    data.recycle();
    reply.recycle();
    return perms;
}
Also used : Parcel(android.os.Parcel) UriPermission(android.content.UriPermission)

Example 13 with UriPermission

use of android.content.UriPermission in project android_frameworks_base by AOSPA.

the class ActivityManagerProxy method getPersistedUriPermissions.

@Override
public ParceledListSlice<UriPermission> getPersistedUriPermissions(String packageName, boolean incoming) throws RemoteException {
    Parcel data = Parcel.obtain();
    Parcel reply = Parcel.obtain();
    data.writeInterfaceToken(IActivityManager.descriptor);
    data.writeString(packageName);
    data.writeInt(incoming ? 1 : 0);
    mRemote.transact(GET_PERSISTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0);
    reply.readException();
    @SuppressWarnings("unchecked") final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel(reply);
    data.recycle();
    reply.recycle();
    return perms;
}
Also used : Parcel(android.os.Parcel) UriPermission(android.content.UriPermission)

Example 14 with UriPermission

use of android.content.UriPermission in project android_frameworks_base by DirtyUnicorns.

the class ActivityManagerProxy method getPersistedUriPermissions.

@Override
public ParceledListSlice<UriPermission> getPersistedUriPermissions(String packageName, boolean incoming) throws RemoteException {
    Parcel data = Parcel.obtain();
    Parcel reply = Parcel.obtain();
    data.writeInterfaceToken(IActivityManager.descriptor);
    data.writeString(packageName);
    data.writeInt(incoming ? 1 : 0);
    mRemote.transact(GET_PERSISTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0);
    reply.readException();
    @SuppressWarnings("unchecked") final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel(reply);
    data.recycle();
    reply.recycle();
    return perms;
}
Also used : Parcel(android.os.Parcel) UriPermission(android.content.UriPermission)

Example 15 with UriPermission

use of android.content.UriPermission in project android_frameworks_base by DirtyUnicorns.

the class ActivityManagerProxy method getGrantedUriPermissions.

@Override
public ParceledListSlice<UriPermission> getGrantedUriPermissions(String packageName, int userId) throws RemoteException {
    Parcel data = Parcel.obtain();
    Parcel reply = Parcel.obtain();
    data.writeInterfaceToken(IActivityManager.descriptor);
    data.writeString(packageName);
    data.writeInt(userId);
    mRemote.transact(GET_GRANTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0);
    reply.readException();
    @SuppressWarnings("unchecked") final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel(reply);
    data.recycle();
    reply.recycle();
    return perms;
}
Also used : Parcel(android.os.Parcel) UriPermission(android.content.UriPermission)

Aggregations

UriPermission (android.content.UriPermission)23 Uri (android.net.Uri)11 Parcel (android.os.Parcel)10 ActivityManager (android.app.ActivityManager)6 IOException (java.io.IOException)6 ContentProviderClient (android.content.ContentProviderClient)5 SQLiteDiskIOException (android.database.sqlite.SQLiteDiskIOException)5 Point (android.graphics.Point)5 StorageManager (android.os.storage.StorageManager)5 File (java.io.File)2 ContentResolver (android.content.ContentResolver)1 PackageManager (android.content.pm.PackageManager)1 ProviderInfo (android.content.pm.ProviderInfo)1 Cursor (android.database.Cursor)1 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)1 DocumentFile (android.support.v4.provider.DocumentFile)1 Preference (android.support.v7.preference.Preference)1 MutableInt (android.util.MutableInt)1 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1