Log_OC.d(TAG, "checking parents to remove conflict; STARTING with " + parentPath);
while (parentPath.length() > 0) {
- String where =
+ String whereForDescencentsInConflict =
ProviderTableMeta.FILE_ETAG_IN_CONFLICT + " IS NOT NULL AND " +
ProviderTableMeta.FILE_CONTENT_TYPE + " != 'DIR' AND " +
ProviderTableMeta.FILE_ACCOUNT_OWNER + " = ? AND " +
ProviderTableMeta.FILE_PATH + " LIKE ?";
- Cursor descendentsInConflict = getContentResolver().query(
- ProviderTableMeta.CONTENT_URI_FILE,
- new String[]{ProviderTableMeta._ID},
- where,
- new String[]{mAccount.name, parentPath + "%"},
- null
- );
+ Cursor descendentsInConflict = null;
+ if (getContentResolver() != null) {
+ descendentsInConflict = getContentResolver().query(
+ ProviderTableMeta.CONTENT_URI_FILE,
+ new String[]{ProviderTableMeta._ID},
+ whereForDescencentsInConflict,
+ new String[]{mAccount.name, parentPath + "%"},
+ null
+ );
+ } else {
+ try {
+ descendentsInConflict = getContentProviderClient().query(
+ ProviderTableMeta.CONTENT_URI_FILE,
+ new String[]{ProviderTableMeta._ID},
+ whereForDescencentsInConflict,
+ new String[]{mAccount.name, parentPath + "%"},
+ null
+ );
+ } catch (RemoteException e) {
+ Log_OC.e(TAG, "Failed querying for descendents in conflict " + e.getMessage());
+ }
+ }
if (descendentsInConflict == null || descendentsInConflict.getCount() == 0) {
Log_OC.d(TAG, "NO MORE conflicts in " + parentPath);
if (getContentResolver() != null) {