Disable extra logs
[pub/Android/ownCloud.git] / src / com / owncloud / android / syncadapter / FileSyncService.java
index cb2f720..5da8c24 100644 (file)
@@ -1,10 +1,10 @@
 /* ownCloud Android client application\r
  *   Copyright (C) 2011  Bartek Przybylski\r
+ *   Copyright (C) 2012-2013 ownCloud Inc.\r
  *\r
  *   This program is free software: you can redistribute it and/or modify\r
- *   it under the terms of the GNU General Public License as published by\r
- *   the Free Software Foundation, either version 3 of the License, or\r
- *   (at your option) any later version.\r
+ *   it under the terms of the GNU General Public License version 2,\r
+ *   as published by the Free Software Foundation.\r
  *\r
  *   This program is distributed in the hope that it will be useful,\r
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
@@ -22,23 +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
+    \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
@@ -46,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