add createRichWorkspace

Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
alperozturk 2025-06-11 10:06:09 +02:00
parent 507e694405
commit 506f675955
No known key found for this signature in database
GPG Key ID: 4E577DC593B59BDF
3 changed files with 25 additions and 13 deletions

View File

@ -42,7 +42,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.nextcloud.android.lib.resources.files.ToggleFileLockRemoteOperation;
import com.nextcloud.android.lib.richWorkspace.RichWorkspaceDirectEditingRemoteOperation;
import com.nextcloud.client.account.User;
import com.nextcloud.client.device.DeviceInfo;
import com.nextcloud.client.di.Injectable;
@ -602,19 +601,17 @@ public class OCFileListFragment extends ExtendedListFragment implements
@Override
public void createRichWorkspace() {
new Thread(() -> {
RemoteOperationResult result = new RichWorkspaceDirectEditingRemoteOperation(mFile.getRemotePath())
.execute(accountManager.getUser(), requireContext());
if (!(getActivity() instanceof FileActivity fileActivity)) {
return;
}
if (result.isSuccess()) {
String url = (String) result.getSingleData();
mContainerActivity.getFileOperationsHelper().openRichWorkspaceWithTextEditor(mFile,
url,
requireContext());
} else {
DisplayUtils.showSnackMessage(getView(), R.string.failed_to_start_editor);
}
}).start();
fileActivity.getFilesRepository().createRichWorkspace(mFile.getRemotePath(), url -> {
mContainerActivity.getFileOperationsHelper().openRichWorkspaceWithTextEditor(mFile, url, requireContext());
return Unit.INSTANCE;
}, () -> {
DisplayUtils.showSnackMessage(getView(), R.string.failed_to_start_editor);
return Unit.INSTANCE;
});
}
@Override

View File

@ -21,4 +21,6 @@ interface FilesRepository {
*
*/
fun fetchRecommendedFiles(onCompleted: (ArrayList<Recommendation>) -> Unit)
fun createRichWorkspace(remotePath: String, onCompleted: (String) -> Unit, onError: () -> Unit)
}

View File

@ -11,6 +11,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.nextcloud.android.lib.resources.recommendations.GetRecommendationsRemoteOperation
import com.nextcloud.android.lib.resources.recommendations.Recommendation
import com.nextcloud.android.lib.richWorkspace.RichWorkspaceDirectEditingRemoteOperation
import com.nextcloud.repository.ClientRepository
import com.owncloud.android.lib.common.utils.Log_OC
import kotlinx.coroutines.Dispatchers
@ -45,4 +46,16 @@ class RemoteFilesRepository(
}
}
}
override fun createRichWorkspace(remotePath: String, onCompleted: (String) -> Unit, onError: () -> Unit) {
scope.launch(Dispatchers.IO) {
val client = clientRepository.getNextcloudClient() ?: return@launch
val url = RichWorkspaceDirectEditingRemoteOperation(remotePath)
.execute(client)
.takeIf { it.isSuccess }
?.singleData as? String
url?.let(onCompleted) ?: onError()
}
}
}