<item android:id="@+id/action_move" android:title="@string/actionbar_move" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
<item android:id="@+id/action_remove_file" android:title="@string/common_remove" android:icon="@android:drawable/ic_menu_delete" android:orderInCategory="1" />
<item android:id="@+id/action_send_file" android:title="@string/actionbar_send_file" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
+ <item android:id="@+id/action_favorite_file" android:title="@string/fd_keep_in_sync" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
+ <item android:id="@+id/action_unfavorite_file" android:title="@string/unfavorite" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
<item android:id="@+id/action_see_details" android:title="@string/actionbar_see_details" android:icon="@android:drawable/ic_menu_info_details" android:orderInCategory="1" />
</menu>
<string name="auth_can_not_auth_against_server">Cannot authenticate against this server</string>
<string name="auth_account_does_not_exist">Account does not exist in the device yet</string>
- <string name="fd_keep_in_sync">Keep file up to date</string>
+ <string name="fd_keep_in_sync">Favorite</string>
+ <string name="unfavorite">Unfavorite</string>
<string name="common_rename">Rename</string>
<string name="common_remove">Remove</string>
<string name="confirmation_remove_alert">"Do you really want to remove %1$s?"</string>
toShow.add(R.id.action_send_file);
}
+ // FAVORITES
+ if (mFile == null || downloading || uploading || mFile.isFolder() || mFile.keepInSync()) {
+ toHide.add(R.id.action_favorite_file);
+ } else {
+ toShow.add(R.id.action_favorite_file);
+ }
+
+ // UNFAVORITES
+ if (mFile == null || downloading || uploading || mFile.isFolder() || !mFile.keepInSync()) {
+ toHide.add(R.id.action_unfavorite_file);
+ } else {
+ toShow.add(R.id.action_unfavorite_file);
+ }
+
}
}
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.services.OperationsService;
+import com.owncloud.android.services.observer.FileObserverService;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.dialog.ShareLinkToDialog;
mFileActivity.startService(intent);
}
}
+
+ public void toggleKeepInSync(OCFile file, boolean isFavorite) {
+ file.setKeepInSync(isFavorite);
+ mFileActivity.getStorageManager().saveFile(file);
+
+ /// register the OCFile instance in the observer service to monitor local updates
+ Intent observedFileIntent = FileObserverService.makeObservedFileIntent(
+ mFileActivity,
+ file,
+ mFileActivity.getAccount(),
+ isFavorite);
+ mFileActivity.startService(observedFileIntent);
+
+ /// immediate content synchronization
+ if (file.keepInSync()) {
+ syncFile(file);
+ }
+ }
public void renameFile(OCFile file, String newFilename) {
// RenameFile
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.SynchronizeFileOperation;
import com.owncloud.android.operations.SynchronizeFolderOperation;
import com.owncloud.android.operations.UnshareLinkOperation;
import com.owncloud.android.services.OperationsService;
import com.owncloud.android.ui.adapter.NavigationDrawerListAdapter;
import com.owncloud.android.ui.dialog.LoadingDialog;
import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
+import com.owncloud.android.ui.fragment.FileDetailFragment;
+import com.owncloud.android.ui.fragment.FileFragment;
import com.owncloud.android.utils.ErrorMessageAdapter;
import java.util.ArrayList;
} else if (operation instanceof SynchronizeFolderOperation) {
onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result);
+ }else if (operation instanceof SynchronizeFileOperation) {
+ onSynchronizeFileOperationFinish((SynchronizeFileOperation)operation, result);
+
}
}
t.show();
}
}
+
+ private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
+ RemoteOperationResult result) {
+ dismissLoadingDialog();
+ OCFile syncedFile = operation.getLocalFile();
+ if (!result.isSuccess()) {
+ if (result.getCode() == ResultCode.SYNC_CONFLICT) {
+ Intent i = new Intent(this, ConflictsResolveActivity.class);
+ i.putExtra(ConflictsResolveActivity.EXTRA_FILE, syncedFile);
+ i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount());
+ startActivity(i);
+
+ }
+
+ } else {
+ if (operation.transferWasRequested()) {
+
+ } else {
+ Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result,
+ operation, getResources()), Toast.LENGTH_LONG);
+ msg.show();
+ }
+ }
+ }
protected void updateFileFromDB(){
OCFile file = getFile();
setFile(file);
}
}
+
/**
* Show loading dialog
operation, getResources()), Toast.LENGTH_LONG);
msg.show();
}
+ invalidateOptionsMenu();
}
}
}
return true;
}
+ case R.id.action_favorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), true);
+ return true;
+ }
+ case R.id.action_unfavorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), false);
+ return true;
+ }
default:
return false;
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.fdKeepInSync: {
- toggleKeepInSync();
+ CheckBox cb = (CheckBox) getView().findViewById(R.id.fdKeepInSync);
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(),cb.isChecked());
break;
}
case R.id.fdCancelBtn: {
Log_OC.e(TAG, "Incorrect view clicked!");
}
}
-
-
- private void toggleKeepInSync() {
- CheckBox cb = (CheckBox) getView().findViewById(R.id.fdKeepInSync);
- OCFile file = getFile();
- file.setKeepInSync(cb.isChecked());
- mContainerActivity.getStorageManager().saveFile(file);
-
- /// register the OCFile instance in the observer service to monitor local updates
- Intent observedFileIntent = FileObserverService.makeObservedFileIntent(
- getActivity(),
- file,
- mAccount,
- cb.isChecked());
- getActivity().startService(observedFileIntent);
-
- /// immediate content synchronization
- if (file.keepInSync()) {
- mContainerActivity.getFileOperationsHelper().syncFile(getFile());
- }
- }
+
/**
* Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced.
getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
return true;
}
+ case R.id.action_favorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(mTargetFile, true);
+ return true;
+ }
+ case R.id.action_unfavorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(mTargetFile, false);
+ return true;
+ }
default:
return super.onContextItemSelected(item);
}
public void sortBySize(boolean descending) {
mAdapter.setSortOrder(FileStorageUtils.SORT_SIZE, descending);
- }
-
-
+ }
+
}
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.RemoveFileOperation;
+import com.owncloud.android.operations.SynchronizeFileOperation;
import com.owncloud.android.operations.UnshareLinkOperation;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
} else if (operation instanceof RemoveFileOperation) {
finish();
+ } else if (operation instanceof SynchronizeFileOperation) {
+ onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result);
+
}
}
}
}
+ private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
+ RemoteOperationResult result) {
+ if (result.isSuccess()) {
+ invalidateOptionsMenu();
+ }
+
+ }
+
@Override
protected ServiceConnection newTransferenceServiceConnection() {
return new PreviewImageServiceConnection();
mContainerActivity.getFileOperationsHelper().syncFile(getFile());
return true;
}
-
+ case R.id.action_favorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), true);
+ return true;
+ }
+ case R.id.action_unfavorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), false);
+ return true;
+ }
default:
return false;
}
mContainerActivity.getFileOperationsHelper().syncFile(getFile());
return true;
}
-
+ case R.id.action_favorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), true);
+ return true;
+ }
+ case R.id.action_unfavorite_file:{
+ mContainerActivity.getFileOperationsHelper().toggleKeepInSync(getFile(), false);
+ return true;
+ }
default:
return false;
}