Merge pull request #740 from owncloud/revert-669-master
[pub/Android/ownCloud.git] / src / com / owncloud / android / syncadapter / FileSyncService.java
index d347265..5da8c24 100644 (file)
@@ -22,26 +22,30 @@ import android.content.Intent;
 import android.os.IBinder;\r
 \r
 /**\r
- * Background service for syncing files to our local Database\r
+ * Background service for synchronizing remote files with their local state.\r
  * \r
- * @author Bartek Przybylski\r
+ * Serves as a connector to an instance of {@link FileSyncAdapter}, as required by standard Android APIs. \r
  * \r
+ * @author Bartek Przybylski\r
+ * @author David A. Velasco\r
  */\r
 public class FileSyncService extends Service {\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
-    public static final String SYNC_RESULT = "SYNC_RESULT";\r
-\r
-    public String getSyncMessage(){\r
-        return getClass().getName().toString() + SYNC_MESSAGE;\r
-    }\r
+    \r
+    // Storage for an instance of the sync adapter\r
+    private static FileSyncAdapter sSyncAdapter = null;\r
+    // Object to use as a thread-safe lock\r
+    private static final Object sSyncAdapterLock = new Object();\r
+    \r
     /*\r
      * {@inheritDoc}\r
      */\r
     @Override\r
     public void onCreate() {\r
+        synchronized (sSyncAdapterLock) {\r
+            if (sSyncAdapter == null) {\r
+                sSyncAdapter = new FileSyncAdapter(getApplicationContext(), true);\r
+            }\r
+        }\r
     }\r
 \r
     /*\r
@@ -49,6 +53,7 @@ public class FileSyncService extends Service {
      */\r
     @Override\r
     public IBinder onBind(Intent intent) {\r
-       return new FileSyncAdapter(getApplicationContext(), true).getSyncAdapterBinder();\r
+       return sSyncAdapter.getSyncAdapterBinder();\r
     }\r
+    \r
 }\r