Filter broadcast messages in receivers with the account, to avoid problems with servi...
authorDavid A. Velasco <dvelasco@solidgear.es>
Mon, 23 Jul 2012 10:47:58 +0000 (12:47 +0200)
committerDavid A. Velasco <dvelasco@solidgear.es>
Mon, 23 Jul 2012 10:47:58 +0000 (12:47 +0200)
AndroidManifest.xml
src/eu/alefzero/owncloud/files/services/FileDownloader.java
src/eu/alefzero/owncloud/files/services/FileUploader.java
src/eu/alefzero/owncloud/syncadapter/FileSyncService.java
src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java
src/eu/alefzero/owncloud/ui/fragment/FileDetailFragment.java

index a3d120d..c0082bf 100644 (file)
@@ -18,7 +18,7 @@
  -->\r
 <manifest package="eu.alefzero.owncloud"\r
     android:versionCode="1"\r
  -->\r
 <manifest package="eu.alefzero.owncloud"\r
     android:versionCode="1"\r
-    android:versionName="0.1.173B" xmlns:android="http://schemas.android.com/apk/res/android">\r
+    android:versionName="0.1.174B" xmlns:android="http://schemas.android.com/apk/res/android">\r
 \r
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />\r
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />\r
 \r
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />\r
     <uses-permission android:name="android.permission.USE_CREDENTIALS" />\r
index cc66e38..d08e727 100644 (file)
@@ -25,6 +25,7 @@ import eu.alefzero.owncloud.R;
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;\r
 import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;\r
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;\r
 import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;\r
