package eu.alefzero.owncloud.files.services;
import java.io.File;
+import java.util.List;
import eu.alefzero.owncloud.AccountUtils;
import eu.alefzero.owncloud.R;
import eu.alefzero.owncloud.datamodel.OCFile;
import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
import eu.alefzero.owncloud.utils.OwnCloudVersion;
-import eu.alefzero.webdav.OnUploadProgressListener;
import eu.alefzero.webdav.WebdavClient;
import android.accounts.Account;
import android.accounts.AccountManager;
public class FileUploader extends Service implements OnDatatransferProgressListener {
+ public static final String UPLOAD_FINISH_MESSAGE = "UPLOAD_FINISH";
+ public static final String EXTRA_PARENT_DIR_ID = "PARENT_DIR_ID";
+
public static final String KEY_LOCAL_FILE = "LOCAL_FILE";
public static final String KEY_REMOTE_FILE = "REMOTE_FILE";
public static final String KEY_ACCOUNT = "ACCOUNT";
new_file.setLastSyncDate(0);
new_file.setStoragePath(mLocalPaths[i]);
File f = new File(mRemotePaths[i]);
- new_file.setParentId(storageManager.getFileByPath(f.getParent().endsWith("/")?f.getParent():f.getParent()+"/").getFileId());
+ long parentDirId = storageManager.getFileByPath(f.getParent().endsWith("/")?f.getParent():f.getParent()+"/").getFileId();
+ new_file.setParentId(parentDirId);
storageManager.saveFile(new_file);
+
+ Intent end = new Intent(UPLOAD_FINISH_MESSAGE);
+ end.putExtra(EXTRA_PARENT_DIR_ID, parentDirId);
+ sendBroadcast(end);
}
+
}
- // notification.contentView.setProgressBar(R.id.status_progress,
- // mLocalPaths.length-1, mLocalPaths.length-1, false);
mNotificationManager.cancel(42);
run();
}
import android.widget.ArrayAdapter;\r
import android.widget.EditText;\r
import android.widget.TextView;\r
+import android.widget.Toast;\r
\r
import com.actionbarsherlock.app.ActionBar;\r
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;\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.files.services.FileDownloader;\r
import eu.alefzero.owncloud.files.services.FileUploader;\r
import eu.alefzero.owncloud.syncadapter.FileSyncService;\r
import eu.alefzero.owncloud.ui.fragment.FileDetailFragment;\r
private String[] mDirs = null;\r
\r
private DataStorageManager mStorageManager;\r
- private SyncBroadcastReceiver syncBroadcastReceiver;\r
+ private SyncBroadcastReceiver mSyncBroadcastReceiver;\r
+ private UploadFinishReceiver mUploadFinishReceiver;\r
\r
private View mLayoutView = null;\r
private FileListFragment mFileList;\r
\r
// Listen for sync messages\r
IntentFilter syncIntentFilter = new IntentFilter(FileSyncService.SYNC_MESSAGE);\r
- syncBroadcastReceiver = new SyncBroadcastReceiver();\r
- registerReceiver(syncBroadcastReceiver, syncIntentFilter);\r
+ mSyncBroadcastReceiver = new SyncBroadcastReceiver();\r
+ registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);\r
+ \r
+ // Listen for upload messages\r
+ IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE);\r
+ mUploadFinishReceiver = new UploadFinishReceiver();\r
+ registerReceiver(mUploadFinishReceiver, uploadIntentFilter);\r
\r
// Storage manager initialization\r
mStorageManager = new FileDataStorageManager(\r
protected void onPause() {\r
Log.i(getClass().toString(), "onPause() start");\r
super.onPause();\r
- if (syncBroadcastReceiver != null) {\r
- unregisterReceiver(syncBroadcastReceiver);\r
- syncBroadcastReceiver = null;\r
+ if (mSyncBroadcastReceiver != null) {\r
+ unregisterReceiver(mSyncBroadcastReceiver);\r
+ mSyncBroadcastReceiver = null;\r
+ }\r
+ if (mUploadFinishReceiver != null) {\r
+ unregisterReceiver(mUploadFinishReceiver);\r
+ mUploadFinishReceiver = null;\r
}\r
getIntent().putExtra(FileDetailFragment.EXTRA_FILE, mCurrentDir);\r
Log.i(getClass().toString(), "onPause() end");\r
}\r
\r
}\r
+ \r
+\r
+ private class UploadFinishReceiver extends BroadcastReceiver {\r
+ /**\r
+ * Once the file upload has finished -> update view\r
+ * @author David A. Velasco\r
+ * {@link BroadcastReceiver} to enable upload feedback in UI\r
+ */\r
+ @Override\r
+ public void onReceive(Context context, Intent intent) {\r
+ long parentDirId = intent.getLongExtra(FileUploader.EXTRA_PARENT_DIR_ID, -1);\r
+ OCFile parentDir = mStorageManager.getFileById(parentDirId);\r
+ \r
+ if (parentDir != null && (\r
+ (mCurrentDir == null && parentDir.getFileName().equals("/")) ||\r
+ parentDir.equals(mCurrentDir))\r
+ ) {\r
+ FileListFragment fileListFragment = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+ if (fileListFragment != null) { \r
+ fileListFragment.listDirectory();\r
+ }\r
+ }\r
+ }\r
+ \r
+ }\r
\r
+ \r
@Override\r
public void onClick(View v) {\r
if (v.getId() == R.id.setup_account) {\r