import android.app.AlertDialog;\r
import android.app.AlertDialog.Builder;\r
import android.app.Dialog;\r
+import android.content.BroadcastReceiver;\r
+import android.content.ContentResolver;\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.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.FileSyncService;\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 SyncBroadcastReceiver syncBroadcastRevceiver;\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
showDialog(DIALOG_CREATE_DIR);\r
break;\r
}\r
+ case R.id.startSync: {\r
+ Bundle bundle = new Bundle();\r
+ bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
+ ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this),\r
+ "org.owncloud",\r
+ bundle);\r
+ break;\r
+ }\r
case android.R.id.home: {\r
onBackPressed();\r
break;\r
super.onResume();\r
if(!accountsAreSetup()){\r
showDialog(DIALOG_SETUP_ACCOUNT);\r
+ return;\r
}\r
+ IntentFilter syncMessageIntentFilter = new IntentFilter(FileSyncService.SYNC_MESSAGE);\r
+ syncBroadcastRevceiver = new SyncBroadcastReceiver();\r
+ registerReceiver(syncBroadcastRevceiver, syncMessageIntentFilter);\r
+ setProgressBarIndeterminateVisibility(false);\r
}\r
\r
+ @Override\r
+ protected void onPause() {\r
+ super.onPause();\r
+ if(syncBroadcastRevceiver != null){\r
+ unregisterReceiver(syncBroadcastRevceiver); \r
+ }\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 SyncBroadcastReceiver extends BroadcastReceiver {\r
+ /**\r
+ * {@link BroadcastReceiver} to enable syncing feedback in UI\r
+ */\r
+ @Override\r
+ public void onReceive(Context context, Intent intent) {\r
+ boolean inProgress = intent.getBooleanExtra(FileSyncService.IN_PROGRESS, false);\r
+ String account_name = intent.getStringExtra(FileSyncService.ACCOUNT_NAME);\r
+ Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + inProgress);\r
+ setProgressBarIndeterminateVisibility(inProgress);\r
+ if (!inProgress) {\r
+ FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+ if (fileListFramgent != null)\r
+ fileListFramgent.populateFileList();\r
+ }\r
+ }\r
+ \r
+ }\r
\r
}