OC-1321: fix renaming problem: parent and children oc-android-1.4.5
authormasensio <masensio@solidgear.es>
Mon, 16 Sep 2013 08:54:20 +0000 (10:54 +0200)
committermasensio <masensio@solidgear.es>
Mon, 16 Sep 2013 08:54:20 +0000 (10:54 +0200)
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/providers/FileContentProvider.java

index 32e9cc0..f461193 100644 (file)
@@ -557,16 +557,16 @@ public class FileDataStorageManager implements DataStorageManager {
                 try {
                     c = getContentProvider().query(ProviderTableMeta.CONTENT_URI, 
                             null,
-                            ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + ProviderTableMeta._ID + "=?",
-                            new String[] { mAccount.name, String.valueOf(dir.getFileId()) }, null);
+                            ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                            new String[] { mAccount.name, dir.getRemotePath() + "%"  }, ProviderTableMeta.FILE_PATH + " ASC ");
                 } catch (RemoteException e) {
                     Log_OC.e(TAG, e.getMessage());
                 }
             } else {
                 c = getContentResolver().query(ProviderTableMeta.CONTENT_URI, 
                         null,
-                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + ProviderTableMeta._ID + "=?",
-                        new String[] { mAccount.name, String.valueOf(dir.getFileId()) }, null);
+                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                        new String[] { mAccount.name, dir.getRemotePath() + "%"  }, ProviderTableMeta.FILE_PATH + " ASC ");
             }
 
             /// 2. prepare a batch of update operations to change all the descendants
index e77556e..bd2b807 100644 (file)
@@ -187,6 +187,8 @@ public class FileContentProvider extends ContentProvider {
         }
 
         SQLiteDatabase db = mDbHelper.getReadableDatabase();
+        // DB case_sensitive
+        db.execSQL("PRAGMA case_sensitive_like = true");
         Cursor c = sqlQuery.query(db, projection, selection, selectionArgs,
                 null, null, order);