+import eu.alefzero.owncloud.syncadapter.FileSyncService;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 public class FileDownloader extends Service implements OnDatatransferProgressListener {\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 public class FileDownloader extends Service implements OnDatatransferProgressListener {\r
@@ -34,6 +35,7 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
     public static final String EXTRA_FILE_PATH = "FILE_PATH";\r
     public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";\r
     public static final String EXTRA_FILE_SIZE = "FILE_SIZE";\r
     public static final String EXTRA_FILE_PATH = "FILE_PATH";\r
     public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";\r
     public static final String EXTRA_FILE_SIZE = "FILE_SIZE";\r
+    public static final String ACCOUNT_NAME = "ACCOUNT_NAME";    \r
     private static final String TAG = "FileDownloader";\r
 \r
     private NotificationManager mNotificationMngr;\r
     private static final String TAG = "FileDownloader";\r
 \r
     private NotificationManager mNotificationMngr;\r
@@ -150,6 +152,7 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
         end.putExtra(EXTRA_REMOTE_PATH, mRemotePath);\r
         end.putExtra(EXTRA_FILE_PATH, file.getAbsolutePath());\r
         end.putExtra(EXTRA_DOWNLOAD_RESULT, download_result);\r
         end.putExtra(EXTRA_REMOTE_PATH, mRemotePath);\r
         end.putExtra(EXTRA_FILE_PATH, file.getAbsolutePath());\r
         end.putExtra(EXTRA_DOWNLOAD_RESULT, download_result);\r
+        end.putExtra(ACCOUNT_NAME, mAccount.name);\r
         sendBroadcast(end);\r
 \r
         if (download_result) {\r
         sendBroadcast(end);\r
 \r
         if (download_result) {\r
index 9f480fc..93ee82f 100644 (file)
@@ -37,6 +37,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
     public static final String KEY_REMOTE_FILE = "REMOTE_FILE";
     public static final String KEY_ACCOUNT = "ACCOUNT";
     public static final String KEY_UPLOAD_TYPE = "UPLOAD_TYPE";
     public static final String KEY_REMOTE_FILE = "REMOTE_FILE";
     public static final String KEY_ACCOUNT = "ACCOUNT";
     public static final String KEY_UPLOAD_TYPE = "UPLOAD_TYPE";
+    public static final String ACCOUNT_NAME = "ACCOUNT_NAME";    
 
     public static final int UPLOAD_SINGLE_FILE = 0;
     public static final int UPLOAD_MULTIPLE_FILES = 1;
 
     public static final int UPLOAD_SINGLE_FILE = 0;
     public static final int UPLOAD_MULTIPLE_FILES = 1;
@@ -187,6 +188,7 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
                 
                 Intent end = new Intent(UPLOAD_FINISH_MESSAGE);
                 end.putExtra(EXTRA_PARENT_DIR_ID, parentDirId);
                 
                 Intent end = new Intent(UPLOAD_FINISH_MESSAGE);
                 end.putExtra(EXTRA_PARENT_DIR_ID, parentDirId);
+                end.putExtra(ACCOUNT_NAME, mAccount.name);
                 sendBroadcast(end);
             }
             
                 sendBroadcast(end);
             }
             
index 42eaf6c..5396f58 100644 (file)
@@ -28,10 +28,10 @@ import android.os.IBinder;
  * \r
  */\r
 public class FileSyncService extends Service {\r
  * \r
  */\r
 public class FileSyncService extends Service {\r
-    public static final String SYNC_MESSAGE = "eu.alefzero.owncloud.files.ACCOUNT_SYNC";\r
-    public static final String SYNC_FOLDER_REMOTE_PATH = "eu.alefzero.owncloud.files.SYNC_FOLDER_REMOTE_PATH";\r
-    public static final String IN_PROGRESS = "sync_in_progress";\r
-    public static final String ACCOUNT_NAME = "account_name";\r
+    public static final String SYNC_MESSAGE = "ACCOUNT_SYNC";\r
+    public static final String SYNC_FOLDER_REMOTE_PATH = "SYNC_FOLDER_REMOTE_PATH";\r
+    public static final String IN_PROGRESS = "SYNC_IN_PROGRESS";\r
+    public static final String ACCOUNT_NAME = "ACCOUNT_NAME";\r
 \r
     /*\r
      * {@inheritDoc}\r
 \r
     /*\r
      * {@inheritDoc}\r
index c8e3297..6bc0b0f 100644 (file)
@@ -639,13 +639,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         public void onReceive(Context context, Intent intent) {\r
             boolean inProgress = intent.getBooleanExtra(\r
                     FileSyncService.IN_PROGRESS, false);\r
         public void onReceive(Context context, Intent intent) {\r
             boolean inProgress = intent.getBooleanExtra(\r
                     FileSyncService.IN_PROGRESS, false);\r
-            String account_name = intent\r
+            String accountName = intent\r
                     .getStringExtra(FileSyncService.ACCOUNT_NAME);\r
 \r
                     .getStringExtra(FileSyncService.ACCOUNT_NAME);\r
 \r
-            Log.d("FileDisplay", "sync of account " + account_name\r
+            Log.d("FileDisplay", "sync of account " + accountName\r
                     + " is in_progress: " + inProgress);\r
 \r
                     + " is in_progress: " + inProgress);\r
 \r
-            if (account_name.equals(AccountUtils.getCurrentOwnCloudAccount(context).name)) {  \r
+            if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name)) {  \r
             \r
                 String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); \r
                  \r
             \r
                 String synchFolderRemotePath = intent.getStringExtra(FileSyncService.SYNC_FOLDER_REMOTE_PATH); \r
                  \r
@@ -683,10 +683,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         public void onReceive(Context context, Intent intent) {\r
             long parentDirId = intent.getLongExtra(FileUploader.EXTRA_PARENT_DIR_ID, -1);\r
             OCFile parentDir = mStorageManager.getFileById(parentDirId);\r
         public void onReceive(Context context, Intent intent) {\r
             long parentDirId = intent.getLongExtra(FileUploader.EXTRA_PARENT_DIR_ID, -1);\r
             OCFile parentDir = mStorageManager.getFileById(parentDirId);\r
-            \r
-            if (parentDir != null && (\r
-                    (mCurrentDir == null && parentDir.getFileName().equals("/")) ||\r
-                     parentDir.equals(mCurrentDir))\r
+            String accountName = intent.getStringExtra(FileUploader.ACCOUNT_NAME);\r
+\r
+            if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name) &&\r
+                    parentDir != null && \r
+                    (   (mCurrentDir == null && parentDir.getFileName().equals("/")) ||\r
+                            parentDir.equals(mCurrentDir)\r
+                    )\r
                 ) {\r
                 FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
                 if (fileListFragment != null) { \r
                 ) {\r
                 FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
                 if (fileListFragment != null) { \r
@@ -706,7 +709,10 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         public void onReceive(Context context, Intent intent) {\r
             boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);\r
             String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);\r
         public void onReceive(Context context, Intent intent) {\r
             boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);\r
             String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);\r
-            if (downloadWasFine && mCurrentDir != null && mCurrentDir.getFileId() == mStorageManager.getFileByPath(downloadedRemotePath).getParentId()) {\r
+            String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME);\r
+\r
+            if (accountName.equals(AccountUtils.getCurrentOwnCloudAccount(context).name) &&\r
+                    downloadWasFine && mCurrentDir != null && mCurrentDir.getFileId() == mStorageManager.getFileByPath(downloadedRemotePath).getParentId()) {\r
                 FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
                 if (fileListFragment != null) { \r
                     fileListFragment.listDirectory();\r
                 FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
                 if (fileListFragment != null) { \r
                     fileListFragment.listDirectory();\r
index 156e66e..2f694f2 100644 (file)
@@ -79,6 +79,7 @@ import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
 import eu.alefzero.owncloud.files.services.FileDownloader;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
 import eu.alefzero.owncloud.files.services.FileDownloader;\r
+import eu.alefzero.owncloud.files.services.FileUploader;\r
 import eu.alefzero.owncloud.ui.activity.FileDisplayActivity;\r
 import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
 import eu.alefzero.owncloud.ui.activity.FileDisplayActivity;\r
 import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
@@ -553,7 +554,9 @@ public class FileDetailFragment extends SherlockFragment implements
     private class DownloadFinishReceiver extends BroadcastReceiver {\r
         @Override\r
         public void onReceive(Context context, Intent intent) {\r
     private class DownloadFinishReceiver extends BroadcastReceiver {\r
         @Override\r
         public void onReceive(Context context, Intent intent) {\r
-            if (mFile != null) {\r
+            String accountName = intent.getStringExtra(FileDownloader.ACCOUNT_NAME);\r
+\r
+            if (accountName.equals(mAccount.name) && mFile != null) {\r
                 boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);\r
                 String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);\r
                 if (mFile.getRemotePath().equals(downloadedRemotePath)) {\r
                 boolean downloadWasFine = intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false);\r
                 String downloadedRemotePath = intent.getStringExtra(FileDownloader.EXTRA_REMOTE_PATH);\r
                 if (mFile.getRemotePath().equals(downloadedRemotePath)) {\r