Loading packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java +20 −11 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.AssetFileDescriptor; import android.content.res.Resources; import android.database.Cursor; import android.database.MatrixCursor; import android.database.sqlite.SQLiteDiskIOException; import android.graphics.Point; import android.media.MediaFile; import android.mtp.MtpConstants; Loading Loading @@ -103,25 +104,33 @@ public class MtpDocumentsProvider extends DocumentsProvider { // Check boot count and cleans database if it's first time to launch MtpDocumentsProvider // 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 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 e) { Log.e(TAG, "Failed to start app fuse.", e); } catch (IOException error) { Log.e(TAG, "Failed to start app fuse.", error); return false; } resume(); return true; } Loading Loading
packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java +20 −11 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.AssetFileDescriptor; import android.content.res.Resources; import android.database.Cursor; import android.database.MatrixCursor; import android.database.sqlite.SQLiteDiskIOException; import android.graphics.Point; import android.media.MediaFile; import android.mtp.MtpConstants; Loading Loading @@ -103,25 +104,33 @@ public class MtpDocumentsProvider extends DocumentsProvider { // Check boot count and cleans database if it's first time to launch MtpDocumentsProvider // 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 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 e) { Log.e(TAG, "Failed to start app fuse.", e); } catch (IOException error) { Log.e(TAG, "Failed to start app fuse.", error); return false; } resume(); return true; } Loading