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

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FAQ.md25
-rw-r--r--app/build.gradle6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/LockedActivity.java9
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedActivity.java4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedDialogFragment.java8
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedPreferenceCategory.java12
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSwitchPreference.java9
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java50
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/AbstractNotesDatabase.java0
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClient.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV02.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV1.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java12
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java234
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_20_21.java232
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java31
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/model/ServerResponse.java2
-rw-r--r--app/src/main/res/drawable/ic_baseline_screen_lock_portrait_24.xml5
-rw-r--r--app/src/main/res/layout/fragment_note_edit.xml1
-rw-r--r--app/src/main/res/layout/fragment_note_preview.xml1
-rw-r--r--app/src/main/res/layout/widget_single_note_content.xml1
-rw-r--r--app/src/main/res/values-ar/strings.xml5
-rw-r--r--app/src/main/res/values-ca/strings.xml5
-rw-r--r--app/src/main/res/values-cs-rCZ/strings.xml15
-rw-r--r--app/src/main/res/values-da/strings.xml5
-rw-r--r--app/src/main/res/values-de/strings.xml11
-rw-r--r--app/src/main/res/values-el/strings.xml5
-rw-r--r--app/src/main/res/values-es/strings.xml5
-rw-r--r--app/src/main/res/values-eu/strings.xml11
-rw-r--r--app/src/main/res/values-fa/strings.xml29
-rw-r--r--app/src/main/res/values-fi-rFI/strings.xml5
-rw-r--r--app/src/main/res/values-fr/strings.xml5
-rw-r--r--app/src/main/res/values-gl/strings.xml11
-rw-r--r--app/src/main/res/values-he/strings.xml5
-rw-r--r--app/src/main/res/values-hr/strings.xml23
-rw-r--r--app/src/main/res/values-hu-rHU/strings.xml57
-rw-r--r--app/src/main/res/values-it/strings.xml8
-rw-r--r--app/src/main/res/values-ja-rJP/strings.xml7
-rw-r--r--app/src/main/res/values-ko/strings.xml5
-rw-r--r--app/src/main/res/values-lt-rLT/strings.xml5
-rw-r--r--app/src/main/res/values-nb-rNO/strings.xml5
-rw-r--r--app/src/main/res/values-nl/strings.xml11
-rw-r--r--app/src/main/res/values-pl/strings.xml13
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml11
-rw-r--r--app/src/main/res/values-ru/strings.xml5
-rw-r--r--app/src/main/res/values-sc/strings.xml6
-rw-r--r--app/src/main/res/values-sk-rSK/strings.xml5
-rw-r--r--app/src/main/res/values-sl/strings.xml8
-rw-r--r--app/src/main/res/values-sr/strings.xml5
-rw-r--r--app/src/main/res/values-sv/strings.xml5
-rw-r--r--app/src/main/res/values-tr/strings.xml11
-rw-r--r--app/src/main/res/values-uk/strings.xml5
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml11
-rw-r--r--app/src/main/res/values-zh-rHK/strings.xml23
-rw-r--r--app/src/main/res/values-zh-rTW/strings.xml32
-rw-r--r--app/src/main/res/values/dimens.xml2
-rw-r--r--app/src/main/res/values/strings.xml11
-rw-r--r--app/src/main/res/xml/preferences.xml43
-rw-r--r--build.gradle2
-rw-r--r--fastlane/metadata/android/en-US/changelogs/3002004.txt4
-rw-r--r--fastlane/metadata/android/en-US/changelogs/3002005.txt10
-rw-r--r--fastlane/metadata/android/en-US/changelogs/3003000.txt1
-rw-r--r--markdown/build.gradle2
-rw-r--r--markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java7
-rw-r--r--markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java7
-rw-r--r--markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java14
70 files changed, 560 insertions, 584 deletions
diff --git a/FAQ.md b/FAQ.md
index 25e976e7..60797b52 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -1,5 +1,10 @@
# Frequently asked questions
+- [Why aren't there any buttons to apply formatting?](https://github.com/stefan-niedermann/nextcloud-notes/blob/master/FAQ.md#why-arent-there-any-buttons-to-apply-formatting)
+- [I have experienced an error](https://github.com/stefan-niedermann/nextcloud-notes/blob/master/FAQ.md#i-have-experienced-an-error)
+- [Why has my bug report been closed?](https://github.com/stefan-niedermann/nextcloud-notes/blob/master/FAQ.md#why-has-my-bug-report-been-closed)
+- [How can i activate the dark mode for widgets?](https://github.com/stefan-niedermann/nextcloud-notes/blob/master/FAQ.md#how-can-i-activate-the-dark-mode-for-widgets)
+
## Why aren't there any buttons to apply formatting
We use context based formatting to avoid distractions while writing. This is not "Word on Android".
@@ -63,3 +68,23 @@ This is necessary for two reasons:
1. We have a rapid development cycle - bugs which have been reported weeks ago might no longer relevant
2. We are loosing the context of a report or a question over the time. We have many things to care about and digging into an issue deep and then relying on an response which is not coming is a waste of our limited free time
+
+## How can i activate the dark mode for widgets?
+
+Since `v3.2.0` the widgets are using the **global Android setting**. You can change it in the Android settings, depending on your manufacturer probably under the "Display" menu item:
+
+![Enable global Android dark mode](https://user-images.githubusercontent.com/4741199/111076875-8c8bff00-84ee-11eb-8052-b086c8e143b3.png)
+
+The main reason is a better and tighter integration in the default android theming mechanism. For example Android will switch the complete system UI to a dark mode when the battery is low.
+The widgets have previously not respected those Android intentions, also they ignored the user setting mentioned above for a overall-same theme on the device.
+
+The dark mode of the app does *not* affect the appearance of the widgets because the context is different.
+While the app is something one starts intentionally and runs in its own context, the widgets run always in the context of the launcher.
+To provide a homogeneous interface in your launcher and take full benefits of OLED screens and battery saving mechanisms, Google implemented the global Android setting in Android 10 to affect everything in this context at once - the app drawer, the status bar and the widgets.
+
+According to the Play Store statistics when we release `v3.2.0`, more than `73%` of our (Play Store) users used Android 10 or higher and therefore the global setting is already present for them.
+Further `24%` used Android 7 - Android 9 and can utilize [tweaks](https://www.androidauthority.com/night-mode-on-android-886864/) (or other workarounds if they prefer to stay on old and partially even by Google [abandoned Android versions without security fixes](https://endoflife.date/android) instead of using a modern Custom ROM or other alternatives).
+
+The efforts and benefits of a) maintaining a custom hacky dark mode vs. b) supporting natively the global dark mode inclusive auto-theming on low battery etc. is in absolutely no proportion anymore.
+
+The same applies to the widgets of the Nextcloud Deck App and the Nextcloud News App. \ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 47f4f3a6..800f255a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -14,8 +14,8 @@ android {
applicationId "it.niedermann.owncloud.notes"
minSdkVersion 21
targetSdkVersion 30
- versionCode 3002003
- versionName "3.2.3"
+ versionCode 3002005
+ versionName "3.2.5"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
@@ -81,7 +81,7 @@ dependencies {
// Android X
implementation "androidx.appcompat:appcompat:1.2.0"
- implementation "androidx.fragment:fragment:1.3.1"
+ implementation "androidx.fragment:fragment:1.3.2"
implementation "androidx.preference:preference:1.1.1"
implementation "androidx.recyclerview:recyclerview:1.1.0"
implementation 'androidx.recyclerview:recyclerview-selection:1.0.0'
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/LockedActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/LockedActivity.java
index 7ce7206b..7a58282f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/LockedActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/LockedActivity.java
@@ -3,14 +3,15 @@ package it.niedermann.owncloud.notes;
import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
-import android.os.Build;
import android.os.Bundle;
import android.util.Log;
+import android.view.WindowManager;
import androidx.annotation.Nullable;
+import androidx.preference.PreferenceManager;
-import it.niedermann.owncloud.notes.exception.ExceptionHandler;
import it.niedermann.owncloud.notes.branding.BrandedActivity;
+import it.niedermann.owncloud.notes.exception.ExceptionHandler;
public abstract class LockedActivity extends BrandedActivity {
@@ -25,6 +26,10 @@ public abstract class LockedActivity extends BrandedActivity {
Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
+ if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_prevent_screen_capture), false)) {
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
+ }
+
if (isTaskRoot()) {
askToUnlock();
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedActivity.java
index 70b07af0..55d492d6 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedActivity.java
@@ -38,9 +38,7 @@ public abstract class BrandedActivity extends AppCompatActivity implements Brand
getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
colorAccent = typedValue.data;
- if (BrandingUtil.isBrandingEnabled(this)) {
- readBrandColors(this).observe(this, (pair) -> applyBrand(pair.first, pair.second));
- }
+ readBrandColors(this).observe(this, (pair) -> applyBrand(pair.first, pair.second));
}
@Override
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedDialogFragment.java
index 63eb2a69..57d24adf 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedDialogFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedDialogFragment.java
@@ -14,11 +14,9 @@ public abstract class BrandedDialogFragment extends DialogFragment implements Br
@Nullable Context context = getContext();
if (context != null) {
- if (BrandingUtil.isBrandingEnabled(context)) {
- @ColorInt final int mainColor = BrandingUtil.readBrandMainColor(context);
- @ColorInt final int textColor = BrandingUtil.readBrandTextColor(context);
- applyBrand(mainColor, textColor);
- }
+ @ColorInt final int mainColor = BrandingUtil.readBrandMainColor(context);
+ @ColorInt final int textColor = BrandingUtil.readBrandTextColor(context);
+ applyBrand(mainColor, textColor);
}
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedFragment.java
index 5752bff8..b134919c 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedFragment.java
@@ -32,7 +32,7 @@ public abstract class BrandedFragment extends Fragment implements Branded {
colorPrimary = typedValue.data;
@Nullable Context context = getContext();
- if (context != null && BrandingUtil.isBrandingEnabled(context)) {
+ if (context != null) {
@ColorInt final int mainColor = BrandingUtil.readBrandMainColor(context);
@ColorInt final int textColor = BrandingUtil.readBrandTextColor(context);
applyBrand(mainColor, textColor);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedPreferenceCategory.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedPreferenceCategory.java
index d2bcd274..7d75a412 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedPreferenceCategory.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedPreferenceCategory.java
@@ -34,13 +34,11 @@ public class BrandedPreferenceCategory extends PreferenceCategory {
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- if (BrandingUtil.isBrandingEnabled(getContext())) {
- final View v = holder.itemView.findViewById(android.R.id.title);
- @Nullable final Context context = getContext();
- if (context != null && v instanceof TextView) {
- @ColorInt final int mainColor = getSecondaryForegroundColorDependingOnTheme(context, BrandingUtil.readBrandMainColor(context));
- ((TextView) v).setTextColor(mainColor);
- }
+ final View v = holder.itemView.findViewById(android.R.id.title);
+ @Nullable final Context context = getContext();
+ if (context != null && v instanceof TextView) {
+ @ColorInt final int mainColor = getSecondaryForegroundColorDependingOnTheme(context, BrandingUtil.readBrandMainColor(context));
+ ((TextView) v).setTextColor(mainColor);
}
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java
index aabd3f04..1bb39297 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSnackbar.java
@@ -15,10 +15,8 @@ public class BrandedSnackbar {
@NonNull
public static Snackbar make(@NonNull View view, @NonNull CharSequence text, @Snackbar.Duration int duration) {
final Snackbar snackbar = Snackbar.make(view, text, duration);
- if (BrandingUtil.isBrandingEnabled(view.getContext())) {
- int color = BrandingUtil.readBrandMainColor(view.getContext());
- snackbar.setActionTextColor(ColorUtil.INSTANCE.isColorDark(color) ? Color.WHITE : color);
- }
+ final int color = BrandingUtil.readBrandMainColor(view.getContext());
+ snackbar.setActionTextColor(ColorUtil.INSTANCE.isColorDark(color) ? Color.WHITE : color);
return snackbar;
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSwitchPreference.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSwitchPreference.java
index 6d673dd1..d81d3df2 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSwitchPreference.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandedSwitchPreference.java
@@ -59,13 +59,8 @@ public class BrandedSwitchPreference extends SwitchPreference implements Branded
@Override
public void applyBrand(@ColorInt int mainColor, @ColorInt int textColor) {
- if (BrandingUtil.isBrandingEnabled(getContext())) {
- this.mainColor = mainColor;
- this.textColor = textColor;
- } else {
- this.mainColor = getContext().getResources().getColor(R.color.defaultBrand);
- this.textColor = Color.WHITE;
- }
+ this.mainColor = mainColor;
+ this.textColor = textColor;
// onBindViewHolder is called after applyBrand, therefore we have to store the given values and apply them later.
applyBrand();
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
index a22cabe9..bc0faca7 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
@@ -19,7 +19,6 @@ import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.util.Pair;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MediatorLiveData;
-import androidx.lifecycle.MutableLiveData;
import androidx.preference.PreferenceManager;
import it.niedermann.android.sharedpreferences.SharedPreferenceIntLiveData;
@@ -38,11 +37,6 @@ public class BrandingUtil {
}
- public static boolean isBrandingEnabled(@NonNull Context context) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- return prefs.getBoolean(context.getString(R.string.pref_key_branding), true);
- }
-
public static LiveData<Pair<Integer, Integer>> readBrandColors(@NonNull Context context) {
return new BrandingLiveData(context);
}
@@ -70,57 +64,41 @@ public class BrandingUtil {
}
public static LiveData<Integer> readBrandMainColorLiveData(@NonNull Context context) {
- if (BrandingUtil.isBrandingEnabled(context)) {
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- Log.v(TAG, "--- Read: shared_preference_theme_main");
- return new SharedPreferenceIntLiveData(sharedPreferences, pref_key_branding_main, context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
- } else {
- return new MutableLiveData<>(context.getResources().getColor(R.color.defaultBrand));
- }
+ final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
+ Log.v(TAG, "--- Read: shared_preference_theme_main");
+ return new SharedPreferenceIntLiveData(sharedPreferences, pref_key_branding_main, context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
}
public static LiveData<Integer> readBrandTextColorLiveData(@NonNull Context context) {
- if (BrandingUtil.isBrandingEnabled(context)) {
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- Log.v(TAG, "--- Read: shared_preference_theme_text");
- return new SharedPreferenceIntLiveData(sharedPreferences, pref_key_branding_text, Color.WHITE);
- } else {
- return new MutableLiveData<>(Color.WHITE);
- }
+ final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
+ Log.v(TAG, "--- Read: shared_preference_theme_text");
+ return new SharedPreferenceIntLiveData(sharedPreferences, pref_key_branding_text, Color.WHITE);
}
@ColorInt
public static int readBrandMainColor(@NonNull Context context) {
- if (BrandingUtil.isBrandingEnabled(context)) {
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- Log.v(TAG, "--- Read: shared_preference_theme_main");
- return sharedPreferences.getInt(pref_key_branding_main, context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
- } else {
- return ContextCompat.getColor(context, R.color.defaultBrand);
- }
+ final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
+ Log.v(TAG, "--- Read: shared_preference_theme_main");
+ return sharedPreferences.getInt(pref_key_branding_main, context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
}
@ColorInt
public static int readBrandTextColor(@NonNull Context context) {
- if (isBrandingEnabled(context)) {
- SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
- Log.v(TAG, "--- Read: shared_preference_theme_text");
- return sharedPreferences.getInt(pref_key_branding_text, Color.WHITE);
- } else {
- return Color.WHITE;
- }
+ final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
+ Log.v(TAG, "--- Read: shared_preference_theme_text");
+ return sharedPreferences.getInt(pref_key_branding_text, Color.WHITE);
}
public static void saveBrandColors(@NonNull Context context, @ColorInt int mainColor, @ColorInt int textColor) {
final int previousMainColor = readBrandMainColor(context);
final int previousTextColor = readBrandTextColor(context);
- SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
+ final SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
Log.v(TAG, "--- Write: shared_preference_theme_main" + " | " + mainColor);
Log.v(TAG, "--- Write: shared_preference_theme_text" + " | " + textColor);
editor.putInt(pref_key_branding_main, mainColor);
editor.putInt(pref_key_branding_text, textColor);
editor.apply();
- if (isBrandingEnabled(context) && context instanceof BrandedActivity) {
+ if (context instanceof BrandedActivity) {
if (mainColor != previousMainColor || textColor != previousTextColor) {
final BrandedActivity activity = (BrandedActivity) context;
activity.runOnUiThread(() -> ActivityCompat.recreate(activity));
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java
index 1c73988f..67507b1b 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NotePreviewFragment.java
@@ -44,6 +44,9 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
private boolean noteLoaded = false;
+ @Nullable
+ private Runnable setScrollY;
+
@Override
public void onPrepareOptionsMenu(@NonNull Menu menu) {
super.onPrepareOptionsMenu(menu);
@@ -85,6 +88,8 @@ public class NotePreviewFragment extends SearchableBaseNoteFragment implements O
super.onActivityCreated(savedInstanceState);
binding.swiperefreshlayout.setOnRefreshListener(this);
+ registerInternalNoteLinkHandler();
+ binding.singleNoteContent.setMarkdownString(note.getContent(), setScrollY);
binding.singleNoteContent.setMovementMethod(LinkMovementMethod.getInstance());
final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(requireActivity().getApplicationContext());
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/AbstractNotesDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/AbstractNotesDatabase.java
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/AbstractNotesDatabase.java
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java
index 328b083c..2cd2d02b 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteServerSyncHelper.java
@@ -441,7 +441,7 @@ public class NoteServerSyncHelper {
try {
final Map<Long, Long> idMap = db.getIdMap(localAccount.getId());
final Calendar modified = localAccount.getModified();
- final long modifiedForServer = modified == null ? 0 : modified.getTimeInMillis() / 1000;
+ final long modifiedForServer = modified == null ? 0 : modified.getTimeInMillis() / 1_000;
final ServerResponse.NotesResponse response = notesClient.getNotes(ssoAccount, modifiedForServer, localAccount.getETag());
List<Note> remoteNotes = response.getNotes();
Set<Long> remoteIDs = new HashSet<>();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClient.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClient.java
index 07048ec9..b7a5f3a9 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClient.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClient.java
@@ -191,7 +191,7 @@ public abstract class NotesClient {
long lastModified = 0;
final AidlNetworkRequest.PlainHeader lastModifiedHeader = response.getPlainHeader(HEADER_KEY_LAST_MODIFIED);
if (lastModifiedHeader != null)
- lastModified = new Date(lastModifiedHeader.getValue()).getTime() / 1000;
+ lastModified = new Date(lastModifiedHeader.getValue()).getTime() / 1_000;
Log.d(TAG, "ETag: " + etag + "; Last-Modified: " + lastModified + " (" + lastModified + ")");
String supportedApiVersions = null;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV02.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV02.java
index 8e6743d9..2ee7a550 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV02.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV02.java
@@ -34,7 +34,7 @@ public class NotesClientV02 extends NotesClient {
private NoteResponse putNote(SingleSignOnAccount ssoAccount, Note note, String path, String method) throws Exception {
JSONObject paramObject = new JSONObject();
paramObject.accumulate(JSON_CONTENT, note.getContent());
- paramObject.accumulate(JSON_MODIFIED, note.getModified().getTimeInMillis() / 1000);
+ paramObject.accumulate(JSON_MODIFIED, note.getModified().getTimeInMillis() / 1_000);
paramObject.accumulate(JSON_FAVORITE, note.getFavorite());
paramObject.accumulate(JSON_CATEGORY, note.getCategory());
return new NoteResponse(requestServer(ssoAccount, path, method, null, paramObject, null));
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV1.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV1.java
index 1094b559..f685b057 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV1.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesClientV1.java
@@ -35,7 +35,7 @@ public class NotesClientV1 extends NotesClient {
JSONObject paramObject = new JSONObject();
paramObject.accumulate(JSON_TITLE, note.getTitle());
paramObject.accumulate(JSON_CONTENT, note.getContent());
- paramObject.accumulate(JSON_MODIFIED, note.getModified().getTimeInMillis() / 1000);
+ paramObject.accumulate(JSON_MODIFIED, note.getModified().getTimeInMillis() / 1_000);
paramObject.accumulate(JSON_FAVORITE, note.getFavorite());
paramObject.accumulate(JSON_CATEGORY, note.getCategory());
return new NoteResponse(requestServer(ssoAccount, path, method, null, paramObject, null));
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
index 9432d6fa..d53f5443 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
@@ -1,4 +1,4 @@
- package it.niedermann.owncloud.notes.persistence;
+package it.niedermann.owncloud.notes.persistence;
import android.content.Context;
import android.content.Intent;
@@ -61,6 +61,7 @@ import it.niedermann.owncloud.notes.persistence.migration.Migration_16_17;
import it.niedermann.owncloud.notes.persistence.migration.Migration_17_18;
import it.niedermann.owncloud.notes.persistence.migration.Migration_18_19;
import it.niedermann.owncloud.notes.persistence.migration.Migration_19_20;
+import it.niedermann.owncloud.notes.persistence.migration.Migration_20_21;
import it.niedermann.owncloud.notes.persistence.migration.Migration_9_10;
import it.niedermann.owncloud.notes.shared.model.ApiVersion;
import it.niedermann.owncloud.notes.shared.model.Capabilities;
@@ -87,7 +88,7 @@ import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.up
CategoryOptions.class,
SingleNoteWidgetData.class,
NotesListWidgetData.class
- }, version = 20
+ }, version = 21
)
@TypeConverters({Converters.class})
public abstract class NotesDatabase extends RoomDatabase {
@@ -116,7 +117,8 @@ public abstract class NotesDatabase extends RoomDatabase {
new Migration_16_17(),
new Migration_17_18(),
new Migration_18_19(context),
- new Migration_19_20()
+ new Migration_19_20(context),
+ new Migration_20_21()
)
.fallbackToDestructiveMigrationOnDowngrade()
.fallbackToDestructiveMigration()
@@ -271,8 +273,8 @@ public abstract class NotesDatabase extends RoomDatabase {
if (newTitle != null) {
title = newTitle;
} else {
- if ((oldNote.getRemoteId() == null || localAccount.getPreferredApiVersion() == null || localAccount.getPreferredApiVersion().compareTo(new ApiVersion("1.0", 0, 0)) < 0) &&
- (defaultNonEmptyTitle.equals(oldNote.getTitle()))) {
+ if ((oldNote.getRemoteId() == null || localAccount.getPreferredApiVersion() == null || localAccount.getPreferredApiVersion().compareTo(new ApiVersion("1.0", 0, 0)) < 0) &&
+ (defaultNonEmptyTitle.equals(oldNote.getTitle()))) {
title = NoteUtil.generateNonEmptyNoteTitle(newContent, context);
} else {
title = oldNote.getTitle();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java
index 36630d8d..7a1d6ff3 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_19_20.java
@@ -1,232 +1,30 @@
package it.niedermann.owncloud.notes.persistence.migration;
-import android.content.ContentValues;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.graphics.Color;
+import android.content.Context;
+import android.content.SharedPreferences;
import androidx.annotation.NonNull;
-import androidx.room.OnConflictStrategy;
-import androidx.room.RoomDatabase;
+import androidx.preference.PreferenceManager;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
-import it.niedermann.android.util.ColorUtil;
+public class Migration_19_20 extends Migration {
-public final class Migration_19_20 extends Migration {
-
- public Migration_19_20() {
- super(19, 20);
- }
+ @NonNull
+ private final Context context;
/**
- * From {@link SQLiteOpenHelper} to {@link RoomDatabase}
- * https://github.com/stefan-niedermann/nextcloud-deck/issues/531
+ * Removes <code>branding</code> from {@link SharedPreferences} because we do no longer allow to disable it.
+ *
+ * @param context {@link Context}
*/
- @Override
- public void migrate(@NonNull SupportSQLiteDatabase db) {
- dropOldIndices(db);
-
- createNewTables(db);
- createNewIndices(db);
-
- migrateAccounts(db);
- migrateCategories(db);
- migrateNotes(db);
- migrateNotesListWidgets(db);
- migrateSingleNotesWidgets(db);
-
- dropOldTables(db);
- }
-
- private static void dropOldIndices(@NonNull SupportSQLiteDatabase db) {
- db.execSQL("DROP INDEX ACCOUNTS_URL_idx");
- db.execSQL("DROP INDEX ACCOUNTS_USERNAME_idx");
- db.execSQL("DROP INDEX ACCOUNTS_ACCOUNT_NAME_idx");
- db.execSQL("DROP INDEX ACCOUNTS_ETAG_idx");
- db.execSQL("DROP INDEX ACCOUNTS_MODIFIED_idx");
- db.execSQL("DROP INDEX NOTES_REMOTEID_idx");
- db.execSQL("DROP INDEX NOTES_ACCOUNT_ID_idx");
- db.execSQL("DROP INDEX NOTES_STATUS_idx");
- db.execSQL("DROP INDEX NOTES_FAVORITE_idx");
- db.execSQL("DROP INDEX NOTES_CATEGORY_idx");
- db.execSQL("DROP INDEX NOTES_MODIFIED_idx");
- }
-
- private static void createNewTables(@NonNull SupportSQLiteDatabase db) {
- db.execSQL("CREATE TABLE `Account` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL DEFAULT '', `userName` TEXT NOT NULL DEFAULT '', `accountName` TEXT NOT NULL DEFAULT '', `eTag` TEXT, `modified` INTEGER, `apiVersion` TEXT, `color` INTEGER NOT NULL DEFAULT -16743735, `textColor` INTEGER NOT NULL DEFAULT -16777216, `capabilitiesETag` TEXT)");
- db.execSQL("CREATE TABLE `CategoryOptions` (`accountId` INTEGER NOT NULL, `category` TEXT NOT NULL, `sortingMethod` INTEGER, PRIMARY KEY(`accountId`, `category`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
- db.execSQL("CREATE TABLE `Note` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `remoteId` INTEGER, `accountId` INTEGER NOT NULL, `status` TEXT NOT NULL, `title` TEXT NOT NULL DEFAULT '', `category` TEXT NOT NULL DEFAULT '', `modified` INTEGER, `content` TEXT NOT NULL DEFAULT '', `favorite` INTEGER NOT NULL DEFAULT 0, `eTag` TEXT, `excerpt` TEXT NOT NULL DEFAULT '', `scrollY` INTEGER NOT NULL DEFAULT 0, FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
- db.execSQL("CREATE TABLE `NotesListWidgetData` (`mode` INTEGER NOT NULL, `category` TEXT, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`accountId`, `category`) REFERENCES `CategoryOptions`(`accountId`, `category`) ON UPDATE NO ACTION ON DELETE CASCADE )");
- db.execSQL("CREATE TABLE `SingleNoteWidgetData` (`noteId` INTEGER NOT NULL, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
- }
-
- private static void createNewIndices(@NonNull SupportSQLiteDatabase db) {
- db.execSQL("CREATE INDEX `IDX_ACCOUNT_ACCOUNTNAME` ON `Account` (`accountName`)");
- db.execSQL("CREATE INDEX `IDX_ACCOUNT_ETAG` ON `Account` (`eTag`)");
- db.execSQL("CREATE INDEX `IDX_ACCOUNT_MODIFIED` ON `Account` (`modified`)");
- db.execSQL("CREATE INDEX `IDX_ACCOUNT_URL` ON `Account` (`url`)");
- db.execSQL("CREATE INDEX `IDX_ACCOUNT_USERNAME` ON `Account` (`userName`)");
- db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_ACCOUNTID` ON `CategoryOptions` (`accountId`)");
- db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_CATEGORY` ON `CategoryOptions` (`category`)");
- db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_SORTING_METHOD` ON `CategoryOptions` (`sortingMethod`)");
- db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_ACCOUNTID` ON `NotesListWidgetData` (`accountId`)");
- db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_CATEGORY` ON `NotesListWidgetData` (`category`)");
- db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_ACCOUNT_CATEGORY` ON `NotesListWidgetData` (`accountId`, `category`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_ACCOUNTID` ON `Note` (`accountId`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_CATEGORY` ON `Note` (`category`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_FAVORITE` ON `Note` (`favorite`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_MODIFIED` ON `Note` (`modified`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_REMOTEID` ON `Note` (`remoteId`)");
- db.execSQL("CREATE INDEX `IDX_NOTE_STATUS` ON `Note` (`status`)");
- db.execSQL("CREATE INDEX `IDX_SINGLENOTEWIDGETDATA_ACCOUNTID` ON `SingleNoteWidgetData` (`accountId`)");
- db.execSQL("CREATE INDEX `IDX_SINGLENOTEWIDGETDATA_NOTEID` ON `SingleNoteWidgetData` (`noteId`)");
-
- db.execSQL("CREATE UNIQUE INDEX `IDX_UNIQUE_CATEGORYOPTIONS_ACCOUNT_CATEGORY` ON `CategoryOptions` (`accountId`, `category`)");
-
- db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_DEL AFTER DELETE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;");
- db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_UPD AFTER UPDATE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;");
-
- }
-
- private static void migrateAccounts(@NonNull SupportSQLiteDatabase db) {
- final Cursor cursor = db.query("SELECT * FROM ACCOUNTS", null);
- final ContentValues values = new ContentValues(10);
-
- final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
- final int COLUMN_POSITION_URL = cursor.getColumnIndex("URL");
- final int COLUMN_POSITION_USERNAME = cursor.getColumnIndex("USERNAME");
- final int COLUMN_POSITION_ACCOUNT_NAME = cursor.getColumnIndex("ACCOUNT_NAME");
- final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG");
- final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED");
- final int COLUMN_POSITION_API_VERSION = cursor.getColumnIndex("API_VERSION");
- final int COLUMN_POSITION_COLOR = cursor.getColumnIndex("COLOR");
- final int COLUMN_POSITION_TEXT_COLOR = cursor.getColumnIndex("TEXT_COLOR");
- final int COLUMN_POSITION_CAPABILITIES_ETAG = cursor.getColumnIndex("CAPABILITIES_ETAG");
-
- while (cursor.moveToNext()) {
- values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
- values.put("URL", cursor.getString(COLUMN_POSITION_URL));
- values.put("USERNAME", cursor.getString(COLUMN_POSITION_USERNAME));
- values.put("ACCOUNTNAME", cursor.getString(COLUMN_POSITION_ACCOUNT_NAME));
- values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG));
- values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED));
- values.put("APIVERSION", cursor.getString(COLUMN_POSITION_API_VERSION));
- try {
- values.put("COLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_COLOR))));
- } catch (Exception e) {
- e.printStackTrace();
- values.put("COLOR", -16743735);
- }
- try {
- values.put("TEXTCOLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_TEXT_COLOR))));
- } catch (Exception e) {
- e.printStackTrace();
- values.put("TEXTCOLOR", -16777216);
- }
- values.put("CAPABILITIESETAG", cursor.getString(COLUMN_POSITION_CAPABILITIES_ETAG));
- db.insert("ACCOUNT", OnConflictStrategy.REPLACE, values);
- }
- cursor.close();
- }
-
- private static void migrateCategories(@NonNull SupportSQLiteDatabase db) {
- final Cursor cursor = db.query("SELECT * FROM CATEGORIES", null);
- final ContentValues values = new ContentValues(3);
-
- final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("CATEGORY_ACCOUNT_ID");
- final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("CATEGORY_TITLE");
- final int COLUMN_POSITION_SORTING_METHOD = cursor.getColumnIndex("CATEGORY_SORTING_METHOD");
-
- while (cursor.moveToNext()) {
- values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
- values.put("CATEGORY", cursor.getString(COLUMN_POSITION_TITLE));
- values.put("SORTINGMETHOD", cursor.getInt(COLUMN_POSITION_SORTING_METHOD));
- db.insert("CATEGORYOPTIONS", OnConflictStrategy.REPLACE, values);
- }
- cursor.close();
- }
-
- private static void migrateNotes(@NonNull SupportSQLiteDatabase db) {
- final Cursor cursor = db.query("SELECT NOTES.*, CATEGORIES.category_title as `CAT_TITLE` FROM NOTES LEFT JOIN CATEGORIES ON NOTES.category = CATEGORIES.category_id", null);
- final ContentValues values = new ContentValues(12);
-
- final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
- final int COLUMN_POSITION_REMOTEID = cursor.getColumnIndex("REMOTEID");
- final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
- final int COLUMN_POSITION_STATUS = cursor.getColumnIndex("STATUS");
- final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("TITLE");
- final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED");
- final int COLUMN_POSITION_CONTENT = cursor.getColumnIndex("CONTENT");
- final int COLUMN_POSITION_FAVORITE = cursor.getColumnIndex("FAVORITE");
- final int COLUMN_POSITION_CAT_TITLE = cursor.getColumnIndex("CAT_TITLE");
- final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG");
- final int COLUMN_POSITION_EXCERPT = cursor.getColumnIndex("EXCERPT");
- final int COLUMN_POSITION_SCROLL_Y = cursor.getColumnIndex("SCROLL_Y");
-
- while (cursor.moveToNext()) {
- values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
- values.put("REMOTEID", cursor.getInt(COLUMN_POSITION_REMOTEID));
- values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
- values.put("STATUS", cursor.getString(COLUMN_POSITION_STATUS));
- values.put("TITLE", cursor.getString(COLUMN_POSITION_TITLE));
- values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED));
- values.put("CONTENT", cursor.getString(COLUMN_POSITION_CONTENT));
- values.put("FAVORITE", cursor.getInt(COLUMN_POSITION_FAVORITE));
- values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CAT_TITLE));
- values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG));
- values.put("EXCERPT", cursor.getString(COLUMN_POSITION_EXCERPT));
- values.put("SCROLLY", cursor.getString(COLUMN_POSITION_SCROLL_Y));
- db.insert("NOTE", OnConflictStrategy.REPLACE, values);
- }
- cursor.close();
- }
-
- private static void migrateNotesListWidgets(@NonNull SupportSQLiteDatabase db) {
- final Cursor cursor = db.query("SELECT WIDGET_NOTE_LISTS.*, CATEGORIES.category_title as `CATEGORY` FROM WIDGET_NOTE_LISTS LEFT JOIN CATEGORIES ON WIDGET_NOTE_LISTS.CATEGORY_ID = CATEGORIES.category_id", null);
- final ContentValues values = new ContentValues(5);
-
- final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
- final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
- final int COLUMN_POSITION_CATEGORY = cursor.getColumnIndex("CATEGORY");
- final int COLUMN_POSITION_MODE = cursor.getColumnIndex("MODE");
- final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE");
-
- while (cursor.moveToNext()) {
- values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
- values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
- values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CATEGORY));
- values.put("MODE", cursor.getInt(COLUMN_POSITION_MODE));
- values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE));
- db.insert("NOTESLISTWIDGETDATA", OnConflictStrategy.REPLACE, values);
- }
- cursor.close();
- }
-
- private static void migrateSingleNotesWidgets(@NonNull SupportSQLiteDatabase db) {
- final Cursor cursor = db.query("SELECT * FROM WIDGET_SINGLE_NOTES", null);
- final ContentValues values = new ContentValues(4);
-
- final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
- final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
- final int COLUMN_POSITION_NOTE_ID = cursor.getColumnIndex("NOTE_ID");
- final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE");
-
- while (cursor.moveToNext()) {
- values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
- values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
- values.put("NOTEID", cursor.getInt(COLUMN_POSITION_NOTE_ID));
- values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE));
- db.insert("SINGLENOTEWIDGETDATA", OnConflictStrategy.REPLACE, values);
- }
- cursor.close();
+ public Migration_19_20(@NonNull Context context) {
+ super(19, 20);
+ this.context = context;
}
- private static void dropOldTables(@NonNull SupportSQLiteDatabase db) {
- db.execSQL("DROP TABLE IF EXISTS WIDGET_SINGLE_NOTES");
- db.execSQL("DROP TABLE IF EXISTS WIDGET_NOTE_LISTS");
- db.execSQL("DROP TABLE IF EXISTS CATEGORIES");
- db.execSQL("DROP TABLE IF EXISTS NOTES");
- db.execSQL("DROP TABLE IF EXISTS ACCOUNTS");
+ @Override
+ public void migrate(@NonNull SupportSQLiteDatabase database) {
+ PreferenceManager.getDefaultSharedPreferences(context).edit().remove("branding").apply();
}
-}
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_20_21.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_20_21.java
new file mode 100644
index 00000000..21e1d363
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_20_21.java
@@ -0,0 +1,232 @@
+package it.niedermann.owncloud.notes.persistence.migration;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.graphics.Color;
+
+import androidx.annotation.NonNull;
+import androidx.room.OnConflictStrategy;
+import androidx.room.RoomDatabase;
+import androidx.room.migration.Migration;
+import androidx.sqlite.db.SupportSQLiteDatabase;
+
+import it.niedermann.android.util.ColorUtil;
+
+public final class Migration_20_21 extends Migration {
+
+ public Migration_20_21() {
+ super(20, 21);
+ }
+
+ /**
+ * From {@link SQLiteOpenHelper} to {@link RoomDatabase}
+ * https://github.com/stefan-niedermann/nextcloud-deck/issues/531
+ */
+ @Override
+ public void migrate(@NonNull SupportSQLiteDatabase db) {
+ dropOldIndices(db);
+
+ createNewTables(db);
+ createNewIndices(db);
+
+ migrateAccounts(db);
+ migrateCategories(db);
+ migrateNotes(db);
+ migrateNotesListWidgets(db);
+ migrateSingleNotesWidgets(db);
+
+ dropOldTables(db);
+ }
+
+ private static void dropOldIndices(@NonNull SupportSQLiteDatabase db) {
+ db.execSQL("DROP INDEX ACCOUNTS_URL_idx");
+ db.execSQL("DROP INDEX ACCOUNTS_USERNAME_idx");
+ db.execSQL("DROP INDEX ACCOUNTS_ACCOUNT_NAME_idx");
+ db.execSQL("DROP INDEX ACCOUNTS_ETAG_idx");
+ db.execSQL("DROP INDEX ACCOUNTS_MODIFIED_idx");
+ db.execSQL("DROP INDEX NOTES_REMOTEID_idx");
+ db.execSQL("DROP INDEX NOTES_ACCOUNT_ID_idx");
+ db.execSQL("DROP INDEX NOTES_STATUS_idx");
+ db.execSQL("DROP INDEX NOTES_FAVORITE_idx");
+ db.execSQL("DROP INDEX NOTES_CATEGORY_idx");
+ db.execSQL("DROP INDEX NOTES_MODIFIED_idx");
+ }
+
+ private static void createNewTables(@NonNull SupportSQLiteDatabase db) {
+ db.execSQL("CREATE TABLE `Account` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `url` TEXT NOT NULL DEFAULT '', `userName` TEXT NOT NULL DEFAULT '', `accountName` TEXT NOT NULL DEFAULT '', `eTag` TEXT, `modified` INTEGER, `apiVersion` TEXT, `color` INTEGER NOT NULL DEFAULT -16743735, `textColor` INTEGER NOT NULL DEFAULT -16777216, `capabilitiesETag` TEXT)");
+ db.execSQL("CREATE TABLE `CategoryOptions` (`accountId` INTEGER NOT NULL, `category` TEXT NOT NULL, `sortingMethod` INTEGER, PRIMARY KEY(`accountId`, `category`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
+ db.execSQL("CREATE TABLE `Note` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `remoteId` INTEGER, `accountId` INTEGER NOT NULL, `status` TEXT NOT NULL, `title` TEXT NOT NULL DEFAULT '', `category` TEXT NOT NULL DEFAULT '', `modified` INTEGER, `content` TEXT NOT NULL DEFAULT '', `favorite` INTEGER NOT NULL DEFAULT 0, `eTag` TEXT, `excerpt` TEXT NOT NULL DEFAULT '', `scrollY` INTEGER NOT NULL DEFAULT 0, FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
+ db.execSQL("CREATE TABLE `NotesListWidgetData` (`mode` INTEGER NOT NULL, `category` TEXT, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`accountId`, `category`) REFERENCES `CategoryOptions`(`accountId`, `category`) ON UPDATE NO ACTION ON DELETE CASCADE )");
+ db.execSQL("CREATE TABLE `SingleNoteWidgetData` (`noteId` INTEGER NOT NULL, `id` INTEGER NOT NULL, `accountId` INTEGER NOT NULL, `themeMode` INTEGER NOT NULL, PRIMARY KEY(`id`), FOREIGN KEY(`accountId`) REFERENCES `Account`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE , FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )");
+ }
+
+ private static void createNewIndices(@NonNull SupportSQLiteDatabase db) {
+ db.execSQL("CREATE INDEX `IDX_ACCOUNT_ACCOUNTNAME` ON `Account` (`accountName`)");
+ db.execSQL("CREATE INDEX `IDX_ACCOUNT_ETAG` ON `Account` (`eTag`)");
+ db.execSQL("CREATE INDEX `IDX_ACCOUNT_MODIFIED` ON `Account` (`modified`)");
+ db.execSQL("CREATE INDEX `IDX_ACCOUNT_URL` ON `Account` (`url`)");
+ db.execSQL("CREATE INDEX `IDX_ACCOUNT_USERNAME` ON `Account` (`userName`)");
+ db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_ACCOUNTID` ON `CategoryOptions` (`accountId`)");
+ db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_CATEGORY` ON `CategoryOptions` (`category`)");
+ db.execSQL("CREATE INDEX `IDX_CATEGORIYOPTIONS_SORTING_METHOD` ON `CategoryOptions` (`sortingMethod`)");
+ db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_ACCOUNTID` ON `NotesListWidgetData` (`accountId`)");
+ db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_CATEGORY` ON `NotesListWidgetData` (`category`)");
+ db.execSQL("CREATE INDEX `IDX_NOTESLISTWIDGETDATA_ACCOUNT_CATEGORY` ON `NotesListWidgetData` (`accountId`, `category`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_ACCOUNTID` ON `Note` (`accountId`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_CATEGORY` ON `Note` (`category`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_FAVORITE` ON `Note` (`favorite`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_MODIFIED` ON `Note` (`modified`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_REMOTEID` ON `Note` (`remoteId`)");
+ db.execSQL("CREATE INDEX `IDX_NOTE_STATUS` ON `Note` (`status`)");
+ db.execSQL("CREATE INDEX `IDX_SINGLENOTEWIDGETDATA_ACCOUNTID` ON `SingleNoteWidgetData` (`accountId`)");
+ db.execSQL("CREATE INDEX `IDX_SINGLENOTEWIDGETDATA_NOTEID` ON `SingleNoteWidgetData` (`noteId`)");
+
+ db.execSQL("CREATE UNIQUE INDEX `IDX_UNIQUE_CATEGORYOPTIONS_ACCOUNT_CATEGORY` ON `CategoryOptions` (`accountId`, `category`)");
+
+ db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_DEL AFTER DELETE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;");
+ db.execSQL("CREATE TRIGGER TRG_CLEANUP_CATEGORIES_UPD AFTER UPDATE ON Note BEGIN DELETE FROM CategoryOptions WHERE CategoryOptions.category NOT IN (SELECT Note.category FROM Note WHERE Note.accountId = CategoryOptions.accountId); END;");
+
+ }
+
+ private static void migrateAccounts(@NonNull SupportSQLiteDatabase db) {
+ final Cursor cursor = db.query("SELECT * FROM ACCOUNTS", null);
+ final ContentValues values = new ContentValues(10);
+
+ final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
+ final int COLUMN_POSITION_URL = cursor.getColumnIndex("URL");
+ final int COLUMN_POSITION_USERNAME = cursor.getColumnIndex("USERNAME");
+ final int COLUMN_POSITION_ACCOUNT_NAME = cursor.getColumnIndex("ACCOUNT_NAME");
+ final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG");
+ final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED");
+ final int COLUMN_POSITION_API_VERSION = cursor.getColumnIndex("API_VERSION");
+ final int COLUMN_POSITION_COLOR = cursor.getColumnIndex("COLOR");
+ final int COLUMN_POSITION_TEXT_COLOR = cursor.getColumnIndex("TEXT_COLOR");
+ final int COLUMN_POSITION_CAPABILITIES_ETAG = cursor.getColumnIndex("CAPABILITIES_ETAG");
+
+ while (cursor.moveToNext()) {
+ values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
+ values.put("URL", cursor.getString(COLUMN_POSITION_URL));
+ values.put("USERNAME", cursor.getString(COLUMN_POSITION_USERNAME));
+ values.put("ACCOUNTNAME", cursor.getString(COLUMN_POSITION_ACCOUNT_NAME));
+ values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG));
+ values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED) * 1_000);
+ values.put("APIVERSION", cursor.getString(COLUMN_POSITION_API_VERSION));
+ try {
+ values.put("COLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_COLOR))));
+ } catch (Exception e) {
+ e.printStackTrace();
+ values.put("COLOR", -16743735);
+ }
+ try {
+ values.put("TEXTCOLOR", Color.parseColor(ColorUtil.INSTANCE.formatColorToParsableHexString(cursor.getString(COLUMN_POSITION_TEXT_COLOR))));
+ } catch (Exception e) {
+ e.printStackTrace();
+ values.put("TEXTCOLOR", -16777216);
+ }
+ values.put("CAPABILITIESETAG", cursor.getString(COLUMN_POSITION_CAPABILITIES_ETAG));
+ db.insert("ACCOUNT", OnConflictStrategy.REPLACE, values);
+ }
+ cursor.close();
+ }
+
+ private static void migrateCategories(@NonNull SupportSQLiteDatabase db) {
+ final Cursor cursor = db.query("SELECT * FROM CATEGORIES", null);
+ final ContentValues values = new ContentValues(3);
+
+ final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("CATEGORY_ACCOUNT_ID");
+ final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("CATEGORY_TITLE");
+ final int COLUMN_POSITION_SORTING_METHOD = cursor.getColumnIndex("CATEGORY_SORTING_METHOD");
+
+ while (cursor.moveToNext()) {
+ values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
+ values.put("CATEGORY", cursor.getString(COLUMN_POSITION_TITLE));
+ values.put("SORTINGMETHOD", cursor.getInt(COLUMN_POSITION_SORTING_METHOD));
+ db.insert("CATEGORYOPTIONS", OnConflictStrategy.REPLACE, values);
+ }
+ cursor.close();
+ }
+
+ private static void migrateNotes(@NonNull SupportSQLiteDatabase db) {
+ final Cursor cursor = db.query("SELECT NOTES.*, CATEGORIES.category_title as `CAT_TITLE` FROM NOTES LEFT JOIN CATEGORIES ON NOTES.category = CATEGORIES.category_id", null);
+ final ContentValues values = new ContentValues(12);
+
+ final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
+ final int COLUMN_POSITION_REMOTEID = cursor.getColumnIndex("REMOTEID");
+ final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
+ final int COLUMN_POSITION_STATUS = cursor.getColumnIndex("STATUS");
+ final int COLUMN_POSITION_TITLE = cursor.getColumnIndex("TITLE");
+ final int COLUMN_POSITION_MODIFIED = cursor.getColumnIndex("MODIFIED");
+ final int COLUMN_POSITION_CONTENT = cursor.getColumnIndex("CONTENT");
+ final int COLUMN_POSITION_FAVORITE = cursor.getColumnIndex("FAVORITE");
+ final int COLUMN_POSITION_CAT_TITLE = cursor.getColumnIndex("CAT_TITLE");
+ final int COLUMN_POSITION_ETAG = cursor.getColumnIndex("ETAG");
+ final int COLUMN_POSITION_EXCERPT = cursor.getColumnIndex("EXCERPT");
+ final int COLUMN_POSITION_SCROLL_Y = cursor.getColumnIndex("SCROLL_Y");
+
+ while (cursor.moveToNext()) {
+ values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
+ values.put("REMOTEID", cursor.getInt(COLUMN_POSITION_REMOTEID));
+ values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
+ values.put("STATUS", cursor.getString(COLUMN_POSITION_STATUS));
+ values.put("TITLE", cursor.getString(COLUMN_POSITION_TITLE));
+ values.put("MODIFIED", cursor.getLong(COLUMN_POSITION_MODIFIED) * 1_000);
+ values.put("CONTENT", cursor.getString(COLUMN_POSITION_CONTENT));
+ values.put("FAVORITE", cursor.getInt(COLUMN_POSITION_FAVORITE));
+ values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CAT_TITLE));
+ values.put("ETAG", cursor.getString(COLUMN_POSITION_ETAG));
+ values.put("EXCERPT", cursor.getString(COLUMN_POSITION_EXCERPT));
+ values.put("SCROLLY", cursor.getString(COLUMN_POSITION_SCROLL_Y));
+ db.insert("NOTE", OnConflictStrategy.REPLACE, values);
+ }
+ cursor.close();
+ }
+
+ private static void migrateNotesListWidgets(@NonNull SupportSQLiteDatabase db) {
+ final Cursor cursor = db.query("SELECT WIDGET_NOTE_LISTS.*, CATEGORIES.category_title as `CATEGORY` FROM WIDGET_NOTE_LISTS LEFT JOIN CATEGORIES ON WIDGET_NOTE_LISTS.CATEGORY_ID = CATEGORIES.category_id", null);
+ final ContentValues values = new ContentValues(5);
+
+ final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
+ final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
+ final int COLUMN_POSITION_CATEGORY = cursor.getColumnIndex("CATEGORY");
+ final int COLUMN_POSITION_MODE = cursor.getColumnIndex("MODE");
+ final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE");
+
+ while (cursor.moveToNext()) {
+ values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
+ values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
+ values.put("CATEGORY", cursor.getString(COLUMN_POSITION_CATEGORY));
+ values.put("MODE", cursor.getInt(COLUMN_POSITION_MODE));
+ values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE));
+ db.insert("NOTESLISTWIDGETDATA", OnConflictStrategy.REPLACE, values);
+ }
+ cursor.close();
+ }
+
+ private static void migrateSingleNotesWidgets(@NonNull SupportSQLiteDatabase db) {
+ final Cursor cursor = db.query("SELECT * FROM WIDGET_SINGLE_NOTES", null);
+ final ContentValues values = new ContentValues(4);
+
+ final int COLUMN_POSITION_ID = cursor.getColumnIndex("ID");
+ final int COLUMN_POSITION_ACCOUNT_ID = cursor.getColumnIndex("ACCOUNT_ID");
+ final int COLUMN_POSITION_NOTE_ID = cursor.getColumnIndex("NOTE_ID");
+ final int COLUMN_POSITION_THEME_MODE = cursor.getColumnIndex("THEME_MODE");
+
+ while (cursor.moveToNext()) {
+ values.put("ID", cursor.getInt(COLUMN_POSITION_ID));
+ values.put("ACCOUNTID", cursor.getInt(COLUMN_POSITION_ACCOUNT_ID));
+ values.put("NOTEID", cursor.getInt(COLUMN_POSITION_NOTE_ID));
+ values.put("THEMEMODE", cursor.getInt(COLUMN_POSITION_THEME_MODE));
+ db.insert("SINGLENOTEWIDGETDATA", OnConflictStrategy.REPLACE, values);
+ }
+ cursor.close();
+ }
+
+ private static void dropOldTables(@NonNull SupportSQLiteDatabase db) {
+ db.execSQL("DROP TABLE IF EXISTS WIDGET_SINGLE_NOTES");
+ db.execSQL("DROP TABLE IF EXISTS WIDGET_NOTE_LISTS");
+ db.execSQL("DROP TABLE IF EXISTS CATEGORIES");
+ db.execSQL("DROP TABLE IF EXISTS NOTES");
+ db.execSQL("DROP TABLE IF EXISTS ACCOUNTS");
+ }
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
index 017d5df5..8af467fb 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
@@ -29,8 +29,8 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
private BrandedSwitchPreference fontPref;
private BrandedSwitchPreference lockPref;
private BrandedSwitchPreference wifiOnlyPref;
- private BrandedSwitchPreference brandingPref;
private BrandedSwitchPreference gridViewPref;
+ private BrandedSwitchPreference preventScreenCapturePref;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -43,20 +43,6 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
fontPref = findPreference(getString(R.string.pref_key_font));
- brandingPref = findPreference(getString(R.string.pref_key_branding));
- if (brandingPref != null) {
- brandingPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
- updateNoteListWidgets(requireContext());
- final Boolean branding = (Boolean) newValue;
- Log.v(TAG, "branding: " + branding);
- requireActivity().setResult(Activity.RESULT_OK);
- ActivityCompat.recreate(requireActivity());
- return true;
- });
- } else {
- Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\"");
- }
-
gridViewPref = findPreference(getString(R.string.pref_key_gridview));
if (gridViewPref != null) {
gridViewPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
@@ -67,19 +53,18 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
return true;
});
} else {
- Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_branding) + "\"");
+ Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_gridview) + "\"");
+ }
+
+ preventScreenCapturePref = findPreference(getString(R.string.pref_key_prevent_screen_capture));
+ if (preventScreenCapturePref == null) {
+ Log.e(TAG, "Could not find \"" + getString(R.string.pref_key_prevent_screen_capture) + "\"-preference.");
}
lockPref = findPreference(getString(R.string.pref_key_lock));
if (lockPref != null) {
if (!DeviceCredentialUtil.areCredentialsAvailable(requireContext())) {
lockPref.setVisible(false);
- Preference securityCategory = findPreference(getString(R.string.pref_category_security));
- if (securityCategory != null) {
- securityCategory.setVisible(false);
- } else {
- Log.e(TAG, "Could not find preference " + getString(R.string.pref_category_security));
- }
} else {
lockPref.setOnPreferenceChangeListener((preference, newValue) -> {
NotesApplication.setLockedPreference((Boolean) newValue);
@@ -132,7 +117,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
fontPref.applyBrand(mainColor, textColor);
lockPref.applyBrand(mainColor, textColor);
wifiOnlyPref.applyBrand(mainColor, textColor);
- brandingPref.applyBrand(mainColor, textColor);
gridViewPref.applyBrand(mainColor, textColor);
+ preventScreenCapturePref.applyBrand(mainColor, textColor);
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/ServerResponse.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/ServerResponse.java
index 2f13d9ac..60c4ad5e 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/model/ServerResponse.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/model/ServerResponse.java
@@ -87,7 +87,7 @@ public class ServerResponse {
}
if (!json.isNull(NotesClient.JSON_MODIFIED)) {
modified = Calendar.getInstance();
- modified.setTimeInMillis(json.getLong(NotesClient.JSON_MODIFIED) * 1000);
+ modified.setTimeInMillis(json.getLong(NotesClient.JSON_MODIFIED) * 1_000);
}
if (!json.isNull(NotesClient.JSON_FAVORITE)) {
favorite = json.getBoolean(NotesClient.JSON_FAVORITE);
diff --git a/app/src/main/res/drawable/ic_baseline_screen_lock_portrait_24.xml b/app/src/main/res/drawable/ic_baseline_screen_lock_portrait_24.xml
new file mode 100644
index 00000000..8ec144f5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_screen_lock_portrait_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#757575"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M10,16h4c0.55,0 1,-0.45 1,-1v-3c0,-0.55 -0.45,-1 -1,-1v-1c0,-1.11 -0.9,-2 -2,-2 -1.11,0 -2,0.9 -2,2v1c-0.55,0 -1,0.45 -1,1v3c0,0.55 0.45,1 1,1zM10.8,10c0,-0.66 0.54,-1.2 1.2,-1.2 0.66,0 1.2,0.54 1.2,1.2v1h-2.4v-1zM17,1L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-2 -2,-2zM17,19L7,19L7,5h10v14z"/>
+</vector>
diff --git a/app/src/main/res/layout/fragment_note_edit.xml b/app/src/main/res/layout/fragment_note_edit.xml
index e4388865..1e84909f 100644
--- a/app/src/main/res/layout/fragment_note_edit.xml
+++ b/app/src/main/res/layout/fragment_note_edit.xml
@@ -33,6 +33,7 @@
android:ems="10"
android:gravity="top"
android:inputType="textMultiLine|textCapSentences"
+ android:lineSpacingMultiplier="@dimen/note_line_spacing"
android:padding="@dimen/spacer_2x"
android:paddingStart="@dimen/spacer_2x"
android:paddingEnd="@dimen/spacer_2x"
diff --git a/app/src/main/res/layout/fragment_note_preview.xml b/app/src/main/res/layout/fragment_note_preview.xml
index 475f9ede..be1a9f62 100644
--- a/app/src/main/res/layout/fragment_note_preview.xml
+++ b/app/src/main/res/layout/fragment_note_preview.xml
@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacer_activity_sides"
android:layout_marginEnd="@dimen/spacer_activity_sides"
+ android:lineSpacingMultiplier="@dimen/note_line_spacing"
android:padding="@dimen/spacer_2x"
android:paddingStart="@dimen/spacer_2x"
android:paddingEnd="@dimen/spacer_2x"
diff --git a/app/src/main/res/layout/widget_single_note_content.xml b/app/src/main/res/layout/widget_single_note_content.xml
index 9ff51b60..ad5a3b3e 100644
--- a/app/src/main/res/layout/widget_single_note_content.xml
+++ b/app/src/main/res/layout/widget_single_note_content.xml
@@ -4,5 +4,6 @@
android:id="@+id/single_note_content_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:lineSpacingMultiplier="@dimen/note_line_spacing"
android:textColor="@color/widget_foreground"
tools:text="@tools:sample/lorem/random" />
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 1b2df9f8..d2e12cdb 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -43,9 +43,7 @@
<string name="settings_font_title">خط أحادي المسافة</string>
<string name="settings_font_size">حجم الخط</string>
<string name="settings_wifi_only">المزامنة فقط على الوايفاي</string>
- <string name="settings_lock">الحماية بكلمة السر</string>
<string name="settings_background_sync">مزامنة في خلفية النظام</string>
-
<string name="error_sync">المزامنة فشلت \'%1$s\'</string>
<string name="error_synchronization">المزامنة فشلت</string>
<string name="error_no_network">لا يتوفر اتصال</string>
@@ -114,7 +112,6 @@
<string name="add_category">اضف %1$s</string>
<string name="simple_checkbox">مربع</string>
<string name="unlock_notes">فتح قفل الملاحظات</string>
- <string name="simple_beta">تجريبي</string>
<string name="error_dialog_title">آه لا، ماذا الان؟🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">الرجاء محاولة اجبار اغلاق التطبيق واعادة تشغيله، ربما هنالك خطأ في الاتصال مع تطبيق نيكست كلاود nextcloud</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">اذا تكررت المشكلة، حاول تنظيف مساحة التخزين في التطبيقين كلاهما:
@@ -139,9 +136,7 @@
<string name="change_note_title">تغيير عنوان الملاحظة</string>
<string name="menu_edit_title">تحرير العنوان</string>
<string name="settings_branding">وسم</string>
- <string name="settings_gridview">عرض شبكي 🆕</string>
<string name="simple_security">الأمان</string>
- <string name="simple_appearance">المظهر</string>
<string name="simple_synchronization">المزامنة</string>
<string name="simple_behavior">السلوك</string>
<string name="manage_accounts">إدارة الحسابات</string>
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 67a3c241..e7050e2e 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Tipus de lletra de mida fixa</string>
<string name="settings_font_size">Mida de la lletra</string>
<string name="settings_wifi_only">Sincronitza només per la connexió sense fil</string>
- <string name="settings_lock">Protecció amb contrasenya</string>
<string name="settings_background_sync">Sincronització en segon pla</string>
-
<string name="error_sync">S\'ha produït un error en la sincronització: %1$s</string>
<string name="error_synchronization">S\'ha produït un error en la sincronització</string>
<string name="error_no_network">No hi ha connexió a la xarxa</string>
@@ -110,7 +108,6 @@
<string name="add_category">Afegeix %1$s</string>
<string name="simple_checkbox">Casella de selecció</string>
<string name="unlock_notes">Desbloqueja les notes</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh, no! I ara què? </string>
<string name="error_dialog_tip_token_mismatch_retry">Proveu de forçar el tancament de l\'aplicació i reinicieu-la. Pot ser que hi hagi hagut una connexió incorrecta a l\'aplicació Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Si el problema persisteix, proveu d\'esborrar l\'emmagatzematge de totes dues aplicacions: Nextcloud i Notes del Nextcloud per tal de resoldre el problema.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Canvia el títol de la nota</string>
<string name="menu_edit_title">Edita el títol</string>
<string name="settings_branding">Marca</string>
- <string name="settings_gridview">Visualització de graella </string>
<string name="simple_security">Seguretat</string>
- <string name="simple_appearance">Aparença</string>
<string name="simple_synchronization">Sincronització</string>
<string name="simple_behavior">Comportament</string>
<string name="manage_accounts">Gestiona els comptes</string>
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index 2e55504a..e0d62453 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Písmo se všemi znaky stejně širokými</string>
<string name="settings_font_size">Velikost písmen</string>
<string name="settings_wifi_only">Synchronizovat pouze přes Wi-Fi</string>
- <string name="settings_lock">Ochrana heslem</string>
+ <string name="settings_lock">Zámek aplikace (zatím vyvíjeno)</string>
+ <string name="settings_lock_summary">Přihlašovací údaje zařízení</string>
<string name="settings_background_sync">Synchronizace na pozadí</string>
-
<string name="error_sync">Synchronizace se nezdařila: %1$s</string>
<string name="error_synchronization">Synchronizace se nezdařila</string>
<string name="error_no_network">Žádné síťové spojení</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Licence</string>
<string name="widget_note_list_title">Seznam poznámek</string>
- <string name="widget_note_list_add">Přidat novou poznámku</string>
- <string name="widget_note_list_add_favorite">Přidat novou poznámku do oblíbených</string>
- <string name="widget_note_list_add_to_category">Přidat novou poznámku do %1$s</string>
<string name="widget_note_list_placeholder">Žádné poznámky</string>
<string name="widget_single_note_title">Jediná poznámka</string>
<string name="widget_single_note_placeholder_tv">Poznámka nenalezena</string>
@@ -113,8 +110,7 @@
<string name="add_category">Přidat %1$s</string>
<string name="simple_checkbox">Zatržítko</string>
<string name="unlock_notes">Odemknout poznámky</string>
- <string name="simple_beta">Vývojové</string>
- <string name="error_dialog_title">Ó ne– co teď? 🙁</string>
+ <string name="error_dialog_title">Ó ne – co teď? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Prosím pokuste se vynutit ukončení aplikace a spusťte ji znovu. Možná se něco nepodařilo při spojení s aplikací Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Pokud problém přetrvává, zkuste problém vyřešit vyčištěním úložišť obou aplikací: Nextcloud a Nextcloud poznámky.</string>
<string name="error_dialog_tip_clear_storage">Úložiště můžete vyčistit otevřením nformací o aplikaci a vybráním Úložiště a mezipaměť → Vyčistit úložiště. ⚠️ Varování: toto nenávratně odstraní poznámky, které ještě nebyly synchronizovány se serverem. </string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Změnit nadpis poznámky</string>
<string name="menu_edit_title">Upravit nadpis</string>
<string name="settings_branding">Opatření vlastním logem</string>
- <string name="settings_gridview">Zobrazení v mřížce 🆕</string>
+ <string name="settings_gridview">Zobrazení v mřížce</string>
<string name="simple_security">Zabezpečení</string>
- <string name="simple_appearance">Vzhled</string>
<string name="simple_synchronization">Synchronizace</string>
<string name="simple_behavior">Chování</string>
<string name="manage_accounts">Spravovat účty</string>
@@ -220,7 +215,7 @@
<string name="formatting_help_lists_body_8">Dát lajk</string>
<string name="formatting_help_lists_body_9">A toto</string>
- <string name="formatting_help_checkboxes_title">Zatržítka</string>
+ <string name="formatting_help_checkboxes_title">Zaškrtávací pole</string>
<string name="formatting_help_checkboxes_body_1">Pro vytvoření zaškrtávací kolonky použijte seznam následovaný závorkami</string>
<string name="formatting_help_checkboxes_body_2">Položka 1</string>
<string name="formatting_help_checkboxes_body_3">Položka 2</string>
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index a78e7a76..094f3e18 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Monospace font</string>
<string name="settings_font_size">Skriftstørrelse</string>
<string name="settings_wifi_only">Synk kun på Wi-Fi</string>
- <string name="settings_lock">Password protection</string>
<string name="settings_background_sync">Synkronisering i baggrunden</string>
-
<string name="error_sync">Synkronisering fejlede: %1$s</string>
<string name="error_synchronization">Synkroniseringen mislykkedes</string>
<string name="error_no_network">Ingen netværksforbindelse</string>
@@ -110,7 +108,6 @@
<string name="add_category">Tilføj %1$s</string>
<string name="simple_checkbox">Afkrydsningsfeldt</string>
<string name="unlock_notes">Lås noter op</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Åh nej - hvad nu? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Forsøg venligst at tvinge app\'en til at lukke og start den påny igen. Der kan have været en ukorrekt forbindelse til Nextcloud-app\'en.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Hvis problemet ikke løses, så forsøg at rydde lageret for begge apps: Nextcloud og Nextcloud Notes, for at løse problemet.</string>
@@ -133,9 +130,7 @@
<string name="change_note_title">Skift titel på note</string>
<string name="menu_edit_title">Rediger titel</string>
<string name="settings_branding">Branding</string>
- <string name="settings_gridview">Gittervisning</string>
<string name="simple_security">Sikkerhed</string>
- <string name="simple_appearance">Udseende</string>
<string name="simple_synchronization">Synchronization</string>
<string name="simple_behavior">Adfærd</string>
<string name="manage_accounts">Administrer konti</string>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 2d8fa4a1..3fa46d45 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Nichtproportionale Schriftart</string>
<string name="settings_font_size">Schriftgröße</string>
<string name="settings_wifi_only">Nur über WLAN synchronisieren</string>
- <string name="settings_lock">Passwortschutz</string>
+ <string name="settings_lock">App-Sperre (Beta)</string>
+ <string name="settings_lock_summary">Geräte-Anmeldedaten</string>
<string name="settings_background_sync">Hintergrundsynchronisierung</string>
-
<string name="error_sync">Synchronisierung fehlgeschlagen: %1$s</string>
<string name="error_synchronization">Synchronisierung fehlgeschlagen</string>
<string name="error_no_network">Keine Netzwerkverbindung</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Lizenz</string>
<string name="widget_note_list_title">Liste der Notizen</string>
- <string name="widget_note_list_add">Neue Notiz hinzufügen</string>
- <string name="widget_note_list_add_favorite">Neue Notiz zu Favoriten hinzufügen</string>
- <string name="widget_note_list_add_to_category">Neue Notiz zu %1$s hinzufügen</string>
<string name="widget_note_list_placeholder">Keine Notizen</string>
<string name="widget_single_note_title">Eine Notiz</string>
<string name="widget_single_note_placeholder_tv">Notiz nicht gefunden</string>
@@ -113,7 +110,6 @@
<string name="add_category">%1$s hinzufügen</string>
<string name="simple_checkbox">Kontrollkästchen</string>
<string name="unlock_notes">Notiz entsperren</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh nein - Was jetzt? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Bitte versuchen Sie, das Schließen der App zu erzwingen und sie erneut zu starten. Möglicherweise bestand eine gestörte Verbindung zur Nextcloud-App.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Wenn das Problem weiterhin besteht, versuchen Sie, den Speicher von Nextcloud und Nextcloud Notes zu leeren, um das Problem zu beheben.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Notiz-Titel ändern</string>
<string name="menu_edit_title">Titel ändern</string>
<string name="settings_branding">Branding</string>
- <string name="settings_gridview">Kachelansicht 🆕</string>
+ <string name="settings_gridview">Kachelansicht</string>
<string name="simple_security">Sicherheit</string>
- <string name="simple_appearance">Aussehen</string>
<string name="simple_synchronization">Synchronisierung</string>
<string name="simple_behavior">Verhalten</string>
<string name="manage_accounts">Konten verwalten</string>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index cc3b5b3a..67236078 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Γραμματοσειρά monospace</string>
<string name="settings_font_size">Μέγεθος γραμματοσειράς</string>
<string name="settings_wifi_only">Συγχρονισμός μόνο σε Wi-Fi</string>
- <string name="settings_lock">Προστασία συνθηματικού</string>
<string name="settings_background_sync">Συγχρονισμός στο παρασκήνιο</string>
-
<string name="error_sync">Αποτυχία συγχρονισμού: %1$s</string>
<string name="error_synchronization">Αποτυχία συγχρονισμού</string>
<string name="error_no_network">Δεν υπάρχει σύνδεση στο δίκτυο</string>
@@ -110,7 +108,6 @@
<string name="add_category">Προσθήκη %1$s</string>
<string name="simple_checkbox">Πλαίσιο ελέγχου</string>
<string name="unlock_notes">Ξεκλείδωμα σημειώσεων</string>
- <string name="simple_beta">Δοκιμαστικό</string>
<string name="error_dialog_title">Ωχ όχι - Τώρα τί; 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Δοκιμάστε τερματισμό της εφαρμογή και επανεκκίνηση. Ίσως υπάρχει λάθος σύνδεση.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Εάν το πρόβλημα παραμένει, προσπαθήστε να εκκαθαρίσετε τον χώρο αποθήκευσης και των δύο εφαρμογών: του Nextcloud και του Nextcloud Notes.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Αλλαγή τίτλου σημείωσης</string>
<string name="menu_edit_title">Επεξεργασία τίτλου</string>
<string name="settings_branding">Επωνυμία</string>
- <string name="settings_gridview">Προβολή πλέγματος 🆕</string>
<string name="simple_security">Ασφάλεια</string>
- <string name="simple_appearance">Εμφάνιση</string>
<string name="simple_synchronization">Συγχρονισμός</string>
<string name="simple_behavior">Συμπεριφορά</string>
<string name="manage_accounts">Διαχείριση λογαριασμών</string>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 86ccdcb6..326d965e 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Tipo de letra monoespaciado</string>
<string name="settings_font_size">Tamaño de fuente</string>
<string name="settings_wifi_only">Sincronizar solo sobre Wi-Fi</string>
- <string name="settings_lock">Protección por contraseña</string>
<string name="settings_background_sync">Sincronización en segundo plano</string>
-
<string name="error_sync">Fallo en la sincronización: %1$s</string>
<string name="error_synchronization">Fallo en la sincronización</string>
<string name="error_no_network">Sin conexión de red</string>
@@ -110,7 +108,6 @@
<string name="add_category">Añadir %1$s</string>
<string name="simple_checkbox">Casilla de verificación</string>
<string name="unlock_notes">Desbloquear notas</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh no - ¿Ahora qué? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Por favor, intenta forzar el cierre de la aplicación y vuelve a abrirla. Es posible que haya habido un problema de conexión con la aplicación Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Si el problema persiste, intente borrar el almacenamiento de ambas aplicaciones: Nextcloud y Nextcloud Notas para solucionar este problema.</string>
@@ -135,9 +132,7 @@
<string name="change_note_title">Cambiar título de la nota</string>
<string name="menu_edit_title">Editar título</string>
<string name="settings_branding">Marca</string>
- <string name="settings_gridview">Vista en cuadrícula 🆕</string>
<string name="simple_security">Seguridad</string>
- <string name="simple_appearance">Apariencia</string>
<string name="simple_synchronization">Sincronización</string>
<string name="simple_behavior">Comportamiento</string>
<string name="manage_accounts">Gestionar cuentas</string>
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index b7da4b6c..0163ab3d 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Zabalera bakarreko letra mota</string>
<string name="settings_font_size">Letra tamaina</string>
<string name="settings_wifi_only">Sinkronizatu wifi bidez bakarrik</string>
- <string name="settings_lock">Pasahitz bidezko babesa</string>
+ <string name="settings_lock">Aplikazioen blokeoa (Beta)</string>
+ <string name="settings_lock_summary">Gailuaren kredentzialak</string>
<string name="settings_background_sync">Atzeko planoko sinkronizazioa</string>
-
<string name="error_sync">Sinkronizazioak huts egin du: %1$s</string>
<string name="error_synchronization">Sinkronizazioak huts egin du</string>
<string name="error_no_network">Ez dago sare konexiorik</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Lizentzia</string>
<string name="widget_note_list_title">Oharren zerrenda</string>
- <string name="widget_note_list_add">Gehitu ohar berria </string>
- <string name="widget_note_list_add_favorite">Gehitu ohar berria gogokoetara</string>
- <string name="widget_note_list_add_to_category">Gehitu ohar berria %1$s-(e)ra</string>
<string name="widget_note_list_placeholder">Oharrik ez</string>
<string name="widget_single_note_title">Ohar bakarra</string>
<string name="widget_single_note_placeholder_tv">Oharra ez da aurkitu</string>
@@ -113,7 +110,6 @@
<string name="add_category">Gehitu %1$s</string>
<string name="simple_checkbox">Kontrol laukia</string>
<string name="unlock_notes">Desblokeatzearen oharrak</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh ez - Orain zer? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Saia zaitez aplikazioa itxi eta berrabiarazten. Agian Nextcloud aplikazioarekin gaizki konektatzea gertatu da.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Arazoak jarraitzen badu, saiatu bi aplikazioen biltegiak garbitzen: Nextcloud eta Nextcloud Oharrak aplikazioen biltegiak.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Aldatu notaren titulua</string>
<string name="menu_edit_title">Editatu izenburua</string>
<string name="settings_branding">Marka</string>
- <string name="settings_gridview">Sareta ikuspegia 🆕</string>
+ <string name="settings_gridview">Sareta ikuspegia</string>
<string name="simple_security">Segurtasuna</string>
- <string name="simple_appearance">Itxura</string>
<string name="simple_synchronization">Sinkronizazioa</string>
<string name="simple_behavior">Portaera</string>
<string name="manage_accounts">Kudeatu kontuak</string>
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 6cc7a8fd..4dff5da4 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -2,7 +2,7 @@
<resources>
<string name="app_name">یادداشت‌ها</string>
- <string name="app_name_long">یادداشت های نکست کلود</string>
+ <string name="app_name_long">یادداشت‌های نکست کلود</string>
<string name="label_all_notes">همه یادداشت‌ها</string>
<string name="label_favorites">مورد علاقه‌ها</string>
<string name="action_create">یادداشت جدید</string>
@@ -42,12 +42,10 @@
<string name="settings_font_title">قلم Monospace</string>
<string name="settings_font_size">اندازهٔ قلم</string>
<string name="settings_wifi_only">همگام‌سازی فقط در Wi-Fi</string>
- <string name="settings_lock">محافظت از رمز عبور</string>
<string name="settings_background_sync">همگام‌سازی پس زمینه</string>
-
<string name="error_sync">همگام‌سازی انجام نشد:%1$s</string>
<string name="error_synchronization">همگام‌سازی انجام نشد</string>
- <string name="error_no_network">هیچ ارتباطی به شبکه موجود نیست</string>
+ <string name="error_no_network">هیچ ارتباطی با شبکه برقرار نیست</string>
<string name="error_unknown">یک خطای ناشناخته رخ داده است.</string>
<string name="about_version_title">نسخه</string>
@@ -110,41 +108,38 @@
<string name="add_category">افزودن%1$s</string>
<string name="simple_checkbox">جعبه علامت</string>
<string name="unlock_notes">یادداشت‌های باز</string>
- <string name="simple_beta">بتا</string>
<string name="error_dialog_title">وای نه - حالا چی کار کنیم؟</string>
- <string name="error_dialog_tip_token_mismatch_retry">"لطفا از طریق توقف اجباری برنامه را بسته و دوباره اجرا کنید. ممکن است یک اتصال نادرست با ابر سانا ایجاد شده باشد. "</string>
- <string name="error_dialog_tip_token_mismatch_clear_storage">اگر این مشکل استمرار داشت، سعی کنید با پاک کردن فضای ذخیره‌سازی هردو برنامک : ابر سانا و یادداشت سانا، این مورد را برطرف کنید.</string>
- <string name="error_dialog_tip_files_outdated">ظاهرا برنامک یادداشت منسوخ شده است. لطفا آخرین نسخه را از سانا مارکت دانلود کنید. </string>
- <string name="error_dialog_tip_files_force_stop">به نظر می‌رسد که مشکلی در برنامک نکست‌کلود ایجاد شده است. لطفا سعی کنید با توقف اجباری هر دو برنامک ابر سانا و یادداشت سانا را ببندید. </string>
+ <string name="error_dialog_tip_token_mismatch_retry">لطفا از طریق توقف اجباری برنامه را بسته و دوباره اجرا کنید. ممکن است یک اتصال نادرست با نکست‌کلود ایجاد شده باشد. </string>
+ <string name="error_dialog_tip_token_mismatch_clear_storage">اگر این مشکل استمرار داشت، سعی کنید با پاک کردن فضای ذخیره‌سازی هردو برنامک : Nextcloud و Nextcloud Notes این مورد را برطرف کنید.</string>
+ <string name="error_dialog_tip_files_outdated">ظاهرا برنامک یادداشت منسوخ شده است. لطفا آخرین نسخه را از Play Store یا F-Droid دانلود کنید.</string>
+ <string name="error_dialog_tip_files_force_stop">به نظر می‌رسد که مشکلی در برنامک نکست‌کلود ایجاد شده است. لطفا سعی کنید با توقف اجباری هر دو برنامک Nextcloud app و Nextcloud Notes را ببندید. </string>
<string name="error_dialog_tip_files_delete_storage">"اگر توقف اجباری برنامه‌ها کمکی نکرد، می‌توانید پاک‌کردن فضای ذخیره‌سازی هردو برنامه را پاک کنید. "</string>
<string name="error_dialog_timeout_instance">پاسخ از سمت سرور شما با نام داده شده دریافت نشد. لطفا بررسی کنید که نمونه شما به درستی کار می‌کند.</string>
- <string name="error_dialog_timeout_toggle">"اتصال اینترنت خود را بررسی کنید. خاموش کردن اینترنت همراه و وای‌فای و روشن کردن مجدد آنها در برخی ار مواقع می‌تواند کارساز باشد. "</string>
+ <string name="error_dialog_timeout_toggle">اتصال اینترنت خود را بررسی کنید. خاموش کردن اینترنت همراه و وای‌فای و روشن کردن مجدد آنها در برخی از مواقع می‌تواند کارساز باشد. </string>
<string name="error_dialog_check_server">پاسخ درستی از سرور شما دریافت نشد. لطفا دسترسی به یادداشت‌های خود را از طریق وب بررسی کنید.</string>
- <string name="error_dialog_check_server_logs">" مشکلی در نصب ابر سانا وجود دارد. لطفا لاگ‌های سرور را بررسی کنید."</string>
- <string name="error_dialog_check_maintenance">لطفا بررسی کنید که نسخه ابر سانای شما در حال حاضر در حالت تعمیر و نگهداری نباشد.</string>
+ <string name="error_dialog_check_server_logs"> مشکلی در نصب ابر Nextcloud وجود دارد. لطفا لاگ‌های سرور را بررسی کنید.</string>
+ <string name="error_dialog_check_maintenance">لطفا بررسی کنید که نسخه Nextcloud شما در حال حاضر در حالت تعمیر و نگهداری نباشد.</string>
<string name="error_dialog_insufficient_storage">فضای برنامک نکست‌کلود شما پر شده است.لطفا یعضی از فایل‌های خود در را فضای ابری برای همگام‌سازی تغییرات محلی پاک کنید. </string>
<string name="error_dialog_contact_us">لطفا بدون هیچ تردیدی در صورت استمرار مشکل با ما تماس بگیرید.</string>
<string name="error_dialog_we_need_info">ما برای کمک به شما احتیاج به دنبال کردن اطلاعات فنی داریم:</string>
<string name="error_dialog_server_app_enabled">لطفا از نصب و فعال بودن برنامک یادداشت بر روی سرور، اطمینان حاصل کنید.</string>
<string name="error_dialog_redirect">پاسخ سرور شما کد حالت HTTP 302 است. که دلالت بر عدم نصب برنامک یادداشت بر روی سرور و یا پیکربندی نامناسب دارد. این مشکل می‌تواند به دلیل تغییرات نامناسب ایجاد شده در فایل .htaccess و یا به دلیل برنامه‌های مرتبط با Nextcloud مثل OID Client رخ دهد.</string>
- <string name="error_dialog_tip_disable_battery_optimizations">لطفا تمامی فرایند‌های بهینه‌سازی مصرف باتری برای ابر سانا و برنامک یادداشت را غیر فعال کنید.</string>
+ <string name="error_dialog_tip_disable_battery_optimizations">لطفا تمامی فرایند‌های بهینه‌سازی مصرف باتری برای Nextcloud و Notes app را غیر فعال کنید.</string>
<string name="added_content">اضافه ‌شده %1$s</string>
<string name="shared_text_empty">متن به اشتراک گذاشته‌شده خالی است</string>
<string name="append_to_note">به یادداشت اضافه کنید</string>
<string name="change_note_title">عوض‌کردن عنوان یادداشت</string>
<string name="menu_edit_title">ویرایش عنوان</string>
<string name="settings_branding">شخصی‌سازی</string>
- <string name="settings_gridview">حالت شبکه‌ای جدید</string>
<string name="simple_security">امنیت</string>
- <string name="simple_appearance">ظاهر</string>
<string name="simple_synchronization">همگام‌سازی</string>
<string name="simple_behavior">رفتار</string>
<string name="manage_accounts">مدیریت حساب‌ها</string>
<string name="action_formatting_help">قالب‌بندی</string>
<string-array name="noteMode_entries">
- <item>در حالت ویرایش باز کنید</item>
- <item>در حالت پیش نمایش باز کنید</item>
+ <item> یادداشت را در حالت «ویرایش» باز کنید</item>
+ <item>یادداشت را در حالت پیش نمایش باز کنید</item>
<item>آخرین انتخاب من را به خاطر بسپار</item>
</string-array>
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index e939d311..c256b480 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Tasalevyinen fontti</string>
<string name="settings_font_size">Fontin koko</string>
<string name="settings_wifi_only">Synkronoi vain wifi-yhteydellä</string>
- <string name="settings_lock">Salasanasuojaus</string>
<string name="settings_background_sync">Taustasynkronointi</string>
-
<string name="error_sync">Synkronointi epäonnistui: %1$s</string>
<string name="error_synchronization">Synkronointi epäonnistui</string>
<string name="error_no_network">Ei verkkoyhteyttä</string>
@@ -109,7 +107,6 @@
<string name="add_category">Lisää %1$s</string>
<string name="simple_checkbox">Valintaruutu</string>
<string name="unlock_notes">Avaa muistiinpanojen lukitus</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Voi ei - Mitä nyt? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Yritä pakottaa sovelluksen sulkeminen ja käynnistä se uudelleen. Nextcloud-sovellukseen on saattanut olla virheellinen yhteys.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Jos ongelma jatkuu, yritä tyhjentää sekä Nextcloud- että Nextcloud Notes-sovellusten tallennustilat ratkaistaksesi ongelman.</string>
@@ -133,9 +130,7 @@
<string name="change_note_title">Muuta muistinpanon otsikkoa</string>
<string name="menu_edit_title">Muokkaa otsikkoa</string>
<string name="settings_branding">Brändäys</string>
- <string name="settings_gridview">Ruudukkonäkymä 🆕</string>
<string name="simple_security">Tietoturva</string>
- <string name="simple_appearance">Ulkoasu</string>
<string name="simple_synchronization">Synkronointi</string>
<string name="simple_behavior">Toiminta</string>
<string name="manage_accounts">Tilien hallinta</string>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 00b81c74..f20f4b78 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Texte monospace</string>
<string name="settings_font_size">Taille des caractères</string>
<string name="settings_wifi_only">Synchroniser uniquement en Wifi</string>
- <string name="settings_lock">Protection par mot de passe</string>
<string name="settings_background_sync">Synchronisation en tâche de fond</string>
-
<string name="error_sync">Échec de synchronisation : %1$s</string>
<string name="error_synchronization">Échec de synchronisation</string>
<string name="error_no_network">Aucune connexion réseau</string>
@@ -110,7 +108,6 @@
<string name="add_category">Ajouter %1$s</string>
<string name="simple_checkbox">Case à cocher</string>
<string name="unlock_notes">Déverrouiller les notes</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh non ! - Et maintenant ? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Essayez de forcer la fermeture de l\'application puis redémarrer la. Il y avait peut-être une mauvaise connexion à Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Si le problème persiste, essayez d\'effacer les données des deux applications : Nextcloud et Nextcloud Notes pour résoudre ce problème.</string>
@@ -135,9 +132,7 @@
<string name="change_note_title">Modifier le titre de la note</string>
<string name="menu_edit_title">Modifier le titre</string>
<string name="settings_branding">marque</string>
- <string name="settings_gridview">Affichage grille🆕</string>
<string name="simple_security">Sécurité</string>
- <string name="simple_appearance">Apparence</string>
<string name="simple_synchronization">Synchronisation</string>
<string name="simple_behavior">Comportement</string>
<string name="manage_accounts">Gérer les comptes</string>
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index d4aab17d..b0a6fbba 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Letra monoespazada</string>
<string name="settings_font_size">Tamaño da letra</string>
<string name="settings_wifi_only">Sincronizar só con wifi</string>
- <string name="settings_lock">Protección por contrasinal</string>
+ <string name="settings_lock">Bloqueo de aplis (beta)</string>
+ <string name="settings_lock_summary">Credenciais do dispositivo</string>
<string name="settings_background_sync">Sincronización do traballo en segundo plano</string>
-
<string name="error_sync">Produciuse un fallo na sincronización: %1$s</string>
<string name="error_synchronization">Produciuse un fallo na sincronización</string>
<string name="error_no_network">Sen conexión de rede</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Licenza</string>
<string name="widget_note_list_title">Lista de notas</string>
- <string name="widget_note_list_add">Engadir unha nova nota</string>
- <string name="widget_note_list_add_favorite">Engadir unha nova nota aos favoritos</string>
- <string name="widget_note_list_add_to_category">Engadir unha nova nota a %1$s</string>
<string name="widget_note_list_placeholder">Non hai notas</string>
<string name="widget_single_note_title">Nota única</string>
<string name="widget_single_note_placeholder_tv">Non se atopou a nota</string>
@@ -113,7 +110,6 @@
<string name="add_category">Engadir %1$s</string>
<string name="simple_checkbox">Caixa de selección</string>
<string name="unlock_notes">Desbloquear notas</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Vaites, e agora que? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Probe a forzar o peche da apli e reiniciala de novo. Pode haber unha conexión incorrecta coa apli Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Se o problema continúa, tente limpar o almacenamento de ambas as aplis: Nextcloud e Nextcloud Notas para resolver este problema.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Cambiar o título da nota</string>
<string name="menu_edit_title">Editar o título</string>
<string name="settings_branding">Xestión da marca</string>
- <string name="settings_gridview">Ver como grella 🆕</string>
+ <string name="settings_gridview">Ver como grella</string>
<string name="simple_security">Seguridade</string>
- <string name="simple_appearance">Aparencia</string>
<string name="simple_synchronization">Sincronización</string>
<string name="simple_behavior">Comportamento</string>
<string name="manage_accounts">Xestionar contas</string>
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index ec1c5769..1a90ec87 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">גופן ברוחב אחיד</string>
<string name="settings_font_size">גודל גופן</string>
<string name="settings_wifi_only">סנכרון רק דרך רשת אלחוטית</string>
- <string name="settings_lock">Password protection</string>
<string name="settings_background_sync">סנכרון ברקע</string>
-
<string name="error_sync">הסנכרון נכשל: %1$s</string>
<string name="error_synchronization">הסנכרון נכשל</string>
<string name="error_no_network">אין חיבור לאינטרנט</string>
@@ -110,7 +108,6 @@
<string name="add_category">הוספת %1$s</string>
<string name="simple_checkbox">תיבת סימון</string>
<string name="unlock_notes">שחרור פתקים</string>
- <string name="simple_beta">בטא</string>
<string name="error_dialog_title">שוד ושבר - מה עכשיו? 🙁</string>
<string name="error_dialog_tip_files_outdated">נראה כי יישומון ה־Nextcloud שלך אינו עדכני. נא לבקר בחנות Play או ב־F-Droid כדי לעדכן לגרסה האחרונה.</string>
<string name="error_dialog_tip_files_force_stop">כנראה שמשהו השתבש ביישומון ה־Nextcloud שלך. נא לנסות לכפות עצירה על שניהם, יישומון ה־Nextcloud ויישומון הפתקים של Nextcloud.</string>
@@ -122,9 +119,7 @@
<string name="append_to_note">הוספה לסוף הפתק</string>
<string name="menu_edit_title">עריכת כותרת</string>
<string name="settings_branding">מיתוג</string>
- <string name="settings_gridview">תצוגת רשת🆕</string>
<string name="simple_security">אבטחה</string>
- <string name="simple_appearance">מראה</string>
<string name="simple_synchronization">סנכרון</string>
<string name="simple_behavior">התנהגות</string>
<string name="manage_accounts">ניהול חשבונות</string>
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index bc88b475..013b2929 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Monospace font</string>
<string name="settings_font_size">Veličina fonta</string>
<string name="settings_wifi_only">Sinkroniziraj samo putem bežične (Wi-Fi) mreže</string>
- <string name="settings_lock">Zaštita zaporkom</string>
+ <string name="settings_lock">Zaključavanje aplikacije (beta)</string>
+ <string name="settings_lock_summary">Vjerodajnice uređaja</string>
<string name="settings_background_sync">Pozadinska sinkronizacija</string>
-
<string name="error_sync">Sinkronizacija nije uspjela: %1$s</string>
<string name="error_synchronization">Sinkronizacija nije uspjela</string>
<string name="error_no_network">Nema veze s mrežom</string>
@@ -110,10 +110,10 @@
<string name="add_category">Dodaj %1$s</string>
<string name="simple_checkbox">Potvrdni okvir</string>
<string name="unlock_notes">Otključaj bilješke</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Ups, što sada? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Pokušajte prisilno zatvoriti aplikaciju i ponovo je pokrenuti. Možda se radi o nepravilnoj vezi s aplikacijom Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Ako problem i dalje nije otklonjen, pokušajte izbrisati pohranjene podatke iz obje aplikacije: Nextcloud i Nextcloud Notes.</string>
+ <string name="error_dialog_tip_clear_storage">Pohranjene podatke možete izbrisati tako da otvorite informacije o aplikaciji i odaberete Pohrana → Brisanje pohrane podataka. ⚠️ Upozorenje: ova radnja će izbrisati bilješke koje još uvijek nisu sinkronizirane!</string>
<string name="error_dialog_tip_files_outdated">Čini se da je vaša aplikacija Nextcloud zastarjela. Posjetite trgovinu Play Store ili F-Droid kako biste dohvatili najnoviju inačicu.</string>
<string name="error_dialog_tip_files_force_stop">Čini se da nešto nije u redu s vašom aplikacijom Nextcloud. Pokušajte prisilno zatvoriti aplikaciju Nextcloud i aplikaciju Nextcloud Notes.</string>
<string name="error_dialog_tip_files_delete_storage">Ako prisilno zatvaranje nije otklonilo problem, pokušajte izbrisati pohranjene podatke iz obje aplikacije.</string>
@@ -134,9 +134,8 @@
<string name="change_note_title">Promijeni naslov bilješke</string>
<string name="menu_edit_title">Uredi naslov</string>
<string name="settings_branding">Brendiranje</string>
- <string name="settings_gridview">Prikaz rešetke 🆕</string>
+ <string name="settings_gridview">Prikaz rešetke</string>
<string name="simple_security">Sigurnost</string>
- <string name="simple_appearance">Izgled</string>
<string name="simple_synchronization">Sinkronizacija</string>
<string name="simple_behavior">Ponašanje</string>
<string name="manage_accounts">Upravljaj računima</string>
@@ -192,6 +191,7 @@
<string name="formatting_help_codefence_inline" translateable="false">`%1$s`</string>
<string name="formatting_help_codefence_inline_escaped" translateable="false">\\`%1$s\\`</string>
<string name="formatting_help_codefence" translateable="false">```</string>
+ <string name="formatting_help_codefence_outer" translateable="false">````</string>
<string name="formatting_help_codefence_javascript" translateable="false">```javascript</string>
<string name="formatting_help_cbf_title">Oblikovanje ovisno o kontekstu</string>
<string name="formatting_help_cbf_body_1">Glavni cilj pri razvoju aplikacije Notes je stvoriti alat koji se može upotrebljavati bez ometanja. Svoje tekstove možete oblikovati posebnim oznakama Markdown. Za razne primjere navedene u nastavku možete se koristiti prečacima kako biste oblikovali svoje bilješke bez upisivanja šifri.</string>
@@ -229,11 +229,22 @@
<string name="formatting_help_code_body_2">Markdown također podržava nešto što se naziva ograđivanje koda i omogućuje korištenje većeg broja redaka bez uvlačenja teksta:</string>
<string name="formatting_help_code_body_3">Ako želite naglasiti sintaksu, dodajte jezik:</string>
+ <string name="formatting_help_tables_title">Tablice</string>
+ <!-- Column header of a sample table -->
+ <string name="formatting_help_tables_column">Stupac %1d</string>
+ <!-- Table cell value of a sample table -->
+ <string name="formatting_help_tables_value">Vrijednost %1d</string>
+
+ <string name="formatting_help_images_title">Slike</string>
+ <string name="formatting_help_images_alt">Vrhunska slika</string>
+
<string name="simple_other">Ostalo</string>
<string name="sort_last_modified">Razvrstaj prema datumu izmjene</string>
<string name="sort_alphabetically">Razvrstaj po abecedi</string>
<string name="error_action_open_battery_settings">Postavke baterije</string>
<string name="error_action_open_deck_info">Otvori informacije o aplikaciji</string>
<string name="error_action_open_network">Postavke mreže</string>
+ <string name="no_account_configured_yet">Još uvijek nema konfiguriranih računa</string>
<string name="no_other_accounts">Nemate konfiguriranih računa.</string>
- </resources>
+ <string name="context_based_formatting">Skočni okvir za oblikovanje ovisno o kontekstu</string>
+</resources>
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index 502a990f..b78dda02 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Fix szélességű betűkészlet</string>
<string name="settings_font_size">Betűméret</string>
<string name="settings_wifi_only">Szinkronizálás csak Wi-Fin</string>
- <string name="settings_lock">Jelszavas védelem</string>
+ <string name="settings_lock">Alkalmazás zár (Béta)</string>
+ <string name="settings_lock_summary">Eszközhitelesítő-adatok</string>
<string name="settings_background_sync">Háttér-szinkronizálás</string>
-
<string name="error_sync">Szinkronizálás sikertelen: %1$s</string>
<string name="error_synchronization">Szinkronizálás sikertelen</string>
<string name="error_no_network">Nincs hálózati kapcsolat</string>
@@ -110,10 +110,10 @@
<string name="add_category">%1$s hozzáadása</string>
<string name="simple_checkbox">Jelölőmező</string>
<string name="unlock_notes">Jegyzetek feloldása</string>
- <string name="simple_beta">Béta</string>
<string name="error_dialog_title">Jaj ne – Most mi legyen? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Próbálja kényszeríteni az alkalmazás bezárását, és indítsa újra. Lehet, hogy hibás volt a kapcsolat a többi Nextcloud alkalmazással.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Ha a probléma továbbra is fennáll, próbálja kiüríteni mindkét alkalmazás tárolóját: a Nextcloudét és a Nextcloud Jegyzetekét.</string>
+ <string name="error_dialog_tip_clear_storage">Törölheti a tárhelyet az alkalmazás adatainak megnyitásával, és válassza a Tárolás → Tárolás törlése lehetőséget. ⚠️ Figyelem: Ezzel törli a még nem szinkronizált jegyzeteket!</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_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 Jegyzetek 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>
@@ -127,16 +127,15 @@
<string name="error_dialog_we_need_info">A következő műszaki információkra van szükségünk, hogy segíthessünk:</string>
<string name="error_dialog_server_app_enabled">Bizonyosodjon meg róla, hogy telepítette és bekapcsolta a „Jegyzetek” alkalmazást a szerverén.</string>
<string name="error_dialog_redirect">A kiszolgálója 302-es HTTP állapotkóddal válaszolt, amely arra utal, hogy nincs telepítve a Jegyzetek alkalmazás a kiszolgálón, vagy valami hibásan van beállítva. Ezt egyéni felülírások is okozhatják, mint egy .htaccess-fájl vagy az OID klienshez hasonló Nextcloud alkalmazások.</string>
- <string name="error_dialog_tip_disable_battery_optimizations">Kapcsoljon ki minden energiatakarékossági beállítást a Nextcloud valamint a Jegyzetek alkalmazáshoz. </string>
+ <string name="error_dialog_tip_disable_battery_optimizations">Kapcsoljon ki minden energiatakarékossági beállítást a Nextcloud valamint a Jegyzetek alkalmazáshoz.</string>
<string name="added_content">„%1$s” hozzáadva</string>
<string name="shared_text_empty">A megosztott szöveg üres volt</string>
<string name="append_to_note">Hozzáfűzés a jegyzethez</string>
<string name="change_note_title">Jegyzet címének módosítása</string>
<string name="menu_edit_title">Cím szerkesztése</string>
<string name="settings_branding">Márkázas</string>
- <string name="settings_gridview">Rács nézet 🆕</string>
+ <string name="settings_gridview">Rács nézet</string>
<string name="simple_security">Biztonság</string>
- <string name="simple_appearance">Megjelenés</string>
<string name="simple_synchronization">Szinkronizálás</string>
<string name="simple_behavior">Viselkedés</string>
<string name="manage_accounts">Fiókok kezelése</string>
@@ -171,13 +170,29 @@
<item quantity="one">%d kiválasztva</item>
<item quantity="other">%d kiválasztva</item>
</plurals>
+ <plurals name="bulk_notes_deleted">
+ <item quantity="one">Egy jegyzetet törölve</item>
+ <item quantity="other">%1$d jegyzet törölve</item>
+ </plurals>
+ <plurals name="bulk_notes_restored">
+ <item quantity="one">Egy jegyzet visszaállítva</item>
+ <item quantity="other">%1$d jegyzet visszaállítva</item>
+ </plurals>
+ <plurals name="share_multiple">
+ <item quantity="one">%1$d jegyzet tartalmának megosztása</item>
+ <item quantity="other">%1$d jegyzet tartalmának megosztása</item>
+ </plurals>
+
<string name="formatting_help_divider" translateable="false">---</string>
<string name="formatting_help_codefence_inline" translateable="false">`%1$s`</string>
<string name="formatting_help_codefence_inline_escaped" translateable="false">\\`%1$s\\`</string>
<string name="formatting_help_codefence" translateable="false">```</string>
+ <string name="formatting_help_codefence_outer" translateable="false">````</string>
<string name="formatting_help_codefence_javascript" translateable="false">```javascript</string>
<string name="formatting_help_cbf_title">Környezetfüggő formázás</string>
<string name="formatting_help_cbf_body_1">A Jegyzetek alkalmazás egyik célkitűzése, hogy egyszerű legyen, és ne vonja el a figyelmet. Viszont Markdownnal formázhatja a szövegeket. A lent említett példák némelyikénél rövidítéseket is használhat, így anélkül formázhatja meg a jegyzeteket, hogy beírná a lenti kódokat.</string>
+ <string name="formatting_help_cbf_body_2">Csak válasszon ki egy szövegtartományt, vagy érintse meg a kurzort bármely helyen, és megjelenik egy előugró menü, amely az alapértelmezett bejegyzések mellett %1$s, %2$s, %3$s tartalmaz olyan bejegyzéseket, mint %4$s vagy %5$s.</string>
+
<string name="formatting_help_text_title">Szöveg</string>
<string name="formatting_help_text_body">Nagyon egyszerűen írhat Markdownnal %1$sfélkövéren,%1$s valamint %2$sdőlten.%2$s Át is %3$shúzhat%3$s szavakat, valamint [linkelhet a Nextcloudra](https://nextcloud.com).</string>
@@ -186,16 +201,46 @@
<string name="formatting_help_lists_body_2">Egy</string>
<string name="formatting_help_lists_body_3">Két</string>
<string name="formatting_help_lists_body_4">Három</string>
+ <string name="formatting_help_lists_body_5">Néha felsorolást szeretne:</string>
<string name="formatting_help_lists_body_6">Kezdjen egy sort kötőjellel</string>
<string name="formatting_help_lists_body_7">És ha alpontokat szeretne, rakjon két szóközt a kötőjel vagy csillag elé:</string>
<string name="formatting_help_lists_body_8">Így</string>
<string name="formatting_help_lists_body_9">És így</string>
+ <string name="formatting_help_checkboxes_title">Jelölőnégyzetek</string>
+ <string name="formatting_help_checkboxes_body_1">Jelölőnégyzet létrehozásához használjon egy listát, amelyet zárójelek követnek</string>
+ <string name="formatting_help_checkboxes_body_2">1. elem</string>
+ <string name="formatting_help_checkboxes_body_3">2. elem</string>
+
+ <string name="formatting_help_structured_documents_title">Strukturált dokumentumok</string>
+ <string name="formatting_help_structured_documents_body_1">Néha hasznos, ha különböző szintű címsorok vannak a dokumentumok strukturálásához. Indítsa el a sorokat %1$s-szal a címsorok létrehozásához. A(z) %2$s többszörös sorozata kisebb fejlécméretet jelöl.</string>
+ <string name="formatting_help_structured_documents_body_2">Ez egy harmadik szintű cím</string>
+ <string name="formatting_help_structured_documents_body_3">%1$s használható egészen %2$s hatig különböző fejlécméretekhez.</string>
+ <string name="formatting_help_structured_documents_body_4">Ha valakit idézni szerete, használja a %1$s karaktert a sor előtt:</string>
+ <string name="formatting_help_structured_documents_body_5">A képzelet sokkal fontosabb, mint a tudás. A tudás véges. A képzelet felöleli az egész világot.</string>
+ <string name="formatting_help_structured_documents_body_6">- Albert Einstein</string>
+
<string name="formatting_help_code_title">Kód</string>
+ <string name="formatting_help_code_body_1">A Markdown segítségével sokféleképpen lehet stílus kódolni. Ha beágyazott kódblokkok vannak, csomagolja be őket fordított idézőjelekbe:</string>
+ <string name="formatting_help_code_body_2">A Markdown támogatja az úgynevezett kód keretezést is, amely több sort tesz lehetővé behúzás nélkül:</string>
+ <string name="formatting_help_code_body_3">Ha pedig a szintaxis kiemelését szeretné használni, adja meg a nyelvet:</string>
+
+ <string name="formatting_help_tables_title">Táblázatok</string>
+ <!-- Column header of a sample table -->
+ <string name="formatting_help_tables_column">%1d. oszlop</string>
+ <!-- Table cell value of a sample table -->
+ <string name="formatting_help_tables_value">%1d. érték</string>
+
+ <string name="formatting_help_images_title">Képek</string>
+ <string name="formatting_help_images_alt">Díszes kép</string>
+
<string name="simple_other">Egyéb</string>
<string name="sort_last_modified">Rendezés módosítás dátuma szerint</string>
<string name="sort_alphabetically">Rendezés név szerint</string>
<string name="error_action_open_battery_settings">Akkumulátorbeállítások</string>
<string name="error_action_open_deck_info">Alkalmazásinformációk megnyitása</string>
<string name="error_action_open_network">Hálózati beállítások</string>
+<string name="no_account_configured_yet">Nincs még fiók beállítva</string>
+ <string name="no_other_accounts">Még egyetlen más fiókot se állított be.</string>
+ <string name="context_based_formatting">Környezetfüggő formázási felbukkanó menü</string>
</resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 55fe08d5..b6dba215 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Carattere a spaziatura fissa</string>
<string name="settings_font_size">Dimensione carattere</string>
<string name="settings_wifi_only">Sincronizza solo con Wi-Fi</string>
- <string name="settings_lock">Protezione con password</string>
+ <string name="settings_lock">Blocco applicazione (Beta)</string>
+ <string name="settings_lock_summary">Credenziali dispositivo</string>
<string name="settings_background_sync">Sincronizzazione in background</string>
-
<string name="error_sync">Sincronizzazione non riuscita: %1$s</string>
<string name="error_synchronization">Sincronizzazione non riuscita</string>
<string name="error_no_network">Nessuna connessione di rete</string>
@@ -110,7 +110,6 @@
<string name="add_category">Aggiungi %1$s</string>
<string name="simple_checkbox">Casella di selezione</string>
<string name="unlock_notes">Sblocca note</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh no - Cosa succede adesso? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Prova a forzare la chiusura dell\'applicazione e riavviarla nuovamente. Potrebbe essersi verificato un problema di connessione all\'applicazione Nextcloud. </string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Se il problema persiste, prova a cancellare l\'archiviazione di entrambe le applicazioni Nextcloud e Nextcloud Notes per risolver il problema.</string>
@@ -135,9 +134,8 @@
<string name="change_note_title">Cambia titolo della nota</string>
<string name="menu_edit_title">Modifica titolo</string>
<string name="settings_branding">Marchio</string>
- <string name="settings_gridview">Vista Griglia 🆕</string>
+ <string name="settings_gridview">Vista griglia</string>
<string name="simple_security">Sicurezza</string>
- <string name="simple_appearance">Aspetto</string>
<string name="simple_synchronization">Sincronizzazione</string>
<string name="simple_behavior">Comportamento</string>
<string name="manage_accounts">Gestisci account</string>
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 2aa74150..e0f60ef9 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">モノスペースフォント</string>
<string name="settings_font_size">フォントサイズ</string>
<string name="settings_wifi_only">Wi-Fi接続時のみ同期する</string>
- <string name="settings_lock">パスワード保護</string>
<string name="settings_background_sync">バックグラウンド同期</string>
-
<string name="error_sync">同期に失敗しました: %1$s</string>
<string name="error_synchronization">同期に失敗</string>
<string name="error_no_network">ネットワークに接続されていません</string>
@@ -60,7 +58,7 @@
<string name="about_source_title">ソースコード</string>
<string name="about_source">このプロジェクトは GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a> にホストされています</string>
<string name="about_issues_title">問題</string>
- <string name="about_issues">GitHub の問題追跡ツールで、バグ、拡張の提案、機能のリクエストを報告できます: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_issues">GitHub の問題追跡ツールで、不具合、拡張の提案、機能のリクエストを報告できます: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_translate_title">翻訳</string>
<string name="about_translate">Transifex の Nextcloud チームに参加して、このアプリの翻訳を手伝ってください: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_app_license_title">アプリ ライセンス</string>
@@ -110,7 +108,6 @@
<string name="add_category">%1$s を追加</string>
<string name="simple_checkbox">チェックボックス</string>
<string name="unlock_notes">ノートをアンロック</string>
- <string name="simple_beta">ベータ</string>
<string name="error_dialog_title">おやまあ、どうしたことでしょう?🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">アプリの強制終了と再起動を試みてください。Nextcloudアプリへの接続が正しくない接続があったかも知れません。</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">この問題が続くようでしたら、下記両方のアプリでストレージをクリアして問題が解決できるか試してください:Nextcloud と Nextcloud Notes</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">ノートタイトルを変更</string>
<string name="menu_edit_title">タイトルを編集</string>
<string name="settings_branding">ブランディング</string>
- <string name="settings_gridview">グリッド表示 🆕</string>
<string name="simple_security">セキュリティ</string>
- <string name="simple_appearance">表示</string>
<string name="simple_synchronization">同期</string>
<string name="simple_behavior">表示形式</string>
<string name="manage_accounts">アカウント管理</string>
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 876935ed..7e000e0c 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Monospace 글꼴</string>
<string name="settings_font_size">글꼴 크기</string>
<string name="settings_wifi_only">Wi-Fi만 사용해 동기화</string>
- <string name="settings_lock">암호 보호</string>
<string name="settings_background_sync">백그라운드 동기화</string>
-
<string name="error_sync">동기화 실패: %1$s</string>
<string name="error_synchronization">동기화에 실패했습니다.</string>
<string name="error_no_network">네트워크에 연결할 수 없음</string>
@@ -110,7 +108,6 @@
<string name="add_category">%1$s(으)로 추가</string>
<string name="simple_checkbox">체크 상자</string>
<string name="unlock_notes">노트 잠금해제</string>
- <string name="simple_beta">베타</string>
<string name="error_dialog_title">세상에 - 무슨일이야?</string>
<string name="error_dialog_tip_token_mismatch_retry">앱을 종료하고 다시 시작해주십시오. 아마 Nextcloud에 잘못된 연결이 있었을 것입니다.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">문제가 지속되면 Nextcloud와 Nextcloud Notes 두 앱의 스토리지를 모두 지워 이 문제를 해결해보십시오.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">메모 제목 변경</string>
<string name="menu_edit_title">제목 수정</string>
<string name="settings_branding">브랜딩</string>
- <string name="settings_gridview">바둑판식 보기 🆕</string>
<string name="simple_security">보안</string>
- <string name="simple_appearance">외형</string>
<string name="simple_synchronization">동기화</string>
<string name="simple_behavior">행동</string>
<string name="manage_accounts">계정 관리</string>
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index a977ad8f..ae481196 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Lygiaplotis šriftas</string>
<string name="settings_font_size">Šrifto dydis</string>
<string name="settings_wifi_only">Sinchronizuoti tik naudojant belaidį (Wi-Fi)</string>
- <string name="settings_lock">Apsauga slaptažodžiu</string>
<string name="settings_background_sync">Foninis sinchronizavimas</string>
-
<string name="error_sync">Sinchronizacija nepavyko: %1$s</string>
<string name="error_synchronization">Sinchronizacija nepavyko</string>
<string name="error_no_network">Nėra tinklo ryšio</string>
@@ -109,7 +107,6 @@
<string name="add_category">Pridėti %1$s</string>
<string name="simple_checkbox">Žymimasis langelis</string>
<string name="unlock_notes">Atrakinti užrašus</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">O, ne - Kas dabar? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Pabandykite priverstinai uždaryti programą ir vėl paleiskite ją iš naujo. Galbūt buvo nepavyko užmegžti ryšį su „Nextcloud“ programa.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Jei problema išlieka, pabandykite išvalyti abiejų programų saugyklą: „Nextcloud“ ir „Nextcloud Notes“.</string>
@@ -133,9 +130,7 @@
<string name="change_note_title">Pakeisti užrašo pavadinimą</string>
<string name="menu_edit_title">Redaguoti pavadinimą</string>
<string name="settings_branding">Prekės ženklas</string>
- <string name="settings_gridview">Tinklelinis atvaizdavimas</string>
<string name="simple_security">Saugumas</string>
- <string name="simple_appearance">Išvaizda</string>
<string name="simple_synchronization">Sinchronizacija</string>
<string name="simple_behavior">Funkcionavimas</string>
<string name="manage_accounts">Tvarkyti paskyras</string>
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 0b69815e..ee751ac1 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Monospace font</string>
<string name="settings_font_size">Skriftstørrelse</string>
<string name="settings_wifi_only">Synkroniser kun med WiFi</string>
- <string name="settings_lock">Passordbeskyttelse</string>
<string name="settings_background_sync">Synkronisering i bakgrunnen</string>
-
<string name="error_sync">Synkronisering mislyktes: %1$s</string>
<string name="error_synchronization">Synkronisering mislyktes</string>
<string name="error_no_network">Ingen nettverkstilkobling</string>
@@ -110,7 +108,6 @@
<string name="add_category">Legg til%1$s</string>
<string name="simple_checkbox">Avkryssningsboks</string>
<string name="unlock_notes">Lås opp notater</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Å nei - Hva nå? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Prøv å tvinge avslutning av appen og start den på nytt. Det kan ha vært en feiltilkobling til Nextcloud-appen.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Hvis problemet vedvarer, prøv å tømme lageret for begge disse appene for å løse problemet: Nextcloud og Nextcloud Notes.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Endre tittel på notat</string>
<string name="menu_edit_title">Rediger tittel</string>
<string name="settings_branding">Branding</string>
- <string name="settings_gridview">Rutenett-visning</string>
<string name="simple_security">Sikkerhet</string>
- <string name="simple_appearance">Utseende</string>
<string name="simple_synchronization">Synkronisering</string>
<string name="simple_behavior">Atferd</string>
<string name="manage_accounts">Håndter kontoer</string>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index e34e4d4d..07f52969 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Monospace lettertype</string>
<string name="settings_font_size">Fontgrootte</string>
<string name="settings_wifi_only">Alleen met Wi-Fi synchroniseren</string>
- <string name="settings_lock">Wachtwoordbeveiliging</string>
+ <string name="settings_lock">App slot (Beta)</string>
+ <string name="settings_lock_summary">Apparaatinloggegevens</string>
<string name="settings_background_sync">Achtergrondsynchronisatie</string>
-
<string name="error_sync">Synchronisatie mislukt: %1$s</string>
<string name="error_synchronization">Synchronisatie mislukt</string>
<string name="error_no_network">Geen netwerkverbinding</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Licentie</string>
<string name="widget_note_list_title">Notitielijst</string>
- <string name="widget_note_list_add">Toevoegen nieuwe notitie</string>
- <string name="widget_note_list_add_favorite">Toevoegen nieuwe notitie aan favorieten</string>
- <string name="widget_note_list_add_to_category">Toevoegen nieuwe notitie aan %1$s</string>
<string name="widget_note_list_placeholder">Geen notities</string>
<string name="widget_single_note_title">Enkele notitie</string>
<string name="widget_single_note_placeholder_tv">Notitie niet gevonden</string>
@@ -113,7 +110,6 @@
<string name="add_category">Toevoegen %1$s</string>
<string name="simple_checkbox">Selectievakje</string>
<string name="unlock_notes">Ontgrendel notities</string>
- <string name="simple_beta">Bèta</string>
<string name="error_dialog_title">Oh nee - wat nu? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Probeer de app te sluiten en opnieuw te starten. Er was misschien een onjuiste verbinding met de Nextcloud-app.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Als het probleem blijft aanhouden, probeer dan de gegevensopslag bij Nextcloud en de Nextcloud Notes apps te wissen.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Notitie titel wijzigen</string>
<string name="menu_edit_title">Titel bewerken</string>
<string name="settings_branding">Brandmerken</string>
- <string name="settings_gridview">Rastweergave 🆕</string>
+ <string name="settings_gridview">Rasterweergave</string>
<string name="simple_security">Beveiliging</string>
- <string name="simple_appearance">Uiterlijk</string>
<string name="simple_synchronization">Synchronisatie</string>
<string name="simple_behavior">Gedrag</string>
<string name="manage_accounts">Accounts beheren </string>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 8dcc6b93..4bd291cf 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Czcionka monospace</string>
<string name="settings_font_size">Rozmiar czcionki</string>
<string name="settings_wifi_only">Synchronizuj tylko przez Wi-Fi</string>
- <string name="settings_lock">Ochrona hasłem</string>
+ <string name="settings_lock">Blokada aplikacji (Beta)</string>
+ <string name="settings_lock_summary">Poświadczenia urządzenia</string>
<string name="settings_background_sync">Synchronizacja w tle</string>
-
<string name="error_sync">Synchronizacja nie powiodła się: %1$s</string>
<string name="error_synchronization">Synchronizacja nie powiodła się</string>
<string name="error_no_network">Brak połączenia sieciowego</string>
@@ -73,14 +73,11 @@
<string name="about_license_tab_title">Licencja</string>
<string name="widget_note_list_title">Lista notatek</string>
- <string name="widget_note_list_add">Dodaj nową notatkę</string>
- <string name="widget_note_list_add_favorite">Dodaj nową notatkę do ulubionych</string>
- <string name="widget_note_list_add_to_category">Dodaj nową notatkę do %1$s</string>
<string name="widget_note_list_placeholder">Brak notatek</string>
<string name="widget_single_note_title">Pojedyncza notatka</string>
<string name="widget_single_note_placeholder_tv">Nie znaleziono notatki</string>
<string name="widget_create_note">Utwórz notatkę</string>
- <string name="widget_not_logged_in">Zaloguj się do Notes przed użyciem tego widgetu</string>
+ <string name="widget_not_logged_in">Zaloguj się do Notatek przed użyciem tego widżetu</string>
<string name="widget_entry_fav_contentDescription">Ikona gwiazdki służy do oznaczenia pozycji jako ulubiona</string>
<string name="widget_app_launcher_contentDescription">Uruchamia aplikację</string>
@@ -113,7 +110,6 @@
<string name="add_category">Dodaj %1$s</string>
<string name="simple_checkbox">Pole checkbox</string>
<string name="unlock_notes">Odblokuj notatki</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">O nie - co teraz? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Spróbuj wymusić zamknięcie aplikacji i uruchomić ją ponownie. Być może połączenie z aplikacją Nextcloud było nieprawidłowe.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Jeśli problem będzie się powtarzać, spróbuj wyczyścić pamięć obu aplikacji: Nextcloud i Nextcloud Notes, aby rozwiązać ten problem.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Zmień tytuł notatki</string>
<string name="menu_edit_title">Edytuj tytuł</string>
<string name="settings_branding">Motyw serwera</string>
- <string name="settings_gridview">Widok siatki 🆕</string>
+ <string name="settings_gridview">Widok siatki</string>
<string name="simple_security">Bezpieczeństwo</string>
- <string name="simple_appearance">Wygląd</string>
<string name="simple_synchronization">Synchronizacja</string>
<string name="simple_behavior">Zachowanie</string>
<string name="manage_accounts">Zarządzaj kontami</string>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index ea05bb62..7731c772 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title"> Fonte monospaçada</string>
<string name="settings_font_size">Tamanho da fonte</string>
<string name="settings_wifi_only">Sincronizar apenas por Wi-Fi</string>
- <string name="settings_lock">Proteção com senha</string>
+ <string name="settings_lock">Bloqueio de aplicativo (Beta)</string>
+ <string name="settings_lock_summary">Credenciais de dispositivo</string>
<string name="settings_background_sync">Sincronização em segundo plano</string>
-
<string name="error_sync">A sincronização falhou: %1$s</string>
<string name="error_synchronization">A sincronização falhou</string>
<string name="error_no_network">Sem conexão de rede</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Licença</string>
<string name="widget_note_list_title">Lista de notas</string>
- <string name="widget_note_list_add">Adicionar nova nota</string>
- <string name="widget_note_list_add_favorite">Adicionar nova nota aos favoritos</string>
- <string name="widget_note_list_add_to_category">Adicionar nova nota %1$s</string>
<string name="widget_note_list_placeholder">Sem anotações</string>
<string name="widget_single_note_title">Anotação simples</string>
<string name="widget_single_note_placeholder_tv">Anotação não encontrada</string>
@@ -113,7 +110,6 @@
<string name="add_category">Adicionar %1$s</string>
<string name="simple_checkbox">Caixa de marcação</string>
<string name="unlock_notes">Destravar anotações</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh não - E agora? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Tente forçar o fechamento do aplicativo e reinicie-o novamente. Pode ter havido uma conexão incorreta com o aplicativo Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Se o problema persistir, tente limpar o armazenamento dos dois aplicativos: Nextcloud e Anotações Nextcloud para resolver esse problema.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Alterar o título da nota</string>
<string name="menu_edit_title">Editar título</string>
<string name="settings_branding">Marcação</string>
- <string name="settings_gridview">Exibição em grade 🆕</string>
+ <string name="settings_gridview">Visualização em grade</string>
<string name="simple_security">Segurança</string>
- <string name="simple_appearance">Aparência</string>
<string name="simple_synchronization">Sincronização</string>
<string name="simple_behavior">Comportamento</string>
<string name="manage_accounts">Gerenciar contas</string>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 2b24ee63..eb60c1ee 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Моноширинный шрифт</string>
<string name="settings_font_size">Размер шрифта</string>
<string name="settings_wifi_only">Синхр. только по Wi-Fi</string>
- <string name="settings_lock">Защита паролем</string>
<string name="settings_background_sync">Синхр. в фоновом режиме</string>
-
<string name="error_sync">Сбой синхронизации: %1$s</string>
<string name="error_synchronization">Сбой синхронизации</string>
<string name="error_no_network">Нет подключения к сети</string>
@@ -110,7 +108,6 @@
<string name="add_category">Добавить %1$s </string>
<string name="simple_checkbox">Флажок</string>
<string name="unlock_notes">Разблокировать заметки</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">О нет, что теперь? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Попробуйте принудительно закрыть приложение и запустить его снова. Это может быть связано с некорректным подключением к приложению Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Если проблема повторилась, попробуйте для ее решения очистить хранилище обоих приложений: Nextcloud и Nextcloud Notes</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Изменить заголовок заметки</string>
<string name="menu_edit_title">Редактировать заголовок</string>
<string name="settings_branding">Брендирование</string>
- <string name="settings_gridview">Вид сеткой 🆕</string>
<string name="simple_security">Безопасность</string>
- <string name="simple_appearance">Внешний вид</string>
<string name="simple_synchronization">Синхронизация</string>
<string name="simple_behavior">Режим</string>
<string name="manage_accounts">Управление аккаунтами</string>
diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml
index 63c6b5bb..45bd2b84 100644
--- a/app/src/main/res/values-sc/strings.xml
+++ b/app/src/main/res/values-sc/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Caràtere a ispatziadura fissa</string>
<string name="settings_font_size">Dimensione caràtere</string>
<string name="settings_wifi_only">Sincroniza isceti cun su Wi-Fi</string>
- <string name="settings_lock">Bardiadura cun crae</string>
<string name="settings_background_sync">Sincronizatzione isfundu</string>
-
<string name="error_sync">Sincronizatzione faddida: %1$s</string>
<string name="error_synchronization">Sincronizatzione faddida</string>
<string name="error_no_network">Peruna connessione de rete</string>
@@ -110,10 +108,10 @@
<string name="add_category">Agiunghe %1$s</string>
<string name="simple_checkbox">Casella de seletzione</string>
<string name="unlock_notes">Isbloca notas</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh no - Immoe ite ddoe at? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Proa a serrare a fortza s\'aplicatzione e torrala a aviare. Fortzis ddoe at àpidu unu problema de connessione a s\'aplicatzione de Nextcloud. </string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Si sighit su problema, proa a cantzellare s\'archiviatzione de ambas is aplicatziones Nextcloud e Nextcloud Notes pro isorvere su problema.</string>
+ <string name="error_dialog_tip_clear_storage">Podes limpiare s\'archiviatzione aberende is informatziones de s\'aplicatzione e seberende Archiviatzione → Lìmpia archiviatzione. ⚠️ Atentzione: Custu at a cantzellare is notas no ancora sincronizadas!</string>
<string name="error_dialog_tip_files_outdated">S\'aplicatzione tua de Nextcloud paret foras d\'usu. Pro praghere, bìsita su Play Store o F-Droid pro otènnere s\'ùrtima versione.</string>
<string name="error_dialog_tip_files_force_stop">Paret chi b\'at àpidu problemas cun s\'aplicatzione de Nextcloud. Pro praghere proa a ddas firmare ambas, s\'aplicatzione Nextcloud e s\'aplicatzione Nexcloud Notes. </string>
<string name="error_dialog_tip_files_delete_storage">Si a ddas firmare a fortza no agiudat, podes proare a limpiare s\'archiviatzione de ambas is aplicatziones.</string>
@@ -134,9 +132,7 @@
<string name="change_note_title">Càmbia su tìtulu de sa nota</string>
<string name="menu_edit_title">Modìfica tìtulu</string>
<string name="settings_branding">Marca</string>
- <string name="settings_gridview">Vista grìllia</string>
<string name="simple_security">Seguresa</string>
- <string name="simple_appearance">Aparèntzia</string>
<string name="simple_synchronization">Sincronizatzione</string>
<string name="simple_behavior">Cumportamentu</string>
<string name="manage_accounts">Gesti contos</string>
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 2d399674..f1d0d0bc 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Písmo s pevnou šírkou</string>
<string name="settings_font_size">Veľkosť písma</string>
<string name="settings_wifi_only">Synchronizovať len na Wi-Fi</string>
- <string name="settings_lock">Ochrana heslom</string>
<string name="settings_background_sync">Synchronizácia na pozadí</string>
-
<string name="error_sync">Synchronizácia zlyhala: %1$s</string>
<string name="error_synchronization">Synchronizácia zlyhala</string>
<string name="error_no_network">Bez sieťového pripojenia</string>
@@ -110,7 +108,6 @@
<string name="add_category">Pridať %1$s</string>
<string name="simple_checkbox">Zaškrtávacie políčko</string>
<string name="unlock_notes">Odomknúť poznámky</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Ale nie - Čo teraz? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Skúste vyinútiť zatvorenie aplikácie a znova ju reštartovať. Možno došlo k chybnému pripojeniu k aplikácii Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Ak problém pretrváva, skúste vyčistiť úložisko oboch aplikácií: Nextcloud a Nextcloud Poznámky.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Zmeniť názov poznámky</string>
<string name="menu_edit_title">Upraviť názov</string>
<string name="settings_branding">Použitie vlastného loga</string>
- <string name="settings_gridview">Mriežkové zobrazenie 🆕</string>
<string name="simple_security">Zabezpečenie</string>
- <string name="simple_appearance">Vzhľad</string>
<string name="simple_synchronization">Synchronizácia</string>
<string name="simple_behavior">Chod</string>
<string name="manage_accounts">Spravovať účty</string>
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 55e3c41c..2f77563a 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Pisava enotne širine</string>
<string name="settings_font_size">Velikost pisave</string>
<string name="settings_wifi_only">Usklajuj le na Wi-Fi</string>
- <string name="settings_lock">Zaščita z geslom</string>
<string name="settings_background_sync"> Usklajevanje v ozadju</string>
-
<string name="error_sync">Usklajevanje je spodletelo: %1$s</string>
<string name="error_synchronization">Usklajevanje je spodletelo</string>
<string name="error_no_network">Ni omrežne povezave</string>
@@ -73,9 +71,6 @@
<string name="about_license_tab_title">Dovoljenje</string>
<string name="widget_note_list_title">Seznam zabeležk</string>
- <string name="widget_note_list_add">Dodaj novo zabeležko</string>
- <string name="widget_note_list_add_favorite">Dodaj novo zabeležko med priljubljene</string>
- <string name="widget_note_list_add_to_category">Dodaj novo zabeležko v %1$s</string>
<string name="widget_note_list_placeholder">Ni zabeležk</string>
<string name="widget_single_note_title">Samostojna zabeležka</string>
<string name="widget_single_note_placeholder_tv">Zabeležke ni mogoče najti</string>
@@ -113,7 +108,6 @@
<string name="add_category">Dodaj %1$s</string>
<string name="simple_checkbox">Izbirno polje</string>
<string name="unlock_notes">Odkleni zabeležke</string>
- <string name="simple_beta">Preizkusno</string>
<string name="error_dialog_title">Ojoj, kaj pa zdaj? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Poskusite vsiliti končanje programa in ga ponovno zagnati. Morda je težava v neustrezni povezavi z okoljem Nextcloud</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Če se težava še naprej pojavlja, poskusite počistiti podatke programa Nextcloud in Nextcloud Notes.</string>
@@ -138,9 +132,7 @@
<string name="change_note_title">Spremeni naslov zabeležke</string>
<string name="menu_edit_title">Uredi naslov</string>
<string name="settings_branding">Prilagajanje oblikovanja</string>
- <string name="settings_gridview">Mrežni pogled</string>
<string name="simple_security">Varnost</string>
- <string name="simple_appearance">Videz</string>
<string name="simple_synchronization">Usklajevanje</string>
<string name="simple_behavior">Obnašanje</string>
<string name="manage_accounts">Upravljanje z računi</string>
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index adb308eb..5bd5c5be 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Фонт фиксне ширине</string>
<string name="settings_font_size">Величина фонта</string>
<string name="settings_wifi_only">Синхронизуј само преко бежичне везе</string>
- <string name="settings_lock">Заштита лозинком</string>
<string name="settings_background_sync">Позадинска синхронизација</string>
-
<string name="error_sync">Синхронизација није успела%1$s</string>
<string name="error_synchronization">Синхронизација није успела</string>
<string name="error_no_network">Нема мрежне везе</string>
@@ -110,7 +108,6 @@
<string name="add_category">Додај %1$s</string>
<string name="simple_checkbox">Штиклирање</string>
<string name="unlock_notes">Откључај белешке</string>
- <string name="simple_beta">Бета</string>
<string name="error_dialog_title">О, не - шта сад? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Покушајте да форсирано затворите апликацију и стартујете је поново. Можда је била неисправна конекција ка Некстклауд апликацији.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Ако проблем настави да се дешава, пробајте да очистите податке од обе апликације: и Некстклауд и Некстклауд Белешки да бисте решили проблем.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Промени назив белешке</string>
<string name="menu_edit_title">Измени наслов</string>
<string name="settings_branding">Брендирање</string>
- <string name="settings_gridview">Приказ мреже 🆕</string>
<string name="simple_security">Безбедност</string>
- <string name="simple_appearance">Изглед</string>
<string name="simple_synchronization">Синхронизација</string>
<string name="simple_behavior">Понашање</string>
<string name="manage_accounts">Управљање налозима</string>
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 9f81a73f..77ba991c 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Monospace font</string>
<string name="settings_font_size">Teckenstorlek</string>
<string name="settings_wifi_only">Synkronisera endast med Wi-Fi</string>
- <string name="settings_lock">Lösenordsskydd</string>
<string name="settings_background_sync">Bakgrundssynkronisering</string>
-
<string name="error_sync">Synkronisering misslyckades: %1$s</string>
<string name="error_synchronization">Synkroniseringen misslyckades</string>
<string name="error_no_network">Ingen nätverksanslutning</string>
@@ -110,7 +108,6 @@
<string name="add_category">Lägg till %1$s</string>
<string name="simple_checkbox">Kryssruta</string>
<string name="unlock_notes">Lås upp anteckningar</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Å nej - Vad händer nu?🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Försök med att Tvinga appen att stänga och återstarta. En felaktig anslutning till Nextcloud-appen kan ha förekommit.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Om problemet kvarstår, prova med att rensa lagringen på både appen Nextcloud och Nextcloud Notes.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Ändra anteckningstitel</string>
<string name="menu_edit_title">Redigera titel</string>
<string name="settings_branding">Varumärke</string>
- <string name="settings_gridview">Rutnätsvy 🆕</string>
<string name="simple_security">Säkerhet</string>
- <string name="simple_appearance">Utseende</string>
<string name="simple_synchronization">Synkronisering</string>
<string name="simple_behavior">Beteende</string>
<string name="manage_accounts">Hantera konton</string>
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 3c9b0621..4b37a5f3 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">Sabit aralıklı yazı tipi</string>
<string name="settings_font_size">Yazı boyutu</string>
<string name="settings_wifi_only">Yalnız Wi-Fi ile eşitlensin</string>
- <string name="settings_lock">Parola koruması</string>
+ <string name="settings_lock">Uygulama kilidi (Beta)</string>
+ <string name="settings_lock_summary">Aygıt kimlik doğrulama bilgileri</string>
<string name="settings_background_sync">Arka planda eşitleme</string>
-
<string name="error_sync">Eşitlenemedi: %1$s</string>
<string name="error_synchronization">Eşitlenemedi</string>
<string name="error_no_network">Ağ bağlantısı yok</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">Lisans</string>
<string name="widget_note_list_title">Not listesi</string>
- <string name="widget_note_list_add">Yeni not ekle</string>
- <string name="widget_note_list_add_favorite">Sık kullanılanlara yeni not ekle</string>
- <string name="widget_note_list_add_to_category">%1$s içine yeni not ekle</string>
<string name="widget_note_list_placeholder">Herhangi bir not yok</string>
<string name="widget_single_note_title">Tek not</string>
<string name="widget_single_note_placeholder_tv">Not bulunamadı</string>
@@ -113,7 +110,6 @@
<string name="add_category">%1$s ekle</string>
<string name="simple_checkbox">İşaret kutusu</string>
<string name="unlock_notes">Kilidi açma notları</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Hayıır. Şimdi ne olacak? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Lütfen uygulamayı kapanmaya zorlayıp yeniden başlatın. Yanlış bir Nextcloud uygulaması bağlantısı olmalı.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Sorun sürerse, çözmek için hem Nextcloud uygulamasının hem de Nextcloud Notlar uygulamasının depolamalarını temizlemeyi deneyin.</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">Not başlığını değiştir</string>
<string name="menu_edit_title">Başlığı düzenle</string>
<string name="settings_branding">Markalama</string>
- <string name="settings_gridview">Tablo görünümü 🆕</string>
+ <string name="settings_gridview">Tablo görünümü</string>
<string name="simple_security">Güvenlik</string>
- <string name="simple_appearance">Görünüm</string>
<string name="simple_synchronization">Eşitleme</string>
<string name="simple_behavior">Davranış</string>
<string name="manage_accounts">Hesap yönetimi</string>
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 2fce0b0a..57f69257 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">Моноширинний шрифт</string>
<string name="settings_font_size">Розмір шрифту</string>
<string name="settings_wifi_only">Синхронізувати тільки по WI-Fi</string>
- <string name="settings_lock">Захист паролем</string>
<string name="settings_background_sync">Фонова синхронізація</string>
-
<string name="error_sync">Синхронізація не вдалася: %1$s</string>
<string name="error_synchronization">Синхронізація не вдалася</string>
<string name="error_no_network">Відсутнє підключення до мережі</string>
@@ -110,7 +108,6 @@
<string name="add_category">Додати %1$s</string>
<string name="simple_checkbox">Прапорець</string>
<string name="unlock_notes">Розблокувати нотатки</string>
- <string name="simple_beta">Бета</string>
<string name="error_dialog_title">От халепа!</string>
<string name="error_dialog_tip_token_mismatch_retry">Спробуйте примусово закрити застосунок та наново запустити. Можливо, встановлено неправильне з\'єднання із застосунком Nextcloud.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">Якщо проблема не зникає, для її вирішення спробуйте очистити пам’ять обох програм: Nextcloud та Нотатки Nextcloud.</string>
@@ -134,9 +131,7 @@
<string name="change_note_title">Змінити заголовок нотатки</string>
<string name="menu_edit_title">Редагувати нотатку</string>
<string name="settings_branding">Оформлення</string>
- <string name="settings_gridview">Упорядкування у формі сітки</string>
<string name="simple_security">Безпека</string>
- <string name="simple_appearance">Вигляд</string>
<string name="simple_synchronization">Синхронізація</string>
<string name="simple_behavior">Поведінка</string>
<string name="manage_accounts">Облікові записи</string>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 89bc6b3f..27401e4a 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">等宽字体</string>
<string name="settings_font_size">字体大小</string>
<string name="settings_wifi_only">仅在Wi-Fi下同步</string>
- <string name="settings_lock">密码保护</string>
+ <string name="settings_lock">应用锁 (测试版)</string>
+ <string name="settings_lock_summary">设备凭据</string>
<string name="settings_background_sync">后台同步</string>
-
<string name="error_sync">同步失败:%1$s</string>
<string name="error_synchronization">同步失败</string>
<string name="error_no_network">没有网络连接</string>
@@ -73,9 +73,6 @@
<string name="about_license_tab_title">授权</string>
<string name="widget_note_list_title">笔记列表</string>
- <string name="widget_note_list_add">添加新笔记</string>
- <string name="widget_note_list_add_favorite">添加新笔记到收藏</string>
- <string name="widget_note_list_add_to_category">添加新笔记到 %1$s</string>
<string name="widget_note_list_placeholder">没有笔记</string>
<string name="widget_single_note_title">单个笔记</string>
<string name="widget_single_note_placeholder_tv">未找到笔记</string>
@@ -113,7 +110,6 @@
<string name="add_category">添加 %1$s</string>
<string name="simple_checkbox">复选框</string>
<string name="unlock_notes">解锁笔记</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">哦,不。所以会怎么样?🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">请尝试强行关闭应用并重新打开。可能是与 Nextcloud 应用的连接不正确。</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">如果问题持续存在,尝试通过清除 Nextcloud 和 Nextcloud 笔记两个应用的缓存来解决问题。</string>
@@ -138,9 +134,8 @@
<string name="change_note_title">更改笔记标题</string>
<string name="menu_edit_title">编辑标题</string>
<string name="settings_branding">创建标签</string>
- <string name="settings_gridview">网格试图</string>
+ <string name="settings_gridview">网格视图</string>
<string name="simple_security">安全</string>
- <string name="simple_appearance">外观</string>
<string name="simple_synchronization">同步</string>
<string name="simple_behavior">行为</string>
<string name="manage_accounts">管理账号</string>
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 7583c6d9..f87a6f3d 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -42,9 +42,9 @@
<string name="settings_font_title">等寬字體</string>
<string name="settings_font_size">字體大小</string>
<string name="settings_wifi_only">只在有 Wi-Fi 時同步</string>
- <string name="settings_lock">密碼保護</string>
+ <string name="settings_lock">應用程式上鎖 (Beta)</string>
+ <string name="settings_lock_summary">裝置身份驗證</string>
<string name="settings_background_sync">背景同步</string>
-
<string name="error_sync">同步失敗:%1$s</string>
<string name="error_synchronization">同步失敗</string>
<string name="error_no_network">沒有網路連線</string>
@@ -60,22 +60,19 @@
<string name="about_source_title">原始碼</string>
<string name="about_source">此專案寄存在 GitHub 上:&lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_issues_title">問題</string>
- <string name="about_issues">您可以在 GitHub 問題回報系統回報錯誤、改善建議及功能需求:&lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_issues">您可以在 GitHub 問題舉報系統舉報錯誤、改善建議及功能需求:&lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_translate_title">翻譯</string>
<string name="about_translate">歡迎加入 Transifex 的 Nextcloud 團隊並協助翻譯此 App:&lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_app_license_title">程式授權條款</string>
<string name="about_app_license">此程式依照 GNU GENERAL PUBLIC LICENSE v3+ 方式授權使用</string>
<string name="about_app_license_button">檢視授權條款</string>
<string name="about_icons_disclaimer_title">圖示</string>
- <string name="about_icons_disclaimer">&lt;p>原創圖示由 %1$s 製作&lt;/p>&lt;p>其他 App 使用的圖示均為 Google Inc. 製作的 &lt;a href=\"https://materialdesignicons.com/\">Material Design 圖示&lt;/a>,並依 Apache 2.0 條款授權。&lt;/p></string>
+ <string name="about_icons_disclaimer">&lt;p>原創圖示由 %1$s 製作&lt;/p>&lt;p>其他 App 使用的圖示均為 Google Inc。製作的 &lt;a href=\"https://materialdesignicons。com/\">Material Design 圖示&lt;/a>,並依 Apache 2。0 條款授權。&lt;/p></string>
<string name="about_credits_tab_title">致謝</string>
<string name="about_contribution_tab_title">貢獻</string>
<string name="about_license_tab_title">授權條款</string>
<string name="widget_note_list_title">筆記清單</string>
- <string name="widget_note_list_add">添加新筆記</string>
- <string name="widget_note_list_add_favorite">將新筆記添加到收藏夾</string>
- <string name="widget_note_list_add_to_category">將新筆記添加到 %1$s</string>
<string name="widget_note_list_placeholder">沒有筆記</string>
<string name="widget_single_note_title">單則筆記</string>
<string name="widget_single_note_placeholder_tv">找不到筆記</string>
@@ -113,7 +110,6 @@
<string name="add_category">新增%1$s</string>
<string name="simple_checkbox">勾選框</string>
<string name="unlock_notes">解鎖筆記</string>
- <string name="simple_beta">Beta 測試版</string>
<string name="error_dialog_title">喔不 - 現在怎麼辦?🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">請嘗試強行關閉應用程式並重新打開。可能是與Nextcloud應用程式的連接不正確有關。</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">如果問題持續,請嘗試清除兩個應用程序的存儲:Nextcloud 和 Nextcloud Notes 的以解決此問題。</string>
@@ -130,17 +126,16 @@
<string name="error_dialog_contact_us">如果問題仍然存在,請不要猶豫與我們聯繫。 您可以在側欄的“關於”部分中找到我們聯絡的信息。</string>
<string name="error_dialog_we_need_info">我們需要以下的技術資訊來幫助您:</string>
<string name="error_dialog_server_app_enabled">請確保您已在伺服器上安裝並啟用 Notes 應用程式。</string>
- <string name="error_dialog_redirect">您的伺服器確實以HTTP 302狀態代碼響應,這表示您尚未在伺服器上安裝 Notes 應用程式或配置錯誤。 這可能是由 .htaccess 檔案中的自定義替代引起的,也可能是由 Nextcloud 應用程式(如 OID 客戶端)引起的。</string>
+ <string name="error_dialog_redirect">您的伺服器確實以HTTP 302狀態代碼響應,這表示您尚未在伺服器上安裝 Notes 應用程式或配置錯誤。 這可能是由 。htaccess 檔案中的自定義替代引起的,也可能是由 Nextcloud 應用程式(如 OID 客戶端)引起的。</string>
<string name="error_dialog_tip_disable_battery_optimizations">請禁用 Nextcloud 和 Notes 應用程式的所有電池優化。</string>
<string name="added_content">已加入「%1$s」</string>
<string name="shared_text_empty">分享的文字是空的</string>
<string name="append_to_note">附加到筆記</string>
<string name="change_note_title">改變筆記標題</string>
<string name="menu_edit_title">編輯標題</string>
- <string name="settings_branding">創建標籤</string>
- <string name="settings_gridview">網格檢視 🆕</string>
+ <string name="settings_branding">品牌化</string>
+ <string name="settings_gridview">網格檢視</string>
<string name="simple_security">安全性</string>
- <string name="simple_appearance">外觀</string>
<string name="simple_synchronization">同步</string>
<string name="simple_behavior">行為</string>
<string name="manage_accounts">賬戶管理</string>
@@ -195,7 +190,7 @@
<string name="formatting_help_cbf_body_2">只需選擇一個文本範圍或在任意位置點擊光標,您將彈出一個選項單,該選項單包含默認條目 %1$s,%2$s,%3$s 條目如 %4$s 或 %5$s。</string>
<string name="formatting_help_text_title">文字編輯器</string>
- <string name="formatting_help_text_body">使用 Markdown 可以很容易地使某些單詞變為%1$s粗體%1$s,而其他單詞則變為%2$s斜體%2$s。您可以%3$s刪除%3$s一些單詞,甚至[鏈接到 Nextcloud ](https://nextcloud.com)。</string>
+ <string name="formatting_help_text_body">使用 Markdown 可以很容易地使某些單詞變為%1$s粗體%1$s,而其他單詞則變為%2$s斜體%2$s。您可以%3$s刪除%3$s一些單詞,甚至[鏈接到 Nextcloud ](https://nextcloud。com)。</string>
<string name="formatting_help_lists_title">清單</string>
<string name="formatting_help_lists_body_1">有時您想顯示編號列表(numbered list):</string>
@@ -218,7 +213,7 @@
<string name="formatting_help_structured_documents_body_2">這是第三層標題</string>
<string name="formatting_help_structured_documents_body_3">您可以使用從 %1$s 到 %2$s 等共六個不同等級的標題大小。</string>
<string name="formatting_help_structured_documents_body_4">如果您想引用他人的說話,請在該行之前使用%1$s字符:</string>
- <string name="formatting_help_structured_documents_body_5">Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world.</string>
+ <string name="formatting_help_structured_documents_body_5">Imagination is more important than knowledge。Knowledge is limited。Imagination encircles the world。</string>
<string name="formatting_help_structured_documents_body_6">- 愛因斯坦</string>
<string name="formatting_help_code_title">代碼</string>
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index be810c87..4804752c 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -42,9 +42,7 @@
<string name="settings_font_title">等寬</string>
<string name="settings_font_size">字體大小</string>
<string name="settings_wifi_only">只在有 Wi-Fi 時同步</string>
- <string name="settings_lock">密碼保護</string>
<string name="settings_background_sync">背景同步</string>
-
<string name="error_sync">同步失敗:%1$s</string>
<string name="error_synchronization">同步失敗</string>
<string name="error_no_network">沒有網路連線</string>
@@ -110,17 +108,28 @@
<string name="add_category">新增%1$s</string>
<string name="simple_checkbox">核取方塊</string>
<string name="unlock_notes">解鎖筆記</string>
- <string name="simple_beta">Beta 測試版</string>
<string name="error_dialog_title">喔不 - 現在怎麼辦?🙁</string>
+ <string name="error_dialog_tip_token_mismatch_retry">請嘗試強制關閉應用程式並再次重新啟動。可能是有和Nextcloud應用程式不正確的連線。</string>
+ <string name="error_dialog_tip_token_mismatch_clear_storage">如果問題持續著,請試著清除Nextcloud以及Nextcloud Notes這兩個應用程式的儲存空間以解決這個問題。</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_files_force_stop">您的Nextcloud應用程式似乎出了些問題。請試著強制停止Nextcloud以及Nextcloud Notes這兩個應用程式。</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_check_server">來自您的伺服器的回應並不正確。請確認您是否可藉由Web界面存取您的筆記。</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_contact_us">如果問題持續請不要猶豫並聯絡我們。您可以在關於的選項中找到我們的聯絡資訊。</string>
<string name="error_dialog_we_need_info">我們需要以下的技術資訊來幫助您:</string>
+ <string name="error_dialog_server_app_enabled">請確保您已經在您的伺服器安裝並啟用了\"Notes\"應用程式。</string>
<string name="added_content">已加入「%1$s」</string>
<string name="shared_text_empty">分享的文字是空的</string>
<string name="append_to_note">附加到筆記</string>
<string name="change_note_title">改變筆記標題</string>
<string name="menu_edit_title">編輯標題</string>
- <string name="settings_gridview">格線檢視 </string>
<string name="simple_security">安全性</string>
- <string name="simple_appearance">外觀</string>
<string name="simple_synchronization">同步</string>
<string name="simple_behavior">行為</string>
<string name="manage_accounts">帳戶管理</string>
@@ -171,20 +180,33 @@
<string name="formatting_help_codefence_javascript" translateable="false">```javascript</string>
<string name="formatting_help_text_title">文字編輯器</string>
<string name="formatting_help_lists_title">清單</string>
+ <string name="formatting_help_lists_body_1">有時您會想用數字列表:</string>
<string name="formatting_help_lists_body_2">一</string>
<string name="formatting_help_lists_body_3">二</string>
<string name="formatting_help_lists_body_4">三</string>
+ <string name="formatting_help_lists_body_5">有時您會想用項目符號:</string>
+ <string name="formatting_help_lists_body_6">以連接號作為一行的開始</string>
<string name="formatting_help_lists_body_8">類似這個</string>
<string name="formatting_help_lists_body_9">還有這個</string>
+ <string name="formatting_help_checkboxes_title">核取方塊</string>
+ <string name="formatting_help_checkboxes_body_1">若要建立一個核取方塊,請在列表後使用中括號</string>
<string name="formatting_help_checkboxes_body_2">項目 1</string>
<string name="formatting_help_checkboxes_body_3">項目 2</string>
+ <string name="formatting_help_structured_documents_body_4">如果您想引用某些人的名言,請在每行開頭使用%1$s符號:</string>
+ <string name="formatting_help_structured_documents_body_5">想像力比知識更重要。知識是有限的,但想像力卻包含了整個世界。</string>
+ <string name="formatting_help_structured_documents_body_6">- 阿爾伯特·愛因斯坦</string>
+
+ <string name="formatting_help_code_title">代碼</string>
+ <string name="formatting_help_tables_title">表格</string>
+ <string name="formatting_help_images_title">圖片</string>
<string name="simple_other">其他</string>
<string name="sort_last_modified">依修改日期排序</string>
<string name="sort_alphabetically">依字母排序</string>
<string name="error_action_open_battery_settings">電池設定</string>
<string name="error_action_open_deck_info">開啟 App 資訊</string>
<string name="error_action_open_network">網路設定</string>
+ <string name="no_account_configured_yet">還沒有已設定的帳號</string>
<string name="no_other_accounts">你尚未設定其它帳號。</string>
</resources>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 08db34b0..ec75a88d 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -28,6 +28,8 @@
<dimen name="note_font_size_medium">18sp</dimen>
<dimen name="note_font_size_large">22sp</dimen>
+ <item format="float" name="note_line_spacing" type="dimen">1.15</item>
+
<!-- Widgets -->
<dimen name="widget_outer_radius">@dimen/spacer_1x</dimen>
<dimen name="widget_inner_radius">@dimen/spacer_1hx</dimen>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 99cfe3c5..0bf4663e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -43,8 +43,10 @@
<string name="settings_font_title">Monospace font</string>
<string name="settings_font_size">Font size</string>
<string name="settings_wifi_only">Sync only on Wi-Fi</string>
- <string name="settings_lock">Password protection</string>
+ <string name="settings_lock">App lock (Beta)</string>
+ <string name="settings_lock_summary">Device credentials</string>
<string name="settings_background_sync">Background synchronization</string>
+ <string name="settings_prevent_screen_capture">Prevent screen capture</string>
<string name="error_sync">Synchronization failed: %1$s</string>
<string name="error_synchronization">Synchronization failed</string>
@@ -98,11 +100,11 @@
<string name="pref_key_note_mode" translatable="false">noteMode</string>
<string name="pref_key_theme" translatable="false">darkTheme</string>
<string name="pref_key_font" translatable="false">font</string>
- <string name="pref_key_branding" translatable="false">branding</string>
<string name="pref_key_gridview" translatable="false">gridview</string>
<string name="pref_key_font_size" translatable="false">fontSize</string>
<string name="pref_key_wifi_only" translatable="false">wifiOnly</string>
<string name="pref_key_lock" translatable="false">lock</string>
+ <string name="pref_key_prevent_screen_capture" translatable="false">preventScreenCapture</string>
<string name="pref_category_security" translatable="false">security</string>
<string name="pref_key_last_note_mode" translatable="false">lastNoteMode</string>
<string name="pref_key_background_sync" translatable="false">backgroundSync</string>
@@ -144,7 +146,6 @@
<string name="add_category">Add %1$s</string>
<string name="simple_checkbox">Checkbox</string>
<string name="unlock_notes">Unlock notes</string>
- <string name="simple_beta">Beta</string>
<string name="error_dialog_title">Oh no - What now? 🙁</string>
<string name="error_dialog_tip_token_mismatch_retry">Please try to force close the app and restart it again. There might have been an incorrect connection to the Nextcloud app.</string>
<string name="error_dialog_tip_token_mismatch_clear_storage">If the issue persists, try to clear the storage of both apps: Nextcloud and Nextcloud Notes to solve this issue.</string>
@@ -169,9 +170,9 @@
<string name="change_note_title">Change note title</string>
<string name="menu_edit_title">Edit title</string>
<string name="settings_branding">Branding</string>
- <string name="settings_gridview">Grid view 🆕</string>
+ <string name="settings_gridview">Grid view</string>
<string name="simple_security">Security</string>
- <string name="simple_appearance">Appearance</string>
+ <string name="appearance_and_behavior">Appearance and behavior</string>
<string name="simple_synchronization">Synchronization</string>
<string name="simple_behavior">Behavior</string>
<string name="manage_accounts">Manage accounts</string>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 3050e2a8..2794f79a 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -26,7 +26,7 @@
<it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory
app:layout="@layout/item_preference_category"
- app:title="@string/simple_appearance">
+ app:title="@string/appearance_and_behavior">
<ListPreference
android:defaultValue="@string/pref_value_theme_system_default"
@@ -39,39 +39,17 @@
android:title="@string/settings_theme_title" />
<it.niedermann.owncloud.notes.branding.BrandedSwitchPreference
- android:defaultValue="true"
- android:icon="@drawable/ic_color_lens_grey600_24dp"
- android:key="@string/pref_key_branding"
- android:layout="@layout/item_pref"
- android:title="@string/settings_branding" />
-
- <it.niedermann.owncloud.notes.branding.BrandedSwitchPreference
android:icon="@drawable/ic_baseline_dashboard_24"
android:key="@string/pref_key_gridview"
android:layout="@layout/item_pref"
- android:summary="@string/simple_beta"
android:title="@string/settings_gridview" />
- </it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory>
-
- <it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory
- app:layout="@layout/item_preference_category"
- app:title="@string/simple_behavior">
<it.niedermann.owncloud.notes.branding.BrandedSwitchPreference
android:defaultValue="@string/pref_value_font_normal"
android:icon="@drawable/ic_text_format_grey600_24dp"
android:key="@string/pref_key_font"
android:layout="@layout/item_pref"
android:title="@string/settings_font_title" />
- <ListPreference
- android:defaultValue="@string/pref_value_mode_edit"
- android:entries="@array/noteMode_entries"
- android:entryValues="@array/noteMode_values"
- android:icon="@drawable/ic_remove_red_eye_grey_24dp"
- android:key="@string/pref_key_note_mode"
- android:layout="@layout/item_pref"
- android:summary="%s"
- android:title="@string/settings_note_mode" />
<ListPreference
android:defaultValue="@string/pref_value_font_size_medium"
@@ -82,6 +60,16 @@
android:layout="@layout/item_pref"
android:summary="%s"
android:title="@string/settings_font_size" />
+
+ <ListPreference
+ android:defaultValue="@string/pref_value_mode_edit"
+ android:entries="@array/noteMode_entries"
+ android:entryValues="@array/noteMode_values"
+ android:icon="@drawable/ic_remove_red_eye_grey_24dp"
+ android:key="@string/pref_key_note_mode"
+ android:layout="@layout/item_pref"
+ android:summary="%s"
+ android:title="@string/settings_note_mode" />
</it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory>
<it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory
@@ -93,8 +81,15 @@
android:icon="@drawable/ic_lock_grey600_24dp"
android:key="@string/pref_key_lock"
android:layout="@layout/item_pref"
- android:summary="@string/simple_beta"
+ android:summary="@string/settings_lock_summary"
android:title="@string/settings_lock" />
+
+ <it.niedermann.owncloud.notes.branding.BrandedSwitchPreference
+ android:defaultValue="false"
+ android:icon="@drawable/ic_baseline_screen_lock_portrait_24"
+ android:key="@string/pref_key_prevent_screen_capture"
+ android:layout="@layout/item_pref"
+ android:title="@string/settings_prevent_screen_capture" />
</it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory>
</PreferenceScreen>
diff --git a/build.gradle b/build.gradle
index 9b275ee5..0f7db75e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
}
dependencies {
apply plugin: 'maven'
- classpath 'com.android.tools.build:gradle:4.1.2'
+ classpath 'com.android.tools.build:gradle:4.1.3'
// 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/3002004.txt b/fastlane/metadata/android/en-US/changelogs/3002004.txt
index 06e14755..f59aaff2 100644
--- a/fastlane/metadata/android/en-US/changelogs/3002004.txt
+++ b/fastlane/metadata/android/en-US/changelogs/3002004.txt
@@ -1 +1,3 @@
-- 🐞 Grid view: no padding top on first line in some cases (#890) \ No newline at end of file
+- 🐞 Grid view: no padding top on first line in some cases (#890)
+- 🏷 Category label in grid view doesn't take highlight background colour upon selection (#945)
+- 📝 Improve line spacing by setting it to 115% (#1089) \ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/3002005.txt b/fastlane/metadata/android/en-US/changelogs/3002005.txt
index 400c20c8..cf3cbc5c 100644
--- a/fastlane/metadata/android/en-US/changelogs/3002005.txt
+++ b/fastlane/metadata/android/en-US/changelogs/3002005.txt
@@ -1 +1,9 @@
-- 🏷 Category label in grid view doesn't take highlight background colour upon selection (#945) \ No newline at end of file
+v3.2.5
+
+- 🐞 Remember scroll position in preview mode (#1046)
+
+v3.2.4
+
+- 🐞 Grid view: no padding top on first line in some cases (#890)
+- 🏷 Category label in grid view doesn't take highlight background colour upon selection (#945)
+- 📝 Improve line spacing by setting it to 115% (#1089) \ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/3003000.txt b/fastlane/metadata/android/en-US/changelogs/3003000.txt
new file mode 100644
index 00000000..12c785ee
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/3003000.txt
@@ -0,0 +1 @@
+- 🔒 Prevent screen capture (#1098) \ No newline at end of file
diff --git a/markdown/build.gradle b/markdown/build.gradle
index fbaddaa6..d85d559d 100644
--- a/markdown/build.gradle
+++ b/markdown/build.gradle
@@ -32,7 +32,7 @@ dependencies {
implementation 'com.github.stefan-niedermann:android-commons:0.2.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
- implementation "androidx.lifecycle:lifecycle-livedata:2.3.0"
+ implementation "androidx.lifecycle:lifecycle-livedata:2.3.1"
implementation "io.noties.markwon:core:$markwonVersion"
implementation "io.noties.markwon:editor:$markwonVersion"
diff --git a/markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java b/markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java
index 14ba0169..4efa0f1d 100644
--- a/markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java
+++ b/markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java
@@ -26,11 +26,16 @@ public interface MarkdownEditor {
void setMarkdownString(CharSequence text);
/**
+ * The given {@link String} will be parsed and rendered and the {@param afterRender} will be called after the rendering finished
+ */
+ void setMarkdownString(CharSequence text, @Nullable Runnable afterRender);
+
+ /**
* Will replace all `@mention`s of Nextcloud users with the avatar and given display name.
*
* @param mentions {@link Map} of mentions, where the key is the user id and the value is the display name
*/
- default void setMarkdownString(CharSequence text, @NonNull Map<String, String> mentions) {
+ default void setMarkdownStringAndHighlightMentions(CharSequence text, @NonNull Map<String, String> mentions) {
setMarkdownString(text);
}
diff --git a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java
index ebf495f3..e2cb5bd5 100644
--- a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java
+++ b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java
@@ -14,8 +14,6 @@ import androidx.appcompat.widget.AppCompatEditText;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
-import java.util.Collection;
-import java.util.LinkedList;
import java.util.function.Consumer;
import io.noties.markwon.Markwon;
@@ -117,6 +115,11 @@ public class MarkwonMarkdownEditor extends AppCompatEditText implements Markdown
setMarkdownStringModel(text);
}
+ @Override
+ public void setMarkdownString(CharSequence text, Runnable afterRender) {
+ throw new UnsupportedOperationException("This is not available in " + MarkwonMarkdownEditor.class.getSimpleName() + " because the text is getting rendered all the time.");
+ }
+
/**
* Updates the current model which matches the rendered state of the editor *without* triggering
* anything of the native {@link EditText}
diff --git a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java
index c4dfc870..836a8536 100644
--- a/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java
+++ b/markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java
@@ -127,6 +127,11 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown
@Override
public void setMarkdownString(CharSequence text) {
+ setMarkdownString(text, null);
+ }
+
+ @Override
+ public void setMarkdownString(CharSequence text, Runnable afterRender) {
final CharSequence previousText = this.unrenderedText$.getValue();
this.unrenderedText$.setValue(text);
if (listener != null) {
@@ -136,7 +141,12 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown
setText(text);
} else {
if (!text.equals(previousText)) {
- this.renderService.execute(() -> post(() -> this.markwon.setMarkdown(this, text.toString())));
+ this.renderService.execute(() -> post(() -> {
+ this.markwon.setMarkdown(this, text.toString());
+ if (afterRender != null) {
+ afterRender.run();
+ }
+ }));
}
}
}
@@ -162,7 +172,7 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown
}
@Override
- public void setMarkdownString(CharSequence text, @NonNull Map<String, String> mentions) {
+ public void setMarkdownStringAndHighlightMentions(CharSequence text, @NonNull Map<String, String> mentions) {
this.markwon = createMarkwonBuilder(getContext(), mentions).build();
setMarkdownString(text);
}