import android.accounts.OperationCanceledException;\r
import android.content.ContentProviderClient;\r
import android.content.Context;\r
+import android.content.Intent;\r
import android.content.SyncResult;\r
+import android.content.IntentSender.SendIntentException;\r
import android.os.Bundle;\r
import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
import eu.alefzero.owncloud.datamodel.OCFile;\r
*/\r
public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {\r
\r
+ public static final String SYNC_MESSAGE = "eu.alefzero.owncloud.files.ACCOUNT_SYNC";\r
+ public static final String IN_PROGRESS = "sync_in_progress";\r
+ public static final String ACCOUNT_NAME = "account_name";\r
+ \r
public FileSyncAdapter(Context context, boolean autoInitialize) {\r
super(context, autoInitialize);\r
}\r
this.setContentProvider(provider);\r
this.setStorageManager(new FileDataStorageManager(account, getContentProvider()));\r
\r
+ Intent i = new Intent(SYNC_MESSAGE);\r
+ i.putExtra(IN_PROGRESS, true);\r
+ i.putExtra("ACCOUNT_NAME", account.name);\r
+ getContext().sendStickyBroadcast(i);\r
+ \r
PropFindMethod query;\r
try {\r
query = new PropFindMethod(getUri().toString());\r
syncResult.stats.numIoExceptions++;\r
e.printStackTrace();\r
}\r
- \r
+ i.putExtra(IN_PROGRESS, false);\r
+ getContext().sendStickyBroadcast(i);\r
}\r
\r
private void fetchData(String uri, SyncResult syncResult, long parentId) {\r
import android.app.AlertDialog;\r
import android.app.AlertDialog.Builder;\r
import android.app.Dialog;\r
+import android.content.Context;\r
import android.content.DialogInterface;\r
import android.content.DialogInterface.OnCancelListener;\r
import android.content.DialogInterface.OnClickListener;\r
+import android.content.BroadcastReceiver;\r
import android.content.Intent;\r
+import android.content.IntentFilter;\r
import android.net.Uri;\r
import android.os.Bundle;\r
+import android.util.Log;\r
import android.view.View;\r
import android.view.ViewGroup;\r
import android.widget.ArrayAdapter;\r
import com.actionbarsherlock.view.Menu;\r
import com.actionbarsherlock.view.MenuInflater;\r
import com.actionbarsherlock.view.MenuItem;\r
+import com.actionbarsherlock.view.Window;\r
\r
import eu.alefzero.owncloud.AccountUtils;\r
import eu.alefzero.owncloud.R;\r
import eu.alefzero.owncloud.datamodel.DataStorageManager;\r
import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
import eu.alefzero.owncloud.datamodel.OCFile;\r
+import eu.alefzero.owncloud.syncadapter.FileSyncAdapter;\r
import eu.alefzero.owncloud.ui.fragment.FileListFragment;\r
import eu.alefzero.webdav.WebdavClient;\r
\r
private ArrayAdapter<String> mDirectories;\r
private DataStorageManager mStorageManager;\r
\r
+ private BR b;\r
+ \r
private static final int DIALOG_SETUP_ACCOUNT = 0;\r
private static final int DIALOG_CREATE_DIR = 1;\r
\r
return;\r
}\r
\r
+ requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); \r
+\r
mDirectories = new CustomArrayAdapter<String>(this,\r
R.layout.sherlock_spinner_dropdown_item);\r
mDirectories.add("/");\r
super.onResume();\r
if(!accountsAreSetup()){\r
showDialog(DIALOG_SETUP_ACCOUNT);\r
+ return;\r
}\r
+ IntentFilter f = new IntentFilter(FileSyncAdapter.SYNC_MESSAGE);\r
+ b = new BR();\r
+ registerReceiver(b, f);\r
+ setProgressBarIndeterminateVisibility(false);\r
}\r
\r
+ @Override\r
+ protected void onPause() {\r
+ super.onPause();\r
+ unregisterReceiver(b);\r
+ }\r
+ \r
@Override\r
public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
int i = itemPosition;\r
return accounts.length > 0;\r
}\r
\r
+ private class BR extends BroadcastReceiver {\r
+ @Override\r
+ public void onReceive(Context context, Intent intent) {\r
+ boolean in_progress = intent.getBooleanExtra(FileSyncAdapter.IN_PROGRESS, false);\r
+ String account_name = intent.getStringExtra(FileSyncAdapter.ACCOUNT_NAME);\r
+ Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + in_progress);\r
+ setProgressBarIndeterminateVisibility(in_progress);\r
+ if (!in_progress) {\r
+ FileListFragment f = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+ if (f != null)\r
+ f.populateFileList();\r
+ }\r
+ }\r
+ \r
+ }\r
\r
}