Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-05-31 21:54:38 +0300
committerStefan Niedermann <info@niedermann.it>2021-06-01 12:36:53 +0300
commit0c6683b46349560a8377273039743da1a3a0f397 (patch)
treea916f630aa268fbf865ac8cdcd9c6fbb48997806 /app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
parent69618b05a85b2302d4357124833b2eaaf6dd42b4 (diff)
Create card in PrepareCreateActivity before starting the EditActivity
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java62
1 files changed, 51 insertions, 11 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
index 53e25a0d9..ccb7c8a38 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/preparecreate/PrepareCreateActivity.java
@@ -1,13 +1,20 @@
package it.niedermann.nextcloud.deck.ui.preparecreate;
+import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
+import android.text.TextUtils;
+import android.widget.Toast;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
+import androidx.lifecycle.ViewModelProvider;
import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.model.Account;
+import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.ui.PickStackActivity;
import it.niedermann.nextcloud.deck.ui.card.EditActivity;
@@ -17,6 +24,8 @@ import static it.niedermann.nextcloud.deck.DeckApplication.saveCurrentStackId;
public class PrepareCreateActivity extends PickStackActivity {
+ private PrepareCreateViewModel viewModel;
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -24,29 +33,60 @@ public class PrepareCreateActivity extends PickStackActivity {
if (actionBar != null) {
actionBar.setTitle(R.string.add_card);
}
+
+ viewModel = new ViewModelProvider(this).get(PrepareCreateViewModel.class);
}
@Override
- protected void onSubmit(Account account, long boardId, long stackId) {
- final Intent intent = getIntent();
- if (intent == null) {
- startActivity(EditActivity.createNewCardIntent(this, account, boardId, stackId));
+ protected void onSubmit(Account account, long boardId, long stackId, @NonNull IResponseCallback<Void> callback) {
+ Toast.makeText(this, R.string.saving_new_card, Toast.LENGTH_SHORT).show();
+ final FullCard fullCard;
+ if (requireContent()) {
+ fullCard = viewModel.createFullCard(account.getServerDeckVersionAsObject(), getContent());
} else {
- startActivity(EditActivity.createNewCardIntent(this, account, boardId, stackId,
+ final Intent intent = getIntent();
+ if (intent == null) {
+ throw new IllegalStateException("Intent should not be null because title is required.");
+ }
+ fullCard = viewModel.createFullCard(
+ account.getServerDeckVersionAsObject(),
+ intent.getStringExtra(Intent.EXTRA_SUBJECT),
intent.getStringExtra(Intent.EXTRA_TITLE),
- intent.getStringExtra(Intent.EXTRA_TEXT)));
+ intent.getStringExtra(Intent.EXTRA_TEXT)
+ );
}
- saveCurrentAccount(this, account);
- saveCurrentBoardId(this, account.getId(), boardId);
- saveCurrentStackId(this, account.getId(), boardId, stackId);
- applyBrand(account.getColor());
+ viewModel.saveCard(account.getId(), boardId, stackId, fullCard, new IResponseCallback<FullCard>() {
+ @Override
+ public void onResponse(FullCard response) {
+ saveCurrentAccount(PrepareCreateActivity.this, account);
+ saveCurrentBoardId(PrepareCreateActivity.this, account.getId(), boardId);
+ saveCurrentStackId(PrepareCreateActivity.this, account.getId(), boardId, stackId);
- finish();
+ callback.onResponse(null);
+ startActivity(EditActivity.createEditCardIntent(PrepareCreateActivity.this, account, boardId, response.getLocalId()));
+ finish();
+ }
+
+ @Override
+ @SuppressLint("MissingSuperCall")
+ public void onError(Throwable throwable) {
+ callback.onError(throwable);
+ }
+ });
}
@Override
protected boolean showBoardsWithoutEditPermission() {
return false;
}
+
+ @Override
+ protected boolean requireContent() {
+ final Intent intent = getIntent();
+ return intent == null || (TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_SUBJECT)) &&
+ TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_TITLE)) &&
+ TextUtils.isEmpty(intent.getStringExtra(Intent.EXTRA_TEXT)));
+ }
+
} \ No newline at end of file