+
+ private boolean updateAccountName(SQLiteDatabase db){
+ Log_OC.d("SQL", "THREAD: "+ Thread.currentThread().getName());
+ AccountManager ama = AccountManager.get(getContext());
+ boolean upgradedResult = true;
+ boolean upgraded = false;
+ try {
+ // get accounts ALREADY UPDATED from AccountManager
+ Account[] accounts = AccountManager.get(getContext()).getAccountsByType(MainApp.getAccountType());
+ String serverUrl, username, oldAccountName;
+ for (Account account : accounts) {
+ // build old account name
+ serverUrl = ama.getUserData(account, AccountUtils.Constants.KEY_OC_BASE_URL);
+ username = account.name.substring(0, account.name.lastIndexOf('@'));
+ oldAccountName = AccountUtils.buildAccountNameOld(Uri.parse(serverUrl), username);
+
+ // update values in database
+ db.beginTransaction();
+ try{
+ ContentValues cv = new ContentValues();
+ cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, account.name);
+ int num = db.update(ProviderTableMeta.FILE_TABLE_NAME,
+ cv,
+ ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",
+ new String[]{ oldAccountName });
+ upgraded = true;
+ db.setTransactionSuccessful();
+
+ Log_OC.d("SQL", "Updated account in database: old name == " + oldAccountName +
+ ", new name == " + account.name + " (" + num + " rows updated )");
+ } catch (SQLException e){
+ upgraded = false;
+ } finally {
+ db.endTransaction();
+ }
+ upgradedResult = upgraded && upgradedResult;
+ }
+ } catch (Exception e) {
+ Log_OC.i("Exception", "Exception:" + e);
+ }
+
+ return upgradedResult;
+ }