Improved release of resources in FileObserverService#onDestroy
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / FileDisplayActivity.java
index dba6e81..22b2d80 100644 (file)
@@ -72,7 +72,9 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.operations.CreateFolderOperation;
 
+import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
 import com.owncloud.android.lib.common.OwnCloudCredentials;
 import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
 import com.owncloud.android.lib.common.network.CertificateCombinedException;
@@ -162,11 +164,12 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
             requestPinCode();
         }
 
-        /// file observer
-        Intent observer_intent = new Intent(this, FileObserverService.class);
-        observer_intent.putExtra(FileObserverService.KEY_FILE_CMD, FileObserverService.CMD_INIT_OBSERVED_LIST);
-        startService(observer_intent);
-
+        /// grant that FileObserverService is watching favourite files
+        if (savedInstanceState != null) {
+            Intent initObserversIntent = FileObserverService.makeInitIntent(this);
+            startService(initObserversIntent);
+        }
+        
         /// Load of saved instance state
         if(savedInstanceState != null) {
             mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
@@ -936,10 +939,10 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
 
                             OwnCloudClient client = null;
                             try {
-                                client = ((MainApp)getApplicationContext()).
-                                        getOwnCloudClientManager().removeClientFor(
-                                                getAccount(), 
-                                                context);
+                                OwnCloudAccount ocAccount = 
+                                        new OwnCloudAccount(getAccount(), context);
+                                client = (OwnCloudClientManagerFactory.getDefaultSingleton().
+                                        removeClientFor(ocAccount));
                                 // TODO get rid of these exceptions
                             } catch (AccountNotFoundException e) {
                                 e.printStackTrace();