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-07-12 11:22:20 +0300
committerStefan Niedermann <info@niedermann.it>2021-07-12 11:22:20 +0300
commit46b19e21a1192c055cdc85ec9451f99de0815394 (patch)
treeb2318f0a0199f8a1b8e181eb02ff043e9951792f
parentbd3a4c3f5f85772b84ea4e0542a8560d557fdc95 (diff)
parentaf76dbc49298b61c38a12c40d8f66a3382387c14 (diff)
Merge branch 'master' into 613-create-new-card-via-share-dialog-for-files613-create-new-card-via-share-dialog-for-files
-rw-r--r--.github/dependabot.yml11
-rw-r--r--.github/workflows/android.yml2
-rw-r--r--app/build.gradle20
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java56
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java33
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java14
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/util/LiveDataHelper.java29
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java38
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java56
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java30
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java20
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java19
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java5
-rw-r--r--app/src/main/res/values-ar/strings.xml9
-rw-r--r--app/src/main/res/values-ca/strings.xml6
-rw-r--r--app/src/main/res/values-cs-rCZ/strings.xml21
-rw-r--r--app/src/main/res/values-de/strings.xml9
-rw-r--r--app/src/main/res/values-el/strings.xml6
-rw-r--r--app/src/main/res/values-es/strings.xml15
-rw-r--r--app/src/main/res/values-eu/strings.xml7
-rw-r--r--app/src/main/res/values-fa/strings.xml6
-rw-r--r--app/src/main/res/values-fi-rFI/strings.xml6
-rw-r--r--app/src/main/res/values-fr/strings.xml24
-rw-r--r--app/src/main/res/values-gl/strings.xml6
-rw-r--r--app/src/main/res/values-hr/strings.xml6
-rw-r--r--app/src/main/res/values-hu-rHU/strings.xml9
-rw-r--r--app/src/main/res/values-it/strings.xml7
-rw-r--r--app/src/main/res/values-ja-rJP/strings.xml47
-rw-r--r--app/src/main/res/values-ko/strings.xml6
-rw-r--r--app/src/main/res/values-nb-rNO/strings.xml6
-rw-r--r--app/src/main/res/values-nl/strings.xml5
-rw-r--r--app/src/main/res/values-pl/strings.xml9
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml11
-rw-r--r--app/src/main/res/values-ro/strings.xml15
-rw-r--r--app/src/main/res/values-ru/strings.xml9
-rw-r--r--app/src/main/res/values-sc/strings.xml28
-rw-r--r--app/src/main/res/values-sk-rSK/strings.xml71
-rw-r--r--app/src/main/res/values-sl/strings.xml4
-rw-r--r--app/src/main/res/values-sr/strings.xml6
-rw-r--r--app/src/main/res/values-sv/strings.xml10
-rw-r--r--app/src/main/res/values-tr/strings.xml33
-rw-r--r--app/src/main/res/values-vi/strings.xml4
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml13
-rw-r--r--app/src/main/res/values-zh-rHK/strings.xml35
-rw-r--r--app/src/main/res/values/strings.xml4
-rw-r--r--app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java15
-rw-r--r--build.gradle6
-rw-r--r--fastlane/metadata/android/en-US/changelogs/1019000.txt5
51 files changed, 477 insertions, 350 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 1ccd554c6..b6da505ad 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -9,9 +9,8 @@ updates:
- dependency-name: com.squareup.retrofit2:retrofit
versions:
- ">= 2.9.a, < 2.10"
- - dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-android
- versions:
- - 1.4.3-native-mt
- - dependency-name: androidx.camera:camera-view
- versions:
- - 1.0.0-alpha23
+- package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: daily
+ open-pull-requests-limit: 10
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 5bce19ab0..fa6999474 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -54,7 +54,7 @@ jobs:
- name: Build debug APK
run: bash ./gradlew assembleDev
- name: Upload APK
- uses: actions/upload-artifact@v1
+ uses: actions/upload-artifact@v2.2.4
with:
name: app-dev-debug
path: app/build/outputs/apk/dev/debug/app-dev-debug.apk \ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d2477e60a..4eafb9d48 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "it.niedermann.nextcloud.deck"
minSdkVersion 21
targetSdkVersion 30
- versionCode 1018003
- versionName "1.18.3"
+ versionCode 1019000
+ versionName "1.19.0"
vectorDrawables.useSupportLibrary true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
@@ -69,9 +69,9 @@ dependencies {
// Android X
implementation 'androidx.appcompat:appcompat:1.3.0'
- implementation 'androidx.camera:camera-camera2:1.1.0-alpha05'
- implementation 'androidx.camera:camera-lifecycle:1.1.0-alpha05'
- implementation 'androidx.camera:camera-view:1.0.0-alpha25'
+ implementation 'androidx.camera:camera-camera2:1.1.0-alpha06'
+ implementation 'androidx.camera:camera-lifecycle:1.1.0-alpha06'
+ implementation 'androidx.camera:camera-view:1.0.0-alpha26'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.preference:preference:1.1.1'
def roomVersion = "2.3.0"
@@ -90,12 +90,12 @@ dependencies {
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
// Markdown
- implementation 'com.github.stefan-niedermann:nextcloud-notes:3.4.8'
+ implementation 'com.github.stefan-niedermann:nextcloud-notes:3.4.11'
// Single-Sign-On
implementation 'com.github.nextcloud:Android-SingleSignOn:0.5.6'
- implementation 'com.github.stefan-niedermann.nextcloud-commons:sso-glide:1.3.4'
- implementation 'com.github.stefan-niedermann.nextcloud-commons:exception:1.3.4'
+ implementation 'com.github.stefan-niedermann.nextcloud-commons:sso-glide:1.4.0'
+ implementation 'com.github.stefan-niedermann.nextcloud-commons:exception:1.4.0'
implementation 'com.github.stefan-niedermann.android-commons:util:0.2.0'
implementation 'com.github.stefan-niedermann.android-commons:shared-preferences:0.2.0'
@@ -121,7 +121,7 @@ dependencies {
// Tests
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.robolectric:robolectric:4.5.1'
- testImplementation 'org.mockito:mockito-core:3.11.1'
- testImplementation 'androidx.test:core:1.3.0'
+ testImplementation 'org.mockito:mockito-core:3.11.2'
+ testImplementation 'androidx.test:core:1.4.0'
testImplementation 'androidx.arch.core:core-testing:2.1.0'
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
index 283519575..f9723fa27 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java
@@ -84,7 +84,6 @@ import it.niedermann.nextcloud.deck.persistence.sync.helpers.providers.partial.B
import it.niedermann.nextcloud.deck.persistence.sync.helpers.providers.partial.BoardWithStacksAndLabelsUpSyncDataProvider;
import it.niedermann.nextcloud.deck.ui.upcomingcards.UpcomingCardsAdapterItem;
-import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.wrapInLiveData;
import static java.net.HttpURLConnection.HTTP_NOT_MODIFIED;
import static java.net.HttpURLConnection.HTTP_UNAVAILABLE;
@@ -318,8 +317,18 @@ public class SyncManager {
}
@AnyThread
- public WrappedLiveData<Account> createAccount(@NonNull Account account) {
- return dataBaseAdapter.createAccount(account);
+ public void createAccount(@NonNull Account account, @NonNull IResponseCallback<Account> callback) {
+ executor.submit(() -> {
+ try {
+ final Account createdAccount = dataBaseAdapter.createAccountDirectly(account);
+ if (createdAccount == null) {
+ throw new RuntimeException("Created account is null. Source: " + account);
+ }
+ callback.onResponse(createdAccount);
+ } catch (Throwable t) {
+ callback.onError(t);
+ }
+ });
}
public boolean hasInternetConnection() {
@@ -511,12 +520,12 @@ public class SyncManager {
@AnyThread
public void createBoard(long accountId, @NonNull Board board, @NonNull IResponseCallback<FullBoard> callback) {
executor.submit(() -> {
- Account account = dataBaseAdapter.getAccountByIdDirectly(accountId);
- User owner = dataBaseAdapter.getUserByUidDirectly(accountId, account.getUserName());
+ final Account account = dataBaseAdapter.getAccountByIdDirectly(accountId);
+ final User owner = dataBaseAdapter.getUserByUidDirectly(accountId, account.getUserName());
if (owner == null) {
- callback.onError(new Exception("Owner is null. This can be the case if the Deck app has never before been opened in the webinterface"));
+ callback.onError(new IllegalStateException("Owner is null. This can be the case if the Deck app has never before been opened in the webinterface"));
} else {
- FullBoard fullBoard = new FullBoard();
+ final FullBoard fullBoard = new FullBoard();
board.setOwnerId(owner.getLocalId());
fullBoard.setOwner(owner);
fullBoard.setBoard(board);
@@ -721,10 +730,10 @@ public class SyncManager {
@AnyThread
public void deleteComment(long accountId, long localCardId, long localCommentId, @NonNull IResponseCallback<Void> callback) {
executor.submit(() -> {
- Account account = dataBaseAdapter.getAccountByIdDirectly(accountId);
- Card card = dataBaseAdapter.getCardByLocalIdDirectly(accountId, localCardId);
- DeckComment entity = dataBaseAdapter.getCommentByLocalIdDirectly(accountId, localCommentId);
- OcsComment commentEntity = OcsComment.of(entity);
+ final Account account = dataBaseAdapter.getAccountByIdDirectly(accountId);
+ final Card card = dataBaseAdapter.getCardByLocalIdDirectly(accountId, localCardId);
+ final DeckComment entity = dataBaseAdapter.getCommentByLocalIdDirectly(accountId, localCommentId);
+ final OcsComment commentEntity = OcsComment.of(entity);
new DataPropagationHelper(serverAdapter, dataBaseAdapter, executor).deleteEntity(new DeckCommentsDataProvider(null, card),
commentEntity, ResponseCallback.from(account, callback));
});
@@ -1216,20 +1225,22 @@ public class SyncManager {
*/
@SuppressWarnings("JavadocReference")
@AnyThread
- public WrappedLiveData<Void> moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId) {
- return wrapInLiveData(() -> {
+ public void moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId, @NonNull IResponseCallback<Void> callback) {
+ executor.submit(() -> {
final FullCard originalCard = dataBaseAdapter.getFullCardByLocalIdDirectly(originAccountId, originCardLocalId);
- int newIndex = dataBaseAdapter.getHighestCardOrderInStack(targetStackLocalId) + 1;
+ final int newIndex = dataBaseAdapter.getHighestCardOrderInStack(targetStackLocalId) + 1;
final FullBoard originalBoard = dataBaseAdapter.getFullBoardByLocalCardIdDirectly(originCardLocalId);
// ### maybe shortcut possible? (just moved to another stack)
if (targetBoardLocalId == originalBoard.getLocalId()) {
reorder(originAccountId, originalCard, targetStackLocalId, newIndex);
- return null;
+ callback.onResponse(null);
+ return;
}
// ### get rid of original card where it is now.
final Card originalInnerCard = originalCard.getCard();
deleteCard(new Card(originalInnerCard), IResponseCallback.empty());
// ### clone card itself
+ // TODO Why not use copy constructor? Attention, something might missing, e. g. accountId
originalInnerCard.setAccountId(targetAccountId);
originalInnerCard.setId(null);
originalInnerCard.setLocalId(null);
@@ -1247,6 +1258,7 @@ public class SyncManager {
final FullStack targetFullStack = dataBaseAdapter.getFullStackByLocalIdDirectly(targetStackLocalId);
final User userOfTargetAccount = dataBaseAdapter.getUserByUidDirectly(targetAccountId, targetAccount.getUserName());
final CountDownLatch latch = new CountDownLatch(1);
+
ServerAdapter serverToUse = serverAdapter;
if (originAccountId != targetAccountId) {
serverToUse = new ServerAdapter(appContext, targetAccount.getName());
@@ -1260,9 +1272,9 @@ public class SyncManager {
}
@Override
+ @SuppressLint("MissingSuperCall")
public void onError(Throwable throwable) {
- super.onError(throwable);
- throw new RuntimeException("unable to create card in moveCard target", throwable);
+ callback.onError(new RuntimeException("unable to create card in moveCard target", throwable));
}
}, (FullCard entity, FullCard response) -> {
response.getCard().setUserId(userOfTargetAccount.getLocalId());
@@ -1274,11 +1286,10 @@ public class SyncManager {
try {
latch.await();
} catch (InterruptedException e) {
- DeckLog.logError(e);
- throw new RuntimeException("error fulfilling countDownLatch", e);
+ callback.onError(new RuntimeException("error fulfilling countDownLatch", e));
}
- long newCardId = originalInnerCard.getLocalId();
+ final long newCardId = originalInnerCard.getLocalId();
// ### clone labels, assign them
// prepare
@@ -1319,7 +1330,7 @@ public class SyncManager {
}
// ### Clone assigned users
- Account originalAccount = dataBaseAdapter.getAccountByIdDirectly(originAccountId);
+ final Account originalAccount = dataBaseAdapter.getAccountByIdDirectly(originAccountId);
// same instance? otherwise doesn't make sense
if (originalAccount.getUrl().equalsIgnoreCase(targetAccount.getUrl())) {
for (User assignedUser : originalCard.getAssignedUsers()) {
@@ -1339,8 +1350,7 @@ public class SyncManager {
}
}
}
- // since this is LiveData<Void>
- return null;
+ callback.onResponse(null);
});
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
index eb720e345..703d50730 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java
@@ -75,7 +75,6 @@ import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidgetUser;
import it.niedermann.nextcloud.deck.model.widget.filter.dto.FilterWidgetCard;
import it.niedermann.nextcloud.deck.model.widget.singlecard.SingleCardWidgetModel;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.upcomingcards.UpcomingCardsAdapterItem;
import it.niedermann.nextcloud.deck.ui.widget.singlecard.SingleCardWidget;
@@ -514,20 +513,19 @@ public class DataBaseAdapter {
db.getLabelDao().delete(label);
}
- public WrappedLiveData<Account> createAccount(Account account) {
- return LiveDataHelper.wrapInLiveData(() -> {
- final long id = db.getAccountDao().insert(account);
+ @WorkerThread
+ public Account createAccountDirectly(@NonNull Account account) {
+ final long id = db.getAccountDao().insert(account);
- widgetNotifierExecutor.submit(() -> {
- DeckLog.verbose("Adding new created", Account.class.getSimpleName(), " with ", id, " to all instances of ", EWidgetType.UPCOMING_WIDGET.name());
- for (FilterWidget widget : getFilterWidgetsByType(EWidgetType.UPCOMING_WIDGET)) {
- widget.getAccounts().add(new FilterWidgetAccount(id, false));
- updateFilterWidgetDirectly(widget);
- }
- notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.ACCOUNT, id);
- });
- return readAccountDirectly(id);
+ widgetNotifierExecutor.submit(() -> {
+ DeckLog.verbose("Adding new created", Account.class.getSimpleName(), " with ", id, " to all instances of ", EWidgetType.UPCOMING_WIDGET.name());
+ for (FilterWidget widget : getFilterWidgetsByType(EWidgetType.UPCOMING_WIDGET)) {
+ widget.getAccounts().add(new FilterWidgetAccount(id, false));
+ updateFilterWidgetDirectly(widget);
+ }
+ notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.ACCOUNT, id);
});
+ return readAccountDirectly(id);
}
public void deleteAccount(long id) {
@@ -588,15 +586,6 @@ public class DataBaseAdapter {
return distinctUntilChanged(db.getBoardDao().getBoardsWithEditPermissionsForAccount(accountId));
}
- public WrappedLiveData<Board> createBoard(long accountId, @NonNull Board board) {
- return LiveDataHelper.wrapInLiveData(() -> {
- board.setAccountId(accountId);
- final long id = db.getBoardDao().insert(board);
- notifyFilterWidgetsAboutChangedEntity(FilterWidget.EChangedEntityType.BOARD, id);
- return db.getBoardDao().getBoardByLocalIdDirectly(id);
- });
- }
-
@WorkerThread
public long createBoardDirectly(long accountId, @NonNull Board board) {
board.setAccountId(accountId);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
index 14ae2eaa5..c0500eb12 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
@@ -20,9 +20,17 @@ public interface CardDao extends GenericDao<Card> {
"join stack s on s.localId = c.stackId " +
"join board b on b.localId = s.boardId " +
"WHERE b.archived = 0 and c.archived = 0 and b.status <> 3 and s.status <> 3 and c.status <> 3 " +
- "and (c.dueDate is not null or exists(select 1 from AccessControl ac where ac.boardId = b.localId and ac.status <> 3))" +
- "and (not exists(select 1 from AccessControl ac where ac.boardId = b.localId and ac.status <> 3) " +
- "or exists(select 1 from JoinCardWithUser j where j.cardId = c.localId and j.userId in (select u.localId from user u where u.uid in (select a.userName from Account a))))" +
+ // FUll Logic: (hasDueDate AND isIn_PRIVATE_Board) OR (isInSharedBoard AND (assignedToMe OR (hasDueDate AND noAssignees)))
+ "and (" +
+ "(c.dueDate is not null AND NOT exists(select 1 from AccessControl ac where ac.boardId = b.localId and ac.status <> 3))" + //(hasDueDate AND isInPrivateBoard)
+ "OR (" +
+ "exists(select 1 from AccessControl ac where ac.boardId = b.localId and ac.status <> 3) " + //OR (isInSharedBoard AND
+ "AND (" +
+ "(c.dueDate is not null AND not exists(select 1 from JoinCardWithUser j where j.cardId = c.localId)) " + // hasDueDate AND noAssignees OR
+ "OR exists(select 1 from JoinCardWithUser j where j.cardId = c.localId and j.userId in (select u.localId from user u where u.uid in (select a.userName from Account a)))" + //(assignedToMe
+ ")" +
+ ")" +
+ ")" +
"ORDER BY c.dueDate asc";
@Query("SELECT * FROM card WHERE stackId = :localStackId order by `order`, createdAt asc")
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/util/LiveDataHelper.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/util/LiveDataHelper.java
index 059ed5e6b..397d1339f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/util/LiveDataHelper.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/util/LiveDataHelper.java
@@ -65,20 +65,6 @@ public class LiveDataHelper {
liveData.observe(owner, tempObserver);
}
- public static <T> WrappedLiveData<T> wrapInLiveData(final LiveDataWrapper<T> liveDataWrapper) {
- final WrappedLiveData<T> liveData = new WrappedLiveData<>();
-
- executor.submit(() -> {
- try {
- liveDataWrapper.postResult(liveData);
- } catch (Throwable t) {
- liveData.postError(t);
- }
- });
-
- return liveData;
- }
-
public interface DataChangeProcessor<T> {
void onDataChanged(T data);
}
@@ -86,19 +72,4 @@ public class LiveDataHelper {
public interface DataTransformator<I, O> {
O transform(I data);
}
-
- public interface LiveDataWrapper<T> {
- T getData();
-
- default void postResult(WrappedLiveData<T> liveData) {
- liveData.setError(null);
- T data = null;
- try {
- data = getData();
- } catch (RuntimeException e) {
- liveData.setError(e);
- }
- liveData.postValue(data);
- }
- }
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
index 39fa8dead..85b1d6b1e 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/ImportAccountActivity.java
@@ -24,6 +24,7 @@ import com.nextcloud.android.sso.ui.UiExceptionManager;
import it.niedermann.nextcloud.deck.DeckLog;
import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.api.ResponseCallback;
import it.niedermann.nextcloud.deck.databinding.ActivityImportAccountBinding;
import it.niedermann.nextcloud.deck.exceptions.OfflineException;
@@ -31,7 +32,6 @@ import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.ocs.Capabilities;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
@@ -114,20 +114,12 @@ public class ImportAccountActivity extends AppCompatActivity {
SingleAccountHelper.setCurrentAccount(getApplicationContext(), account.name);
SyncManager syncManager = new SyncManager(ImportAccountActivity.this);
- final WrappedLiveData<Account> accountLiveData = syncManager.createAccount(new Account(account.name, account.userId, account.url));
- accountLiveData.observe(ImportAccountActivity.this, (Account createdAccount) -> {
- if (accountLiveData.hasError()) {
- final Throwable error = accountLiveData.getError();
- if (error instanceof SQLiteConstraintException) {
- DeckLog.error("Account has already been added, this should not be the case");
- }
- assert error != null;
- setStatusText(error.getMessage());
- runOnUiThread(() -> ExceptionDialogFragment.newInstance(error, createdAccount).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()));
- restoreWifiPref();
- } else {
+ final Account accountToCreate = new Account(account.name, account.userId, account.url);
+ syncManager.createAccount(accountToCreate, new IResponseCallback<Account>() {
+ @Override
+ public void onResponse(Account createdAccount) {
// Remember last account - THIS HAS TO BE DONE SYNCHRONOUSLY
- SharedPreferences.Editor editor = sharedPreferences.edit();
+ final SharedPreferences.Editor editor = sharedPreferences.edit();
DeckLog.log("--- Write: shared_preference_last_account | ", createdAccount.getId());
editor.putLong(sharedPreferenceLastAccount, createdAccount.getId());
editor.commit();
@@ -157,11 +149,8 @@ public class ImportAccountActivity extends AppCompatActivity {
} else {
setStatusText(getString(R.string.deck_outdated_please_update, response.getDeckVersion().getOriginalVersion()));
runOnUiThread(() -> {
- binding.updateDeckButton.setOnClickListener((v) -> {
- Intent openURL = new Intent(Intent.ACTION_VIEW);
- openURL.setData(Uri.parse(createdAccount.getUrl() + urlFragmentUpdateDeck));
- startActivity(openURL);
- });
+ binding.updateDeckButton.setOnClickListener((v) -> startActivity(new Intent(Intent.ACTION_VIEW)
+ .setData(Uri.parse(createdAccount.getUrl() + urlFragmentUpdateDeck))));
binding.updateDeckButton.setVisibility(View.VISIBLE);
});
rollbackAccountCreation(syncManager, createdAccount.getId());
@@ -185,6 +174,17 @@ public class ImportAccountActivity extends AppCompatActivity {
}
});
}
+
+ @Override
+ public void onError(Throwable error) {
+ IResponseCallback.super.onError(error);
+ if (error instanceof SQLiteConstraintException) {
+ DeckLog.error("Account has already been added, this should not be the case");
+ }
+ setStatusText(error.getMessage());
+ runOnUiThread(() -> ExceptionDialogFragment.newInstance(error, accountToCreate).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()));
+ restoreWifiPref();
+ }
});
}
});
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index f70bfbaaf..b65069d69 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -53,6 +53,7 @@ import com.nextcloud.android.sso.helper.SingleAccountHelper;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.List;
+import java.util.NoSuchElementException;
import java.util.Objects;
import it.niedermann.android.crosstabdnd.CrossTabDragAndDrop;
@@ -76,7 +77,6 @@ import it.niedermann.nextcloud.deck.model.internal.FilterInformation;
import it.niedermann.nextcloud.deck.model.ocs.Capabilities;
import it.niedermann.nextcloud.deck.model.ocs.Version;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.about.AboutActivity;
import it.niedermann.nextcloud.deck.ui.accountswitcher.AccountSwitcherDialog;
import it.niedermann.nextcloud.deck.ui.archivedboards.ArchivedBoardsActvitiy;
@@ -464,7 +464,14 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
mainViewModel.createStack(mainViewModel.getCurrentAccount().getId(), stackName, mainViewModel.getCurrentBoardLocalId(), new IResponseCallback<FullStack>() {
@Override
public void onResponse(FullStack response) {
- runOnUiThread(() -> binding.viewPager.setCurrentItem(stackAdapter.getItemCount()));
+ DeckApplication.saveCurrentStackId(MainActivity.this, mainViewModel.getCurrentAccount().getId(), mainViewModel.getCurrentBoardLocalId(), response.getLocalId());
+ binding.viewPager.post(() -> {
+ try {
+ binding.viewPager.setCurrentItem(stackAdapter.getPosition(response.getLocalId()));
+ } catch (NoSuchElementException e) {
+ DeckLog.logError(e);
+ }
+ });
}
@Override
@@ -771,12 +778,12 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
stackMoved = true;
return true;
} else if (itemId == R.id.delete_list) {
- final long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
- mainViewModel.countCardsInStack(mainViewModel.getCurrentAccount().getId(), stackId, (numberOfCards) -> runOnUiThread(() -> {
+ final long stackLocalId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
+ mainViewModel.countCardsInStack(mainViewModel.getCurrentAccount().getId(), stackLocalId, (numberOfCards) -> runOnUiThread(() -> {
if (numberOfCards != null && numberOfCards > 0) {
- DeleteStackDialogFragment.newInstance(stackId, numberOfCards).show(getSupportFragmentManager(), DeleteStackDialogFragment.class.getCanonicalName());
+ DeleteStackDialogFragment.newInstance(stackLocalId, numberOfCards).show(getSupportFragmentManager(), DeleteStackDialogFragment.class.getCanonicalName());
} else {
- onStackDeleted(stackId);
+ onStackDeleted(stackLocalId);
}
}));
return true;
@@ -826,14 +833,11 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
default:
try {
AccountImporter.onActivityResult(requestCode, resultCode, data, this, (account) -> {
- final WrappedLiveData<Account> accountLiveData = mainViewModel.createAccount(new Account(account.name, account.userId, account.url));
- accountLiveData.observe(this, (createdAccount) -> {
- if (!accountLiveData.hasError()) {
- if (createdAccount == null) {
- throw new IllegalStateException("Created account must not be null");
- }
-
- final SyncManager importSyncManager = new SyncManager(this, account.name);
+ final Account accountToCreate = new Account(account.name, account.userId, account.url);
+ mainViewModel.createAccount(accountToCreate, new IResponseCallback<Account>() {
+ @Override
+ public void onResponse(Account createdAccount) {
+ final SyncManager importSyncManager = new SyncManager(MainActivity.this, account.name);
importSyncManager.refreshCapabilities(new ResponseCallback<Capabilities>(createdAccount) {
@SuppressLint("StringFormatInvalid")
@Override
@@ -907,13 +911,16 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
}
}
});
- } else {
- final Throwable error = accountLiveData.getError();
+ }
+
+ @Override
+ public void onError(Throwable error) {
+ IResponseCallback.super.onError(error);
if (error instanceof SQLiteConstraintException) {
DeckLog.warn("Account already added");
BrandedSnackbar.make(binding.coordinatorLayout, R.string.account_already_added, Snackbar.LENGTH_LONG).show();
} else {
- ExceptionDialogFragment.newInstance(error, createdAccount).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
+ ExceptionDialogFragment.newInstance(error, accountToCreate).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
}
}
});
@@ -999,12 +1006,19 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen
}
@Override
- public void onStackDeleted(Long stackLocalId) {
- final long stackId = stackAdapter.getItem(binding.viewPager.getCurrentItem()).getLocalId();
- mainViewModel.deleteStack(mainViewModel.getCurrentAccount().getId(), stackId, mainViewModel.getCurrentBoardLocalId(), new IResponseCallback<Void>() {
+ public void onStackDeleted(long stackLocalId) {
+ int nextStackPosition;
+ try {
+ nextStackPosition = stackAdapter.getNeighbourPosition(binding.viewPager.getCurrentItem());
+ } catch (NoSuchElementException | IndexOutOfBoundsException e) {
+ nextStackPosition = 0;
+ DeckLog.logError(e);
+ }
+ binding.viewPager.setCurrentItem(nextStackPosition);
+ mainViewModel.deleteStack(mainViewModel.getCurrentAccount().getId(), stackLocalId, mainViewModel.getCurrentBoardLocalId(), new IResponseCallback<Void>() {
@Override
public void onResponse(Void response) {
- DeckLog.info("Successfully deleted stack with local id", stackLocalId, "and remote id", stackId);
+ DeckLog.info("Successfully deleted stack with local id", stackLocalId, "and remote id", stackLocalId);
}
@Override
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java
index 6098afc03..ffa220d94 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainViewModel.java
@@ -32,7 +32,6 @@ import it.niedermann.nextcloud.deck.model.internal.FilterInformation;
import it.niedermann.nextcloud.deck.model.ocs.Capabilities;
import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
@SuppressWarnings("WeakerAccess")
public class MainViewModel extends AndroidViewModel {
@@ -130,8 +129,8 @@ public class MainViewModel extends AndroidViewModel {
return syncManager.hasAccounts();
}
- public WrappedLiveData<Account> createAccount(@NonNull Account accout) {
- return syncManager.createAccount(accout);
+ public void createAccount(@NonNull Account account, @NonNull IResponseCallback<Account> callback) {
+ syncManager.createAccount(account, callback);
}
public void deleteAccount(long id) {
@@ -266,8 +265,8 @@ public class MainViewModel extends AndroidViewModel {
return syncManager.getFullCardsForStack(accountId, localStackId, filter);
}
- public WrappedLiveData<Void> moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId) {
- return syncManager.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId);
+ public void moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId, @NonNull IResponseCallback<Void> callback) {
+ syncManager.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId, callback);
}
public LiveData<List<FullCard>> getArchivedFullCardsForBoard(long accountId, long localBoardId) {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java
index 0147dd0bf..84a3b1d0f 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/branding/NewCardDialog.java
@@ -72,8 +72,8 @@ public class NewCardDialog extends DialogFragment implements DialogInterface.OnC
final AlertDialog dialog = new AlertDialog.Builder(requireActivity())
.setTitle(R.string.add_card)
.setView(binding.getRoot())
- .setPositiveButton(R.string.save_and_edit, null)
- .setNegativeButton(R.string.save_and_close, null)
+ .setPositiveButton(R.string.edit, null)
+ .setNegativeButton(R.string.simple_save, null)
.create();
dialog.setOnShowListener(d -> {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java
index dfd1b4497..f0b5d68f7 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/DeleteStackListener.java
@@ -1,5 +1,5 @@
package it.niedermann.nextcloud.deck.ui.stack;
public interface DeleteStackListener {
- void onStackDeleted(Long stackLocalId);
+ void onStackDeleted(long stackLocalId);
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java
index 1e0fd4e72..9bd260206 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java
@@ -7,6 +7,7 @@ import androidx.viewpager2.adapter.FragmentStateAdapter;
import java.util.ArrayList;
import java.util.List;
+import java.util.NoSuchElementException;
import it.niedermann.nextcloud.deck.model.Stack;
@@ -27,6 +28,35 @@ public class StackAdapter extends FragmentStateAdapter {
return stackList.get(position);
}
+ /**
+ * @return the position of the direct neighbour of the given {@param position} if available. Prefers neighbours to the start of the wanted, but might also return a neighbour to the end.
+ * @throws NoSuchElementException in case this is the only {@link Stack}.
+ */
+ public int getNeighbourPosition(int position) throws NoSuchElementException, IndexOutOfBoundsException {
+ if (position >= stackList.size()) {
+ throw new IndexOutOfBoundsException("Position " + position + " is not in the current stack list.");
+ }
+ if (stackList.size() < 2) {
+ throw new NoSuchElementException("There is no neighbour.");
+ }
+ return position > 0
+ ? position - 1
+ : position + 1;
+ }
+
+ /**
+ * @return the position of the {@link Stack} where {@link Stack#getLocalId()} equals {@param stackLocalId}.
+ * @throws NoSuchElementException in case the searched {@param stackLocalId} is not in the list.
+ */
+ public int getPosition(long stackLocalId) throws NoSuchElementException {
+ for (int i = 0; i < stackList.size(); i++) {
+ if (stackList.get(i).getLocalId() == stackLocalId) {
+ return i;
+ }
+ }
+ throw new NoSuchElementException("Stack with localId " + stackLocalId + " is not in the current list.");
+ }
+
@Override
public long getItemId(int position) {
return stackList.get(position).getLocalId();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
index 3dd06cdfc..7d5a6c4d5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java
@@ -20,12 +20,12 @@ import java.util.List;
import it.niedermann.android.crosstabdnd.DragAndDropTab;
import it.niedermann.nextcloud.deck.DeckApplication;
import it.niedermann.nextcloud.deck.DeckLog;
+import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.databinding.FragmentStackBinding;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.MainViewModel;
import it.niedermann.nextcloud.deck.ui.card.CardAdapter;
import it.niedermann.nextcloud.deck.ui.card.SelectCardListener;
@@ -33,8 +33,6 @@ import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.filter.FilterViewModel;
import it.niedermann.nextcloud.deck.ui.movecard.MoveCardListener;
-import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
-
public class StackFragment extends Fragment implements DragAndDropTab<CardAdapter>, MoveCardListener {
private static final String KEY_STACK_ID = "stackId";
@@ -161,13 +159,19 @@ public class StackFragment extends Fragment implements DragAndDropTab<CardAdapte
@Override
public void move(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId) {
- final WrappedLiveData<Void> liveData = mainViewModel.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId);
- observeOnce(liveData, requireActivity(), (next) -> {
- if (liveData.hasError() && !SyncManager.ignoreExceptionOnVoidError(liveData.getError())) {
- ExceptionDialogFragment.newInstance(liveData.getError(), null).show(getChildFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
- } else {
+ mainViewModel.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId, new IResponseCallback<Void>() {
+ @Override
+ public void onResponse(Void response) {
DeckLog.log("Moved", Card.class.getSimpleName(), originCardLocalId, "to", Stack.class.getSimpleName(), targetStackLocalId);
}
+
+ @Override
+ public void onError(Throwable throwable) {
+ IResponseCallback.super.onError(throwable);
+ if (!SyncManager.ignoreExceptionOnVoidError(throwable)) {
+ ExceptionDialogFragment.newInstance(throwable, null).show(getChildFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
+ }
+ }
});
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java
index 748959fab..41e2e9f24 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActivity.java
@@ -17,13 +17,10 @@ import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionDialogFragment;
import it.niedermann.nextcloud.deck.ui.exception.ExceptionHandler;
import it.niedermann.nextcloud.deck.ui.movecard.MoveCardListener;
-import static it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.LiveDataHelper.observeOnce;
-
public class UpcomingCardsActivity extends AppCompatActivity implements MoveCardListener {
private UpcomingCardsViewModel viewModel;
@@ -94,13 +91,19 @@ public class UpcomingCardsActivity extends AppCompatActivity implements MoveCard
@Override
public void move(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId) {
- final WrappedLiveData<Void> liveData = viewModel.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId);
- observeOnce(liveData, this, (next) -> {
- if (liveData.hasError() && !SyncManager.ignoreExceptionOnVoidError(liveData.getError())) {
- ExceptionDialogFragment.newInstance(liveData.getError(), null).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
- } else {
+ viewModel.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId, new IResponseCallback<Void>() {
+ @Override
+ public void onResponse(Void response) {
DeckLog.log("Moved", Card.class.getSimpleName(), originCardLocalId, "to", Stack.class.getSimpleName(), targetStackLocalId);
}
+
+ @Override
+ public void onError(Throwable throwable) {
+ IResponseCallback.super.onError(throwable);
+ if (!SyncManager.ignoreExceptionOnVoidError(throwable)) {
+ ExceptionDialogFragment.newInstance(throwable, null).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName());
+ }
+ }
});
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java
index 8914a87ed..550dc1682 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java
@@ -15,7 +15,6 @@ import it.niedermann.nextcloud.deck.model.Account;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.persistence.sync.SyncManager;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.util.WrappedLiveData;
@SuppressWarnings("WeakerAccess")
public class UpcomingCardsViewModel extends AndroidViewModel {
@@ -49,7 +48,7 @@ public class UpcomingCardsViewModel extends AndroidViewModel {
syncManager.deleteCard(card, callback);
}
- public WrappedLiveData<Void> moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId) {
- return syncManager.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId);
+ public void moveCard(long originAccountId, long originCardLocalId, long targetAccountId, long targetBoardLocalId, long targetStackLocalId, @NonNull IResponseCallback<Void> callback) {
+ syncManager.moveCard(originAccountId, originCardLocalId, targetAccountId, targetBoardLocalId, targetStackLocalId, callback);
}
}
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 84c802f3b..0d01d8b6e 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">فتح التنقل </string>
<string name="navigation_drawer_close">إقفال التنقل </string>
-
<string name="simple_boards">الالواح</string>
<string name="simple_add">إضافة</string>
<string name="simple_save">حفظ</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">نُسخت </string>
<string name="simple_archive">الأرشيف</string>
<string name="simple_unassigned">غير معيين </string>
-
<string name="edit_board">تعديل اللوح</string>
<string name="archive_board">أرشفة اللوح </string>
<string name="delete_board">مسح اللوح</string>
@@ -153,12 +151,8 @@
<string name="no_content">لا يوجد محتوى حتى الآن</string>
<string name="last_background_sync">آخر مزامنة في الخلفية:</string>
<string name="simple_off">إيقاف</string>
- <string name="minutes_15">15 دقيقة</string>
- <string name="hour_1">1 ساعة</string>
- <string name="hours_6">6 ساعات</string>
<string name="action_card_move">حرك البطاقة</string>
<string name="action_card_move_title">نقل %1$s</string>
- <string name="title_is_mandatory">العنوان إلزامي </string>
<string name="provide_at_least_a_title_or_description">أدخل عنوانًا أو وصفًا على الأقل</string>
<string name="welcome_text">مرحبًا بك في %1$s</string>
<string name="maintenance_mode_explanation">سيرفر %1$s حاليًا في وضع الصيانة. فضلًا تواصل مع المسؤول أو أعد المحاولة لاحقًا. </string>
@@ -300,7 +294,6 @@
<string name="single_card">بطاقة مفردة</string>
<string name="project_type_room">غرفة الدردشة</string>
<string name="simple_move">نقل</string>
- <string name="cannot_upload_files_without_permission">لا يمكن رفع الملفات من دون إذن </string>
<string name="clone_cards">استنسخ البطاقة </string>
<string name="simple_clone">استنسخ</string>
<string name="user_avatar">صورة المستخدم الشخصية </string>
@@ -333,4 +326,4 @@
<string name="copying_logs_to_file">نسخ السجلات إلى الملف </string>
<string name="account_imported">تم استيراد الحساب</string>
<string name="simple_search">البحث</string>
-</resources>
+ </resources>
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 2e7236aec..08c1b34c3 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Obre el calaix de navegació</string>
<string name="navigation_drawer_close">Tanca el calaix de navegació</string>
-
<string name="simple_boards">Taulells</string>
<string name="simple_add">Afegeix</string>
<string name="simple_save">Desa</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Copiat</string>
<string name="simple_archive">Arxiu</string>
<string name="simple_unassigned">Sense assignar</string>
-
<string name="edit_board">Edita el tauler</string>
<string name="archive_board">Arxiva el tauler</string>
<string name="delete_board">Suprimeix el tauler</string>
@@ -138,12 +136,8 @@
<string name="no_content">No hi ha contingut encara</string>
<string name="last_background_sync">Última sincronització en segon pla:</string>
<string name="simple_off">Apagat</string>
- <string name="minutes_15">15 minuts</string>
- <string name="hour_1">1 hora</string>
- <string name="hours_6">6 hores</string>
<string name="action_card_move">Mou la targeta</string>
<string name="action_card_move_title">Mou %1$s</string>
- <string name="title_is_mandatory">El títol és obligatori</string>
<string name="provide_at_least_a_title_or_description">Poseu-hi almenys un títol o descripció</string>
<string name="welcome_text">Benvingut a %1$s</string>
<string name="maintenance_mode_explanation">El servidor %1$s és actualment en mode de manteniment. Si us plau, contacteu el vostre administrador o proveu de nou més tard.</string>
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index db7e63e6e..c5d036583 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Otevřít panel navigace</string>
<string name="navigation_drawer_close">Zavřít navigační panel</string>
+ <string name="hint_search_deck">Hledat sloupec</string>
<string name="simple_boards">Tabule</string>
<string name="simple_add">Přidat</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Zkopírováno</string>
<string name="simple_archive">Archiv</string>
<string name="simple_unassigned">Nepřiřazeno</string>
+ <string name="hint_error_appeared">Objevila se chyba</string>
<string name="edit_board">Upravit tabuli</string>
<string name="archive_board">Archivovat tabuli</string>
@@ -149,12 +151,12 @@
<string name="no_content">Zatím žádný osah</string>
<string name="last_background_sync">Nejnovější synchronizace na pozadí:</string>
<string name="simple_off">Vypnuto</string>
- <string name="minutes_15">každých 15 minut</string>
- <string name="hour_1">každou hodinu</string>
- <string name="hours_6">každých 6 hodin</string>
+ <string name="minutes_15">15 minut</string>
+ <string name="hour_1">1 hodina</string>
+ <string name="hours_6">6 hodin</string>
<string name="action_card_move">Přesunout kartu</string>
<string name="action_card_move_title">Přesunout %1$s</string>
- <string name="title_is_mandatory">Nadpis je třeba zadat</string>
+ <string name="title_is_mandatory">Je třeba zadat nadpis</string>
<string name="provide_at_least_a_title_or_description">Zadejte alespoň nadpis nebo popis</string>
<string name="welcome_text">Vítejte v %1$s</string>
<string name="maintenance_mode_explanation">Na serveru %1$s v tuto chvíli probíhá údržba. Obraťte se na jeho správce nebo to zkuste později znovu.</string>
@@ -219,7 +221,7 @@
<string name="error_dialog_tip_clear_storage">Úložiště můžete vyčistit otevřením informací o aplikací a vybráním Úložiště → Vyčistit úložiště.</string>
<string name="error_dialog_tip_files_outdated">Zdá se, že aplikace Nextcloud, nainstalovaná na vašem zařízení, je staré verze. Přejděte prosím do Play Store nebo F-Droid a nainstalujte si nejnovější verzi.</string>
<string name="error_dialog_tip_offline">Vypadá to, že jste se pokusili zahájit synchronizaci bez internetového připojení.</string>
- <string name="error_dialog_tip_sync_only_on_wifi">Pokud máte zapnuto \"Synchr. pouze přes Wi-Fi\" v Nastavení, můžete synchronizovat pouze pokud jste připojeni k Wi-Fi.</string>
+ <string name="error_dialog_tip_sync_only_on_wifi">Pokud máte zapnuté nastavení „Synchr. pouze přes Wi-Fi“ – synchronizovat tedy můžete pouze pokud jste připojeni k Wi-Fi.</string>
<string name="error_dialog_tip_files_force_stop">Zdá se, že s vaší aplikací Nextcloud není něco v pořádku. Zkuste vynutit zastavení obojího – aplikace Nextcloud a Nextcloud Deck.</string>
<string name="error_dialog_tip_files_delete_storage">Pokud vynucení jejich zastavení nepomůže, můžete zkusit vyčistit úložiště obou aplikací.</string>
<string name="error_dialog_timeout_instance">Server neodpověděl do určené doby. Ověřte, že vámi využívaná instance je v pořádku spuštěná.</string>
@@ -287,7 +289,7 @@
<item quantity="many">%1$d prostředků</item>
<item quantity="other">%1$d prostředky</item>
</plurals>
- <string name="no_assigned_label">Nepřiřazena značka</string>
+ <string name="no_assigned_label">Nepřiřazena žádná značka</string>
<string name="single_card">Jedna karta</string>
<string name="project_type_room">Diskuzní místnost</string>
<string name="simple_move">Přesunout</string>
@@ -320,8 +322,11 @@
<string name="simple_expert_settings">Nastavení pro pokročilé uživatele</string>
<string name="copy_logs">Zkopírovat záznamy událostí do schránky</string>
<string name="app_logo">Logo aplikace</string>
- <string name="log_file">Soubor Log</string>
- <string name="copying_logs_to_file">Kopíruju logy(záznamy) do souboru</string>
+ <string name="log_file">Soubor se záznamem událostí</string>
+ <string name="copying_logs_to_file">Kopírování záznamů událostí do souboru…</string>
<string name="account_imported">Účet naimportován</string>
<string name="simple_search">Hledat</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Nadpis (vyžadován)</string>
+ <string name="saving_new_card">Ukládání nové karty…</string>
</resources>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 71d9a1696..b0a68682b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
+ <string name="hint_search_deck">Deck durchsuchen</string>
<string name="simple_boards">Boards</string>
<string name="simple_add">Hinzufügen</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Kopiert</string>
<string name="simple_archive">Archivieren</string>
<string name="simple_unassigned">Nicht zugewiesen</string>
+ <string name="hint_error_appeared">Es ist ein Fehler aufgetreten</string>
<string name="edit_board">Board bearbeiten</string>
<string name="archive_board">Board archivieren</string>
@@ -150,7 +152,7 @@
<string name="hours_6">6 Stunden</string>
<string name="action_card_move">Karte verschieben</string>
<string name="action_card_move_title">Verschiebe %1$s</string>
- <string name="title_is_mandatory">Titel ist obligatorisch</string>
+ <string name="title_is_mandatory">Titel ist erforderlich</string>
<string name="provide_at_least_a_title_or_description">Mindestens einen Titel oder eine Beschreibung eingeben</string>
<string name="welcome_text">Willkommen bei %1$s</string>
<string name="maintenance_mode_explanation">Der Server %1$s ist momentan im Wartungsmodus. Bitte nehmen Sie Kontakt mit Ihrem Administrator auf oder versuchen Sie es später nochmal!</string>
@@ -283,7 +285,7 @@
<string name="single_card">Einzelne Karte</string>
<string name="project_type_room">Talk-Raum</string>
<string name="simple_move">Verschieben</string>
- <string name="cannot_upload_files_without_permission">Dateien können nicht ohne Berechtigung hochgeladen werden</string>
+ <string name="cannot_upload_files_without_permission">Dateien können ohne Berechtigung nicht hochgeladen werden</string>
<string name="clone_cards">Karten klonen</string>
<string name="simple_clone">Klonen</string>
<string name="user_avatar">Benutzer-Avatar</string>
@@ -316,4 +318,7 @@
<string name="copying_logs_to_file">Protokolldateien in Datei kopieren…</string>
<string name="account_imported">Konto importiert</string>
<string name="simple_search">Suche</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Titel (erforderlich)</string>
+ <string name="saving_new_card">Speichere neue Karte …</string>
</resources>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index a07b2543b..b7699e14a 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Άνοιγμα συρταριού πλοήγησης</string>
<string name="navigation_drawer_close">Κλείσιμο συρταριού πλοήγησης</string>
-
<string name="simple_boards">Πίνακες</string>
<string name="simple_add">Προσθήκη</string>
<string name="simple_save">Αποθήκευση</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Αντιγράφτηκε</string>
<string name="simple_archive">Αρχειοθέτηση</string>
<string name="simple_unassigned">Χωρίς ανάθεση</string>
-
<string name="edit_board">Επεξεργασία πίνακα</string>
<string name="archive_board">Αρχειοθέτηση πίνακα</string>
<string name="delete_board">Διαγραφή πίνακα</string>
@@ -138,12 +136,12 @@
<string name="no_content">Χωρίς περιεχόμενο ακόμα</string>
<string name="last_background_sync">Τελευταίος συγχρ. παρασκηνίου:</string>
<string name="simple_off">Απενεργοποίηση </string>
- <string name="minutes_15">15 Λεπτά</string>
+ <string name="minutes_15">15 λεπτά</string>
<string name="hour_1">1 ώρα</string>
<string name="hours_6">6 ώρες</string>
<string name="action_card_move">Μετακίνηση κάρτας</string>
<string name="action_card_move_title">Μετακίνηση %1$s</string>
- <string name="title_is_mandatory">Υποχρεωτικός τίτλος</string>
+ <string name="title_is_mandatory">Απαιτείται τίτλος</string>
<string name="provide_at_least_a_title_or_description">Προσθέστε τουλάχιστον τίτλο ή περιγραφή</string>
<string name="welcome_text">Καλώς ήρθατε στο %1$s</string>
<string name="maintenance_mode_explanation">Ο διακομιστής %1$s είναι σε κατάσταση συντήρησης. Επικοινωνήστε με τον διαχειριστή ή δοκιμάστε αργότερα.</string>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 1cee33963..47c7512db 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Abrir cajón de navegación</string>
<string name="navigation_drawer_close">Cerrar cajón de navegación</string>
-
<string name="simple_boards">Tableros</string>
<string name="simple_add">Añadir</string>
<string name="simple_save">Guardar</string>
@@ -32,6 +31,7 @@
<string name="simple_copied">Copiado</string>
<string name="simple_archive">Archivar</string>
<string name="simple_unassigned">No asignado</string>
+ <string name="hint_error_appeared">Ha ocurrido un error</string>
<string name="edit_board">Editar tablero</string>
<string name="archive_board">Archivar tablero</string>
@@ -145,12 +145,12 @@
<string name="no_content">Aún no hay contenido</string>
<string name="last_background_sync">Última sincronización en segundo plano:</string>
<string name="simple_off">Off</string>
- <string name="minutes_15">15 Minutos</string>
- <string name="hour_1">1 Hora</string>
- <string name="hours_6">6 Horas</string>
+ <string name="minutes_15">15 minutos</string>
+ <string name="hour_1">1 hora</string>
+ <string name="hours_6">6 horas</string>
<string name="action_card_move">Mover tarjeta</string>
<string name="action_card_move_title">Mover %1$s</string>
- <string name="title_is_mandatory">El título es obligatorio</string>
+ <string name="title_is_mandatory">Se requiere un título</string>
<string name="provide_at_least_a_title_or_description">Indique al menos un título o una descripción</string>
<string name="welcome_text">Bienvenido a %1$s</string>
<string name="maintenance_mode_explanation">El servidor %1$s está actualmente en modo de mantenimiento. Por favor, contacta con tu administrador o vuelve a intentarlo más tarde.</string>
@@ -283,7 +283,7 @@
<string name="single_card">Carta única</string>
<string name="project_type_room">Sala de conversación</string>
<string name="simple_move">Mover</string>
- <string name="cannot_upload_files_without_permission">No se pueden subir archivos sin permiso</string>
+ <string name="cannot_upload_files_without_permission">No se puede subir archivos sin permiso</string>
<string name="clone_cards">Clonar tarjetas</string>
<string name="simple_clone">Clonar</string>
<string name="user_avatar">Usar avatar</string>
@@ -316,4 +316,7 @@
<string name="copying_logs_to_file">Copiando registros al archivo…</string>
<string name="account_imported">Cuenta importada</string>
<string name="simple_search">Buscar</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Título (requerido)</string>
+ <string name="saving_new_card">Guardando una nueva tarjeta...</string>
</resources>
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 4fde3e163..e357370b2 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Ireki nabigatzeko menu lerrakorra</string>
<string name="navigation_drawer_close">Itxi nabigatzeko menu lerrakorra</string>
+ <string name="hint_search_deck">Bilatu bilduma</string>
<string name="simple_boards">Mahaiak</string>
<string name="simple_add">Gehitu</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Kopiatuta</string>
<string name="simple_archive">Artxibatu</string>
<string name="simple_unassigned">Esleitu gabea</string>
+ <string name="hint_error_appeared">Errore bat agertu da</string>
<string name="edit_board">Editatu mahaia</string>
<string name="archive_board">Artxibatu mahaia</string>
@@ -150,7 +152,7 @@
<string name="hours_6">6 ordu</string>
<string name="action_card_move">Mugitu txartela</string>
<string name="action_card_move_title">Mugitu %1$s</string>
- <string name="title_is_mandatory">Izenburua jartzea nahitaezkoa da</string>
+ <string name="title_is_mandatory">Izenburua beharrezkoa da</string>
<string name="provide_at_least_a_title_or_description">Jarri gutxienez izenburu edo deskribapen bat</string>
<string name="welcome_text">Ongi etorri %1$s(e)ra</string>
<string name="maintenance_mode_explanation">%1$s zerbitzaria mantentze moduan dago. Mesedez jarri harremanetan zure administratzailearekin edo saiatu berriro.</string>
@@ -316,4 +318,7 @@
<string name="copying_logs_to_file">Erregistroak fitxategira kopiatzen...</string>
<string name="account_imported">Inportatutako kontua</string>
<string name="simple_search">Bilatu</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Izenburua (beharrezkoa)</string>
+ <string name="saving_new_card">Txartel berria gordetzen...</string>
</resources>
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index cfcb9393a..13fcb91e0 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">کشو ناوبری را باز کنید</string>
<string name="navigation_drawer_close">بستن کشو ناوبری</string>
-
<string name="simple_boards">تخته ها</string>
<string name="simple_add">افزودن</string>
<string name="simple_save">ذخیره</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">کپی شد</string>
<string name="simple_archive">بایگانی</string>
<string name="simple_unassigned">تخصیص داده نشده</string>
-
<string name="edit_board">ویرایش تابلو</string>
<string name="archive_board"> بایگانی تابلو</string>
<string name="delete_board">حذف تابلو</string>
@@ -125,12 +123,8 @@
<string name="no_content">هنوز محتوا موجود نیست</string>
<string name="last_background_sync">آخرین همگام سازی پس زمینه:</string>
<string name="simple_off">خاموش</string>
- <string name="minutes_15">یک ربع</string>
- <string name="hour_1">۱ ساعت</string>
- <string name="hours_6">۶ ساعت</string>
<string name="action_card_move">انتقال کارت</string>
<string name="action_card_move_title">حرکت%1$s</string>
- <string name="title_is_mandatory">عنوان اجباری است</string>
<string name="provide_at_least_a_title_or_description">حداقل عنوان یا توصیفی ارائه دهید</string>
<string name="welcome_text">به %1$s خوش آمدید</string>
<string name="maintenance_mode_explanation">سرور %1$s در حال حاضر در حالت تعمیر و نگهداری است. لطفاً با مدیریت تماس بگیرید یا بعداً دوباره امتحان کنید.</string>
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index 566243da4..892b68efa 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Avaa hakuvalikko</string>
<string name="navigation_drawer_close">Sulje hakuvalikko</string>
-
<string name="simple_boards">Taulut</string>
<string name="simple_add">Lisää</string>
<string name="simple_save">Tallenna</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Kopioitu</string>
<string name="simple_archive">Arkisto</string>
<string name="simple_unassigned">Määrittämätön</string>
-
<string name="edit_board">Muokkaa taulua</string>
<string name="archive_board">Arkistoi taulu</string>
<string name="delete_board">Poista taulu</string>
@@ -135,12 +133,8 @@
<string name="no_content">Ei vielä sisältöä</string>
<string name="last_background_sync">Viimeisin taustasynkronointi:</string>
<string name="simple_off">Pois</string>
- <string name="minutes_15">15 minuuttia</string>
- <string name="hour_1">1 tunti</string>
- <string name="hours_6">6 tuntia</string>
<string name="action_card_move">Siirrä kortti</string>
<string name="action_card_move_title">Siirrä %1$s</string>
- <string name="title_is_mandatory">Otsikko on pakollinen</string>
<string name="provide_at_least_a_title_or_description">Anna vähintään otsikko tai kuvaus</string>
<string name="welcome_text">Tervetuloa kohteeseen %1$s</string>
<string name="maintenance_mode_explanation">Palvelin%1$s on juuri ylläpitotilassa. Ota yhteys järjestelmän ylläpitäjään tai yritä myöhemmin uudelleen.</string>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index d9338bd55..a9b196aa0 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Ouvrir le tiroir de navigation</string>
<string name="navigation_drawer_close">Fermer le tiroir de navigation</string>
-
<string name="simple_boards">Tableaux</string>
<string name="simple_add">Ajouter</string>
<string name="simple_save">Enregistrer</string>
@@ -32,6 +31,7 @@
<string name="simple_copied">Copié</string>
<string name="simple_archive">Archiver</string>
<string name="simple_unassigned">Non assigné(s)</string>
+ <string name="hint_error_appeared">Une erreur est survenue</string>
<string name="edit_board">Modifier le tableau</string>
<string name="archive_board">Archiver le tableau</string>
@@ -121,7 +121,13 @@
<string name="settings_branding_title">Thème du serveur</string>
<string name="settings_compact_title">Mode compact</string>
<string name="settings_cover_images_title">Images de couverture</string>
+ <string name="settings_debugging">Debug log</string>
+ <string name="settings_etags">Utiliser ETags</string>
+ <string name="settings_etags_summary">Accelerer la synchronisation</string>
<string name="settings_background_sync">Synchronisation en tâche de fond</string>
+ <string name="settings_compress_image_attachments">Comprimer les images pendant téléchargement</string>
+ <string name="search_in">Cherchar dans %1$s</string>
+ <string name="settings_compress_image_attachments_summary">Chargement plus rapide, qualité moindre</string>
<string name="pref_value_wifi_and_mobile">Synchroniser en Wifi et données mobiles</string>
<string name="pref_value_wifi_only">Synchroniser uniquement en Wi-Fi</string>
<string-array name="darkmode_entries">
@@ -139,12 +145,12 @@
<string name="no_content">Aucun contenu pour l\'instant</string>
<string name="last_background_sync">Dernière synchro en tâche de fond :</string>
<string name="simple_off">Éteint</string>
- <string name="minutes_15">15 Minutes</string>
- <string name="hour_1">1 Heure</string>
- <string name="hours_6">6 Heures</string>
+ <string name="minutes_15">15 minutes</string>
+ <string name="hour_1">1 heure</string>
+ <string name="hours_6">6 heures</string>
<string name="action_card_move">Déplacer la carte</string>
<string name="action_card_move_title">Déplacer %1$s</string>
- <string name="title_is_mandatory">Le titre est obligatoire</string>
+ <string name="title_is_mandatory">Un titre est requis</string>
<string name="provide_at_least_a_title_or_description">Renseignez le titre ou la description</string>
<string name="welcome_text">Bienvenue sur %1$s</string>
<string name="maintenance_mode_explanation">Le serveur %1$s est actuellement en maintenance. Veuillez contacter votre administrateur ou réessayer plus tard.</string>
@@ -208,6 +214,8 @@
<string name="error_dialog_tip_database_upgrade_failed">La mise à jour de la base de données a échoué. Veuillez signaler l\'erreur et supprimer les données pour utiliser l\'application de manière normale.</string>
<string name="error_dialog_tip_clear_storage">Vous pouvez nettoyer l\'espace de stockage en ouvrant les paramètres de l\'application et en sélectionnant Stockage → Effacer le stockage.</string>
<string name="error_dialog_tip_files_outdated">Votre application Nextcloud semble trop ancienne. Veuillez visiter le Play Store ou F-Droid afin d\'installer la dernière version.</string>
+ <string name="error_dialog_tip_offline">Vous avez tenté de synchroniser sans connection internet</string>
+ <string name="error_dialog_tip_sync_only_on_wifi">Si vous avez activé \"Sync seulement par Wi-Fi\", vous ne pouvez donc synchroniser uniquement en étant connecté en Wi-Fi </string>
<string name="error_dialog_tip_files_force_stop">Quelque chose semble ne pas fonctionner avec votre application Nextcloud. Essayer de forcer l\'arrêt des applications Nextcloud et Nextcloud Notes.</string>
<string name="error_dialog_tip_files_delete_storage">Si l’arrêt forcé ne fonctionne pas, vous pouvez essayer d\'effacer les données des deux applications.</string>
<string name="error_dialog_timeout_instance">Le serveur n’a pas répondu dans le temps imparti. Assurez-vous que votre instance fonctionne correctement.</string>
@@ -223,6 +231,7 @@
<string name="error_dialog_user_not_found_in_database">L\'utilisateur actuel est différent de l\'utilisateur que nous avons dans notre base de données. Si vous utilisez LDAP sur votre instance Nextcloud, il est alors possible que votre application Nextcloud ait stocké un identifiant utilisateur obsolète</string>
<string name="error_dialog_capabilities_not_parsable">Nous n\'avons pas pu évaluer les capacités de votre serveur. Veuillez vous assurer que votre serveur fonctionne bien et que les autres applications clientes peuvent accéder à Nextcloud.</string>
<string name="error_dialog_attachment_upload_failed">Une pièce jointe n’a pas pu être téléversée. Veuillez essayer de la partager d’une autre façon et faites-nous part de ce bogue.</string>
+ <string name="error_dialog_certificate">Le certificat du serveur est mauvais. Merci de vérifier tous les comptes Nextcloud app pour plus d\'informations</string>
<string name="error_dialog_tip_disable_battery_optimizations">Merci de bien vouloir désactiver toutes les optimisations de batterie pour Nextcloud ainsi que pour l\'application Deck.</string>
<string name="error_action_open_deck_info">Ouvrir les informations de l\'application</string>
<string name="error_action_open_nextcloud_app">Ouvrir l\'application Nextcloud</string>
@@ -233,6 +242,7 @@
<string name="info_box_maintenance_mode">Le serveur est en mode maintenance</string>
<string name="info_box_version_not_supported">Version du serveur %1$s non prise en charge, veuillez mettre à jour en %2$s</string>
<string name="share_link">Lien de partage</string>
+ <string name="share_content">Contenu partagé</string>
<string name="share_content_duedate">Date d\'échéance : %1$s</string>
<string name="share_content_labels">Tags : %1$s</string>
<string name="archive_cards">Archiver les cartes</string>
@@ -273,6 +283,7 @@
<string name="single_card">Carte unique</string>
<string name="project_type_room">Salon de discussion</string>
<string name="simple_move">Déplacer</string>
+ <string name="cannot_upload_files_without_permission">Ne peut télécharger les fichiers sans permissions </string>
<string name="clone_cards">Cloner les cartes</string>
<string name="simple_clone">Cloner</string>
<string name="user_avatar">Avatar utilisateur</string>
@@ -299,8 +310,11 @@
<string name="widget_upcoming_title">Cartes à venir</string>
<!-- Category header for a section in the settings which contain features for advanced users -->
<string name="simple_expert_settings">Paramètres expert</string>
+ <string name="copy_logs">Copier logs dans coupe/papier</string>
<string name="app_logo">Logo de l\'application</string>
+ <string name="log_file">Fichier de log</string>
<string name="copying_logs_to_file">Copie des logs dans un fichier...</string>
<string name="account_imported">Compte importé</string>
<string name="simple_search">Chercher</string>
+ <string name="saving_new_card">Enregistrement de la nouvelle carte…</string>
</resources>
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index b4116cb9e..66f3c2a18 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Abrir o caixón de navegación</string>
<string name="navigation_drawer_close">Pechar o caixón de navegación</string>
-
<string name="simple_boards">Taboleiros</string>
<string name="simple_add">Engadir</string>
<string name="simple_save">Gardar</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Copiada</string>
<string name="simple_archive">Aquivar</string>
<string name="simple_unassigned">Sen asignar</string>
-
<string name="edit_board">Editar taboleiro</string>
<string name="archive_board">Arquivar taboleiro</string>
<string name="delete_board">Eliminar taboleiro</string>
@@ -139,12 +137,8 @@
<string name="no_content">Aínda non hai contido</string>
<string name="last_background_sync">Última sincronización do traballo en segundo plano:</string>
<string name="simple_off">Apagado</string>
- <string name="minutes_15">15 minutos</string>
- <string name="hour_1">1 hora</string>
- <string name="hours_6">6 horas</string>
<string name="action_card_move">Mover a tarxeta</string>
<string name="action_card_move_title">Mover %1$s</string>
- <string name="title_is_mandatory">O título é obrigatorio</string>
<string name="provide_at_least_a_title_or_description">Forneza polo menos un título ou descrición</string>
<string name="welcome_text">Dámoslle a benvida a %1$s</string>
<string name="maintenance_mode_explanation">O servidor %1$s está atopase en modo de mantemento. Póñase en contacto co seu administrador ou ténteo de novo máis tarde.</string>
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index dea721d82..66daa21b2 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Otvorite navigacijsku ladicu</string>
<string name="navigation_drawer_close">Zatvori navigacijsku ladicu</string>
-
<string name="simple_boards">Ploče</string>
<string name="simple_add">Dodaj</string>
<string name="simple_save">Spremi</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Kopirano</string>
<string name="simple_archive">Arhiva</string>
<string name="simple_unassigned">Nedodijeljeno</string>
-
<string name="edit_board">Uredi ploču</string>
<string name="archive_board">Arhiviraj ploču</string>
<string name="delete_board">Izbriši ploču</string>
@@ -141,12 +139,8 @@
<string name="no_content">Još nema sadržaja</string>
<string name="last_background_sync">Posljednja pozadinska sinkronizacija:</string>
<string name="simple_off">Isključeno</string>
- <string name="minutes_15">15 minuta</string>
- <string name="hour_1">1 sat</string>
- <string name="hours_6">6 sati</string>
<string name="action_card_move">Premjesti karticu</string>
<string name="action_card_move_title">Premjesti %1$s</string>
- <string name="title_is_mandatory">Naziv je obavezan</string>
<string name="provide_at_least_a_title_or_description">Unesite naziv ili opis</string>
<string name="welcome_text">Dobro došli u %1$s</string>
<string name="maintenance_mode_explanation">Poslužitelj %1$s trenutno je u načinu održavanja. Obratite se svom administratoru ili pokušajte kasnije.</string>
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index a64dab890..a38f2f30a 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Navigációs fiók megnyitása</string>
<string name="navigation_drawer_close">Navigációs fiók bezárása</string>
-
<string name="simple_boards">Táblák</string>
<string name="simple_add">Hozzáadás</string>
<string name="simple_save">Mentés</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Másolva</string>
<string name="simple_archive">Archívum</string>
<string name="simple_unassigned">Nem hozzárendelt</string>
-
<string name="edit_board">Tábla szerkesztése</string>
<string name="archive_board">Tábla archiválása</string>
<string name="delete_board">Tábla törlése</string>
@@ -120,6 +118,7 @@
<string name="settings_theme_title">Téma</string>
<string name="settings_branding_title">Márkázas</string>
<string name="settings_compact_title">Kompakt mód</string>
+ <string name="settings_cover_images_title">Borítóképek</string>
<string name="settings_debugging">Hibakeresési naplók</string>
<string name="settings_etags">ETag címkék használata</string>
<string name="settings_etags_summary">Felgyorsítja a szinkronizációt</string>
@@ -149,7 +148,6 @@
<string name="hours_6">6 óra</string>
<string name="action_card_move">Kártya áthelyezése</string>
<string name="action_card_move_title">%1$s áthelyezése</string>
- <string name="title_is_mandatory">A cím megadása kötelező</string>
<string name="provide_at_least_a_title_or_description">Legalább címet vagy leírást adjon meg</string>
<string name="welcome_text">Üdvözli a %1$s</string>
<string name="maintenance_mode_explanation">A(z) %1$s kiszolgáló jelenleg karbantartási módban van. Lépjen kapcsolatba a rendszergazdával vagy próbálja újra.</string>
@@ -203,6 +201,7 @@
<string name="operation_not_yet_supported">Még nem támogatott</string>
<string name="error_revoking_ac">Hiba a(z) %1$s elérésének visszavonásakor</string>
<string name="error_create_label">Hiba a(z) %1$s címke létrehozásakor</string>
+ <string name="maintenance_mode">A kiszolgáló karbantartási módban van</string>
<string name="server_error">Kiszolgálóhiba</string>
<string name="error_edit_activity_killed_by_android">Az Android befejezte a szerkesztési módot, mert több rendszererőforrás szükséges a többi alkalmazás számára.</string>
@@ -212,6 +211,8 @@
<string name="error_dialog_tip_database_upgrade_failed">Az adatbázis frissítése sikertelen. Jelentse a problémát és az alkalmazás normális használatához törölje a tárolót.</string>
<string name="error_dialog_tip_clear_storage">A tárolót az alkalmazásinformáció megnyitásával, és a Tárhely → Tárhely ürítése választásával törölheti.</string>
<string name="error_dialog_tip_files_outdated">A Nextcloud alkalmazása elavultnak tűnik. Keresse fel a Play Áruházat vagy az F-Droidot, hogy beszerezze a legfrissebb verziót.</string>
+ <string name="error_dialog_tip_offline">Úgy néz ki, hogy internetkapcsolat nélkül próbált meg szinkronizálást kezdeményezni.</string>
+ <string name="error_dialog_tip_sync_only_on_wifi">Ha engedélyezte a „Szinkronizálás csak Wi-Fin” beállítást, akkor csak akkor szinkronizálhat, ha Wi-Fihez kapcsolódik.</string>
<string name="error_dialog_tip_files_force_stop">Valami hibásnak tűnik a Nextcloud alkalmazásában. Próbálja mindkettőt leállítani, a Nextcloud és a Nextcloud Kártyák alkalmazást is.</string>
<string name="error_dialog_tip_files_delete_storage">Ha a kényszerített leállítás nem segít, akkor megpróbálhatja mindkét alkalmazás tárolóját kiüríteni.</string>
<string name="error_dialog_timeout_instance">A megadott időn belül nem érkezett válasz a kiszolgálótól. Győződjön meg róla, hogy a példánya helyesen fut.</string>
@@ -235,6 +236,7 @@
<string name="error_action_server_logs">Kiszolgálónaplók</string>
<string name="error_action_install">Telepítés</string>
<string name="error_action_report_issue">Jelentés</string>
+ <string name="info_box_maintenance_mode">A kiszolgáló karbantartási módban van</string>
<string name="info_box_version_not_supported">A kiszolgálóverzió nem támogatott: %1$s, frissítsen erre: %2$s</string>
<string name="share_link">Hivatkozás megosztása</string>
<string name="share_content">Tartalom megosztása</string>
@@ -311,4 +313,5 @@
<string name="copying_logs_to_file">Naplók fájlba másolása…</string>
<string name="account_imported">Fiók importálva</string>
<string name="simple_search">Keresés</string>
+ <string name="saving_new_card">Új kártya mentése…</string>
</resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 28c927913..5bf67644e 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Apri il cassetto di navigazione</string>
<string name="navigation_drawer_close">Chiudi il cassetto di navigazione</string>
-
<string name="simple_boards">Lavagne</string>
<string name="simple_add">Aggiungi</string>
<string name="simple_save">Salva</string>
@@ -32,6 +31,7 @@
<string name="simple_copied">Copiato</string>
<string name="simple_archive">Archivio</string>
<string name="simple_unassigned">Non assegnato</string>
+ <string name="hint_error_appeared">Si è verificato un errore</string>
<string name="edit_board">Modifica lavagna</string>
<string name="archive_board">Archivia lavagna</string>
@@ -150,7 +150,7 @@
<string name="hours_6">6 ore</string>
<string name="action_card_move">Sposta scheda</string>
<string name="action_card_move_title">Sposta %1$s</string>
- <string name="title_is_mandatory">Il titolo è obbligatorio</string>
+ <string name="title_is_mandatory">Il titolo è richiesto</string>
<string name="provide_at_least_a_title_or_description">Fornisci almeno un titolo e una descrizione</string>
<string name="welcome_text">Benvenuto in %1$s</string>
<string name="maintenance_mode_explanation">Il server %1$s attualmente è in manutenzione. Contatta l\'amministratore o riprova più tardi.</string>
@@ -316,4 +316,7 @@
<string name="copying_logs_to_file">Copia dei registri su file…</string>
<string name="account_imported">Account importato</string>
<string name="simple_search">Cerca</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Titolo (richiesto)</string>
+ <string name="saving_new_card">Salvataggio della nuova scheda...</string>
</resources>
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 866cf36d8..54568e4bb 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">ナビゲーションドロワーを開く</string>
<string name="navigation_drawer_close">ナビゲーションドロワーを閉じる</string>
-
<string name="simple_boards">ボード</string>
<string name="simple_add">追加</string>
<string name="simple_save">保存</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">コピーしました</string>
<string name="simple_archive">アーカイブ</string>
<string name="simple_unassigned">未割り当て</string>
-
<string name="edit_board">ボードを編集</string>
<string name="archive_board">ボードをアーカイブ</string>
<string name="delete_board">ボードを削除</string>
@@ -113,13 +111,20 @@
<string name="add_a_new_list_using_the_button">+ボタンで新しいリストを追加</string>
<string name="add_a_new_card_using_the_button">+ボタンで新しいカードを追加</string>
<string name="delete_board_message">このボードと含まれるすべてのリストやカードは完全に削除されます.</string>
+ <string name="settings_theme_title">テーマ</string>
<string name="settings_branding_title">ブランディング</string>
<string name="settings_compact_title">コンパクトモード</string>
+ <string name="settings_debugging">デバッグログ</string>
+ <string name="settings_etags">ETagを使用</string>
<string name="settings_background_sync">バックグラウンド同期</string>
+ <string name="settings_compress_image_attachments">アップロード時に画像を圧縮する</string>
<string name="pref_value_wifi_and_mobile">Wi-Fiおよびモバイル接続時に同期する</string>
<string name="pref_value_wifi_only">Wi-Fi接続時のみ同期する</string>
+ <string-array name="darkmode_entries">
+ <item>システムのデフォルト</item>
+ </string-array>
<string name="unassigned_user">未割当の%1$s</string>
- <string name="no_activities">このカードにはアクティブティがありません。アクティブティをロードして表示するにはインターネットへの接続が必要です。</string>
+ <string name="no_activities">このカードにはアクティビティがありません。アクティビティを読み込んで表示するにはインターネットへの接続が必要です。</string>
<string name="share_board">ボードを共有</string>
<string name="you_are_currently_offline">現在オフライン</string>
<string name="you_have_to_be_connected_to_the_internet_in_order_to_add_an_account">アカウントの追加にはインターネットへの接続が必要です</string>
@@ -128,12 +133,11 @@
<string name="no_content">コンテンツはまだありません</string>
<string name="last_background_sync">最後のバックグラウンド同期:</string>
<string name="simple_off">オフ</string>
- <string name="minutes_15">15 分</string>
- <string name="hour_1">1 時間</string>
- <string name="hours_6">6 時間</string>
+ <string name="minutes_15">15分</string>
+ <string name="hour_1">1時間</string>
+ <string name="hours_6">6時間</string>
<string name="action_card_move">カードの移動</string>
<string name="action_card_move_title">%1$sを移動</string>
- <string name="title_is_mandatory">タイトルは必須です</string>
<string name="provide_at_least_a_title_or_description">少なくともタイトルまたは説明を入力してください</string>
<string name="welcome_text">%1$sにようこそ</string>
<string name="maintenance_mode_explanation">サーバー%1$sは現在メンテナンスモードです。管理者に問い合わせるか後で試してください。</string>
@@ -156,6 +160,7 @@
<string name="filter_no_filter">すべて</string>
<string name="filter_overdue">期限超過</string>
<string name="filter_today">今日</string>
+ <string name="filter_tomorrow">明日</string>
<string name="filter_week">次の7日間</string>
<string name="filter_month">次の30日間</string>
<string name="filter_no_due">期限なし</string>
@@ -185,6 +190,7 @@
<string name="operation_not_yet_supported">まだ対応していません</string>
<string name="error_revoking_ac">%1$sへのアクセス取消中のエラー</string>
<string name="error_create_label">ラベル%1$s作成中のエラー</string>
+ <string name="maintenance_mode">サーバーはメンテナンスモードです</string>
<string name="server_error">サーバーエラー</string>
<string name="error_edit_activity_killed_by_android">Androidが編集モードを終了したのは、他のアプリが多くのシステムリソースを必要としていたからです。</string>
@@ -196,14 +202,14 @@
<string name="error_dialog_tip_files_outdated">Nextcloudアプリが古いようです。プレイストアかF-Droidから最新版を入手してください。</string>
<string name="error_dialog_tip_files_force_stop">Nextcloudアプリで何か不具合が発生しました。NextcloudアプリとNextcloud Deckアプリの両方を強制終了してください。</string>
<string name="error_dialog_tip_files_delete_storage">強制終了で改善されない場合は、両方のアプリのストレージをクリアしてみてください。</string>
- <string name="error_dialog_timeout_instance">一定時間内にサーバからの反応がありませんでした。サーバが正常に動いているか確認してください。</string>
+ <string name="error_dialog_timeout_instance">一定時間内にサーバーからの反応がありませんでした。サーバーが正常に動いているか確認してください。</string>
<string name="error_dialog_timeout_toggle">ネットワーク接続を確認してください。モバイルデータやWi-Fiのオフ/オンを繰り返してみるとうまくいく場合があります。</string>
<string name="error_dialog_check_server">サーバーからの反応が不正です。WebインターフェースからDeckアプリにアクセス出来るか確認してください。</string>
<string name="error_dialog_check_server_logs">Nextcloudのセットアップに問題があります。サーバーのログファイルを確認してください。</string>
- <string name="error_dialog_check_maintenance">あなたのNextcloudサーバがメンテナンスモード中かどうか確認してください。</string>
- <string name="error_dialog_insufficient_storage">あなたのNextcloudサーバのストレージに空き容量がありません。ローカルの変更をクラウドに同期するにはいくつかファイルを削除してください。</string>
+ <string name="error_dialog_check_maintenance">Nextcloudサーバーがメンテナンスモード中かどうか確認してください。</string>
+ <string name="error_dialog_insufficient_storage">Nextcloudサーバーのストレージに空き容量がありません。ローカルの変更をクラウドに同期するには一部のファイルを削除してください。</string>
<string name="error_dialog_we_need_info">サポートには下記技術情報が必要です:</string>
- <string name="error_dialog_redirect">サーバがHTTPステータスコード 302を返しました。これはDeckアプリがインストールされていないか、構成が誤っていることを意味します。.htaccessファイルのカスタムオーバーライドやOIDクライアントのようなNextcloudアプリが原因の可能性があります。</string>
+ <string name="error_dialog_redirect">サーバーがHTTPステータスコード 302を返しました。これはDeckアプリがインストールされていないか、構成が誤っていることを意味します。.htaccessファイルのカスタムオーバーライドやOIDクライアントのようなNextcloudアプリが原因の可能性があります。</string>
<string name="error_dialog_version_not_parsable">サーバー側のDeckアプリのバージョンを判別できませんでした。Deckアプリがインストール,有効化されていることを確認してください。</string>
<string name="error_dialog_account_might_not_be_authorized">Nextcloudアプリのアカウントが認証されていない可能性があります。</string>
<string name="error_dialog_user_not_found_in_database">現在のユーザーは、データベースに登録されているユーザーと一致しません。NextcloudインスタンスでLDAPを使用している場合、Nextcloudアプリに古いユーザーIDが保存されている可能性があります。</string>
@@ -212,12 +218,15 @@
また、この不具合について報告してください。</string>
<string name="error_dialog_tip_disable_battery_optimizations">NextcloudとDeckアプリのバッテリー最適化をすべて無効にしてください。</string>
<string name="error_action_open_deck_info">アプリ情報を開く</string>
+ <string name="error_action_open_nextcloud_app">Nextcloudアプリを開く</string>
<string name="error_action_open_network">ネットワーク設定</string>
<string name="error_action_server_logs">サーバーログ</string>
<string name="error_action_install">インストール</string>
<string name="error_action_report_issue">報告</string>
<string name="info_box_version_not_supported">サーバーのバージョン%1$sはサポートしていませんので、%2$sにアップデートしてください。</string>
<string name="share_link">URLで共有</string>
+ <string name="share_content_duedate">期限: %1$s</string>
+ <string name="share_content_labels">タグ: %1$s</string>
<string name="archive_cards">カードをアーカイブ</string>
<string name="manage_accounts">アカウント管理</string>
@@ -239,7 +248,9 @@
<string name="card_does_not_yet_exist">カードはDeckには存在しません</string>
<string name="widget_stack_title">リスト</string>
+ <string name="widget_filter_title">フィルター</string>
<string name="widget_stack_header_icon">ウィジェットのヘッダーアイコン</string>
+ <string name="widget_placeholder_icon">ウィジェットの代替アイコン</string>
<string name="select_stack">リストを選択</string>
<string name="project_type_deck_board">Deckボード</string>
<string name="project_type_deck_card">Deckカード</string>
@@ -252,6 +263,7 @@
<string name="single_card">1つのカード</string>
<string name="project_type_room">トークルーム</string>
<string name="simple_move">移動</string>
+ <string name="cannot_upload_files_without_permission">権限のないファイルはアップロードできません</string>
<string name="clone_cards">カードを複製</string>
<string name="simple_clone">複製</string>
<string name="user_avatar">ユーザーのアバター</string>
@@ -272,4 +284,15 @@
<string name="gallery">ギャラリー</string>
<string name="simple_attach">参加</string>
<string name="add_stack_widget">リストのウィジェットを追加</string>
- </resources>
+ <string name="add_filter_widget">フィルターのウィジェットを追加</string>
+ <string name="edit_description">詳細を編集</string>
+ <string name="widget_upcoming_title">今後のカード</string>
+ <!-- Category header for a section in the settings which contain features for advanced users -->
+ <string name="simple_expert_settings">エキスパート設定</string>
+ <string name="copy_logs">ログをクリップボードにコピー</string>
+ <string name="app_logo">アプリロゴ</string>
+ <string name="log_file">ログファイル</string>
+ <string name="copying_logs_to_file">ログをファイルにコピー…</string>
+ <string name="simple_search">検索</string>
+ <string name="saving_new_card">新しいカードを保存…</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index a967dc675..79ae5c0c5 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">탐색 서랍 창 열기</string>
<string name="navigation_drawer_close">탐색 서랍 창 닫기</string>
-
<string name="simple_boards">게시판</string>
<string name="simple_add">추가</string>
<string name="simple_save">저장</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">복사됨</string>
<string name="simple_archive">보관</string>
<string name="simple_unassigned">할당되지 않음</string>
-
<string name="edit_board">게시판 편집</string>
<string name="archive_board">게시판 보관</string>
<string name="delete_board">게시판 삭제</string>
@@ -134,12 +132,8 @@
<string name="no_content">아직 내용 없음</string>
<string name="last_background_sync">마지막 백그라운드 동기화:</string>
<string name="simple_off">꺼짐</string>
- <string name="minutes_15">15분</string>
- <string name="hour_1">1시간</string>
- <string name="hours_6">6시간</string>
<string name="action_card_move">카드 이동</string>
<string name="action_card_move_title">%1$s 이동</string>
- <string name="title_is_mandatory">필수사항입니다.</string>
<string name="provide_at_least_a_title_or_description">적어도 제목이나 내용을 기술하시오.</string>
<string name="welcome_text">%1$s에 오신 것을 환영합니다.</string>
<string name="maintenance_mode_explanation">%1$s서버는 현재 유지보수 모드입니다. 관리자에게 연락하거나 나중에 시도해주십시오.</string>
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 4b763c23f..8bd37ae0b 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Åpne navigasjonsskuff</string>
<string name="navigation_drawer_close">Lukk navigasjonsskuff</string>
-
<string name="simple_boards">Tavler</string>
<string name="simple_add">Legg til</string>
<string name="simple_save">Lagre</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Kopiert</string>
<string name="simple_archive">Arkiv</string>
<string name="simple_unassigned">Ikke tildelt</string>
-
<string name="edit_board">Rediger tavle</string>
<string name="archive_board">Arkiver tavle</string>
<string name="delete_board">Slett tavle</string>
@@ -135,12 +133,8 @@
<string name="no_content">Ikke noe innhold enda</string>
<string name="last_background_sync">Siste bakgrunnssynkronisering:</string>
<string name="simple_off">ett kvarter</string>
- <string name="minutes_15">15 minutter</string>
- <string name="hour_1">1 time</string>
- <string name="hours_6">6 timer</string>
<string name="action_card_move">Flytt kort</string>
<string name="action_card_move_title">Flytt %1$s</string>
- <string name="title_is_mandatory">Tittel er obligatorisk</string>
<string name="provide_at_least_a_title_or_description">I det minste gi en tittel eller beskrivelse</string>
<string name="welcome_text">Velkommen til %1$s</string>
<string name="maintenance_mode_explanation">Serveren %1$s er for øyeblikket i vedlikeholds modus. Vennligs kontakt din administrator eller prøv igjen senere.</string>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 680480c77..48fed69a9 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Open navigatie</string>
<string name="navigation_drawer_close">Sluit navigatie</string>
+ <string name="hint_search_deck">Zoeken kaarten</string>
<string name="simple_boards">Bord</string>
<string name="simple_add">Toevoegen</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Gekopieerd</string>
<string name="simple_archive">Archiveer</string>
<string name="simple_unassigned">Niet-toegewezen</string>
+ <string name="hint_error_appeared">Er is een fout verschenen</string>
<string name="edit_board">Pas bord aan</string>
<string name="archive_board">Archiveer bord</string>
@@ -316,4 +318,7 @@
<string name="copying_logs_to_file">Kopiëren logs naar bestand...</string>
<string name="account_imported">Account geïmporteerd</string>
<string name="simple_search">Zoeken</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Titel (vereist)</string>
+ <string name="saving_new_card">Opslaan nieuwe kaart...</string>
</resources>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 8799f738c..ed3f21b5c 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Otwórz panel nawigacji</string>
<string name="navigation_drawer_close">Zamknij panel nawigacji</string>
+ <string name="hint_search_deck">Szukaj tablicy</string>
<string name="simple_boards">Tablice</string>
<string name="simple_add">Dodaj</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Skopiowano</string>
<string name="simple_archive">Archiwizuj</string>
<string name="simple_unassigned">Nieprzypisane</string>
+ <string name="hint_error_appeared">Wystąpił błąd</string>
<string name="edit_board">Edytuj tablicę</string>
<string name="archive_board">Zarchiwizuj tablicę</string>
@@ -154,7 +156,7 @@
<string name="hours_6">6 godzin</string>
<string name="action_card_move">Przenieś kartę</string>
<string name="action_card_move_title">Przenieś %1$s</string>
- <string name="title_is_mandatory">Tytuł jest obowiązkowy</string>
+ <string name="title_is_mandatory">Tytuł jest wymagany</string>
<string name="provide_at_least_a_title_or_description">Podaj co najmniej tytuł lub opis</string>
<string name="welcome_text">Witamy w %1$s</string>
<string name="maintenance_mode_explanation">Serwer %1$s jest obecnie w trybie konserwacji. Skontaktuj się z administratorem lub spróbuj ponownie później.</string>
@@ -291,7 +293,7 @@
<string name="single_card">Pojedyncza karta</string>
<string name="project_type_room">Pokój rozmów</string>
<string name="simple_move">Przenieś</string>
- <string name="cannot_upload_files_without_permission">Nie można wysyłać plików bez uprawnienia</string>
+ <string name="cannot_upload_files_without_permission">Nie można przesłać plików bez uprawnień</string>
<string name="clone_cards">Klonuj karty</string>
<string name="simple_clone">Klonuj</string>
<string name="user_avatar">Awatar użytkownika</string>
@@ -324,4 +326,7 @@
<string name="copying_logs_to_file">Kopiowanie logów do pliku…</string>
<string name="account_imported">Konto zaimportowane</string>
<string name="simple_search">Szukaj</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Tytuł (wymagane)</string>
+ <string name="saving_new_card">Zapisuję nową kartę…</string>
</resources>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 468f1ced4..8069cf78e 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Abra a gaveta de navegação</string>
<string name="navigation_drawer_close">Fechar a gaveta de navegação</string>
+ <string name="hint_search_deck">Deck de pesquisa </string>
<string name="simple_boards">Quadros</string>
<string name="simple_add">Adicionar</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Copiado</string>
<string name="simple_archive">Arquivados</string>
<string name="simple_unassigned">Não atribuído</string>
+ <string name="hint_error_appeared">Um erro apareceu </string>
<string name="edit_board">Editar painel</string>
<string name="archive_board">Arquivar painel</string>
@@ -150,7 +152,7 @@
<string name="hours_6">6 horas</string>
<string name="action_card_move">Mover cartão</string>
<string name="action_card_move_title">Mover %1$s</string>
- <string name="title_is_mandatory">O título é obrigatório</string>
+ <string name="title_is_mandatory">O Título é obrigatório </string>
<string name="provide_at_least_a_title_or_description">Forneça ao menos um título ou descrição</string>
<string name="welcome_text">Bem-vindo ao %1$s</string>
<string name="maintenance_mode_explanation">O servidor %1$s está no modo de manutenção. Entre em contato com o administrador ou tente novamente mais tarde.</string>
@@ -214,7 +216,7 @@
<string name="error_dialog_tip_database_upgrade_failed">A atualização do banco de dados falhou. Relate o problema e limpe o armazenamento para usar o aplicativo normalmente.</string>
<string name="error_dialog_tip_clear_storage">Você pode limpar o armazenamento abrindo as informações do aplicativo e selecionando Armazenamento → Limpar Armazenamento</string>
<string name="error_dialog_tip_files_outdated">Seu aplicativo Nextcloud parece estar desatualizado. Visite a Play Store ou o F-Droid para obter a versão mais recente.</string>
- <string name="error_dialog_tip_offline">Parece que você tentou desencadear uma sincronização sem uma conexão com a internet.</string>
+ <string name="error_dialog_tip_offline">Parece que você tentou iniciar uma sincronização sem uma conexão com a internet.</string>
<string name="error_dialog_tip_sync_only_on_wifi">Se você habilitou a configuração \"Sincronizar apenas em Wi-Fi\", você só poderá sincronizar quando estiver conectado a um Wi-Fi.</string>
<string name="error_dialog_tip_files_force_stop">Parece que algo está errado com seu aplicativo Nextcloud. Tente forçar a parada de ambos, o aplicativo Nextcloud e o Nextcloud Deck.</string>
<string name="error_dialog_tip_files_delete_storage">Se forçar a parada deles não resolver, tente limpar o armazenamento dos dois aplicativos.</string>
@@ -283,7 +285,7 @@
<string name="single_card">Cartão único</string>
<string name="project_type_room">Sala de conversação</string>
<string name="simple_move">Mover</string>
- <string name="cannot_upload_files_without_permission">Não é possível fazer envio de arquivos sem permissão </string>
+ <string name="cannot_upload_files_without_permission">Não é possível enviar arquivos sem permissão</string>
<string name="clone_cards">Clonar cartões</string>
<string name="simple_clone">Clonar</string>
<string name="user_avatar">Avatar do usuário</string>
@@ -316,4 +318,7 @@
<string name="copying_logs_to_file">Copiando registros para o arquivo…</string>
<string name="account_imported">Conta importada</string>
<string name="simple_search">Pesquisar</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Título (obrigatório) </string>
+ <string name="saving_new_card">Salvando novo cartão…</string>
</resources>
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index cddb4adba..548bcea7c 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Deschideți sertarul de navigare</string>
<string name="navigation_drawer_close">Închideți sertarul de navigare</string>
-
<string name="simple_boards">Panouri </string>
<string name="simple_add">Adaugă</string>
<string name="simple_save">Salvează</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Copiat</string>
<string name="simple_archive">Arhivă</string>
<string name="simple_unassigned">Nealocat</string>
-
<string name="edit_board">Editează panou</string>
<string name="archive_board">Arhivează panou</string>
<string name="delete_board">Șterge panou</string>
@@ -122,7 +120,9 @@
<string name="settings_theme_title">Teme</string>
<string name="settings_branding_title">Branding</string>
<string name="settings_compact_title">Mod compact</string>
+ <string name="settings_cover_images_title">Imagine de copertă </string>
<string name="settings_debugging">Log-uri depanare</string>
+ <string name="settings_etags">Folosește Etag-uri</string>
<string name="settings_etags_summary">Creste viteza de sincronizare</string>
<string name="settings_background_sync">Sincronizare de fundal</string>
<string name="settings_compress_image_attachments">Comprimă imaginile la urcare</string>
@@ -145,12 +145,11 @@
<string name="no_content">Nu există conținut încă</string>
<string name="last_background_sync">Ultima sincronizare de fundal:</string>
<string name="simple_off">Oprit</string>
- <string name="minutes_15">15 Minute</string>
- <string name="hour_1">1 Oră</string>
- <string name="hours_6">6 Ore</string>
+ <string name="minutes_15">15 minute</string>
+ <string name="hour_1">1 oră</string>
+ <string name="hours_6">6 ore</string>
<string name="action_card_move">Mută card</string>
<string name="action_card_move_title">Mută %1$s</string>
- <string name="title_is_mandatory">Titlul este obligatoriu</string>
<string name="provide_at_least_a_title_or_description">Furnizați cel puțin un titlu sau o descriere</string>
<string name="welcome_text">Bine venit la %1$s</string>
<string name="maintenance_mode_explanation">Serverul %1$s este în prezent în modul de mentenanță. Vă rugăm să contactați administratorul sau să încercați din nou mai târziu.</string>
@@ -231,6 +230,7 @@
<string name="error_dialog_user_not_found_in_database">Utilizatorul actual nu se potrivește cu cel pe care îl avem în baza noastră de date. Dacă utilizați LDAP în instanța dvs. Nextcloud, este posibil ca aplicația dvs. Nextcloud să fi stocat un vechi ID de utilizator.</string>
<string name="error_dialog_capabilities_not_parsable">Nu am putut prelua capacitățile serverului dvs. Vă rugăm să vă asigurați că serverul dvs. funcționează bine și că alte aplicații client pot accesa Nextcloud.</string>
<string name="error_dialog_attachment_upload_failed">Un atașament nu a putut fi încărcat. Vă rugăm să încercați să îl partajați într-un alt mod și să ne informați despre această eroare.</string>
+ <string name="error_dialog_certificate">Ceva pare să fie în neregulă cu certificatul serverului. Te rog verifică toate conturile de Nextcloud app pentru mai multe informații.</string>
<string name="error_dialog_tip_disable_battery_optimizations">Vă rugăm să dezactivați toate optimizările bateriei pentru Nextcloud și aplicația Deck.</string>
<string name="error_action_open_deck_info">Deschide info-ul aplicației </string>
<string name="error_action_open_nextcloud_app">Deschide app-ul Nextcolud</string>
@@ -238,8 +238,10 @@
<string name="error_action_server_logs">Log-urile serverului</string>
<string name="error_action_install">Instalează</string>
<string name="error_action_report_issue">Raport</string>
+ <string name="info_box_maintenance_mode">Serverul este în modul mentenanță. </string>
<string name="info_box_version_not_supported">Versiune de server %1$s nesuportată, vă rugăm să actualizați la%2$s</string>
<string name="share_link">Partajează link-ul</string>
+ <string name="share_content">Distribuie conținut </string>
<string name="archive_cards">Arhivează carduri</string>
<string name="manage_accounts">Administrează conturi</string>
@@ -304,4 +306,5 @@
<string name="simple_order">Ordine</string>
<string name="edit_description">Editează descriere</string>
<string name="widget_upcoming_title">Carduri viitoare</string>
+ <string name="app_logo">Logo-ul aplicației </string>
</resources>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1272d7753..990f031bf 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Открыть панель навигации</string>
<string name="navigation_drawer_close">Закрыть панель навигации</string>
-
<string name="simple_boards">Доски</string>
<string name="simple_add">Добавить</string>
<string name="simple_save">Сохранить</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Скопировано</string>
<string name="simple_archive">Переместить в архив</string>
<string name="simple_unassigned">не назначен</string>
-
<string name="edit_board">Редактировать доску</string>
<string name="archive_board">Переместить доску в архив</string>
<string name="delete_board">Удалить доску</string>
@@ -149,12 +147,8 @@
<string name="no_content">Содержимого ещё нет</string>
<string name="last_background_sync">Последняя фоновая синхронизация:</string>
<string name="simple_off">Отключены</string>
- <string name="minutes_15">15 минут</string>
- <string name="hour_1">1 час</string>
- <string name="hours_6">6 часов</string>
<string name="action_card_move">Переместить карточку</string>
<string name="action_card_move_title">Перемещение %1$s</string>
- <string name="title_is_mandatory">Требуется указать заголовок</string>
<string name="provide_at_least_a_title_or_description">Создайте заголовок или описание</string>
<string name="welcome_text">Добро пожаловать в %1$s</string>
<string name="maintenance_mode_explanation">Сервер %1$s в режиме обслуживания. Свяжитесь с вашим администратором или повторите попытку позже.</string>
@@ -289,7 +283,6 @@
<string name="single_card">Отдельная карточка</string>
<string name="project_type_room">Комната конференции</string>
<string name="simple_move">Переместить</string>
- <string name="cannot_upload_files_without_permission">Отсутствуют права для загрузки файла</string>
<string name="clone_cards">Скопировать карточку</string>
<string name="simple_clone">Скопировать</string>
<string name="user_avatar">Изображение профиля</string>
@@ -322,4 +315,4 @@
<string name="copying_logs_to_file">Копирование журналов в файл…</string>
<string name="account_imported">Аккаунт импортирован</string>
<string name="simple_search">Поиск</string>
-</resources>
+ </resources>
diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml
index 37ba5ec6f..bbd3f9952 100644
--- a/app/src/main/res/values-sc/strings.xml
+++ b/app/src/main/res/values-sc/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Aberi su calàsciu de navigatzione</string>
<string name="navigation_drawer_close">Serra su calàsciu de navigatzione</string>
+ <string name="hint_search_deck">Chirca deck</string>
<string name="simple_boards">Tabellas</string>
<string name="simple_add">Agiunghe</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Copiadu</string>
<string name="simple_archive">Archìviu</string>
<string name="simple_unassigned"> No assignadu</string>
+ <string name="hint_error_appeared">Ddoe at àpidu un errore</string>
<string name="edit_board">Compila tabellone</string>
<string name="archive_board">Archìvia tabella</string>
@@ -120,6 +122,9 @@
<string name="settings_theme_title">Tema</string>
<string name="settings_branding_title">Marca</string>
<string name="settings_compact_title">Modalidade cumpata</string>
+ <string name="settings_cover_images_title">Cua imàgines</string>
+ <string name="settings_debugging">Registros de debug</string>
+ <string name="settings_etags">Imprea etichetas de identidade</string>
<string name="settings_background_sync">Sincronizatzione isfundu</string>
<string name="pref_value_wifi_and_mobile">Sincroniza in Wi-Fi e datos mòbiles</string>
<string name="pref_value_wifi_only">Sincroniza isceti in Wi-Fi</string>
@@ -138,12 +143,11 @@
<string name="no_content">Perunu cuntenutu ancora</string>
<string name="last_background_sync">Ùrtima sincronizatzione in background:</string>
<string name="simple_off">Istudadu</string>
- <string name="minutes_15">15 Minutos</string>
- <string name="hour_1">1 Ora</string>
- <string name="hours_6">6 Oras</string>
+ <string name="minutes_15">15 minutos</string>
+ <string name="hours_6">6 oras</string>
<string name="action_card_move">Tràmuda ischeda</string>
<string name="action_card_move_title">Tràmuda %1$s</string>
- <string name="title_is_mandatory">Su tìtulu est obligatòriu</string>
+ <string name="title_is_mandatory">Su tìtulu est rechertu</string>
<string name="provide_at_least_a_title_or_description">Fruni a su mancu unu tìtulu e una descritzione</string>
<string name="welcome_text">Ti donamus sa benebènnida in %1$s</string>
<string name="maintenance_mode_explanation">Su serbidore %1$s immoe est in modalidade de mantenidura. Pro praghere, cuntata a s\'amministradore tuo o proa prus a tardu.</string>
@@ -178,7 +182,7 @@
<string name="archived_cards">Ischedas archiviadas</string>
<string name="action_card_dearchive">Annulla archiviamentu ischeda</string>
<string name="action_archived_cards">Isfògia ischedas archiviadas</string>
- <string name="attachment_already_exists">Alligongiadu esistit giai</string>
+ <string name="attachment_already_exists">S\'alligongiadu esistit giai</string>
<string name="pick_custom_color">Sèbera colore personalizadu</string>
<string name="manage_tags">Gesti etichetas</string>
<string name="add_tag">Agiunghe eticheta</string>
@@ -197,6 +201,7 @@
<string name="operation_not_yet_supported">Ancora non suportadu</string>
<string name="error_revoking_ac">Errore boghende s\'atzessu a %1$s</string>
<string name="error_create_label">Errore creende eticheta%1$s</string>
+ <string name="maintenance_mode">Su serbidore est in modalidade de mantenidura</string>
<string name="server_error">Errore serbidore</string>
<string name="error_edit_activity_killed_by_android">Android at agabbadu sa modalidade de modìfica ca rechediat prus risorsas de sistema pro àteras aplicatziones.</string>
@@ -223,12 +228,17 @@
<string name="error_dialog_attachment_upload_failed">Un\'alligongiadu diat pòdere no èssere istadu carrigadu. Pro praghere, proa a ddu cumpartzire in un\'àtera manera e faghe·nos ìschere de su problema.</string>
<string name="error_dialog_tip_disable_battery_optimizations">Pro praghere, disativa totu is funtziones de rispàrmiu de sa bateria pro Nextcloud e s\'aplicatzione Deck.</string>
<string name="error_action_open_deck_info">Aberi informatziones de aplicatzione</string>
+ <string name="error_action_open_nextcloud_app">Aberi s\'aplicatzione Nextcloud</string>
<string name="error_action_open_network">Impostatziones rete</string>
<string name="error_action_server_logs">Log Serbidore</string>
<string name="error_action_install">Installa</string>
<string name="error_action_report_issue">Sinnala</string>
+ <string name="info_box_maintenance_mode">Su serbidore est in modalidade de mantenidura</string>
<string name="info_box_version_not_supported">Versione de su serbidore %1$s non suportada, agiornala a %2$s</string>
<string name="share_link">Cumpartzi su ligòngiu</string>
+ <string name="share_content">Cumpartzi cuntenutu</string>
+ <string name="share_content_duedate">Data de iscadèntzia: %1$s</string>
+ <string name="share_content_labels">Etichetas: %1$s</string>
<string name="archive_cards">Archìvia is ischedas</string>
<string name="manage_accounts">Gesti is contos</string>
@@ -267,6 +277,7 @@
<string name="single_card">Ischeda sìngula</string>
<string name="project_type_room">Istantza de Talk</string>
<string name="simple_move">Tràmuda</string>
+ <string name="cannot_upload_files_without_permission">Non faghet a carrigare archìvios sena permissos</string>
<string name="clone_cards">Clona ischeda</string>
<string name="simple_clone">Clona</string>
<string name="user_avatar">Avatar de s\'utente</string>
@@ -291,4 +302,9 @@
<string name="simple_order">Ordinamentu</string>
<string name="edit_description">Modìfica descritzione</string>
<string name="widget_upcoming_title">Ischedas imbenientes</string>
- </resources>
+ <string name="account_imported">Contu importadu</string>
+ <string name="simple_search">Chirca</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Tìtulu (rechertu)</string>
+ <string name="saving_new_card">Sarvende s\'ischeda noa...</string>
+</resources>
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 9fd630590..2bc9e42d7 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">Otvoriť navigačný panel</string>
<string name="navigation_drawer_close">Zavrieť navigačný panel</string>
+ <string name="hint_search_deck">Vyhľadávací panel</string>
<string name="simple_boards">Nástenky</string>
<string name="simple_add">Pridať</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">Skopírované</string>
<string name="simple_archive">Archivovať</string>
<string name="simple_unassigned">Nepriradený</string>
+ <string name="hint_error_appeared">Vyskytla sa chyba</string>
<string name="edit_board">Upraviť nástenku</string>
<string name="archive_board">Archivovať nástenku</string>
@@ -103,6 +105,7 @@
<string name="no_lists_yet">Zatiaľ žiadne zoznamy</string>
<string name="do_you_want_to_save_your_changes">Chcete uložiť zmeny?</string>
<string name="do_you_want_to_archive_all_cards_of_the_list">Chcete archivovať všetky karty z %1$s?</string>
+ <string name="do_you_want_to_archive_all_cards_of_the_filtered_list">Chcete archivovať všetky vyfiltrované karty z %1$s?</string>
<plurals name="do_you_want_to_delete_the_current_list">
<item quantity="one">Týmto sa natrvalo odstráni %1$d karta z tohto zoznamu.</item>
<item quantity="few">Týmto sa natrvalo odstránia všetky %1$d karty z tohto zoznamu.</item>
@@ -117,12 +120,27 @@
</plurals>
<string name="add_a_new_list_using_the_button">Pridajte nový zoznam pomocou tlačidla +</string>
<string name="add_a_new_card_using_the_button">Pridajte novú kartu pomocou tlačidla +</string>
+ <string name="update_deck">Aktualizovať Panel webovej aplikácie</string>
+ <string name="deck_outdated_please_update">Verzia vášho balíčka je príliš stará (%1$s). Ak chcete túto aplikáciu pre Android používať ako klienta, aktualizujte ju.</string>
<string name="delete_board_message">Táto nástenka sa natrvalo odstráni, vrátane všetkých zoznamov a kariet.</string>
+ <string name="settings_theme_title">Vzhľad</string>
<string name="settings_branding_title">Použitie vlastného loga</string>
<string name="settings_compact_title">Kompaktný režim</string>
+ <string name="settings_cover_images_title">Titulný obrázok</string>
+ <string name="settings_debugging">Ladiaci záznam</string>
+ <string name="settings_etags">Použiť ETagy</string>
+ <string name="settings_etags_summary">Urýchliť synchronizáciu</string>
<string name="settings_background_sync">Synchronizácia na pozadí</string>
+ <string name="settings_compress_image_attachments">Komprimovať obázky pri nahrávaní</string>
+ <string name="search_in">Hľadať v %1$s</string>
+ <string name="settings_compress_image_attachments_summary">Rýchlejšie nahrávanie, menšia kvalita</string>
<string name="pref_value_wifi_and_mobile">Synchronizovať na Wi-Fi a mobilných dátach</string>
<string name="pref_value_wifi_only">Synchronizovať len na Wi-Fi</string>
+ <string-array name="darkmode_entries">
+ <item>Predvolené systémom</item>
+ <item>Svetlé</item>
+ <item>Tmavé</item>
+ </string-array>
<string name="unassigned_user">Nepriradené %1$s</string>
<string name="no_activities">Na tejto karte nie sú žiadne aktivity. Na načítanie a zobrazenie aktivít musíte byť pripojení k internetu.</string>
<string name="share_board">Zdieľať nástenku</string>
@@ -138,7 +156,7 @@
<string name="hours_6">6 hodín</string>
<string name="action_card_move">Presunúť kartu</string>
<string name="action_card_move_title">Preusnúť %1$s</string>
- <string name="title_is_mandatory">Názov je povinný</string>
+ <string name="title_is_mandatory">Titulok je povinný</string>
<string name="provide_at_least_a_title_or_description">Uveďte aspoň názov alebo popis</string>
<string name="welcome_text">Vitajte v %1$s</string>
<string name="maintenance_mode_explanation">Server %1$s je v móde údržby. Kontaktujte svojho správcu alebo to skúste znova neskôr.</string>
@@ -161,9 +179,11 @@
<string name="filter_no_filter">Všetko</string>
<string name="filter_overdue">Po termíne</string>
<string name="filter_today">Dnes</string>
+ <string name="filter_tomorrow">Zajtra</string>
<string name="filter_week">Následujúcich 7 dní</string>
<string name="filter_month">Následujúcich 30 dní</string>
<string name="filter_no_due">Bez termínu</string>
+ <string name="filter_later">Neskôr</string>
<string name="filter_by_tag">Filtrovať podľa štítkov</string>
<string name="filter_by_assigned_user">Filtrovať podľa priradeného používateľa</string>
<string name="filter_by_duedate">Filtrovať podľa termínu</string>
@@ -190,6 +210,7 @@
<string name="operation_not_yet_supported">Zatiaľ nepodporované</string>
<string name="error_revoking_ac">Chyba pri zrušení prístupu pre %1$s</string>
<string name="error_create_label">Pri vytváraní označenia %1$s sa vyskytla chyba</string>
+ <string name="maintenance_mode">Server je v móde údržby</string>
<string name="server_error">Chyba servera</string>
<string name="error_edit_activity_killed_by_android">Android ukončil úpravy, pretože viac systémových prostriedkov potreboval pre ďalšie aplikácie.</string>
@@ -199,6 +220,8 @@
<string name="error_dialog_tip_database_upgrade_failed">Aktualizácia databázy zlyhala. Nahláste problém a vymažte ukladací priestor, aby ste aplikáciu mohli normálne používať.</string>
<string name="error_dialog_tip_clear_storage">Úložisko môžete vyčistiť otvorením informácii o aplikácii a výberom Úložisko → Vyčistiť úložisko.</string>
<string name="error_dialog_tip_files_outdated">Váš Nextcloud vyzerá byť zastaralý. Navštívte Play Store alebo F-Droid pre získanie najnovšej verzie.</string>
+ <string name="error_dialog_tip_offline">Vyzerá, že sa snažíte spustiť synchronizáciu bez pripojenia k internetu.</string>
+ <string name="error_dialog_tip_sync_only_on_wifi">Ak máte aktivovanú \"Synchronizáciu iba na Wi-Fi\", môžete synchronizovať iba ak ste pripojený k Wi-Fi sieti.</string>
<string name="error_dialog_tip_files_force_stop">Zdá sa, že s Nextcloudom niečo nie je v poriadku. Pokúste sa vynútiť zastavenie aplikácie Nextcloud aj aplikácie Nextcloud Deck.</string>
<string name="error_dialog_tip_files_delete_storage">Ak ich ukončenie nepomôže, môžete skúsiť vyčistiť úložiská oboch aplikácií.</string>
<string name="error_dialog_timeout_instance">Server dlho neodpovedal. Uistite sa, vami využívaná inštancia funguje dobre.</string>
@@ -214,14 +237,20 @@
<string name="error_dialog_user_not_found_in_database">Aktuálny používateľ sa nezhoduje s používateľom, ktorý máme v našej databáze. Ak používate server LDAP vo vašej inštancii Nextcloud, vaša aplikácia Nextcloud pravdepodobne uložila staré ID používateľa.</string>
<string name="error_dialog_capabilities_not_parsable">Nepodarilo sa načítať možnosti vášho servera. Uistite sa, že váš server funguje správne a že ďalšie klientske aplikácie majú prístup k serveru Nextcloud.</string>
<string name="error_dialog_attachment_upload_failed">Prílohu nebolo možné nahrať. Skúste to zdieľať iným spôsobom a dajte nám vedieť o tejto chybe.</string>
+ <string name="error_dialog_certificate">Niečo sa pokazilo s certifikátom servera. Prosím skontrolujte všetky účty v Nextcloud aplikácii pre ďalšie informácie.</string>
<string name="error_dialog_tip_disable_battery_optimizations">Vypnite všetky optimalizácie batérie pre aplikácie Nextcloud a Deck.</string>
<string name="error_action_open_deck_info">Otvoriť informácie o aplikácii</string>
+ <string name="error_action_open_nextcloud_app">Otvoriť aplikáciu Nextcloud</string>
<string name="error_action_open_network">Nastavenia siete</string>
<string name="error_action_server_logs">Záznamy udalostí na serveri</string>
<string name="error_action_install">Inštalovať</string>
<string name="error_action_report_issue">Hlásenie</string>
+ <string name="info_box_maintenance_mode">Server je v móde údržby</string>
<string name="info_box_version_not_supported">Verzia servera %1$s nie je podporovaná, aktualizujte ju na %2$s</string>
<string name="share_link">Sprístupniť odkaz</string>
+ <string name="share_content">Zdieľať obsah</string>
+ <string name="share_content_duedate">K dátumu: %1$s</string>
+ <string name="share_content_labels">Tagy: %1$s</string>
<string name="archive_cards">Archivovať karty</string>
<string name="manage_accounts">Spravovať účty</string>
@@ -246,7 +275,9 @@
<string name="card_does_not_yet_exist">Karta ešte na nástenke neexistuje</string>
<string name="widget_stack_title">Zoznam</string>
+ <string name="widget_filter_title">Filter</string>
<string name="widget_stack_header_icon">Ikona hlavičky miniaplikácie</string>
+ <string name="widget_placeholder_icon">Ikona zástupného symbolu miniaplikácie</string>
<string name="select_stack">Vyberte zoznam</string>
<string name="project_type_deck_board">Palubná doska</string>
<string name="project_type_deck_card">Palubná karta</string>
@@ -262,4 +293,40 @@
<string name="single_card">Jedna karta</string>
<string name="project_type_room">Diskusná miestnosť</string>
<string name="simple_move">Presunúť</string>
- </resources>
+ <string name="cannot_upload_files_without_permission">Nie je možné nahrávať súbory bez povolenia</string>
+ <string name="clone_cards">Duplikovať karty</string>
+ <string name="simple_clone">Duplikovať</string>
+ <string name="user_avatar">Avatar užívateľa</string>
+ <string name="simple_unassign">Zrušiť priradenie</string>
+ <string name="simple_contact">Kontakt</string>
+ <string name="simple_file">Súbor</string>
+ <string name="simple_camera">Kamera</string>
+ <string name="take_photo">Urobiť fotografiu</string>
+ <string name="take_photo_switch_camera">Prepnúť kameru</string>
+ <string name="take_photo_toggle_torch">Prepnúť baterku</string>
+ <string name="show_all_contacts">Zobraziť všetky kontakty</string>
+ <string name="show_all_files">Zobraziť všetky súbory</string>
+ <string name="recent">Nedávne</string>
+ <string name="upload_a_new_attachment">Nahrať novú prílohu</string>
+ <string name="contacts">Kontakty</string>
+ <string name="downloads">Sťahovania</string>
+ <string name="files">Súbory</string>
+ <string name="gallery">Galéria</string>
+ <string name="simple_attach">priložiť</string>
+ <string name="add_stack_widget">Pridať ovládací prvok zoznamu</string>
+ <string name="add_filter_widget">Pridať ovládací prvok filteru</string>
+ <string name="simple_order">Zoradiť</string>
+ <string name="edit_description">Upraviť popis</string>
+ <string name="widget_upcoming_title">Nadchádzajúce karty</string>
+ <!-- Category header for a section in the settings which contain features for advanced users -->
+ <string name="simple_expert_settings">Expertné nastavenia</string>
+ <string name="copy_logs">Skopírovať logy do schránky</string>
+ <string name="app_logo">Logo aplikácie</string>
+ <string name="log_file">Logovací súbor</string>
+ <string name="copying_logs_to_file">Kopírujem logy do súboru...</string>
+ <string name="account_imported">Účet naimportovaný</string>
+ <string name="simple_search">Hľadať</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Titulok (povinné)</string>
+ <string name="saving_new_card">Ukladám novú kartu...</string>
+</resources>
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index f55caf3ed..3d519173a 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Odpri bočno okno</string>
<string name="navigation_drawer_close">Zapri bočno okno</string>
-
<string name="simple_boards">Zbirke</string>
<string name="simple_add">Dodaj</string>
<string name="simple_save">Shrani</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Kopirano!</string>
<string name="simple_archive">Arhiv</string>
<string name="simple_unassigned">Nedodeljeno</string>
-
<string name="edit_board">Uredi zbirko</string>
<string name="archive_board">Arhiviraj zbirko</string>
<string name="delete_board">Izbriši zbirko</string>
@@ -154,7 +152,6 @@
<string name="hours_6">6 ur</string>
<string name="action_card_move">Premakni nalogo</string>
<string name="action_card_move_title">Premakni %1$s</string>
- <string name="title_is_mandatory">Naslov je obvezen</string>
<string name="provide_at_least_a_title_or_description">Vpisati je treba vsaj naslov oziroma opis</string>
<string name="welcome_text">Dobrodošli v %1$s</string>
<string name="maintenance_mode_explanation">Strežnik %1$s je trenutno v načinu vzdrževanja. Stopite v stik s skrbnikom, ali pa poskusite kasneje.</string>
@@ -324,4 +321,5 @@
<string name="copying_logs_to_file">Poteka kopiranje datotek dnevnikov ...</string>
<string name="account_imported">Račun je uvožen</string>
<string name="simple_search">Poišči</string>
+ <string name="saving_new_card">Shranjevanje nove naloge...</string>
</resources>
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 6144dc8b1..c0b630c6c 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Отвори навигациону фиоку</string>
<string name="navigation_drawer_close">Затвори навигациону фиоку</string>
-
<string name="simple_boards">Табле</string>
<string name="simple_add">Додај</string>
<string name="simple_save">Сачувај</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Копирано</string>
<string name="simple_archive">Архива</string>
<string name="simple_unassigned">Недодељен</string>
-
<string name="edit_board">Измени таблу</string>
<string name="archive_board">Архивирај таблу</string>
<string name="delete_board">Избриши таблу</string>
@@ -138,12 +136,8 @@
<string name="no_content">Још нема садржаја</string>
<string name="last_background_sync">Последња синх.:</string>
<string name="simple_off">Искључена</string>
- <string name="minutes_15">15 минута</string>
- <string name="hour_1">1 сат</string>
- <string name="hours_6">6 сати</string>
<string name="action_card_move">Премести картицу</string>
<string name="action_card_move_title">Премести %1$s</string>
- <string name="title_is_mandatory">Наслов је обавезан</string>
<string name="provide_at_least_a_title_or_description">Дајте бар наслов или опис</string>
<string name="welcome_text">Добродошли у %1$s</string>
<string name="maintenance_mode_explanation">Сервер %1$s је тренутно у режиму одржавања. Контактирајте администратора или покушајте касније.</string>
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 091904967..32b25dd45 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Öppna navigeringspanelen</string>
<string name="navigation_drawer_close">Stäng navigeringslådan</string>
-
<string name="simple_boards">Tavlor</string>
<string name="simple_add">Lägg till</string>
<string name="simple_save">Spara</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Kopierad</string>
<string name="simple_archive">Arkivera</string>
<string name="simple_unassigned">Ej tilldelad</string>
-
<string name="edit_board">Ändra tavla</string>
<string name="archive_board">Arkivera tavla</string>
<string name="delete_board">Ta bort tavla</string>
@@ -129,19 +127,15 @@
<string name="unassigned_user">Tog bort tilldelning %1$s</string>
<string name="no_activities">Det finns inga aktiviteter på det här kortet. Du måste vara ansluten till internet för att läsa in och visa aktiviteter.</string>
<string name="share_board">Dela tavla</string>
- <string name="you_are_currently_offline">Du är för närvarande offline</string>
+ <string name="you_are_currently_offline">Du är för närvarande frånkopplad</string>
<string name="you_have_to_be_connected_to_the_internet_in_order_to_add_an_account">Du måste vara ansluten till internet för att lägga till ett konto.</string>
<string name="owner">Ägare</string>
<string name="attachment_delete_message">Detta kommer att radera den här bilagan permanent.</string>
<string name="no_content">Inget innehåll än</string>
<string name="last_background_sync">Senaste bakgrundssynk:</string>
<string name="simple_off">Av</string>
- <string name="minutes_15">15 minuter</string>
- <string name="hour_1">1 timme</string>
- <string name="hours_6">6 timmar</string>
<string name="action_card_move">Flytta kort</string>
<string name="action_card_move_title">Flytta %1$s</string>
- <string name="title_is_mandatory">Titel är obligatorisk</string>
<string name="provide_at_least_a_title_or_description">Ange åtminstone en titel eller beskrivning</string>
<string name="welcome_text">Välkommen till %1$s</string>
<string name="maintenance_mode_explanation">Servern %1$s är för närvarande i underhållsläge. Kontakta din administratör eller försök igen senare.</string>
@@ -250,7 +244,7 @@
<string name="widget_stack_header_icon">Ikon för widgetens sidhuvud</string>
<string name="select_stack">Välj lista</string>
<string name="project_type_deck_board">Deck-plank</string>
- <string name="project_type_deck_card">Deck-kort</string>
+ <string name="project_type_deck_card">Kortlek-kort</string>
<string name="project_type_file">Fil</string>
<string name="projects_title">Projekt</string>
<plurals name="resources_count">
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index f6a834eec..4681e76a5 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -1,11 +1,12 @@
<resources>
<string name="navigation_drawer_open">Gezinme çekmecesini aç</string>
<string name="navigation_drawer_close">Gezinme çekmecesini kapat</string>
+ <string name="hint_search_deck">Tahta ara</string>
- <string name="simple_boards">Katlar</string>
+ <string name="simple_boards">Kartlar</string>
<string name="simple_add">Ekle</string>
<string name="simple_save">Kaydet</string>
- <string name="simple_more">Daha Fazla</string>
+ <string name="simple_more">Diğer</string>
<string name="simple_title">Başlık</string>
<string name="simple_copy">kopyala</string>
<string name="simple_synchronization">Eşitleme</string>
@@ -26,17 +27,18 @@
<string name="simple_undo">Geri al</string>
<string name="simple_manage">yönet</string>
<string name="simple_share">paylaş</string>
- <string name="simple_select">Seçin</string>
+ <string name="simple_select">Seç</string>
<string name="simple_comment">Açıklama</string>
<string name="simple_disabled">devre dışı</string>
<string name="simple_copied">Kopyalandı</string>
<string name="simple_archive">Arşivle</string>
<string name="simple_unassigned">Atanmamış</string>
+ <string name="hint_error_appeared">Bir sorun çıktı</string>
<string name="edit_board">Panoyu düzenle</string>
<string name="archive_board">Panoyu arşivle</string>
<string name="delete_board">Panoyu sil</string>
- <string name="delete_something">%1$s Sil</string>
+ <string name="delete_something">%1$s sil</string>
<string name="about">Hakkında</string>
<string name="about_version_title">Sürüm</string>
@@ -60,12 +62,12 @@
<string name="about_icons_disclaimer_app_icon">Özgün simge için %1$s üzerine bakın.</string>
<string name="about_icons_disclaimer_mdi_icons">Bu uygulama tarafından kullanılan tüm simgeler %1$s Google Inc. tarafından oluşturulmuştur ve Apache 2.0 Lisansı koşullarına göre lisanslanmıştır.</string>
<string name="about_icons_disclaimer_mdi">Material Design Icons</string>
- <string name="about_credits_tab_title">Emeği Geçenler</string>
- <string name="about_contribution_tab_title">Katkıda Bulunanlar</string>
+ <string name="about_credits_tab_title">Emeği geçenler</string>
+ <string name="about_contribution_tab_title">Katkıda bulunanlar</string>
<string name="about_license_tab_title">Lisans</string>
<string name="seconds_ago">saniye önce</string>
<string name="edit">Düzenle</string>
- <string name="label_labels">Etiketleri Seçin</string>
+ <string name="label_labels">Etiketleri seçin</string>
<string name="label_description">Açıklama</string>
<string name="hint_assign_people">Kullanıcı ata</string>
<string name="hint_due_date_date">Bitiş tarihi</string>
@@ -131,7 +133,7 @@
<string name="pref_value_wifi_and_mobile">Wi-Fi ve mobil veri ile eşitlensin</string>
<string name="pref_value_wifi_only">Yalnız Wi-Fi ile eşitlensin</string>
<string-array name="darkmode_entries">
- <item>Sistem Varsayılanı</item>
+ <item>Sistem varsayılanı</item>
<item>Açık</item>
<item>Koyu</item>
</string-array>
@@ -145,14 +147,14 @@
<string name="no_content">Henüz bir içerik yok</string>
<string name="last_background_sync">Son arka planda eşitleme:</string>
<string name="simple_off">Kapalı</string>
- <string name="minutes_15">15 Dakika</string>
- <string name="hour_1">1 Saat</string>
- <string name="hours_6">6 Saat</string>
+ <string name="minutes_15">15 dakika</string>
+ <string name="hour_1">1 saat</string>
+ <string name="hours_6">6 saat</string>
<string name="action_card_move">Kartı taşı</string>
- <string name="action_card_move_title">%1$s Taşı</string>
+ <string name="action_card_move_title">%1$s taşı</string>
<string name="title_is_mandatory">Başlığın yazılması zorunludur</string>
<string name="provide_at_least_a_title_or_description">Lütfen en azından bir başlık ya da açıklama yazın</string>
- <string name="welcome_text">%1$s panonuza hoşgeldiniz</string>
+ <string name="welcome_text">%1$s panonuza hoş geldiniz</string>
<string name="maintenance_mode_explanation">%1$s sunucusu şu anda bakım kipinde. Lütfen yöneticinizle görüşün ya da daha sonra yeniden deneyin.</string>
<string name="share_add_to_card">Karta ekle</string>
<string name="share_success">%1$s, %2$s üzerine eklendi</string>
@@ -283,7 +285,7 @@
<string name="single_card">Tek kart</string>
<string name="project_type_room">Talk odası</string>
<string name="simple_move">Taşı</string>
- <string name="cannot_upload_files_without_permission">İzin olmadan dosya yüklenemez</string>
+ <string name="cannot_upload_files_without_permission">İzinler olmadan dosyalar yüklenemez</string>
<string name="clone_cards">Kartları kopyala</string>
<string name="simple_clone">Kopyala</string>
<string name="user_avatar">Kullanıcı avatarı</string>
@@ -316,4 +318,7 @@
<string name="copying_logs_to_file">Günlükler dosyaya kopyalanıyor…</string>
<string name="account_imported">Hesap içe aktarıldı</string>
<string name="simple_search">Arama</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">Başlık (zorunlu)</string>
+ <string name="saving_new_card">Yeni kart kaydediliyor…</string>
</resources>
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index f3dd659cc..a23db6682 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -1,7 +1,6 @@
<resources>
<string name="navigation_drawer_open">Mở ngăn điều hướng</string>
<string name="navigation_drawer_close">Đóng ngăn điều hướng</string>
-
<string name="simple_boards">Dự án</string>
<string name="simple_add">Thêm</string>
<string name="simple_save">Lưu</string>
@@ -32,7 +31,6 @@
<string name="simple_copied">Đã sao chép</string>
<string name="simple_archive">Lưu trữ</string>
<string name="simple_unassigned">Chưa được phân công</string>
-
<string name="edit_board">Chỉnh sửa dự án</string>
<string name="archive_board">Lưu trữ dự án</string>
<string name="delete_board">Xóa dự án</string>
@@ -148,7 +146,6 @@
<string name="hours_6">6 tiếng</string>
<string name="action_card_move">Di chuyển thẻ</string>
<string name="action_card_move_title">Di chuyển %1$s</string>
- <string name="title_is_mandatory">Tiêu đề là bắt buộc</string>
<string name="provide_at_least_a_title_or_description">Hãy cung cấp ít nhất là một tiêu đề hoặc mô tả</string>
<string name="welcome_text">Chào mừng đến %1$s</string>
<string name="maintenance_mode_explanation">Máy chủ %1$s hiện tại đang trong chế độ bảo trì. Vui lòng liên hệ với quản trị viên của bạn hoặc thử lại sau.</string>
@@ -312,4 +309,5 @@
<string name="copying_logs_to_file">Đang sao chép nhật ký vào tệp...</string>
<string name="account_imported">Đã nhập tài khoản</string>
<string name="simple_search">Tìm kiếm</string>
+ <string name="saving_new_card">Đang lưu thẻ mới...</string>
</resources>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 3ef896a3e..a67905445 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">打开导航条</string>
<string name="navigation_drawer_close">关闭导航条</string>
+ <string name="hint_search_deck">搜索 deck</string>
<string name="simple_boards">面板</string>
<string name="simple_add">添加</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">已复制</string>
<string name="simple_archive">归档</string>
<string name="simple_unassigned">未分配</string>
+ <string name="hint_error_appeared">发生了一个错误</string>
<string name="edit_board">编辑面板</string>
<string name="archive_board">归档面板</string>
@@ -143,9 +145,9 @@
<string name="no_content">暂无内容</string>
<string name="last_background_sync">上次后台同步时间:</string>
<string name="simple_off">关闭</string>
- <string name="minutes_15">15 分钟</string>
- <string name="hour_1">1 小时</string>
- <string name="hours_6">6 小时</string>
+ <string name="minutes_15">15 分钟 </string>
+ <string name="hour_1">1 小时 </string>
+ <string name="hours_6">6 小时 </string>
<string name="action_card_move">移动卡片</string>
<string name="action_card_move_title">移动 %1$s</string>
<string name="title_is_mandatory">标题是必需的</string>
@@ -279,7 +281,7 @@
<string name="single_card">单张卡片</string>
<string name="project_type_room">聊天室</string>
<string name="simple_move">移动</string>
- <string name="cannot_upload_files_without_permission">没有权限无法上传文件 </string>
+ <string name="cannot_upload_files_without_permission">没有权限无法上传文件</string>
<string name="clone_cards">克隆卡片</string>
<string name="simple_clone">克隆</string>
<string name="user_avatar">用户头像</string>
@@ -312,4 +314,7 @@
<string name="copying_logs_to_file">正将日志复制到文件</string>
<string name="account_imported">账户已导入</string>
<string name="simple_search">搜索</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">标题 (必填)</string>
+ <string name="saving_new_card">保存新卡片中 ...</string>
</resources>
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 7f1e6cc58..7595a0ae5 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -1,6 +1,7 @@
<resources>
<string name="navigation_drawer_open">開啟導覽列</string>
<string name="navigation_drawer_close">關閉導覽列</string>
+ <string name="hint_search_deck">搜尋看板</string>
<string name="simple_boards">面板</string>
<string name="simple_add">新增</string>
@@ -32,6 +33,7 @@
<string name="simple_copied">已複製</string>
<string name="simple_archive">封存</string>
<string name="simple_unassigned">已取消分派</string>
+ <string name="hint_error_appeared">發生錯誤</string>
<string name="edit_board">編輯面板</string>
<string name="archive_board">封存面板</string>
@@ -58,7 +60,7 @@
<string name="about_app_license_button">檢視授權條款</string>
<string name="about_icons_disclaimer_title">圖示</string>
<string name="about_icons_disclaimer_app_icon">原始圖示請見%1$s</string>
- <string name="about_icons_disclaimer_mdi_icons">此應用程序使用的所有其他圖標 %1$s 均由Google Inc。製造,並根據Apache 2.0許可獲得許可。</string>
+ <string name="about_icons_disclaimer_mdi_icons">此應用程序使用的所有其他圖標 %1$s 均由Google Inc. 製造,並根據Apache 2.0許可獲得許可。</string>
<string name="about_icons_disclaimer_mdi">Material Design 圖示</string>
<string name="about_credits_tab_title">致謝</string>
<string name="about_contribution_tab_title">貢獻</string>
@@ -143,15 +145,15 @@
<string name="no_content">目前還沒有內容</string>
<string name="last_background_sync">上次背景同步時間:</string>
<string name="simple_off">關閉</string>
- <string name="minutes_15">15 分鐘</string>
+ <string name="minutes_15">15分鐘</string>
<string name="hour_1">1 小時</string>
- <string name="hours_6">6 小時</string>
+ <string name="hours_6">6小時</string>
<string name="action_card_move">移動卡片</string>
<string name="action_card_move_title">移動 %1$s</string>
- <string name="title_is_mandatory">必須有標題</string>
+ <string name="title_is_mandatory">標題為必填</string>
<string name="provide_at_least_a_title_or_description">提供至少一個標題或描述</string>
<string name="welcome_text">歡迎來到 %1$s</string>
- <string name="maintenance_mode_explanation">伺服器 %1$s 當前處於維護模式。 請與您的管理員聯繫或再試一次。</string>
+ <string name="maintenance_mode_explanation">伺服器 %1$s 當前處於維護模式。請與您的管理員聯繫或再試一次。</string>
<string name="share_add_to_card">加到 card</string>
<string name="share_success">成功新增 %1$s 至 %2$s</string>
<string name="add_comment">增加留言</string>
@@ -207,28 +209,28 @@
<string name="error_edit_activity_killed_by_android">Android 完成了編輯模式,因為它需要更多的系統資源來服務其他應用程式。</string>
<string name="error_dialog_title">喔不 - 現在怎麼辦?🙁</string>
- <string name="error_dialog_tip_token_mismatch_retry">請嘗試強制關閉該應用,然後重新啟動。 與 Nextcloud 應用的連接可能不正確。</string>
+ <string name="error_dialog_tip_token_mismatch_retry">請嘗試強制關閉該應用,然後重新啟動。與 Nextcloud 應用的連接可能不正確。</string>
<string name="error_dialog_tip_clear_storage_might_help">如果問題仍然存在,請嘗試清除兩個應用程序的存儲:Nextcloud 和 Nextcloud Deck 以解決此問題。</string>
- <string name="error_dialog_tip_database_upgrade_failed">數據庫升級失敗。 請報告問題,並清除存儲空間以正常使用該應用程序。</string>
+ <string name="error_dialog_tip_database_upgrade_failed">數據庫升級失敗。請報告問題,並清除存儲空間以正常使用該應用程序。</string>
<string name="error_dialog_tip_clear_storage">您可以通過打開應用程式信息並選擇 存儲→清除存儲 來清除存儲。</string>
<string name="error_dialog_tip_files_outdated">您的Nextcloud應用似乎已過時。請訪問 Play Store 或 F-Droid 以獲取最新版本。</string>
<string name="error_dialog_tip_offline">似乎您試圖在沒有Internet連接的情況下觸發同步。</string>
<string name="error_dialog_tip_sync_only_on_wifi">如果啟用了“僅在Wi-Fi上同步”設置,則只能在連接到Wi-Fi時進行同步。</string>
<string name="error_dialog_tip_files_force_stop">您的 Nextcloud 應用程式似乎有問題。請嘗試強制停止 Nextcloud 應用程式和 Nextcloud Deck 應用程式。</string>
<string name="error_dialog_tip_files_delete_storage">如果強行停止它們沒有幫助,則可以嘗試清除兩個應用程式的存儲。</string>
- <string name="error_dialog_timeout_instance">在指定的時間內,您的伺服器沒有響應。 請確保您的 Nextcloud 運行良好。</string>
- <string name="error_dialog_timeout_toggle">檢查您的網絡連接。 有時候,切換流動數據或Wi-Fi可能會有所幫助。</string>
+ <string name="error_dialog_timeout_instance">在指定的時間內,您的伺服器沒有響應。請確保您的 Nextcloud 運行良好。</string>
+ <string name="error_dialog_timeout_toggle">檢查您的網絡連接。有時候,切換流動數據或Wi-Fi可能會有所幫助。</string>
<string name="error_dialog_check_server">您伺服器的回應不正確。請檢查您是否可以通過 web 界面存取看板應用程式。</string>
- <string name="error_dialog_check_server_logs">您的Nextcloud設置存在問題。 請查看伺服器記錄檔案。</string>
+ <string name="error_dialog_check_server_logs">您的Nextcloud設置存在問題。請查看伺服器記錄檔案。</string>
<string name="error_dialog_check_maintenance">請檢查您的 Nextcloud 當前是否在維護模式。</string>
<string name="error_dialog_insufficient_storage">您的 Nextcloud 沒有剩餘可用的存儲空間。請刪除一些檔案,以將近端更改同步到雲中。</string>
<string name="error_dialog_we_need_info">我們需要以下的技術資訊來幫助您:</string>
- <string name="error_dialog_redirect">您的伺服器以 HTTP 302 狀態代碼回應,這表示您尚未在伺服器上安裝 Deck 應用程式或配置錯誤。這可能是由於 。htaccess 檔案中的自定義替換或 Nextcloud 應用程式(如OID客戶端)引起的。</string>
- <string name="error_dialog_version_not_parsable">我們無法確定伺服器端 Deck 應用程式的版本。 請確保已安裝並啟用它。</string>
+ <string name="error_dialog_redirect">您的伺服器以 HTTP 302 狀態代碼回應,這表示您尚未在伺服器上安裝 Deck 應用程式或配置錯誤。這可能是由於 .htaccess 檔案中的自定義替換或 Nextcloud 應用程式(如OID客戶端)引起的。</string>
+ <string name="error_dialog_version_not_parsable">我們無法確定伺服器端 Deck 應用程式的版本。請確保已安裝並啟用它。</string>
<string name="error_dialog_account_might_not_be_authorized">您的Nextcloud應用程序賬戶可能不再被授權。</string>
- <string name="error_dialog_user_not_found_in_database">當前用戶與我們數據庫中的用戶不匹配。 如果您在 Nextcloud 實例上使用 LDAP,則 Nextcloud應用程式可能已存儲了舊的用戶ID。</string>
- <string name="error_dialog_capabilities_not_parsable">我們無法獲取您的伺服器功能。 請確保您的伺服器運行良好,並且其他客戶端應用程式能夠訪問Nextcloud。</string>
- <string name="error_dialog_attachment_upload_failed">無法上傳附件。 請嘗試以其他方式共享它,並讓我們知道此錯誤。</string>
+ <string name="error_dialog_user_not_found_in_database">當前用戶與我們數據庫中的用戶不匹配。如果您在 Nextcloud 實例上使用 LDAP,則 Nextcloud應用程式可能已存儲了舊的用戶ID。</string>
+ <string name="error_dialog_capabilities_not_parsable">我們無法獲取您的伺服器功能。請確保您的伺服器運行良好,並且其他客戶端應用程式能夠訪問Nextcloud。</string>
+ <string name="error_dialog_attachment_upload_failed">無法上傳附件。請嘗試以其他方式共享它,並讓我們知道此錯誤。</string>
<string name="error_dialog_certificate">伺服器的證書似乎有問題。請檢查 Nextcloud 應用程式中的所有賬戶,以獲取更多資訊。</string>
<string name="error_dialog_tip_disable_battery_optimizations">請禁用 Nextcloud 和 Deck 應用程式的所有電池優化。</string>
<string name="error_action_open_deck_info">開啟 App 資訊</string>
@@ -312,4 +314,7 @@
<string name="copying_logs_to_file">將記錄複製到檔案…</string>
<string name="account_imported">已導入賬戶</string>
<string name="simple_search">搜尋</string>
+ <!-- Label for a title input field that is required to be filled out -->
+ <string name="title_mandatory">標題(必填)</string>
+ <string name="saving_new_card">正在儲存新卡片...</string>
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8cacf2776..f93c984e1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -73,10 +73,6 @@
<string name="about_license_tab_title">License</string>
<string name="seconds_ago">seconds ago</string>
<string name="edit">Edit</string>
- <!-- After specifying the title of a new card, save it and then directly start it in edit mode -->
- <string name="save_and_edit">@string/edit</string>
- <!-- After specifying the title of a new card, save it and return to the list of cards -->
- <string name="save_and_close">@string/simple_save</string>
<string name="label_labels">Select Tags</string>
<string name="label_description">Description</string>
<string name="hint_assign_people">Assign users</string>
diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java
index a22e24d29..50cd2b779 100644
--- a/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java
+++ b/app/src/test/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManagerTest.java
@@ -220,15 +220,14 @@ public class SyncManagerTest {
}
@Test
- public void testCreateAccount() throws InterruptedException {
+ @SuppressWarnings("unchecked")
+ public void testCreateAccount() {
final Account account = new Account(1337L, "Test", "Peter", "example.com");
- final WrappedLiveData<Account> result = new WrappedLiveData<>();
- result.setValue(account);
- when(dataBaseAdapter.createAccount(any(Account.class))).thenReturn(result);
-
- TestUtil.getOrAwaitValue(syncManager.createAccount(account));
-
- verify(dataBaseAdapter, times(1)).createAccount(account);
+ final IResponseCallback<Account> callback = mock(IResponseCallback.class);
+ when(dataBaseAdapter.createAccountDirectly(any(Account.class))).thenReturn(account);
+ syncManager.createAccount(account, callback);
+ verify(dataBaseAdapter, times(1)).createAccountDirectly(account);
+ verify(callback, times(1)).onResponse(account);
}
@Test
diff --git a/build.gradle b/build.gradle
index ed813ac8f..df4d93fd5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,15 +1,15 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.materialVersion = "1.3.0"
+ ext.materialVersion = "1.4.0"
repositories {
google()
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.2.1'
+ classpath 'com.android.tools.build:gradle:4.2.2'
//noinspection DifferentKotlinGradleVersion
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/fastlane/metadata/android/en-US/changelogs/1019000.txt b/fastlane/metadata/android/en-US/changelogs/1019000.txt
index 0046030f3..1f7c3fd15 100644
--- a/fastlane/metadata/android/en-US/changelogs/1019000.txt
+++ b/fastlane/metadata/android/en-US/changelogs/1019000.txt
@@ -1,2 +1,5 @@
- ✏️ Remember edit / preview mode for description (#971)
-- 🖼 Support preview for images which are hosted on a Nextcloud instance (#963) \ No newline at end of file
+- 🗂 Allow to create multiple cards without loosing focus
+- 🖼 Support preview for images which are hosted on a Nextcloud instance (#963)
+- 🗑 Select neighbour list after deleting a list (#841)
+- 🐞 Fix switching automatically to newly created lists \ No newline at end of file