Loading packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java +0 −26 Original line number Original line Diff line number Diff line Loading @@ -307,32 +307,6 @@ class MtpDatabase { } } } } /** * Returns the set of device ID stored in the database. */ int[] getDeviceIds() { final Cursor cursor = mDatabase.query( true, TABLE_DOCUMENTS, strings(COLUMN_DEVICE_ID), null, null, null, null, null, null); try { final int[] ids = new int[cursor.getCount()]; for (int i = 0; i < ids.length; i++) { cursor.moveToNext(); ids[i] = cursor.getInt(0); } return ids; } finally { cursor.close(); } } private boolean deleteDocumentsAndRoots(String selection, String[] args) { private boolean deleteDocumentsAndRoots(String selection, String[] args) { mDatabase.beginTransaction(); mDatabase.beginTransaction(); try { try { Loading packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java +1 −9 Original line number Original line Diff line number Diff line Loading @@ -293,19 +293,11 @@ public class MtpDocumentsProvider extends DocumentsProvider { } } /** /** * Reopens MTP devices based on database state. * Clears MTP identifier in the database. */ */ private void resume() { private void resume() { synchronized (mDeviceListLock) { synchronized (mDeviceListLock) { mDatabase.getMapper().clearMapping(); mDatabase.getMapper().clearMapping(); final int[] ids = mDatabase.getDeviceIds(); for (final int id : ids) { try { openDevice(id); } catch (IOException exception) { mDatabase.removeDeviceRows(id); } } } } } } Loading packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java +0 −28 Original line number Original line Diff line number Diff line Loading @@ -408,34 +408,6 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { MtpDocumentsProvider.AUTHORITY, "1"))); MtpDocumentsProvider.AUTHORITY, "1"))); } } @MediumTest public void testPauseAndResume() throws Exception { setupProvider(MtpDatabaseConstants.FLAG_DATABASE_IN_FILE); mMtpManager.addValidDevice(0); mProvider.openDevice(0); setupRoots(0, new MtpRoot[] { new MtpRoot(0, 0, "Device", "Storage", 0, 0, "")}); { final Cursor cursor = mProvider.queryRoots( strings(DocumentsContract.Root.COLUMN_ROOT_ID)); cursor.moveToNext(); assertEquals(1, cursor.getInt(0)); } mProvider.shutdown(); setupProvider(MtpDatabaseConstants.FLAG_DATABASE_IN_FILE); { // We can still fetch roots after relaunching the provider. final Cursor cursor = mProvider.queryRoots( strings(DocumentsContract.Root.COLUMN_ROOT_ID)); assertEquals(1, cursor.getCount()); cursor.moveToNext(); assertEquals(1, cursor.getInt(0)); assertEquals(1, mMtpManager.getOpenedDeviceIds().length); } } private void setupProvider(int flag) { private void setupProvider(int flag) { mDatabase = new MtpDatabase(getContext(), flag); mDatabase = new MtpDatabase(getContext(), flag); mProvider = new MtpDocumentsProvider(); mProvider = new MtpDocumentsProvider(); Loading Loading
packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java +0 −26 Original line number Original line Diff line number Diff line Loading @@ -307,32 +307,6 @@ class MtpDatabase { } } } } /** * Returns the set of device ID stored in the database. */ int[] getDeviceIds() { final Cursor cursor = mDatabase.query( true, TABLE_DOCUMENTS, strings(COLUMN_DEVICE_ID), null, null, null, null, null, null); try { final int[] ids = new int[cursor.getCount()]; for (int i = 0; i < ids.length; i++) { cursor.moveToNext(); ids[i] = cursor.getInt(0); } return ids; } finally { cursor.close(); } } private boolean deleteDocumentsAndRoots(String selection, String[] args) { private boolean deleteDocumentsAndRoots(String selection, String[] args) { mDatabase.beginTransaction(); mDatabase.beginTransaction(); try { try { Loading
packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java +1 −9 Original line number Original line Diff line number Diff line Loading @@ -293,19 +293,11 @@ public class MtpDocumentsProvider extends DocumentsProvider { } } /** /** * Reopens MTP devices based on database state. * Clears MTP identifier in the database. */ */ private void resume() { private void resume() { synchronized (mDeviceListLock) { synchronized (mDeviceListLock) { mDatabase.getMapper().clearMapping(); mDatabase.getMapper().clearMapping(); final int[] ids = mDatabase.getDeviceIds(); for (final int id : ids) { try { openDevice(id); } catch (IOException exception) { mDatabase.removeDeviceRows(id); } } } } } } Loading
packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java +0 −28 Original line number Original line Diff line number Diff line Loading @@ -408,34 +408,6 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { MtpDocumentsProvider.AUTHORITY, "1"))); MtpDocumentsProvider.AUTHORITY, "1"))); } } @MediumTest public void testPauseAndResume() throws Exception { setupProvider(MtpDatabaseConstants.FLAG_DATABASE_IN_FILE); mMtpManager.addValidDevice(0); mProvider.openDevice(0); setupRoots(0, new MtpRoot[] { new MtpRoot(0, 0, "Device", "Storage", 0, 0, "")}); { final Cursor cursor = mProvider.queryRoots( strings(DocumentsContract.Root.COLUMN_ROOT_ID)); cursor.moveToNext(); assertEquals(1, cursor.getInt(0)); } mProvider.shutdown(); setupProvider(MtpDatabaseConstants.FLAG_DATABASE_IN_FILE); { // We can still fetch roots after relaunching the provider. final Cursor cursor = mProvider.queryRoots( strings(DocumentsContract.Root.COLUMN_ROOT_ID)); assertEquals(1, cursor.getCount()); cursor.moveToNext(); assertEquals(1, cursor.getInt(0)); assertEquals(1, mMtpManager.getOpenedDeviceIds().length); } } private void setupProvider(int flag) { private void setupProvider(int flag) { mDatabase = new MtpDatabase(getContext(), flag); mDatabase = new MtpDatabase(getContext(), flag); mProvider = new MtpDocumentsProvider(); mProvider = new MtpDocumentsProvider(); Loading