diff --git a/README.md b/README.md
index d15aeb14..0dc125e6 100644
--- a/README.md
+++ b/README.md
@@ -8,9 +8,15 @@ An android client for [Nextcloud Notes App](https://github.com/nextcloud/notes/)
## :arrow_forward: Access
-[![Download from Google Play](https://play.google.com/intl/en_us/badges/images/badge_new.png)](https://play.google.com/store/apps/details?id=it.niedermann.owncloud.notes)
-[![Nextcloud Notes App on fdroid.org](https://camo.githubusercontent.com/7df0eafa4433fa4919a56f87c3d99cf81b68d01c/68747470733a2f2f662d64726f69642e6f72672f77696b692f696d616765732f632f63342f462d44726f69642d627574746f6e5f617661696c61626c652d6f6e2e706e67)](https://f-droid.org/repository/browse/?fdid=it.niedermann.owncloud.notes)
-[![Donate with PayPal](https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K7HVLE6J7SXXA)
+[](https://play.google.com/store/apps/details?id=it.niedermann.owncloud.notes)
+[](https://f-droid.org/repository/browse/?fdid=it.niedermann.owncloud.notes)
+[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K7HVLE6J7SXXA)
[![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/stefan-niedermann/donate)
## :eyes: Screenshots
diff --git a/app/build.gradle b/app/build.gradle
index e6ec18db..449b2700 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 28
- buildToolsVersion '28.0.3'
+ buildToolsVersion '29.0.1'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
@@ -13,8 +13,8 @@ android {
applicationId "it.niedermann.owncloud.notes"
minSdkVersion 14
targetSdkVersion 28
- versionCode 40
- versionName "0.24.0"
+ versionCode 47
+ versionName "0.27.1"
}
buildTypes {
release {
@@ -36,10 +36,10 @@ dependencies {
implementation 'com.yydcdut:markdown-processor:0.1.3'
implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3'
- implementation 'com.jakewharton:butterknife:10.0.0'
- annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
+ implementation 'com.jakewharton:butterknife:10.2.0'
+ annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
- implementation "androidx.appcompat:appcompat:1.0.2"
+ implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.recyclerview:recyclerview:1.0.0"
implementation "com.google.android.material:material:1.0.0"
diff --git a/app/release/app-release.apk b/app/release/app-release.apk
deleted file mode 100644
index 6540c6a2..00000000
Binary files a/app/release/app-release.apk and /dev/null differ
diff --git a/app/release/output.json b/app/release/output.json
deleted file mode 100644
index 63754a0b..00000000
--- a/app/release/output.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":37,"versionName":"0.22.3","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 58eddca6..3af99f24 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,9 +10,9 @@
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
- android:roundIcon="@mipmap/ic_launcher_round"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
+ android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
@@ -98,6 +98,10 @@
+
+
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/AboutActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/AboutActivity.java
index 937d2a20..0debdf5c 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/AboutActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/AboutActivity.java
@@ -1,12 +1,14 @@
package it.niedermann.owncloud.notes.android.activity;
import android.os.Bundle;
-import com.google.android.material.tabs.TabLayout;
+
+import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
-import androidx.appcompat.app.AppCompatActivity;
+
+import com.google.android.material.tabs.TabLayout;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -14,6 +16,7 @@ import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.fragment.about.AboutFragmentContributingTab;
import it.niedermann.owncloud.notes.android.fragment.about.AboutFragmentCreditsTab;
import it.niedermann.owncloud.notes.android.fragment.about.AboutFragmentLicenseTab;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
public class AboutActivity extends AppCompatActivity {
@@ -25,6 +28,7 @@ public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
setContentView(R.layout.activity_about);
ButterKnife.bind(this);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
index 20b4b254..4c205d15 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java
@@ -9,10 +9,11 @@ import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
-import java.util.Calendar;
-
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
+
+import java.util.Calendar;
+
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.fragment.BaseNoteFragment;
import it.niedermann.owncloud.notes.android.fragment.NoteEditFragment;
@@ -20,10 +21,12 @@ import it.niedermann.owncloud.notes.android.fragment.NotePreviewFragment;
import it.niedermann.owncloud.notes.model.Category;
import it.niedermann.owncloud.notes.model.CloudNote;
import it.niedermann.owncloud.notes.model.DBNote;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
import it.niedermann.owncloud.notes.util.NoteUtil;
public class EditNoteActivity extends AppCompatActivity implements BaseNoteFragment.NoteFragmentListener {
+ public static final String ACTION_SHORTCUT = "it.niedermann.owncloud.notes.shortcut";
private static final String INTENT_GOOGLE_ASSISTANT = "com.google.android.gm.action.AUTO_SEND";
private static final String MIMETYPE_TEXT_PLAIN = "text/plain";
public static final String PARAM_NOTE_ID = "noteId";
@@ -34,6 +37,7 @@ public class EditNoteActivity extends AppCompatActivity implements BaseNoteFragm
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
if (savedInstanceState == null) {
launchNoteFragment();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/ExceptionActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/ExceptionActivity.java
new file mode 100644
index 00000000..1f1c862a
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/ExceptionActivity.java
@@ -0,0 +1,63 @@
+package it.niedermann.owncloud.notes.android.activity;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.os.Bundle;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Objects;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import it.niedermann.owncloud.notes.R;
+
+public class ExceptionActivity extends AppCompatActivity {
+
+ Throwable throwable;
+
+ @BindView(R.id.message)
+ TextView message;
+ @BindView(R.id.stacktrace)
+ TextView stacktrace;
+
+ public static final String KEY_THROWABLE = "T";
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ setContentView(R.layout.activity_exception);
+ ButterKnife.bind(this);
+ super.onCreate(savedInstanceState);
+ throwable = ((Throwable) getIntent().getSerializableExtra(KEY_THROWABLE));
+ throwable.printStackTrace();
+ Objects.requireNonNull(getSupportActionBar()).setTitle(getString(R.string.simple_error));
+ this.message.setText(throwable.getMessage());
+ this.stacktrace.setText(getStacktraceOf(throwable));
+ }
+
+ private String getStacktraceOf(Throwable e) {
+ StringWriter sw = new StringWriter();
+ e.printStackTrace(new PrintWriter(sw));
+ return sw.toString();
+ }
+
+
+ @OnClick(R.id.copy)
+ void copyStacktraceToClipboard() {
+ final ClipboardManager clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
+ ClipData clipData = ClipData.newPlainText(getString(R.string.simple_exception), this.stacktrace.getText());
+ clipboardManager.setPrimaryClip(clipData);
+ Toast.makeText(this, R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show();
+ }
+
+ @OnClick(R.id.close)
+ void close() {
+ finish();
+ }
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
index 14e9e213..65280d01 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java
@@ -3,27 +3,16 @@ package it.niedermann.owncloud.notes.android.activity;
import android.app.SearchManager;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
import android.content.res.Configuration;
import android.graphics.Canvas;
+import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
-import androidx.annotation.Nullable;
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
-import com.google.android.material.snackbar.Snackbar;
-import androidx.drawerlayout.widget.DrawerLayout;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.view.ActionMode;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.appcompat.widget.SearchView;
-import androidx.appcompat.widget.Toolbar;
-import androidx.recyclerview.widget.ItemTouchHelper;
-import androidx.recyclerview.widget.ItemTouchHelper.SimpleCallback;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -33,6 +22,23 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.ActionBarDrawerToggle;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.view.ActionMode;
+import androidx.appcompat.widget.SearchView;
+import androidx.appcompat.widget.Toolbar;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.recyclerview.widget.ItemTouchHelper;
+import androidx.recyclerview.widget.ItemTouchHelper.SimpleCallback;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.snackbar.Snackbar;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -48,16 +54,22 @@ import it.niedermann.owncloud.notes.model.NavigationAdapter;
import it.niedermann.owncloud.notes.persistence.LoadNotesListTask;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
import it.niedermann.owncloud.notes.util.ICallback;
import it.niedermann.owncloud.notes.util.NoteUtil;
import it.niedermann.owncloud.notes.util.NotesClientUtil;
+import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT;
+
public class NotesListViewActivity extends AppCompatActivity implements ItemAdapter.NoteClickListener {
- public final static String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes";
- public final static String CREDENTIALS_CHANGED = "it.niedermann.owncloud.notes.CREDENTIALS_CHANGED";
+ public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes";
+ public static final String CREDENTIALS_CHANGED = "it.niedermann.owncloud.notes.CREDENTIALS_CHANGED";
public static final String ADAPTER_KEY_RECENT = "recent";
public static final String ADAPTER_KEY_STARRED = "starred";
+ public static final String ACTION_FAVORITES = "it.niedermann.owncloud.notes.favorites";
+ public static final String ACTION_RECENT = "it.niedermann.owncloud.notes.recent";
+
private static final String SAVED_STATE_NAVIGATION_SELECTION = "navigationSelection";
private static final String SAVED_STATE_NAVIGATION_ADAPTER_SLECTION = "navigationAdapterSelection";
@@ -104,6 +116,29 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
}
refreshLists();
swipeRefreshLayout.setRefreshing(false);
+ new Thread(() -> {
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) {
+ ShortcutManager shortcutManager = getApplicationContext().getSystemService(ShortcutManager.class);
+ if (!shortcutManager.isRateLimitingActive()) {
+ List newShortcuts = new ArrayList<>();
+
+ for (DBNote note : db.getRecentNotes()) {
+ Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class);
+ intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId());
+ intent.setAction(ACTION_SHORTCUT);
+
+ newShortcuts.add(new ShortcutInfo.Builder(getApplicationContext(), note.getId() + "")
+ .setShortLabel(note.getTitle())
+ .setIcon(Icon.createWithResource(getApplicationContext(), note.isFavorite() ? R.drawable.ic_star_yellow_24dp : R.drawable.ic_star_grey_ccc_24dp))
+ .setIntent(intent)
+ .build());
+ }
+ Log.d(getClass().getSimpleName(), "Update dynamic shortcuts");
+ shortcutManager.removeAllDynamicShortcuts();
+ shortcutManager.addDynamicShortcuts(newShortcuts);
+ }
+ }
+ }).run();
}
@Override
@@ -114,13 +149,21 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
// First Run Wizard
if (!NoteServerSyncHelper.isConfigured(this)) {
Intent settingsIntent = new Intent(this, SettingsActivity.class);
startActivityForResult(settingsIntent, server_settings);
}
String categoryAdapterSelectedItem = ADAPTER_KEY_RECENT;
- if (savedInstanceState != null) {
+ if (savedInstanceState == null) {
+ if (ACTION_RECENT.equals(getIntent().getAction())) {
+ categoryAdapterSelectedItem = ADAPTER_KEY_RECENT;
+ } else if (ACTION_FAVORITES.equals(getIntent().getAction())) {
+ categoryAdapterSelectedItem = ADAPTER_KEY_STARRED;
+ navigationSelection = new Category(null, true);
+ }
+ } else {
navigationSelection = (Category) savedInstanceState.getSerializable(SAVED_STATE_NAVIGATION_SELECTION);
navigationOpen = savedInstanceState.getString(SAVED_STATE_NAVIGATION_OPEN);
categoryAdapterSelectedItem = savedInstanceState.getString(SAVED_STATE_NAVIGATION_ADAPTER_SLECTION);
@@ -178,26 +221,20 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
private void setupNotesList() {
initList();
// Pull to Refresh
- swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
- @Override
- public void onRefresh() {
- if (db.getNoteServerSyncHelper().isSyncPossible()) {
- synchronize();
- } else {
- swipeRefreshLayout.setRefreshing(false);
- Toast.makeText(getApplicationContext(), getString(R.string.error_sync, getString(NotesClientUtil.LoginStatus.NO_NETWORK.str)), Toast.LENGTH_LONG).show();
- }
+ swipeRefreshLayout.setOnRefreshListener(() -> {
+ if (db.getNoteServerSyncHelper().isSyncPossible()) {
+ synchronize();
+ } else {
+ swipeRefreshLayout.setRefreshing(false);
+ Toast.makeText(getApplicationContext(), getString(R.string.error_sync, getString(NotesClientUtil.LoginStatus.NO_NETWORK.str)), Toast.LENGTH_LONG).show();
}
});
// Floating Action Button
- fabCreate.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class);
- createIntent.putExtra(EditNoteActivity.PARAM_CATEGORY, navigationSelection);
- startActivityForResult(createIntent, create_note_cmd);
- }
+ fabCreate.setOnClickListener((View view) -> {
+ Intent createIntent = new Intent(getApplicationContext(), EditNoteActivity.class);
+ createIntent.putExtra(EditNoteActivity.PARAM_CATEGORY, navigationSelection);
+ startActivityForResult(createIntent, create_note_cmd);
});
}
@@ -371,12 +408,9 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
this.updateUsernameInDrawer();
final NotesListViewActivity that = this;
- this.account.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent settingsIntent = new Intent(that, SettingsActivity.class);
- startActivityForResult(settingsIntent, server_settings);
- }
+ this.account.setOnClickListener((View v) -> {
+ Intent settingsIntent = new Intent(that, SettingsActivity.class);
+ startActivityForResult(settingsIntent, server_settings);
});
adapterMenu.setItems(itemsMenu);
@@ -389,7 +423,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
listView.setLayoutManager(new LinearLayoutManager(this));
ItemTouchHelper touchHelper = new ItemTouchHelper(new SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
- public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
+ public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@@ -401,7 +435,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
* @return 0 if section, otherwise super()
*/
@Override
- public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
+ public int getSwipeDirs(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
if (viewHolder instanceof ItemAdapter.SectionViewHolder) return 0;
return super.getSwipeDirs(recyclerView, viewHolder);
}
@@ -413,8 +447,8 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
* @param direction int
*/
@Override
- public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
- switch(direction) {
+ public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
+ switch (direction) {
case ItemTouchHelper.LEFT: {
final DBNote dbNote = (DBNote) adapter.getItem(viewHolder.getAdapterPosition());
db.deleteNoteAndSync((dbNote).getId());
@@ -422,14 +456,11 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
refreshLists();
Log.v("Note", "Item deleted through swipe ----------------------------------------------");
Snackbar.make(swipeRefreshLayout, R.string.action_note_deleted, Snackbar.LENGTH_LONG)
- .setAction(R.string.action_undo, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- db.addNoteAndSync(dbNote);
- refreshLists();
- Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT)
- .show();
- }
+ .setAction(R.string.action_undo, (View v) -> {
+ db.addNoteAndSync(dbNote);
+ refreshLists();
+ Snackbar.make(swipeRefreshLayout, R.string.action_note_restored, Snackbar.LENGTH_SHORT)
+ .show();
})
.show();
break;
@@ -444,16 +475,16 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
}
@Override
- public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
+ public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
ItemAdapter.NoteViewHolder noteViewHolder = (ItemAdapter.NoteViewHolder) viewHolder;
// show swipe icon on the side
- noteViewHolder.showSwipe(dX>0);
+ noteViewHolder.showSwipe(dX > 0);
// move only swipeable part of item (not leave-behind)
getDefaultUIUtil().onDraw(c, recyclerView, noteViewHolder.noteSwipeable, dX, dY, actionState, isCurrentlyActive);
}
@Override
- public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
+ public void clearView(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
getDefaultUIUtil().clearView(((ItemAdapter.NoteViewHolder) viewHolder).noteSwipeable);
}
});
@@ -463,6 +494,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
private void refreshLists() {
refreshLists(false);
}
+
private void refreshLists(final boolean scrollToTop) {
String subtitle = "";
if (navigationSelection.category != null) {
@@ -482,14 +514,11 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
query = searchView.getQuery();
}
- LoadNotesListTask.NotesLoadedListener callback = new LoadNotesListTask.NotesLoadedListener() {
- @Override
- public void onNotesLoaded(List notes, boolean showCategory) {
- adapter.setShowCategory(showCategory);
- adapter.setItemList(notes);
- if(scrollToTop) {
- listView.scrollToPosition(0);
- }
+ LoadNotesListTask.NotesLoadedListener callback = (List notes, boolean showCategory) -> {
+ adapter.setShowCategory(showCategory);
+ adapter.setItemList(notes);
+ if (scrollToTop) {
+ listView.scrollToPosition(0);
}
};
new LoadNotesListTask(getApplicationContext(), callback, navigationSelection, query).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
@@ -522,6 +551,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
searchEditFrame.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
int oldVisibility = -1;
+
@Override
public void onGlobalLayout() {
int currentVisibility = searchEditFrame.getVisibility();
@@ -530,11 +560,8 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
if (currentVisibility == View.VISIBLE) {
fabCreate.hide();
} else {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- fabCreate.show();
- }
+ new Handler().postDelayed(() -> {
+ fabCreate.show();
}, 150);
}
@@ -582,28 +609,36 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
if (resultCode == RESULT_OK) {
//not need because of db.synchronisation in createActivity
- DBNote createdNote = (DBNote) data.getExtras().getSerializable(CREATED_NOTE);
- adapter.add(createdNote);
+ Bundle bundle = data.getExtras();
+ if (bundle != null) {
+ DBNote createdNote = (DBNote) data.getExtras().getSerializable(CREATED_NOTE);
+ if (createdNote != null) {
+ adapter.add(createdNote);
+ } else {
+ Log.w(NotesListViewActivity.class.getSimpleName(), "createdNote is null");
+ }
+ } else {
+ Log.w(NotesListViewActivity.class.getSimpleName(), "bundle is null");
+ }
}
listView.scrollToPosition(0);
} else if (requestCode == server_settings) {
- // Create new Instance with new URL and credentials
- db = NoteSQLiteOpenHelper.getInstance(this);
- if (db.getNoteServerSyncHelper().isSyncPossible()) {
- this.updateUsernameInDrawer();
- adapter.removeAll();
- synchronize();
- } else {
- Toast.makeText(getApplicationContext(), getString(R.string.error_sync, getString(NotesClientUtil.LoginStatus.NO_NETWORK.str)), Toast.LENGTH_LONG).show();
- }
+ // Recreate activity completely, because theme switchting makes problems when only invalidating the views.
+ // @see https://github.com/stefan-niedermann/nextcloud-notes/issues/529
+ recreate();
}
}
private void updateUsernameInDrawer() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String username = preferences.getString(SettingsActivity.SETTINGS_USERNAME, SettingsActivity.DEFAULT_SETTINGS);
- String url = preferences.getString(SettingsActivity.SETTINGS_URL, SettingsActivity.DEFAULT_SETTINGS).replace("https://", "").replace("http://", "");
- if(!SettingsActivity.DEFAULT_SETTINGS.equals(username) && !SettingsActivity.DEFAULT_SETTINGS.equals(url)) {
+ String url = preferences.getString(SettingsActivity.SETTINGS_URL, SettingsActivity.DEFAULT_SETTINGS);
+ if (url != null) {
+ url = url.replace("https://", "").replace("http://", "");
+ } else {
+ Log.w(NotesListViewActivity.class.getSimpleName(), "url is null");
+ }
+ if (!SettingsActivity.DEFAULT_SETTINGS.equals(username) && !SettingsActivity.DEFAULT_SETTINGS.equals(url)) {
this.account.setText(username + "@" + url.substring(0, url.length() - 1));
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java
index 2d64d596..849a93ff 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java
@@ -1,10 +1,12 @@
package it.niedermann.owncloud.notes.android.activity;
import android.os.Bundle;
+
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import it.niedermann.owncloud.notes.android.fragment.PreferencesFragment;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
/**
* Allows to change application settings.
@@ -14,6 +16,7 @@ public class PreferencesActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
setResult(RESULT_CANCELED);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new PreferencesFragment())
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SelectSingleNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SelectSingleNoteActivity.java
index 2e1e1d86..2e89eb35 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SelectSingleNoteActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SelectSingleNoteActivity.java
@@ -6,10 +6,11 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.view.Menu;
import android.view.View;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
@@ -17,6 +18,7 @@ import it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget;
import it.niedermann.owncloud.notes.model.DBNote;
import it.niedermann.owncloud.notes.model.Item;
import it.niedermann.owncloud.notes.model.ItemAdapter;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
import it.niedermann.owncloud.notes.util.Notes;
public class SelectSingleNoteActivity extends NotesListViewActivity {
@@ -27,6 +29,7 @@ public class SelectSingleNoteActivity extends NotesListViewActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
setResult(Activity.RESULT_CANCELED);
SwipeRefreshLayout swipeRefreshLayout = getSwipeRefreshLayout();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SettingsActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SettingsActivity.java
index ea9d1777..8c5caf05 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SettingsActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SettingsActivity.java
@@ -6,9 +6,6 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import com.google.android.material.textfield.TextInputLayout;
-import androidx.core.content.ContextCompat;
-import androidx.appcompat.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
@@ -19,12 +16,18 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
+
+import com.google.android.material.textfield.TextInputLayout;
+
import at.bitfire.cert4android.CustomCertManager;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
import it.niedermann.owncloud.notes.util.NotesClientUtil;
import it.niedermann.owncloud.notes.util.NotesClientUtil.LoginStatus;
@@ -63,6 +66,7 @@ public class SettingsActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
setContentView(R.layout.activity_settings);
ButterKnife.bind(this);
@@ -76,11 +80,8 @@ public class SettingsActivity extends AppCompatActivity {
}
}
- field_url.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- new URLValidatorAsyncTask().execute(NotesClientUtil.formatURL(field_url.getText().toString()));
- }
+ field_url.setOnFocusChangeListener((View v, boolean hasFocus) -> {
+ new URLValidatorAsyncTask().execute(NotesClientUtil.formatURL(field_url.getText().toString()));
});
field_url.addTextChangedListener(new TextWatcher() {
@@ -128,27 +129,18 @@ public class SettingsActivity extends AppCompatActivity {
field_username.setText(preferences.getString(SETTINGS_USERNAME, DEFAULT_SETTINGS));
old_password = preferences.getString(SETTINGS_PASSWORD, DEFAULT_SETTINGS);
- field_password.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- login();
- return true;
- }
+ field_password.setOnEditorActionListener((TextView v, int actionId, KeyEvent event) -> {
+ login();
+ return true;
});
- field_password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- setPasswordHint(hasFocus);
- }
+ field_password.setOnFocusChangeListener((View v, boolean hasFocus) -> {
+ setPasswordHint(hasFocus);
});
setPasswordHint(false);
btn_submit.setEnabled(false);
- btn_submit.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- login();
- }
+ btn_submit.setOnClickListener((View v) -> {
+ login();
});
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java
index 295cd193..a8ec91e9 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java
@@ -2,8 +2,11 @@ package it.niedermann.owncloud.notes.android.activity;
import android.content.Intent;
import android.os.Bundle;
+
import androidx.appcompat.app.AppCompatActivity;
+import it.niedermann.owncloud.notes.util.ExceptionHandler;
+
/**
* Created by stefan on 18.04.17.
*/
@@ -12,6 +15,7 @@ public class SplashscreenActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Thread.currentThread().setUncaughtExceptionHandler(new ExceptionHandler(this));
Intent intent = new Intent(this, NotesListViewActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java
index 034fbb18..b0b18f33 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java
@@ -9,6 +9,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
+import android.util.Log;
import android.widget.RemoteViews;
import it.niedermann.owncloud.notes.R;
@@ -52,20 +53,20 @@ public class NoteListWidget extends AppWidgetProvider {
// Launch application when user taps the header icon or app title
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(new ComponentName(context.getPackageName(),
- NotesListViewActivity.class.getName()));
+ NotesListViewActivity.class.getName()));
// Open the main app if the user taps the widget header
- PendingIntent openAppI = PendingIntent.getActivity( context, 0, intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent openAppI = PendingIntent.getActivity(context, 0, intent,
+ PendingIntent.FLAG_UPDATE_CURRENT);
// Launch create note activity if user taps "+" icon on header
- PendingIntent newNoteI = PendingIntent.getActivity( context,0,
- (new Intent(context, EditNoteActivity.class)),
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent newNoteI = PendingIntent.getActivity(context, 0,
+ (new Intent(context, EditNoteActivity.class)),
+ PendingIntent.FLAG_UPDATE_CURRENT);
- PendingIntent templatePI = PendingIntent.getActivity(context,0,
- (new Intent(context, EditNoteActivity.class)),
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent templatePI = PendingIntent.getActivity(context, 0,
+ (new Intent(context, EditNoteActivity.class)),
+ PendingIntent.FLAG_UPDATE_CURRENT);
if (darkTheme) {
views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list_dark);
@@ -104,12 +105,20 @@ public class NoteListWidget extends AppWidgetProvider {
super.onReceive(context, intent);
AppWidgetManager awm = AppWidgetManager.getInstance(context);
- if (intent.getAction().equals(awm.ACTION_APPWIDGET_UPDATE)) {
- if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
- updateAppWidget(context, awm, new int[] { intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1) });
- } else {
- updateAppWidget(context, awm, awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class)));
+ if (intent.getAction() != null) {
+ if (intent.getAction().equals(AppWidgetManager.ACTION_APPWIDGET_UPDATE)) {
+ if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
+ if (intent.getExtras() != null) {
+ updateAppWidget(context, awm, new int[]{intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, -1)});
+ } else {
+ Log.w(NoteListWidget.class.getSimpleName(), "intent.getExtras() is null");
+ }
+ } else {
+ updateAppWidget(context, awm, awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class)));
+ }
}
+ } else {
+ Log.w(NoteListWidget.class.getSimpleName(), "intent.getAction() is null");
}
}
@@ -129,10 +138,11 @@ public class NoteListWidget extends AppWidgetProvider {
}
private static String getWidgetTitle(Context context, int displayMode, String category) {
- switch (displayMode)
- {
- case NoteListWidget.NLW_DISPLAY_ALL: return context.getString(R.string.app_name);
- case NoteListWidget.NLW_DISPLAY_STARRED: return context.getString(R.string.label_favorites);
+ switch (displayMode) {
+ case NoteListWidget.NLW_DISPLAY_ALL:
+ return context.getString(R.string.app_name);
+ case NoteListWidget.NLW_DISPLAY_STARRED:
+ return context.getString(R.string.label_favorites);
case NoteListWidget.NLW_DISPLAY_CATEGORY:
if (category.equals("")) {
return context.getString(R.string.action_uncategorized);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java
index aee5bc9e..78abe70d 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java
@@ -3,7 +3,12 @@ package it.niedermann.owncloud.notes.android.fragment;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
+import android.app.PendingIntent;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.ShortcutInfo;
+import android.content.pm.ShortcutManager;
+import android.graphics.drawable.Icon;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableString;
@@ -22,13 +27,18 @@ import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.ShareActionProvider;
import androidx.core.view.MenuItemCompat;
import androidx.core.view.ViewCompat;
+
import it.niedermann.owncloud.notes.R;
+import it.niedermann.owncloud.notes.android.activity.EditNoteActivity;
import it.niedermann.owncloud.notes.model.CloudNote;
import it.niedermann.owncloud.notes.model.DBNote;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
import it.niedermann.owncloud.notes.util.DisplayUtils;
import it.niedermann.owncloud.notes.util.ICallback;
+import static androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported;
+import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT;
+
public abstract class BaseNoteFragment extends Fragment implements CategoryDialogFragment.CategoryDialogListener {
public interface NoteFragmentListener {
@@ -37,6 +47,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
void onNoteUpdated(DBNote note);
}
+ private static final int MENU_ID_PIN = -1;
public static final String PARAM_NOTE_ID = "noteId";
public static final String PARAM_NEWNOTE = "newNote";
private static final String SAVEDKEY_NOTE = "note";
@@ -146,6 +157,10 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_note_fragment, menu);
+
+ if (isRequestPinShortcutSupported(getActivity()) && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ menu.add(Menu.NONE, MENU_ID_PIN, 110, R.string.pin_to_homescreen);
+ }
}
@Override
@@ -171,6 +186,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
searchEditFrame.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
int oldVisibility = -1;
+
@Override
public void onGlobalLayout() {
int currentVisibility = searchEditFrame.getVisibility();
@@ -250,6 +266,33 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
}
return false;
+ case MENU_ID_PIN:
+ if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ ShortcutManager shortcutManager = getActivity().getSystemService(ShortcutManager.class);
+
+ if (shortcutManager.isRequestPinShortcutSupported()) {
+ Intent intent = new Intent(getActivity(), EditNoteActivity.class);
+ intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId());
+ intent.setAction(ACTION_SHORTCUT);
+
+ ShortcutInfo pinShortcutInfo = new ShortcutInfo.Builder(getActivity(), note.getId() + "")
+ .setShortLabel(note.getTitle())
+ .setIcon(Icon.createWithResource(getActivity().getApplicationContext(), note.isFavorite() ? R.drawable.ic_star_yellow_24dp : R.drawable.ic_star_grey_ccc_24dp))
+ .setIntent(intent)
+ .build();
+
+ Intent pinnedShortcutCallbackIntent =
+ shortcutManager.createShortcutResultIntent(pinShortcutInfo);
+
+ PendingIntent successCallback = PendingIntent.getBroadcast(getActivity(), /* request code */ 0,
+ pinnedShortcutCallbackIntent, /* flags */ 0);
+
+ shortcutManager.requestPinShortcut(pinShortcutInfo,
+ successCallback.getIntentSender());
+ }
+ }
+
+ return true;
default:
return super.onOptionsItemSelected(item);
}
@@ -269,7 +312,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
protected void saveNote(@Nullable ICallback callback) {
Log.d(getClass().getSimpleName(), "saveData()");
String newContent = getContent();
- if(note.getContent().equals(newContent)) {
+ if (note.getContent().equals(newContent)) {
Log.v(getClass().getSimpleName(), "... not saving, since nothing has changed");
} else {
note = db.updateNoteAndSync(note, newContent, callback);
@@ -277,6 +320,21 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
}
}
+ protected float getFontSizeFromPreferences(SharedPreferences sp) {
+ final String prefValueSmall = getString(R.string.pref_value_font_size_small);
+ final String prefValueMedium = getString(R.string.pref_value_font_size_medium);
+ final String prefValueLarge = getString(R.string.pref_value_font_size_large);
+ String fontSize = sp.getString(getString(R.string.pref_key_font_size), prefValueMedium);
+
+ if (fontSize.equals(prefValueSmall)) {
+ return getResources().getDimension(R.dimen.note_font_size_small);
+ } else if (fontSize.equals(prefValueMedium)) {
+ return getResources().getDimension(R.dimen.note_font_size_medium);
+ } else {
+ return getResources().getDimension(R.dimen.note_font_size_large);
+ }
+ }
+
protected abstract String getContent();
/**
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/CategoryDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/CategoryDialogFragment.java
index 7d6f7d83..e27d45e9 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/CategoryDialogFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/CategoryDialogFragment.java
@@ -8,7 +8,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
-import androidx.annotation.NonNull;
+import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
@@ -17,6 +17,7 @@ import android.widget.Filter;
import java.util.ArrayList;
import java.util.List;
+import androidx.annotation.NonNull;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
@@ -68,7 +69,7 @@ public class CategoryDialogFragment extends DialogFragment {
public void onClick(DialogInterface dialog, int which) {
CategoryDialogListener listener;
Fragment target = getTargetFragment();
- if (target != null && target instanceof CategoryDialogListener) {
+ if (target instanceof CategoryDialogListener) {
listener = (CategoryDialogListener) target;
} else {
listener = (CategoryDialogListener) getActivity();
@@ -88,7 +89,11 @@ public class CategoryDialogFragment extends DialogFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+ if (getDialog().getWindow() != null) {
+ getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
+ } else {
+ Log.w(CategoryDialogFragment.class.getSimpleName(), "can not set SOFT_INPUT_STATE_ALWAYAS_VISIBLE because getWindow() == null");
+ }
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java
index c432a869..07a95a94 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java
@@ -1,5 +1,6 @@
package it.niedermann.owncloud.notes.android.fragment;
+import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.os.Bundle;
@@ -9,18 +10,21 @@ import android.preference.PreferenceManager;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
+import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
+import androidx.annotation.Nullable;
+
import com.yydcdut.markdown.syntax.edit.EditFactory;
import com.yydcdut.rxmarkdown.RxMDEditText;
import com.yydcdut.rxmarkdown.RxMarkdown;
-import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
@@ -109,43 +113,55 @@ public class NoteEditFragment extends BaseNoteFragment {
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- ButterKnife.bind(this, getView());
+ if(getView() != null) {
+ ButterKnife.bind(this, getView());
- setActiveTextView(editContent);
+ setActiveTextView(editContent);
- if (note.getContent().isEmpty()) {
- getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
- }
+ if (note.getContent().isEmpty()) {
+ editContent.requestFocus();
- // workaround for issue yydcdut/RxMarkdown#41
- note.setContent(note.getContent().replace("\r\n", "\n"));
+ getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
- editContent.setText(note.getContent());
- editContent.setEnabled(true);
+ InputMethodManager imm = (InputMethodManager)
+ getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.showSoftInput(getView(), InputMethodManager.SHOW_IMPLICIT);
- RxMarkdown.live(editContent)
- .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()).build())
- .factory(EditFactory.create())
- .intoObservable()
- .subscribe(new Subscriber() {
- @Override
- public void onCompleted() {
- }
+ }
- @Override
- public void onError(Throwable e) {
- }
+ // workaround for issue yydcdut/RxMarkdown#41
+ note.setContent(note.getContent().replace("\r\n", "\n"));
- @Override
- public void onNext(CharSequence charSequence) {
- editContent.setText(charSequence, TextView.BufferType.SPANNABLE);
- }
- });
+ editContent.setText(note.getContent());
+ editContent.setEnabled(true);
- editContent.setCustomSelectionActionModeCallback(new StyleCallback(this.editContent));
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
- if(sp.getBoolean("font", false)) {
- editContent.setTypeface(Typeface.MONOSPACE);
+ RxMarkdown.live(editContent)
+ .config(MarkDownUtil.getMarkDownConfiguration(editContent.getContext()).build())
+ .factory(EditFactory.create())
+ .intoObservable()
+ .subscribe(new Subscriber() {
+ @Override
+ public void onCompleted() {
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ }
+
+ @Override
+ public void onNext(CharSequence charSequence) {
+ editContent.setText(charSequence, TextView.BufferType.SPANNABLE);
+ }
+ });
+
+ editContent.setCustomSelectionActionModeCallback(new StyleCallback(this.editContent));
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
+ editContent.setTextSize(TypedValue.COMPLEX_UNIT_PX, getFontSizeFromPreferences(sp));
+ if (sp.getBoolean(getString(R.string.pref_key_font), false)) {
+ editContent.setTypeface(Typeface.MONOSPACE);
+ }
+ } else {
+ Log.e(NoteEditFragment.class.getSimpleName(), "getView() is null");
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java
index 07aecb0d..9153ac01 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java
@@ -6,6 +6,7 @@ import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.method.LinkMovementMethod;
import android.util.Log;
+import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
@@ -72,7 +73,7 @@ public class NotePreviewFragment extends BaseNoteFragment {
RxMarkdown.with(content, getActivity())
.config(
- MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext())
+ MarkDownUtil.getMarkDownConfiguration(noteContent.getContext())
/*.setOnTodoClickCallback(new OnTodoClickCallback() {
@Override
public CharSequence onTodoClicked(View view, String line, int lineNumber) {
@@ -136,7 +137,8 @@ public class NotePreviewFragment extends BaseNoteFragment {
});
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
- if (sp.getBoolean("font", false)) {
+ noteContent.setTextSize(TypedValue.COMPLEX_UNIT_PX, getFontSizeFromPreferences(sp));
+ if (sp.getBoolean(getString(R.string.pref_key_font), false)) {
noteContent.setTypeface(Typeface.MONOSPACE);
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
index 2989b350..ad859115 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java
@@ -1,12 +1,11 @@
package it.niedermann.owncloud.notes.android.fragment;
import android.app.Activity;
-import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
-import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
+import android.util.Log;
import android.widget.Toast;
import androidx.annotation.Nullable;
@@ -21,30 +20,26 @@ public class PreferencesFragment extends PreferenceFragment {
addPreferencesFromResource(R.xml.preferences);
Preference resetTrust = findPreference(getString(R.string.pref_key_reset_trust));
- resetTrust.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- CustomCertManager.Companion.resetCertificates(getActivity());
- Toast.makeText(getActivity(), getString(R.string.settings_cert_reset_toast), Toast.LENGTH_SHORT).show();
- return true;
- }
+ resetTrust.setOnPreferenceClickListener((Preference preference) -> {
+ CustomCertManager.Companion.resetCertificates(getActivity());
+ Toast.makeText(getActivity(), getString(R.string.settings_cert_reset_toast), Toast.LENGTH_SHORT).show();
+ return true;
});
final SwitchPreference themePref = (SwitchPreference) findPreference(getString(R.string.pref_key_theme));
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
+ themePref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
+ Boolean darkTheme = (Boolean) newValue;
+ Notes.setAppTheme(darkTheme);
+ getActivity().setResult(Activity.RESULT_OK);
+ getActivity().recreate();
+ return true;
+ });
- themePref.setSummary(sp.getBoolean(getString(R.string.pref_key_theme), false) ?
- getString(R.string.pref_value_theme_dark) : getString(R.string.pref_value_theme_light));
- themePref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- Boolean darkTheme = (Boolean) newValue;
- Notes.setAppTheme(darkTheme);
- getActivity().setResult(Activity.RESULT_OK);
- getActivity().recreate();
-
- return true;
- }
+ final SwitchPreference wifiOnlyPref = (SwitchPreference) findPreference(getString(R.string.pref_key_wifi_only));
+ wifiOnlyPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> {
+ Boolean syncOnWifiOnly = (Boolean) newValue;
+ Log.v("Notes", "syncOnWifiOnly: " + syncOnWifiOnly);
+ return true;
});
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java
index 3d4358d7..4c72608b 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java
@@ -1,12 +1,13 @@
package it.niedermann.owncloud.notes.android.fragment.about;
import android.os.Bundle;
-import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
@@ -22,7 +23,7 @@ public class AboutFragmentContributingTab extends Fragment {
TextView aboutTranslate;
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_about_contribution_tab, container, false);
ButterKnife.bind(this, v);
SupportUtil.setHtml(aboutSource, R.string.about_source, getString(R.string.url_source));
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java
index f725393c..d2b01a7c 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java
@@ -1,12 +1,13 @@
package it.niedermann.owncloud.notes.android.fragment.about;
import android.os.Bundle;
-import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.BuildConfig;
@@ -23,7 +24,7 @@ public class AboutFragmentCreditsTab extends Fragment {
TextView aboutTranslators;
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_about_credits_tab, container, false);
ButterKnife.bind(this, v);
SupportUtil.setHtml(aboutVersion, R.string.about_version, "v" + BuildConfig.VERSION_NAME);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java
index cf8fe07b..d32b4632 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java
@@ -3,13 +3,14 @@ package it.niedermann.owncloud.notes.android.fragment.about;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
@@ -29,7 +30,7 @@ public class AboutFragmentLicenseTab extends Fragment {
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_about_license_tab, container, false);
ButterKnife.bind(this, v);
SupportUtil.setHtml(iconsDisclaimer, R.string.about_icons_disclaimer, getString(R.string.about_app_icon_author));
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/quicksettings/NewNoteTileService.java b/app/src/main/java/it/niedermann/owncloud/notes/android/quicksettings/NewNoteTileService.java
index af7eb75e..ca101c88 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/quicksettings/NewNoteTileService.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/quicksettings/NewNoteTileService.java
@@ -27,15 +27,8 @@ public class NewNoteTileService extends TileService {
// create new note intent
final Intent newNoteIntent = new Intent(getApplicationContext(), EditNoteActivity.class);
// ensure it won't open twice if already running
- newNoteIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
-
+ newNoteIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
// ask to unlock the screen if locked, then start new note intent
- unlockAndRun(new Runnable() {
- @Override
- public void run() {
- startActivityAndCollapse(newNoteIntent);
- }
- });
-
+ unlockAndRun(() -> startActivityAndCollapse(newNoteIntent));
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java
index ac4a9278..c70df682 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java
@@ -60,15 +60,6 @@ public class LoadNotesListTask extends AsyncTask> {
dbNote.setTitle(Html.toHtml(spannableString));
- spannableString = new SpannableString(dbNote.getCategory());
- matcher = Pattern.compile("(" + searchQuery + ")", Pattern.CASE_INSENSITIVE).matcher(spannableString);
- while (matcher.find()) {
- spannableString.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.primary_dark)),
- matcher.start(), matcher.end(), 0);
- }
-
- dbNote.setCategory(Html.toHtml(spannableString));
-
spannableString = new SpannableString(dbNote.getExcerpt());
matcher = Pattern.compile("(" + searchQuery + ")", Pattern.CASE_INSENSITIVE).matcher(spannableString);
while (matcher.find()) {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java
index b92d29cc..43477dd3 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java
@@ -3,21 +3,26 @@ package it.niedermann.owncloud.notes.persistence;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.ShortcutManager;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.WorkerThread;
+import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.WorkerThread;
+
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.appwidget.NoteListWidget;
import it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget;
import it.niedermann.owncloud.notes.model.CloudNote;
@@ -49,14 +54,13 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
private static NoteSQLiteOpenHelper instance;
- private NoteServerSyncHelper serverSyncHelper = null;
- private Context context = null;
+ private NoteServerSyncHelper serverSyncHelper;
+ private Context context;
private NoteSQLiteOpenHelper(Context context) {
super(context, database_name, null, database_version);
this.context = context.getApplicationContext();
serverSyncHelper = NoteServerSyncHelper.getInstance(this);
- //recreateDatabase(getWritableDatabase());
}
public static NoteSQLiteOpenHelper getInstance(Context context) {
@@ -244,11 +248,17 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
@NonNull
@WorkerThread
private List getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy) {
+ return this.getNotesCustom(selection, selectionArgs, orderBy, null);
+ }
+
+ @NonNull
+ @WorkerThread
+ private List getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy, @Nullable String limit) {
SQLiteDatabase db = getReadableDatabase();
if (selectionArgs.length > 2) {
Log.v("Note", selection + " ---- " + selectionArgs[0] + " " + selectionArgs[1] + " " + selectionArgs[2]);
}
- Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy);
+ Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy, limit);
List notes = new ArrayList<>();
while (cursor.moveToNext()) {
notes.add(getNoteFromCursor(cursor));
@@ -302,6 +312,12 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, default_order);
}
+ @NonNull
+ @WorkerThread
+ public List getRecentNotes() {
+ return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, key_modified + " DESC", "4");
+ }
+
/**
* Returns a list of all Notes in the Database
*
@@ -327,7 +343,7 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
}
if (category != null) {
- where.add(key_category + "=? OR " + key_category + " LIKE ?");
+ where.add("(" + key_category + "=? OR " + key_category + " LIKE ? )");
args.add(category);
args.add(category + "/%");
}
@@ -527,6 +543,17 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper {
new String[]{String.valueOf(id)});
notifyNotesChanged();
getNoteServerSyncHelper().scheduleSync(true);
+
+ if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
+ shortcutManager.getPinnedShortcuts().forEach((shortcut) -> {
+ String shortcutId = id + "";
+ if (shortcut.getId().equals(shortcutId)) {
+ Log.v(NoteSQLiteOpenHelper.class.getSimpleName(), "Removing shortcut for " + shortcutId);
+ shortcutManager.disableShortcuts(Collections.singletonList(shortcutId), context.getResources().getString(R.string.note_has_been_deleted));
+ }
+ });
+ }
return i;
}
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 fdccffde..f6558718 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
@@ -67,6 +67,19 @@ public class NoteServerSyncHelper {
// Track network connection changes using a BroadcastReceiver
private boolean networkConnected = false;
+ private String syncOnlyOnWifiKey;
+ private boolean syncOnlyOnWifi;
+
+ /**
+ * @see Do not make this a local variable.
+ */
+ private SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = (SharedPreferences prefs, String key) -> {
+ if (syncOnlyOnWifiKey.equals(key)) {
+ syncOnlyOnWifi = prefs.getBoolean(syncOnlyOnWifiKey, false);
+ updateNetworkStatus();
+ }
+ };
+
private final BroadcastReceiver networkReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -105,6 +118,7 @@ public class NoteServerSyncHelper {
private NoteServerSyncHelper(NoteSQLiteOpenHelper db) {
this.dbHelper = db;
this.appContext = db.getContext().getApplicationContext();
+ this.syncOnlyOnWifiKey = appContext.getResources().getString(R.string.pref_key_wifi_only);
new Thread() {
@Override
public void run() {
@@ -114,6 +128,11 @@ public class NoteServerSyncHelper {
// Registers BroadcastReceiver to track network connection changes.
appContext.registerReceiver(networkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
+
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.appContext);
+ prefs.registerOnSharedPreferenceChangeListener(onSharedPreferenceChangeListener);
+ syncOnlyOnWifi = prefs.getBoolean(syncOnlyOnWifiKey, false);
+
updateNetworkStatus();
// bind to certifciate service to block sync attempts if service is not ready
appContext.bindService(new Intent(appContext, CustomCertService.class), certService, Context.BIND_AUTO_CREATE);
@@ -210,9 +229,18 @@ public class NoteServerSyncHelper {
private void updateNetworkStatus() {
ConnectivityManager connMgr = (ConnectivityManager) appContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
+
if (activeInfo != null && activeInfo.isConnected()) {
- Log.d(NoteServerSyncHelper.class.getSimpleName(), "Network connection established.");
- networkConnected = true;
+ networkConnected =
+ !syncOnlyOnWifi || ((ConnectivityManager) appContext
+ .getSystemService(Context.CONNECTIVITY_SERVICE))
+ .getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
+
+ if (networkConnected) {
+ Log.d(NoteServerSyncHelper.class.getSimpleName(), "Network connection established.");
+ } else {
+ Log.d(NoteServerSyncHelper.class.getSimpleName(), "Network connected, but not used because only synced on wifi.");
+ }
} else {
networkConnected = false;
Log.d(NoteServerSyncHelper.class.getSimpleName(), "No network connection.");
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/ExceptionHandler.java b/app/src/main/java/it/niedermann/owncloud/notes/util/ExceptionHandler.java
new file mode 100644
index 00000000..8bd9faa9
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/ExceptionHandler.java
@@ -0,0 +1,35 @@
+package it.niedermann.owncloud.notes.util;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+
+import java.io.Serializable;
+
+import it.niedermann.owncloud.notes.android.activity.ExceptionActivity;
+
+import static it.niedermann.owncloud.notes.android.activity.ExceptionActivity.KEY_THROWABLE;
+
+public class ExceptionHandler implements Thread.UncaughtExceptionHandler {
+
+ private Activity context;
+
+ public ExceptionHandler(Activity context) {
+ super();
+ this.context = context;
+ }
+
+ @Override
+ public void uncaughtException(Thread t, Throwable e) {
+ e.printStackTrace();
+ Intent intent = new Intent(context.getApplicationContext(), ExceptionActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ Bundle extras = new Bundle();
+ intent.putExtra(KEY_THROWABLE, (Serializable) e);
+ extras.putSerializable(KEY_THROWABLE, e);
+ intent.putExtras(extras);
+ context.getApplicationContext().startActivity(intent);
+ context.finish();
+ Runtime.getRuntime().exit(0);
+ }
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java
index b1f8ff82..4e89d268 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java
@@ -1,6 +1,8 @@
package it.niedermann.owncloud.notes.util;
import android.content.Context;
+
+import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import com.yydcdut.rxmarkdown.RxMDConfiguration;
@@ -22,14 +24,15 @@ public class MarkDownUtil {
*/
public static Builder getMarkDownConfiguration(Context context) {
return new RxMDConfiguration.Builder(context)
- .setUnOrderListColor(ResourcesCompat.getColor(context.getResources(), R.color.fg_default, null))
+ .setUnOrderListColor(ContextCompat.getColor(context, R.color.fg_default))
+ .setCodeBgColor(ContextCompat.getColor(context, R.color.fg_default_high))
.setHeader2RelativeSize(1.35f)
.setHeader3RelativeSize(1.25f)
.setHeader4RelativeSize(1.15f)
.setHeader5RelativeSize(1.1f)
.setHeader6RelativeSize(1.05f)
.setHorizontalRulesHeight(2)
- .setLinkFontColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null));
+ .setLinkFontColor(ContextCompat.getColor(context, R.color.primary));
}
public static Builder getMarkDownConfiguration(Context context, Boolean darkTheme) {
diff --git a/app/src/main/res/drawable/ic_format_size_black_24dp.xml b/app/src/main/res/drawable/ic_format_size_black_24dp.xml
new file mode 100644
index 00000000..cc8872c1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_format_size_black_24dp.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml
new file mode 100644
index 00000000..3628dedb
--- /dev/null
+++ b/app/src/main/res/drawable/ic_sync_black_24dp.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_wifi_black_24dp.xml b/app/src/main/res/drawable/ic_wifi_black_24dp.xml
new file mode 100644
index 00000000..d5798991
--- /dev/null
+++ b/app/src/main/res/drawable/ic_wifi_black_24dp.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_exception.xml b/app/src/main/res/layout/activity_exception.xml
new file mode 100644
index 00000000..d512dfa7
--- /dev/null
+++ b/app/src/main/res/layout/activity_exception.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_notes_list_view.xml b/app/src/main/res/layout/activity_notes_list_view.xml
index 816903ba..9a6ff987 100644
--- a/app/src/main/res/layout/activity_notes_list_view.xml
+++ b/app/src/main/res/layout/activity_notes_list_view.xml
@@ -14,6 +14,8 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
+ app:titleMarginStart="0dp"
+ app:contentInsetStartWithNavigation="0dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="4dp" />
diff --git a/app/src/main/res/menu/menu_note_fragment.xml b/app/src/main/res/menu/menu_note_fragment.xml
index 17d42d3d..4ba1fbb1 100644
--- a/app/src/main/res/menu/menu_note_fragment.xml
+++ b/app/src/main/res/menu/menu_note_fragment.xml
@@ -32,13 +32,13 @@
diff --git a/app/src/main/res/values-b+en+001/strings.xml b/app/src/main/res/values-b+en+001/strings.xml
index 4228fc98..c0957171 100644
--- a/app/src/main/res/values-b+en+001/strings.xml
+++ b/app/src/main/res/values-b+en+001/strings.xml
@@ -16,6 +16,9 @@
Saving …SavedAbout
+ Bold
+ Link
+ ItalicSelect noteNote deletedNote restored
@@ -50,8 +53,10 @@
Displays whether the credentials are correct.ConnectConnecting …
- Display mode for Notes
- Theme
+ Display mode for notes
+ Dark theme
+ Monospace font
+ Sync only on Wi-FiManage certificatesTrust system certificatesSystem and user-added CAs will be trusted (recommended)
@@ -122,7 +127,6 @@
LightDark
-
Open in edit mode
diff --git a/app/src/main/res/values-b+es+419/strings.xml b/app/src/main/res/values-b+es+419/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-b+es+419/strings.xml
+++ b/app/src/main/res/values-b+es+419/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 2640882a..f09ad10d 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -4,10 +4,10 @@
NotesEncara no hi ha notesTotes les notes
- Preferits
+ PreferidesCrea una notaParàmetres
- Notes eliminades
+ Notes suprimidesCercaDesaCancel·la
@@ -16,15 +16,21 @@
S\'està desant …S\'ha desatQuant a
+ Negreta
+ Enllaç
+ CursivaSelecciona una nota
- S\'ha eliminat la nota
+ S\'ha suprimit la notaS\'ha restaurat la notaDesfés
+ obre la navegació
+ tanca la navegacióRecentsSense categoria
- Elimina
+ SuprimeixCategoria
- Preferit
+ Preferida
+ PrevisualitzaComparteixQuant a
@@ -34,29 +40,47 @@
AhirAquesta setmanaAquest mes
+ Abans
+
CompteAdreça del servidor
- ATENCIÓ: \"http\" és insegur. Si us plau utilitzeu \"https\".
+ Mostra si es pot fer ping a l\'adreça.
+ ATENCIÓ: \"http\" és insegur. Si us plau feu servir \"https\".Nom d\'usuariContrasenya
+ Contrasenya (sense canvis)Mostra si les credencials són correctes.ConnectaS\'està connectant …
- Mode de visualització de les notes
- Tema
+ Mode de visualització per les notes
+ Tema fosc
+ Tipus de lletra de mida fixa
+ Mida de la lletra
+ Sincronitza només per Wi-FiGestiona els certificats
+ Confia en els certificats del sistema
+ Es confiarà en els CAs afegits pel sistema i per l\'usuari (recomanat)
+ No es confiarà en els CAs afegits pel sistema ni per l\'usuari
+ Restableix els certificats confiats i desconfiats
+ Restableix la confiança de tots els certificats personalitzats
+ Tots els certificats personalitzats han estat suprimits
+
+
+ Notes - Seguretat de la connexió
+ Notes ha trobat un certificat desconegut. Voleu confiar-hi?
+
S\'està connectantS\'ha connectat
- No hi ha cap connexió disponible
+ No hi ha cap xarxa disponibleHa fallat la sincronització: %1$s
- Inici de sessió invàlid: %1$s
- L\'aplicació Notes està activada al servidor?
- S\'ha trencat la connexió amb el servidor
- No hi ha connexió a la xarxa
+ Inici de sessió no vàlid: %1$s
+ l\'aplicació Notes està activada al servidor?
+ s\'ha trencat la connexió amb el servidor
+ no hi ha connexió a la xarxaL\'URL o el servidor contenen errorsL\'adreça del servidor és incorrectaEl nom d\'usuari o la contrasenya són incorrectes
@@ -71,16 +95,18 @@
DesenvolupamentTraduccióComunitat del Nextcloud a <a href=\"%1$s\">Transifex</a>
- Verificació
+ VerificadorsCodi font
- Aquest projecte està hostatjat a Github: <a href=\"%1$s\">%1$s</a>
- Problemes
+ Aquest projecte està allotjat a GitHub: <a href=\"%1$s\">%1$s</a>
+ Incidències
+ Podeu informar d\'errors, proposar millores i demanar noves funcionalitats al seguiment d\'incidències de GitHub: <a href=\"%1$s\">%1$s</a>Tradueix
- Uneix-te a l\'equip Nextcloud a Transifex i ajuda\'ns a traduïr aquesta aplicacio: <a href=\"%1$s\">%1$s</a>
+ Uniu-vos a l\'equip de Nextcloud a Transifex i ajudeu-nos a traduir aquesta aplicació: <a href=\"%1$s\">%1$s</a>Llicència de l\'aplicació
- Aquesta aplicació està llicenciada sota GNU GENERAL PUBLIC LICENSE v3+
+ Aquesta aplicació està llicenciada sota la Llicència Pública General de GNU v3+Mostra la llicènciaIcones
+ <p>Icona original feta per %1$s</p><p>Totes les demés icones emprades per aquesta aplicació són <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> fetes per Google Inc. i llicenciades sota la Llicència Apache 2.0.</p>CrèditsContribucióLlicència
@@ -91,7 +117,7 @@
Una notaNo s\'ha trobat la notaCrea una nota
- Inicieu sessió a Notes abans de fer servir aquest widget
+ Inicieu sessió a Notes abans de fer servir aquest ginyLa icona de l\'estrella serveix per marcar un element com a preferitExecuta l\'aplicació
@@ -102,15 +128,33 @@
ClarFosc
+ Normal
+ Sincronitza per Wi-Fi i dades mòbils
+ Error
+ Tanca
+ Copia
+ Excepció
+ S\'ha copiat al porta-retalls
+ Fixa-ho a la pantalla d\'inici
+ S\'ha suprimit aquesta nota
+ Obre en mode d\'edició
+ Obre en mode de previsualitzacióRecorda la darrera selecció
+
+
+ Petita
+ Mitjana
+ Gran
+
+
- %d seleccionada
- %d seleccionades
+ %d nota seleccionada
+ %d notes seleccionades
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index 7597aa6e..3b6f2c18 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -16,6 +16,9 @@
Ukládání …UloženoO aplikaci
+ Tučné
+ Odkaz
+ SkloněnéVybrat poznámkuPoznámka byla smazánaPoznámka byla obnovena
@@ -51,7 +54,9 @@
PřipojitPřipojování …Režim zobrazení pro poznámky
- Motiv
+ Tmavý motiv vzhledu
+ Písmo s pevnou šířkou
+ Synchronizovat pouze přes Wi-FiSpravovat certifikátyDůvěřovat systémovým certifikátůmSystémové a uživatelsky přidané CA budou důvěryhodné (doporučeno)
@@ -122,6 +127,15 @@
SvětlýTmavé
+ Normální
+ Synchronizovat přes Wi-Fi a mobilní data
+ Chyba
+ Zavřít
+ Zkopírovat
+ Výjimka
+ Zkopírováno do schránky
+ Připnout na domovskou obrazovku
+ Tato poznámka byla smazána
diff --git a/app/src/main/res/values-cy-rGB/strings.xml b/app/src/main/res/values-cy-rGB/strings.xml
index 030a2b94..96a21922 100644
--- a/app/src/main/res/values-cy-rGB/strings.xml
+++ b/app/src/main/res/values-cy-rGB/strings.xml
@@ -7,7 +7,7 @@
FfefrynnauNodyn newyddGosodiadau
- Nodau wedi\'u dileu
+ Nodiadau wedi\'u dileuChwilioCadwDiddymu
@@ -16,6 +16,9 @@
Yn cadw …Wedi\'u cadwYnghylch
+ Trwm
+ Dolen
+ ItaligDewis nodynNodyn wedi\'i ddileuNodyn wedi\'i adfer
@@ -35,14 +38,14 @@
HeddiwDdoe
- Wythnos hon
+ Wythnos ymaMis yma
- Ynghynt
+ CynharachCyfrifCyfeiriad gweinydd
- Yn dangos p\'un ai mae modd pingio\'r cyfeiriad
+ Yn dangos a oes modd pingio\'r cyfeiriadRHYBUDD: \"mae http\" yn anniogel. Defnyddiwch \"https\".Enw defnyddiwrCyfrinair
@@ -50,8 +53,10 @@
Yn dangos p\'un ai yw\'ch manylion yn gywirCysylltuCysylltu i …
- Y modd dangos ar gyfer Notes
- Thema
+ Modd arddangos nodiadau
+ Thema tywyll
+ Font monofwlch
+ Cysoni dros Wi-Fi yn unigRheoli tystysgrifauTysytysgrfiau\'r system ymddiriedaethCA\'r system a\'r rhai ychwanegwyd gan y defnyddiwr yn gymeradwy (argymell)
@@ -61,18 +66,18 @@
Mae\'r holl dystysgrifau cyfaddas wedi eu clirio
- `Nodau - Diogelwch cysylltiad
- Mae Nodau wedi canfod tystysgrif anhysbys. Ydych chi\'n ymddiried ynddi?
+ Nodiadau - Diogelwch cysylltiad
+ Mae Nodiadau wedi canfod tystysgrif anhysbys. Ydych chi\'n ymddiried ynddi?
- Cysylltu
+ Yn cysylltuWedi cysylltuDim rhwydwaith ar gaelMethodd y cydweddiad: %1$sMewngofnod annilys: %1$s
- A yw\'r ap Nodau yn weithredol ar y gweinydd?
+ A yw\'r ap Nodiadau yn weithredol ar y gweinydd?mae cysylltiad y gweinydd wedi torridim cysylltiad rthwydwaithMae gan URL/gweinydd wallau
@@ -100,14 +105,14 @@
Mae\'r ap wedi ei drwyddedu o dan yr GNU GENERAL PUBLIC LICENSE v3+.Gweld y drwyddedEiconau
- <p>Roedd yr eiconau gwreiddiol wedi eu gwneud gan %1$s</p><p>Mae\'r eiconau ychwanegol sy\'n cael eu defnyddio yn yr ap yn<a href=\"https://materialdesignicons.com/\">Eiconau Material Design/a> wedi eu creu gan Google Inc. ac wedi eu trwyddedu o dan yr Apache 2.0 License.</p>
+ <p>Roedd yr eiconau gwreiddiol wedi eu gwneud gan %1$s</p><p>Mae\'r eiconau ychwanegol sy\'n cael eu defnyddio yn yr ap yn<a href=\"https://materialdesignicons.com/\">Eiconau Material Design</a> wedi eu creu gan Google Inc. ac wedi eu trwyddedu o dan yr Apache 2.0 License.</p>DiolchiadauCyfraniadauTrwydded
- Rhestr nodau
- Dim nodau
+ Rhestr nodiadau
+ Dim nodiadauNodyn unigolHeb ganfod nodynCreu Nodyn
@@ -122,7 +127,8 @@
GolauTywyll
-
+ Arferol
+ Cysoni dros Wi-Fi a data symudolAgor yn y modd golygu
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 2a989e0b..4e91f276 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -16,11 +16,14 @@
Gemmer …GemtOm
+ Fed
+ Link
+ KursivVælg noteNote slettetNote gendannetFortryd
- Åben navigation
+ åbnn navigationLuk navigationSenesteIkke kategoriseret
@@ -50,8 +53,11 @@
Viser hvorvidt brugeroplysningerne er korrekte.TilslutTilslutter …
- Display tilstand for noter
- Tema
+ Visningstilstand for noter
+ Mørk tema
+ Monospace font
+ Skriftstørrelse
+ Synk kun på Wi-FiHåndter certifikaterStol på systemcertifikaterSystem og bruger tilføjede CA\'er stoles der på (anbefalet)
@@ -122,14 +128,30 @@
LysMørk
+ Normal
+ Synk på Wi-Fi og mobil data
+ Fejl
+ Luk
+ Kopier
+ Undtagelse
+ Kopieret til udklipsholder
+ Fastgør til hjemmeskærm
+ Denne note er blevet slettet
- Åben i rediger tilstand
- Åben i preview mode
+ Åbn i redigeringstilstand
+ Åbn forhåndsvisningHusk mine sidste selektion
+
+
+ Lille
+ Mellem
+ Stor
+
+
%d valgt
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
deleted file mode 100644
index 7935a1f2..00000000
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
- Notizen
- Noch keine Notizen vorhanden
- Alle Notizen
- Favoriten
- Neue Notiz
- Einstellungen
- Gelöschte Notizen
- Suche
- Speichern
- Abbrechen
- Bearbeiten
- Speichern
- Speichern…
- Gespeichert
- Über
- Notiz auswählen
- Notiz gelöscht
- Notiz wiederhergestellt
- Rückgängig
- Navigation öffnen
- Navigation schließen
- Zuletzt geändert
- Ohne Kategorie
- Löschen
- Kategorie
- Favorit
- Vorschau
- Teilen
- Über
-
- Kategorie auswählen
-
- Heute
- Gestern
- Diese Woche
- Diesen Monat
- Früher
-
-
- Konto
- Server-Adresse
- Zeigt an, ob die angegebene Adresse erreichbar ist.
- WARNUNG: "http" ist unsicher. Bitte benutzen Sie "https".
- Benutzername
- Passwort
- Passwort (nicht geändert)
- Zeigt an, ob die angegebenen Zugangsdaten korrekt sind.
- Verbinden
- Verbindet…
- Anzeigemodus für Notizen
- Theme
- Zertifikate verwalten
- System-Zertifikaten vertrauen
- System- und installierten CAs wird vertraut (empfohlen)
- System- und installierten CAs wird nicht vertraut
- Zertifikat-Vertrauen zurücksetzen
- Setzt angenommene/abgelehnte Zertifikate zurück
- Alle Informationen über angenommene/abgelehnte Zertifikate wurden zurückgesetzt
-
-
- Notizen - Verbindungssicherheit
- Der Server nutzt ein unbekanntes Zertifikat. Soll diesem Zertifikat vertraut werden?
-
-
- Verbinde
- Verbunden
- Kein Netzwerk verfügbar
-
-
- Synchronisation fehlgeschlagen: %1$s
- Anmeldung fehlgeschlagen: %1$s
- ist die Notes-App auf dem Server aktiviert?
- Server-Verbindung nicht möglich
- keine Netzwerk-Verbindung
- URL/Server fehlerhaft
- Falsche Server-Adresse
- Benutzername oder Passwort falsch
-
-
- Einstellungen
-
-
- Version
- Sie benutzen gerade <strong>%1$s</strong>
- Maintainer
- Entwickler
- Übersetzer
- Nextcloud-Gemeinschaft auf <a href=\"%1$s\">Transifex</a>
- Tester
- Quellcode
- Dieses Projekt wird auf GitHub verwaltet: <a href=\"%1$s\">%1$s</a>
- Tickets
- Sie können Fehler, Verbesserungsvorschläge oder Wünsche für neue Funktionen im GitHub-Ticket-System erfassen: <a href=\"%1$s\">%1$s</a>
- Übersetzen
- Treten Sie dem Nextcloud-Team auf Transifex bei und helfen Sie uns, diese App zu übersetzen: <a href=\"%1$s\">%1$s</a>
- App Lizenz
- Diese Applikation ist lizenziert unter der GNU GENERAL PUBLIC LICENSE v3+.
- Lizenz ansehen
- Icons
- <p>Das ursprüngliche Icon wurde erstellt von %1$s</p><p>Alle weiteren von dieser App benutzten Icons sind <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> erstellt von Google Inc. und lizenziert unter einer Apache 2.0 Lizenz.</p>
- Credits
- Mitmachen
- Lizenz
-
-
- Liste der Notizen
- Keine Notizen
- Eine Notiz
- Notiz nicht gefunden
- Notiz erstellen
- Bitte melden Sie sich bei Notes vor Nutzung des Widgets an
- Das Stern-Symbol markiert den Eintrag als Favorit
- Startet die App
-
- Notiz auswählen
-
-
- Neue Notiz erstellen
-
- Hell
- Dunkel
-
-
-
- Im Bearbeitungsmodus öffnen
- Im Vorschaumodus öffnen
- Letzte Auswahl merken
-
-
-
-
- %d ausgewählt
- %d ausgewählt
-
-
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index c073eb41..1194ab7b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,138 +1,160 @@
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).…
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Notizen
+ Noch keine Notizen vorhanden
+ Alle Notizen
+ Favoriten
+ Neue Notiz
+ Einstellungen
+ Gelöschte Notizen
+ Suche
+ Speichern
+ Abbrechen
+ Bearbeiten
+ Speichern
+ Speichern…
+ Gespeichert
+ Über
+ Fett
+ Link
+ Kursiv
+ Notiz auswählen
+ Notiz gelöscht
+ Notiz wiederhergestellt
+ Rückgängig
+ Navigation öffnen
+ Navigation schließen
+ Zuletzt geändert
+ Ohne Kategorie
+ Löschen
+ Kategorie
+ Favorit
+ Vorschau
+ Teilen
+ Über
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Kategorie auswählen
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Heute
+ Gestern
+ Diese Woche
+ Diesen Monat
+ Früher
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).…
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Konto
+ Serveradresse
+ Zeigt an, ob die angegebene Adresse erreichbar ist.
+ WARNUNG: "http" ist unsicher. Bitte benutzen Sie "https".
+ Benutzername
+ Passwort
+ Passwort (nicht geändert)
+ Zeigt an, ob die angegebenen Zugangsdaten korrekt sind.
+ Verbinden
+ Verbindet…
+ Anzeigemodus für Notizen
+ Dunkles Design
+ Nichtproportionale Schriftart
+ Schriftgröße
+ Nur über WLAN synchronisieren
+ Zertifikate verwalten
+ System-Zertifikaten vertrauen
+ System- und installierten CAs wird vertraut (empfohlen)
+ System- und installierten CAs wird nicht vertraut
+ Zertifikat-Vertrauen zurücksetzen
+ Setzt angenommene/abgelehnte Zertifikate zurück
+ Alle Informationen über angenommene/abgelehnte Zertifikate wurden zurückgesetzt
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Notizen - Verbindungssicherheit
+ Der Server nutzt ein unbekanntes Zertifikat. Soll diesem Zertifikat vertraut werden?
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Verbinde
+ Verbunden
+ Kein Netzwerk verfügbar
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).%1$s
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).%1$s
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Synchronisation fehlgeschlagen: %1$s
+ Anmeldung fehlgeschlagen: %1$s
+ ist die Notes-App auf dem Server aktiviert?
+ Server-Verbindung nicht möglich
+ keine Netzwerk-Verbindung
+ URL/Server fehlerhaft
+ Falsche Serveradresse
+ Benutzername oder Passwort falsch
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Einstellungen
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s%1$s<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s%1$s<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s%1$s<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).<%1$s<<<<<
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Version
+ Sie benutzen gerade <strong>%1$s</strong>
+ Maintainer
+ Entwickler
+ Übersetzer
+ Nextcloud-Gemeinschaft auf <a href=\"%1$s\">Transifex</a>
+ Tester
+ Quellcode
+ Dieses Projekt wird auf GitHub verwaltet: <a href=\"%1$s\">%1$s</a>
+ Tickets
+ Sie können Fehler, Verbesserungsvorschläge oder Wünsche für neue Funktionen im GitHub-Ticket-System erfassen: <a href=\"%1$s\">%1$s</a>
+ Übersetzen
+ Treten Sie dem Nextcloud-Team auf Transifex bei und helfen Sie uns, diese App zu übersetzen: <a href=\"%1$s\">%1$s</a>
+ App Lizenz
+ Diese Applikation ist lizenziert unter der GNU GENERAL PUBLIC LICENSE v3+.
+ Lizenz ansehen
+ Icons
+ <p>Das ursprüngliche Icon wurde erstellt von %1$s</p><p>Alle weiteren von dieser App benutzten Icons sind <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> erstellt von Google Inc. und lizenziert unter einer Apache 2.0 Lizenz.</p>
+ Credits
+ Mitmachen
+ Lizenz
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Liste der Notizen
+ Keine Notizen
+ Eine Notiz
+ Notiz nicht gefunden
+ Notiz erstellen
+ Bitte melden Sie sich bei Notes vor Nutzung des Widgets an
+ Das Stern-Symbol markiert den Eintrag als Favorit
+ Startet die App
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Notiz auswählen
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Neue Notiz erstellen
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Hell
+ Dunkel
+ Normal
+ Über WLAN und mobile Daten synchronisieren
+ Fehler
+ Schließen
+ Kopieren
+ Ausnahme
+ In die Zwischenablage kopiert
+ An Startbildschirm anheften
+ Diese Notiz wurde gelöscht
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).
+ Im Bearbeitungsmodus öffnen
+ Im Vorschaumodus öffnen
+ Letzte Auswahl merken
+
+
+
+
+ Klein
+ Mittel
+ Groß%d ausgewählt
- Benötigt keine Übersetzung. Für Android wird nur die formelle Übersetzung verwendet (de_DE).%d
+ %d ausgewählt
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index b597b3d0..6a20ad63 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -48,8 +48,7 @@
Συνθηματικό (δεν άλλαξε)ΣύνδεσηΣυνδέεται …
- Λειτουργία προβολής σημειώσεων
- Θέμα
+ Συγχρονισμός μόνο σε Wi-FiΔιαχείριση πιστοποιητικώνΕμπιστοσύνη πιστοποιητικών συστήματος.Επαναφορά (μη) έμπιστων πιστοποιητικών
@@ -113,7 +112,7 @@
ΦωτεινόΣκοτεινό
-
+ Συγχρονισμός μόνο σε Wi-Fi και δεδομένα κινητούΆνοιγμα σε λειτουργία τροποποίησης
diff --git a/app/src/main/res/values-es-rCL/strings.xml b/app/src/main/res/values-es-rCL/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rCL/strings.xml
+++ b/app/src/main/res/values-es-rCL/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rCO/strings.xml b/app/src/main/res/values-es-rCO/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rCO/strings.xml
+++ b/app/src/main/res/values-es-rCO/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rCR/strings.xml b/app/src/main/res/values-es-rCR/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rCR/strings.xml
+++ b/app/src/main/res/values-es-rCR/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rDO/strings.xml b/app/src/main/res/values-es-rDO/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rDO/strings.xml
+++ b/app/src/main/res/values-es-rDO/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rEC/strings.xml b/app/src/main/res/values-es-rEC/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rEC/strings.xml
+++ b/app/src/main/res/values-es-rEC/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rGT/strings.xml b/app/src/main/res/values-es-rGT/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rGT/strings.xml
+++ b/app/src/main/res/values-es-rGT/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rHN/strings.xml b/app/src/main/res/values-es-rHN/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rHN/strings.xml
+++ b/app/src/main/res/values-es-rHN/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rMX/strings.xml
+++ b/app/src/main/res/values-es-rMX/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rNI/strings.xml b/app/src/main/res/values-es-rNI/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rNI/strings.xml
+++ b/app/src/main/res/values-es-rNI/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rPA/strings.xml b/app/src/main/res/values-es-rPA/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rPA/strings.xml
+++ b/app/src/main/res/values-es-rPA/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rPE/strings.xml b/app/src/main/res/values-es-rPE/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rPE/strings.xml
+++ b/app/src/main/res/values-es-rPE/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rPR/strings.xml b/app/src/main/res/values-es-rPR/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rPR/strings.xml
+++ b/app/src/main/res/values-es-rPR/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rPY/strings.xml b/app/src/main/res/values-es-rPY/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rPY/strings.xml
+++ b/app/src/main/res/values-es-rPY/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es-rSV/strings.xml b/app/src/main/res/values-es-rSV/strings.xml
index 39ce29aa..31a5b7cd 100644
--- a/app/src/main/res/values-es-rSV/strings.xml
+++ b/app/src/main/res/values-es-rSV/strings.xml
@@ -47,8 +47,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- TemaConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
@@ -118,7 +116,6 @@
ClaroOscuro
-
Abrir en modo edición
diff --git a/app/src/main/res/values-es-rUY/strings.xml b/app/src/main/res/values-es-rUY/strings.xml
index 1eb235d7..d7c4410b 100644
--- a/app/src/main/res/values-es-rUY/strings.xml
+++ b/app/src/main/res/values-es-rUY/strings.xml
@@ -40,7 +40,6 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para NotasConfiar en los certificados del sistemaLos CAs del sistema y del usuario serán de confianza (recomendado)Los CAs del sistema y de usuarios no serán de confianza
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 00b04fb9..6c2382ae 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -16,6 +16,9 @@
Guardando …GuardadoAcerca de
+ Negrita
+ Enlace
+ CursivaSeleccionar notaNota eliminadaNota restaurada
@@ -50,8 +53,11 @@
Muestra si las credenciales son correctas.ConectarConectando …
- Modo de visualización para Notas
- Tema
+ Modo de visualización para notas
+ Tema oscuro
+ Tipo de letra monoespaciado
+ Tamaño de fuente
+ Sincronizar solo sobre Wi-FiConfiguración de certificadosConfiar en los certificados del sistemaSe confiará en las autoridades de certificación —CAs— del sistema y añadidas por el usuario (recomendado)
@@ -122,6 +128,15 @@
ClaroOscuro
+ Normal
+ Sincronizar sobre Wi-Fi y datos móviles
+ Error
+ Cerrar
+ Copiar
+ Excepción
+ Copiado al portapapeles
+ Acoplar a la pantalla de inicio
+ Esta nota ha sido borrada
@@ -130,6 +145,13 @@
Recordar mi última selección
+
+
+ Pequeña
+ Media
+ Grande
+
+
%d selecionado
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 125bf3cd..8f43637e 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -3,30 +3,38 @@
OharrakEz dago oharrik
+ Ohar guztiak
+ GogokoakOhar berriaEzarpenak
+ Ezabatutako oharrak
+ BilatuGorde
- Ezeztatu
- Aldatu
+ Utzi
+ EditatuGordeGordetzen …Gordeta
- EzeztatuHoni buruz
+ Lodia
+ Esteka
+ EtzanaOharra aukeratu
- Oharra aukeratuta
+ Oharra ezabatuaOharra berreskuratutaDesegin
+ ireki nabigazioa
+ itxi nabigazioa
+ Azkenak
+ Kategoria gabeEzabatu
- Kopiatu
- Aldatu
- Ezeztatu
+ KategoriaGogokoaAurreikusiPartekatuHoni buruz
- Kopiatu
+ Hautatu kategoria batGaurAtzo
@@ -34,15 +42,32 @@
Hilabete honetanLehenago
+
+ KontuaZerbitzariaren helbidea
- Erakusten du ea helbideari ping egin daiteken
- ERNE: \"http\" ez da segurua. Mesedez, erabili \"https\".
+ Helbideari ping egin dakiokeen erakusten du.
+ ABISUA: \"http\" ez da segurua. Mesedez, erabili \"https\".Erabiltzaile izenaPasahitza
- Erakusten du kredentzialak zuzenak diren.
+ Pasahitza (aldatu gabea)
+ Kredentzialak zuzenak diren erakusten du.KonektatuKonektatzen …
- Aktibatu jakinarazpen iraunkor bat erakusteko ohar berri bat azkar sortzeko .
+ Erakutsi oharren modua
+ Gai iluna
+ Sinkronizatu wifi bidez bakarrik
+ Kudeatu ziurtagiriak
+ Fidatu sistemako ziurtagirietaz
+ Sistemako eta erabiltzaileak gehitutako ziurtagiriak fidagarritzat joko dira (aholkatua)
+ Sistemako eta erabiltzaileak gehitutako ziurtagiriak ez dira fidagarritzat joko
+ Leheneratu ziurtagiri (ez) fidagarriak
+ Ziurtagiri pertsonalizatu guztien fidagarritasuna leheneratzen du
+ Ziurtagiri pertsonalizatu guztiak garbitu dira
+
+
+ Oharrak - Konexioaren segurtasuna
+ Oharrak aplikazioak ziurtagiri ezezagun bat aurkitu du. Honetaz fidatu nahi duzu?
+
KonektatzenKonektatuta
@@ -51,9 +76,10 @@
Sinkronizazioa huts egin du: %1$sLogin-a ez du balio: %1$s
+ Oharrak aplikazioa zerbitzariak aktibatuta al dago?Konexioa zerbitzariarekin ez dabilEz dago sare-konexiorik
- URL/Zerbitzaria akatsak ditu
+ URL/Zerbitzaria erroreak dituZerbitzari helbide okerraErabiltzaile edo pasahitz okerra
@@ -61,22 +87,62 @@
Ezarpenak
- Vertsioa
+ Bertsioa
+ <strong>%1$s</strong> erabiltzen ari zaraMantentzaileaGaratzaileakItzultzaileak
- Frogatzaileak
+ Nextcloud komunitatea <a href=\"%1$s\">Transifex</a> zerbitzuan
+ ProbatzaileakIturburu-kodea
+ Proiektu hau GitHub ostatatuta dago: <a href=\"%1$s\">%1$s</a>Arazoak
+ GitHub-en akatsen berri eman dezakezu, hobekuntzak proposatu ditzakezu, eta ezaugarri berriak eskatu ditzakezu hurrengo harian: <a href=\"%1$s\">%1$s</a>
+ Itzuli
+ Elkartu Nexcloud taldera Transifex zerbitzuan eta lagundu aplikazio hau itzultzen: <a href=\"%1$s\">%1$s</a>Aplikazio lizentziaAplikazio hau GNU GENERAL PUBLIC LICENSE v3+ lizentziapean dago.Lizentzia ikusiIrudiak
+ <p>Jatorriko ikonoaren egilea %1$s</p><p>Erabilitako beste ikono guztiak <a href=\"https://materialdesignicons.com/\">Material Design Ikonoak dira</a> Google Inc. etxeak eginak eta Apache 2.0 lizentziapean argitaratutakoak.</p>KredituakKontribuzioLizentzia
- Ohar guztiak
+
+ Oharren zerrenda
+ Oharrik ezOhar bakarra
+ Oharra ez da aurkitu
+ Sortu oharra
+ Hasi saioa oharrak aplikazioan trepeta hau erabili aurretik
+ Izarraren ikonoa elementu bat gogoko gisa adierazteko erabiltzen da
+ Aplikazioa abiatzen du
-
+ Hautatu oharra
+
+
+ Sortu ohar berria
+
+ Argia
+ Iluna
+ Normala
+ Sinkronizatu wifi eta datu mugikorrekin
+ Errorea
+ Itxi
+ Kopiatu
+ Salbuespena
+ Arbelera kopiatua
+
+
+ Ireki edizio moduan
+ Ireki aurrebista moduan
+ Gogoratu nire azken hautaketa
+
+
+
+
+ %d hautatuta
+ %d hautatuta
+
+
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index 23565df0..45ab0e77 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -16,10 +16,15 @@
Tallennetaan...TallennettuTietoja
+ Lihavoitu
+ Linkki
+ KursivoituValitse muistiinpanoMuistiinpano poistettuMuistiinpano palautettuKumoa
+ avaa navigaatio
+ sulje navigaatioViimeisimmätLuokittelemattomatPoista
@@ -47,7 +52,10 @@
Näyttää ovatko tilitiedot oikein.YhdistäYhdistetään...
- Teema
+ Muistiinpanojen esitystapa
+ Tumma teema
+ Tasalevyinen fontti
+ Synkronoi vain wifi-yhteydelläHallitse varmenteitaLuota järjestelmävarmenteisiin
@@ -75,6 +83,7 @@
Nextcloud-yhteisö <a href=\"%1$s\">Transifex-palvelussa</a>TestaajatLähdekoodi
+ Tämä projekti toimii GitHubissa: <a href=\"%1$s\">%1$s</a>OngelmatKäännäLiity Nextcloud-yhteisöön Transifex-palvelussa ja auta meitä kääntämään tämä sovellus: <a href=\"%1$s\">%1$s</a>
@@ -82,6 +91,7 @@
Tämä sovellus on GNU GENERAL PUBLIC LICENSE v3+ -lisensoitu.Näytä lisenssiKuvakkeet
+ TekijätLisenssi
@@ -97,7 +107,7 @@
VaaleaTumma
-
+ Synkronoi wifi- ja mobiilidatayhteydelläAvaa muokkaustilassa
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 4b02cae9..040f1545 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -9,13 +9,16 @@
ParamètresNotes suppriméesRechercher
- Sauvegarder
+ EnregistrerAnnulerModifier
- Sauvegarder
+ EnregistrerEnregistrement de …
- Sauvegardé
+ EnregistréÀ propos
+ Gras
+ Lien
+ ItaliqueChoisir une noteNote suppriméeNote restaurée
@@ -50,8 +53,11 @@
Visible si les informations d\'identification sont correctes.Se connecterConnexion en cours…
- Mode d\'affichage pour les notes
- Thème
+ Mode d\'affichage des notes
+ Thème sombre
+ Texte monospace
+ Taille des caractères
+ Synchroniser uniquement en WifiGérer les certificatsFaire confiance aux certificats du systèmeLes Autorités de Certification du système, ainsi que celles ajoutées manuellement seront considérées comme totalement fiables (recommandé)
@@ -122,6 +128,15 @@
ClairSombre
+ Normal
+ Synchroniser en Wifi et données mobiles
+ Erreur
+ Fermer
+ Copier
+ Exception
+ Copié dans le presse-papier
+ Épingler sur la page d’accueil
+ Cette note a été supprimée
@@ -130,6 +145,13 @@
Mémoriser ma dernière sélection
+
+
+ Petit
+ Moyen
+ Grand
+
+
%d sélectionné
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index c9aafeb0..4f47b14c 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -16,6 +16,9 @@
Gardando …GardadoSobre
+ Negra
+ Ligazón
+ ItálicaSeleccionar notaA nota foi eliminadaA nota foi restaurada
@@ -51,7 +54,10 @@
ConectarConectando con …Modo de vista das notas
- Tema
+ Tema escuro
+ Letra monoespazada
+ Tamaño da letra
+ Sincronizar só con WiFiAdministrar certificadosConfiar nos certificados do sistemaConfiaráse nas Entidades de Acreditación -CA- do sistema e nas engadidas polo usuario (recomendado)
@@ -122,6 +128,15 @@
ClaroEscuro
+ Normal
+ Sincronización con WiFi e con datos móbiles
+ Erro
+ Pechar
+ Copiar
+ Excepción
+ Copiado no portapapeis.
+ Ancorar na pantalla de inicio
+ Esta nota foi eliminada
@@ -130,6 +145,13 @@
Lembrar a miña última selección
+
+
+ Pequena
+ Mediana
+ Grande
+
+
%d seleccionado
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index 4bbe39a2..864f7c9e 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -16,6 +16,9 @@
מתבצעת שמירה …נשמרעל אודות
+ מודגש
+ קישור
+ נטויבחירת פתקפתק נמחקפתק שוחזר
@@ -51,7 +54,9 @@
התחברותמתבצעת התחברות …מצב תצוגת פתקים
- ערכת עיצוב
+ ערכת עיצוב כהה
+ גופן ברוחב אחיד
+ סנכרון רק דרך רשת אלחוטיתניהול אישוריםמתן אמון באישורי המערכתמתן אמון אוטומטית ברשויות אישורים של המערכת ובאלו שנוספו על ידי המשתמש (מומלץ)
@@ -122,6 +127,13 @@
בהירכהה
+ רגיל
+ עדכון דרך רשת אלחוטית ונתונים סלולריים
+ שגיאה
+ סגור
+ העתק
+ הוסף למסך הבית
+ פתק זה נמחק
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
new file mode 100644
index 00000000..4d6bb19b
--- /dev/null
+++ b/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,161 @@
+
+
+
+ Bilješke
+ Još nema bilješki
+ Sve bilješke
+ Favoriti
+ Nova bilješka
+ Postavke
+ Izbrisane bilješke
+ Traži
+ Spremi
+ Odustani
+ Uredi
+ Spremi
+ Spremanje …
+ Spremljeno
+ Informacije
+ Podebljano
+ Poveznica
+ U kurzivu
+ Odaberi bilješku
+ Bilješka je izbrisana
+ Bilješka je vraćena
+ Poništi
+ otvori navigaciju
+ zatvori navigaciju
+ Nedavni
+ Nekategorizirani
+ Izbriši
+ Kategorija
+ Favorit
+ Pretpregled
+ Dijeli
+ Informacije
+
+ Odaberi kategoriju
+
+ Danas
+ Jučer
+ Ovaj tjedan
+ Ovaj mjesec
+ Ranije
+
+
+ Račun
+ Adresa poslužitelja
+ Pokazuje može li se adresa pingati.
+ UPOZORENJE: „http” nije siguran. Upotrijebite „https”.
+ Korisničko ime
+ Zaporka
+ Zaporka (nepromijenjena)
+ Prikazuje jesu li vjerodajnice točne.
+ Poveži
+ Povezivanje …
+ Način prikaza bilješki
+ Tamna tema
+ Monospace font
+ Veličina fonta
+ Sinkroniziraj samo putem bežične (Wi-Fi) mreže
+ Upravljanje vjerodajnicama
+ Vjerodajnice sustava povjerenja
+ CA-ovi sustava i korisnika smatrat će se pouzdanima (preporučeno)
+ CA-ovi sustava i korisnika neće se smatrati pouzdanima
+ Resetiraj (ne)pouzdane vjerodajnice
+ Resetira pouzdanost svih prilagođenih vjerodajnica
+ Sve prilagođene vjerodajnice su izbrisane
+
+
+ Bilješke – sigurnost veze
+ Bilješke su naišle na nepoznatu vjerodajnicu. Želite li joj vjerovati?
+
+
+ Povezivanje
+ Povezano
+ Nema dostupne mreže
+
+
+ Sinkronizacija nije uspjela: %1$s
+ Prijava nije valjana: %1$s
+ je li aplikacija Bilješke aktivirana na poslužitelju?
+ veza s poslužiteljem je prekinuta
+ nema veze s mrežom
+ URL/poslužitelj ima pogreške
+ Pogrešna adresa poslužitelja
+ Pogrešno korisničko ime ili zaporka
+
+
+ Postavke
+
+
+ Inačica
+ Trenutno se koristite <strong>%1$s</strong>
+ Održavatelj
+ Razvojni programeri
+ Prevoditelji
+ Zajednica Nextcloud na <a href=\"%1$s“>Transifexu</a>
+ Ispitivači
+ Izvorni kod
+ Ovaj je projekt smješten na platformi GitHub: <a href=\"%1$s\">%1$s</a>
+ Poteškoće
+ Možete prijaviti pogreške, predložiti poboljšanja i zatražiti značajke putem GitHubovog alata za prijavu i praćenje poteškoća: <a href=\"%1$s\">%1$s</a>
+ Prevedi
+ Pridružite se Nextcloudovom timu na Transifexu i pomozite nam da prevedemo ovu aplikaciju: <a href=\"%1$s\">%1$s</a>
+ Licenca za aplikaciju
+ Ova je aplikacija licencirana pod OPĆOM JAVNOM LICENCOM ZA GNU v3+.
+ Pogledaj licencu
+ Ikone
+ <p>Izvornu ikonu izradio je %1$s</p><p>Sve daljnje ikone koje se koriste u ovoj aplikaciji su <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> koje je izradio Google Inc. i licencirane su pod licencom Apache 2.0.</p>
+ Zasluge
+ Doprinos
+ Licenca
+
+
+ Popis bilješki
+ Nema bilješki
+ Jedna bilješka
+ Bilješka nije pronađena
+ Stvori bilješku
+ Prijavite se u aplikaciju Bilješke prije korištenja ovog widgeta
+ Ikona zvjezdice upotrebljava se za označavanje stavke kao favorita
+ Pokreće aplikaciju
+
+ Odaberi bilješku
+
+
+ Stvori novu bilješku
+
+ Svijetlo
+ Tamno
+ Normalno
+ Sinkronizacija putem bežičnih (Wi-Fi) i mobilnih podataka
+ Pogreška
+ Zatvorite
+ Kopirajte
+ Izuzetak
+ Kopirano u međuspremnik
+ Prikvačite na početni zaslon
+ Bilješka je izbrisana
+
+
+
+ Otvori u načinu uređivanja
+ Otvori u načinu pregleda
+ Zapamti moj posljednji izbor
+
+
+
+
+ Mali
+ Srednji
+ Veliki
+
+
+
+
+ Odabrano je %d
+ Odabrano je %d
+ Odabrano je %d
+
+
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index 971eb5d5..f0a26f63 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -50,8 +50,9 @@
Mutatja ha a hitelesítőadatok helyesek.KapcsolódásKapcsolódás …
- Jegyzetmegjelenítési módok
- Téma
+ Jegyzet módok megjelenítés
+ Sötét téma
+ Szinkronizáció csak Wifin keresztülTanúsítványok kezeléseMegbízás a rendszertanúsítványokbanA rendszer és felhasználó által hozzáadott CA-k megbízhatók (javasolt)
@@ -122,7 +123,6 @@
VilágosSötét
-
Megnyitás szerkesztésre
diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml
index 5c881743..745c80ec 100644
--- a/app/src/main/res/values-is/strings.xml
+++ b/app/src/main/res/values-is/strings.xml
@@ -16,6 +16,9 @@
Vista …VistaðUm hugbúnaðinn
+ Feitletrað
+ Tengill
+ SkáletraðEyða minnispunktiMinnispunkti var eyttMinnispunktur endurheimtur
@@ -51,7 +54,9 @@
TengjastTengist …Birtingarhamur minnispunkta
- Þema
+ Dökkt þema
+ Jafnbreitt letur
+ Aðeins samstilla á WiFi-netiSýsla með skilríkiTreysta skilríkjum kerfisVottunaraðilum kerfis og þeim sem notandi bætir við verður treyst (mælt með þessu)
@@ -122,7 +127,8 @@
LjóstDökkt
-
+ Venjulegt
+ Samstilla á WiFi-neti og farsímatenginguOpna í breytingaham
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 3c06c4e6..888ca82c 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -16,6 +16,9 @@
Salvataggio di …SalvataInformazioni
+ Grassetto
+ Collegamento
+ CorsivoSeleziona notaNota eliminataNota ripristinata
@@ -50,8 +53,11 @@
Mostra se le credenziali sono corrette.ConnettiConnessione a …
- Modalità di visualizzazione delle note
- Tema
+ Modalità di visualizzazione delle note
+ Tema scuro
+ Carattere a spaziatura fissa
+ Dimensiine carattere
+ Sincronizza solo con Wi-FiGestisci certificatiConsidera affidabili i certificati di sistemaLe CA di sistema e aggiunte dall\'utente saranno considerate affidabili (consigliato)
@@ -122,6 +128,15 @@
ChiaroScuro
+ Normale
+ Sincronizza su Wi-FI e dati mobili
+ Errore
+ Chiudi
+ Copia
+ Eccezione
+ Copiato negli appunti
+ Appunta alla schermata iniziale
+ Questa nota è stata eliminata
@@ -130,6 +145,13 @@
Ricorda la mia ultima selezione
+
+
+ Piccola
+ Media
+ Grande
+
+
%d selezionato
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index e33d4cde..c730ee95 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -16,6 +16,9 @@
保存中…保存しましたバージョン情報
+ 太字
+ リンク
+ 斜体ノートを選択ノートが削除されましたノートが復元されました
@@ -37,7 +40,7 @@
昨日今週今月
- 早期
+ 以前アカウント
@@ -51,7 +54,10 @@
接続接続中…ノートの表示モード
- テーマ
+ ダークテーマ
+ モノスペースフォント
+ フォントサイズ
+ Wi-Fi接続時のみ同期する証明書を管理するシステム証明書を信頼するシステムおよびユーザーが追加した CA は信頼される(推奨)
@@ -122,6 +128,15 @@
ライトダーク
+ ノーマル
+ Wi-Fiおよびモバイル接続時に同期する
+ エラー
+ 閉じる
+ コピー
+ 例外
+ クリップボードにコピー
+ ホームスクリーンにピン留めする
+ ノートが削除されました
@@ -130,6 +145,13 @@
最後に使用したモードで開く
+
+
+ 小
+ 中
+ 大
+
+
%d 選択済
diff --git a/app/src/main/res/values-ka-rGE/strings.xml b/app/src/main/res/values-ka-rGE/strings.xml
index 255af37c..0924c4cb 100644
--- a/app/src/main/res/values-ka-rGE/strings.xml
+++ b/app/src/main/res/values-ka-rGE/strings.xml
@@ -40,7 +40,6 @@
აცვენებს უფლებამოსილებების სისწორესდაკავშირებახდება დაკავშირება …
- ჩანაწერების ჩვენების რეჟიმიენდეთ სისტემის სერტიფიკატებსსისტემისა და მომხმარებლის მიერ დამატებული სერტიფიკატის ხელმძღვანელობა მიჩნეულ იქნება სანდოდ (რეკომენდირებულია)სისტემისა და მომხმარებლის მიერ დამატებული სერტიფიკატის ხელმძღვანელობა არ იქნება მიჩნეული სანდოდ
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 1917cd46..9e46a07d 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -10,6 +10,7 @@
저장저장 중…저장됨
+ 정보메모 선택메모 삭제됨메모 복원됨
@@ -40,7 +41,6 @@
인증 정보가 올바른지 표시합니다.연결연결 중…
- 메모 표시 모드시스템 인증서 신뢰시스템 및 사용자 CA를 신뢰함(추천)시스템 및 사용자 CA를 신뢰하지 않음
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index 04b94fab..26617080 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -4,8 +4,7 @@
UžrašaiNėra užrašųVisos pastabos
- Mėgstamiausi
- Naujas įvykis
+ SvarbiausiNustatymaiPaieškaĮrašyti
@@ -15,6 +14,8 @@
Įrašoma …ĮrašytaApie
+ Pusjuodis
+ KursyvasSukurtiPastaba ištrintaPastaba atstatyta
@@ -25,7 +26,7 @@
NekategorizuotasIštrintiKategorija
- Mėgiamas
+ SvarbiausiasPeržiūraDalintisApie
@@ -36,6 +37,8 @@
Šis mėnesisAnkstesnis
+
+ PaskyraServerio adresasParodo, ar adresas yra pasiekiamas.ĮSPĖJIMAS: \"http\" protokolas yra nesaugus. Prašome naudoti \"https\".
@@ -45,8 +48,9 @@
Parodo, ar teisingi prisijungimo duomenysPrisijungtiJungiamasi …
- Pastabų atvaizdavimas
- Tema
+ Tamsus apipavidalinimas
+ Lygiaplotis šriftas
+ Tvarkyti liudijimusPasitikėti sistemos sertifikataisSistemos ir vartotojų pridėti CA bus laikomi patikimais (rekomenduojama)Sistemos ir vartotojų pridėti CA bus laikomi nepatikimais
@@ -79,23 +83,23 @@
VersijaJūs dabar naudojate <strong>%1$s</strong>
- Aptarnautojai
+ PrižiūrėtojasPlėtotojaiVertėjaiNextcloud bendruomenė <a href=\"%1$s\">Transifex</a>Testuotojai
- Išeities kodas
+ Pradinis kodasŠis projektas talpinamas GitHub: <a href=\"%1$s\">%1$s</a>ProblemosGalite pranešti apie riktus, pasiūlymus ar funkcinius pageidavimus GitHub: <a href=\"%1$s\">%1$s</a>VerstiPrisijunkite prie Nextcloud komandos Transefix ir padėkite mums išversti šią programėlę: <a href=\"%1$s\">%1$s</a>Programėlės licencija
- Ši programėlė licencijuojama pagal GNU GENERAL PUBLIC LICENCE v3+.
+ Ši programėlė yra licencijuota pagal GNU BENDRĄJĄ VIEŠĄJĄ LICENCIJĄ v3+.Rodyti licencijąPiktogramos<programėlė<p>Originali piktograma padaryta %1$s</p><p>Visos šios programėlės naudojamos piktogramos yra <a href=\"https://materialdesignicons.com/\">
- Kūrėjai
+ PadėkosPrisidėjoLicencija
@@ -115,7 +119,6 @@
ŠviesiTamsi
-
Atidaryti redagavimo režimu
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 3a973e81..ac87ef77 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -16,6 +16,9 @@
Lagrer …LagretOm
+ Uthevet
+ Lenke
+ ItalicVelg notatNotat slettetNotat gjenopprettet
@@ -41,7 +44,7 @@
Konto
- Tjeneradresse
+ ServeradresseViser hvorvidt adressen kan pinges.ADVARSEL: \"http\" er usikker. Bruk \"https\".Brukernavn
@@ -50,8 +53,10 @@
Viser hvorvidt påloggingsdetaljene er korrekte.Koble tilKobler …
- Visningsmodus for Notater
- Tema
+ Visningsmodus for notater
+ Mørkt tema
+ Monospace font
+ Synkroniser kun med WiFiAdministrer sertifikatStol på systemets sertifikaterSystem- og bruker -tillagte seritikatsmyndigheter vil stoles på (anbefalt)
@@ -72,11 +77,11 @@
Synkronisering mislyktes: %1$sUgyldig pålogging: %1$s
- er Notat-programmet påslått på tjeneren?
- tilkoblingen til tjener er avbrutt
+ er Notat-appen påslått på serveren?
+ tilkoblingen til server er avbruttIngen nettverkstilkobling
- URL/Tjener har feil
- Feil på tjeneradresse
+ URL/Server har feil
+ Feil på serveradresseFeil brukernavn eller passord
@@ -95,12 +100,12 @@
FeilDu kan rapportere inn feil, forbedringforslag og funksjonønsker på GitHub-saksporeren: <a href=\"%1$s\">%1$s</a>Oversett
- Ta del i Nextcloud-fellesskapet på Transifex og hjelp oss med å oversette dette programmet: <a href=\"%1$s\">%1$s</a>
+ Ta del i Nextcloud-fellesskapet på Transifex og hjelp oss med å oversette denne appen: <a href=\"%1$s\">%1$s</a>Lisens
- Dette programmet er lisensiert under GNU GENERAL PUBLIC LICENSE v3+.
+ Denne appen er lisensiert under GNU GENERAL PUBLIC LICENSE v3+.Vis lisensIkoner
- <p>Orginalt ikon er laget av %1$s</p><p>Alle øvrige ikoner brukt i dette programmet er <a href=\"https://materialdesignicons.com/\">Materielt design-ikoner</a> laget av Google Inc. og lisensiert under Apache 2.0-lisens.</p>
+ <p>Orginalt ikon er laget av %1$s</p><p>Alle øvrige ikoner brukt i denne appen er <a href=\"https://materialdesignicons.com/\">Materielt design-ikoner</a> laget av Google Inc. og lisensiert under Apache 2.0-lisens.</p>BidragsytereBidragsytereLisens
@@ -113,7 +118,7 @@
Opprett notatLogg inn i Notater før du bruker dette miniprogrammetStjerne ikon er brukt for å angi et element som en favoritt
- Starter programmet
+ Åpner appenVelg notat
@@ -122,7 +127,8 @@
LysMørk
-
+ Normal
+ Synkroniser med WiFi og mobil dataÅpne i redigeringsmodus
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index c0ac366c..b7802ccb 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -16,6 +16,9 @@
Opslaan …OpgeslagenOver
+ Vet
+ Link
+ ScheefNotitie selecterenNotitie verwijderdNotitie hersteld
@@ -51,8 +54,11 @@
Toont of de login-gegevens correct zijn.VerbindenVerbinden …
- Laat modus zien voor notities
- Thema
+ Weergavemode voor notities
+ Donker thema
+ Monospace lettertype
+ Fontgrootte
+ Sync alleen met Wi-FiBeheren certificatenVertrouw systeem certificatenSysteem en door gebruiker toegevoegde CA\'s worden vertrouwd (aanbevolen)
@@ -123,6 +129,15 @@
LichtDonker
+ Normaal
+ Sync met Wi-Fi en mobiele data
+ Fout
+ Sluiten
+ Kopiëren
+ Uitzondering
+ Gekopieerd naar het klembord
+ Vastmaken op startscherm
+ Deze notitie is verwijderd
@@ -131,6 +146,13 @@
Onthoud je laatste selectie
+
+
+ Klein
+ Gemiddeld
+ Groot
+
+
%d geselecteerd
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 9027db46..19792785 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -2,7 +2,7 @@
Notatki
- Brak notatek
+ Nie ma jeszcze notatekWszystkie notatkiUlubioneNowa notatka
@@ -16,6 +16,9 @@
Zapisywanie …ZapisanoO aplikacji
+ Pogrubienie
+ Odnośnik
+ KursywaWybierz notatkęNotatka usuniętaNotatka przywrócona
@@ -29,7 +32,7 @@
UlubionaPodglądUdostępnij
- O
+ O aplikacjiWybierz kategorię
@@ -42,27 +45,30 @@
KontoAdres serwera
- Pokazuje czy adres może być pingowany.
- OSTRZEŻENIE: \"http\" nie jest bezpieczne. Proszę użyć \"https\".
+ Pokazuje, czy adres można pingować.
+ OSTRZEŻENIE: \"http\" jest niebezpieczne. Proszę użyć \"https\". Nazwa użytkownikaHasłoHasło (nie zmienione)
- Wyświetla czy poświadczenia są poprawne.
+ Wyświetla, czy dane logowania są poprawne.PołączŁączenie …
- Wyświetl tryb dla Notatek
- Motyw
+ Tryb wyświetlania notatek
+ Ciemny motyw
+ Czcionka monospace
+ Rozmiar czcionki
+ Synchronizuj tylko przez Wi-FiZarządzaj certyfikatami
- Ufaj systemowym certyfikatom
- Systemowe i dodane przez użytkownika CA /Certification Authority/ staną się zaufanymi (zalecane)
- Systemowe i dodane przez użytkownika CA /Certification Authority/ nie staną się zaufanymi
+ Zaufaj certyfikatom systemowym
+ Systemowe i dodane przez użytkownika certyfikaty będą zaufane (zalecane)
+ Systemowe i dodane przez użytkownika certyfikaty nie będą zaufaneZresetuj (nie)zaufane certyfikaty
- Resetuje zaufanie wszystkich certyfikatów
- Wszystkie własne certyfikaty zostały wyczyszczone.
+ Resetuje wszystkie zaufane niestandardowe certyfikaty
+ Wszystkie certyfikaty niestandardowe zostały wyczyszczoneNotatki - Bezpieczeństwo połączenia
- Notatki napotkały niezaufany certyfikat. Chcesz mu zaufać?
+ Notes napotkał nieznany certyfikat. Czy chcesz mu zaufać?Łączenie
@@ -72,7 +78,7 @@
Synchronizacja nie powiodła się: %1$sNiepoprawny login: %1$s
- Czy aplikacja Notatki jest włączona na serwerze?
+ czy aplikacja Notes jest aktywowana na serwerze?połączenie z serwerem jest nieprawidłowebrak połączenia sieciowegoURL/Serwer zawiera błędy
@@ -88,20 +94,20 @@
OpiekunDeweloperzyTłumacze
- Społeczność Nextclouda na <a href=\"%1$s\">Transifeksie</a>
+ Społeczność Nextcloud na <a href=\"%1$s\">Transifex</a>TesterzyKod źródłowy
- Projekt prowadzony jest na GitHubie: <a href=\"%1$s\">%1$s</a>
+ Ten projekt jest hostowany na GitHub: <a href=\"%1$s\">%1$s</a>Problemy
- Możesz zgłaszać błędy, propozycje rozbudowy lub prośby o nowe funkcjonalności na GitHubie: <a href=\"%1$s\">%1$s</a>
- Tłumacz
- Aby pomóc nam w tłumaczeniu tej aplikacji przyłącz się do zespołu Nextclouda na Transifeksie <a href=\"%1$s\">%1$s</a>
+ Możesz zgłaszać błędy, propozycje ulepszeń i prośby o funkcje w liście problemów na GitHub: <a href=\"%1$s\">%1$s</a>
+ Tłumaczyć
+ Dołącz do zespołu Nextcloud na Transifex i pomóż nam przetłumaczyć tę aplikację: <a href=\"%1$s\">%1$s</a>Licencja aplikacjiAplikacja jest chroniona licencją GNU GENERAL PUBLIC LICENSE v3+.Zobacz licencjęIkony
- <p>Oryginalna ikona utworzona %1$s</p><p>Wszystkie pozostałe użyte przez tę aplikację są własnością href=\"https://materialdesignicons.com/\">Material Design Icons/a> utworzone przez Google Inc. licencjonowane zgodnie z licencją Apache 2.0./p>
- O
+ <p>Oryginalna ikona wykonana przez %1$s</p><p>Wszystkie pozostałe ikony używane przez tę aplikację są <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> wykonane przez Google Inc. i licencjonowane na podstawie Apache 2.0 License.</p>
+ AutorzyWkładLicencja
@@ -111,8 +117,8 @@
Pojedyncza notatkaNie znaleziono notatkiUtwórz notatkę
- Zanim użyjesz widgetu zaloguj się wpierw do Notatek
- Ikona gwiazdy służy do oznaczenia elementu jako ulubionego
+ Zaloguj się do Notes przed użyciem tego widgetu
+ Ikona gwiazdki służy do oznaczenia pozycji jako ulubionaUruchamia aplikacjęWybierz notatkę
@@ -122,6 +128,15 @@
JasnyCiemny
+ Podstawowy
+ Synchronizacja w sieci Wi-Fi i komórkowej transmisji danych
+ Błąd
+ Zamknij
+ Kopiuj
+ Wyjątek
+ Skopiowano do schowka
+ Przypnij do ekranu głównego
+ Ta notatka została usunięta
@@ -130,11 +145,18 @@
Zapamiętaj ostatni wybór
+
+
+ Mała
+ Średnia
+ Duża
+
+
- %d wybrano
- %d wybrano
- %d wybrano
- %d wybrano
+ %d wybrany
+ %d wybrane
+ %d wybranych
+ %d wybranych
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 4f2d6664..fdfda203 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -16,6 +16,9 @@
Salvando…SalvoSobre
+ Negrito
+ Link
+ ItálicoSelecionar anotaçãoAnotação excluídaAnotação restaurada
@@ -50,8 +53,11 @@
Mostra se a senha está correta.ConectarConectando…
- Mostra os modos para Anotações
- Tema
+ Modo de exibição de notas
+ Tema escuro
+ Fonte monospaçada
+ Tamanho da fonte
+ Sincronizar somente por Wi-FiGerenciar certificadosCertificados de sistema confiáveisCAs de sistema e adicionados pelo usuário serão confiáveis (recomendado)
@@ -84,13 +90,13 @@
Versão
- Atualmente você está usando <strong>%1$s</strong>
+ Você está usando <strong>%1$s</strong>MantenedorDesenvolvedoresTradutores
- Nextcloud comunidade <a href=\"%1$s\">Transifex</a>
+ Comunidade Nextcloud no <a href=\"%1$s\">Transifex</a>Testadores
- Código fonte
+ Código-fonteEste projeto está hospedado no GitHub: <a href=\"%1$s\">%1$s</a>ProblemasVocê pode relatar bugs, enviar propostas de aprimoramento e solicitações de recursos no rastreador de problemas do GitHub: <a href=\"%1$s\">%1$s</a>
@@ -100,7 +106,7 @@
Este aplicativo está licenciado sob a GNU GENERAL PUBLIC LICENSE v3+.Ver licençaÍcones
- <p>Ícone original feito por %1$s</p><p>Todos os ícones futuros usados por este aplicativo são <a href=\"https://materialdesignicons.com/\">Ícones de Design de Material</a> criados por Google Inc. e estão sob a Licença Apache 2.0.</p>
+ <p>Ícone original feito por %1$s</p><p>Todos os ícones adicionais usados por este aplicativo são <a href=\"https://materialdesignicons.com/\">Ícones de Design de Material</a> criados por Google Inc. e estão sob a Licença Apache 2.0.</p>CréditosContribuiçãoLicença
@@ -122,6 +128,15 @@
ClaroEscuro
+ Normal
+ Sincronizar por Wi-Fi e dados móveis
+ Erro
+ Fechar
+ Copiar
+ Exceção
+ Copiado para a área de transferência
+ Fixar na tela inicial
+ A anotação foi excluída
@@ -130,6 +145,13 @@
Lembrar minha última escolha
+
+
+ Pequena
+ Média
+ Grande
+
+
%d selecionados
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 5669f3c0..fed577d8 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -16,6 +16,9 @@
Сохранение …СохраненоО программе
+ Жирный
+ Ссылка
+ КурсивВыбрать заметкуЗаметка удаленаЗаметка восстановлена
@@ -40,7 +43,7 @@
Ранее
- Аккаунт
+ Учётная записьАдрес сервера Показывает доступность адреса.ВНИМАНИЕ: использование «http» небезопасно. Используйте «https».
@@ -51,7 +54,10 @@
СоединитьСоединение …Режим показа заметок
- Тема
+ Темная тема
+ Моноширинный шрифт
+ Размер шрифта
+ Синхр. только по Wi-FiУправление сертификатамиДоверять системным сертификатамДоверять системным и добавленным пользователем центрам авторизации (рекомендуется)
@@ -122,6 +128,15 @@
СветлаяТёмная
+ Обычный
+ Синхр. по Wi-Fi и мобильной связи
+ Ошибка
+ Закрыть
+ Копировать
+ Исключение
+ Скопировано в буфер обмена
+ Введите PIN-код для домашнего экрана
+ Запись была удалена
@@ -130,6 +145,13 @@
Запоминать выбранный режим
+
+
+ Маленький
+ Средний
+ Большой
+
+
%d выбран
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 2b3c047c..d950b7d4 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -16,6 +16,9 @@
Ukladám …UloženéO aplikácii
+ Tučné
+ Odkaz
+ KurzívaVybrať poznámkuPoznámka vymazanáPoznámka obnovená
@@ -50,8 +53,11 @@
Zobrazuje či sú platné overenia.PripojiťPripájam …
- Režim zobrazovania pre Poznámky
- Vzhľad
+ Režim zobrazovania poznámok
+ Tmavý motív vzhľadu
+ Písmo s pevnou šírkou
+ Veľkosť písma
+ Synchronizovať len na Wi-FiSpravovať certifikátyDôverovať systémovým certifikátomSystémove a používateľské Certifikačné autority (CA) budú dôveryhodné (odporúčané)
@@ -122,6 +128,15 @@
SvetlýTmavý
+ Normálne
+ Synchronizovať na Wi-Fi a mobilných dátach
+ Chyba
+ Zatvoriť
+ Kopírovať
+ Výnimka
+ Skopírované do schránky
+ Pripnúť na domovskú obrazovku
+ Táto poznámka bola vymazaná
@@ -130,6 +145,13 @@
Zapamätať si môj posledný výber
+
+
+ Malá
+ Stredná
+ Veľká
+
+
%d vybraný
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 2059b451..13a33a91 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -16,6 +16,9 @@
Poteka shranjevanje…ShranjenoO programu
+ Krepko
+ Povezava
+ LežečeIzbor zabeležkeZabeležka je izbrisanaZabeležka je obnovljena
@@ -50,8 +53,11 @@
Pokaže, ali so poverila pravilna.PovežiPoteka vzpostavljanje povezave z…
- Prikazni način za zabeležke
- Tema
+ Način odpiranja zabeležk
+ Temna tema
+ Pisava enotne širine
+ Velikost pisave
+ Usklajuj le na Wi-FiUpravljanje s potrdiliZaupaj sistemskim potrdilomSistemska in s strani uporabnika dodana potrdila CA bodo obravnavana kot varna (priporočljivo)
@@ -122,14 +128,30 @@
SvetlaTemna
+ Običajno
+ Usklajuj na Wi-Fi in mobilni povezavi
+ Napaka
+ Zapri
+ Kopiraj
+ Izjema
+ Kopirano v odložišče
+ Pripni na osnovni zaslon
+ Ta zabeležka je bila izbrisana
- Odpre se v urejevalnem načinu
- Odpre se v predogledu
+ Zabeležka se odpre v urejevalnem načinu
+ Zabeležka se odpre v predogleduZapomni si zadnjo izbiro
+
+
+ Majhna
+ Srednja
+ Velika
+
+
%d izbrana
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index 3f9f22ea..6badd4ee 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -50,8 +50,6 @@
Paraqet në qoftë se kredencialet janë të sakta.LidhuDuke u lidhur …
- Mënyra e paraqitjes për Shënimet
- TemëMenaxhoni certifikatatBeso tek çertifikatat e sistemitSistemi dhe përdoruesit e shtuar CAs do të besohen (rekomandohet)
@@ -122,7 +120,6 @@
E çelëtE errët
-
Hapur në modalitetin e redaktimit
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index b4f0f28a..3aa888ba 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -16,9 +16,12 @@
Чувам …СачуваноО програму
+ Подебљано
+ Веза
+ КурзивИзабери белешкуБелешка обрисана
- Белешка повраћена
+ Белешка враћенаОпозовиотвори навигацијузатвори навигацију
@@ -50,18 +53,21 @@
Прикзује да ли су акредитиви исправни.Повежи сеПовезујем се…
- Начин приказа за Белешке
- Тема
+ Режим приказа белешки
+ Тамна тема
+ Фонт фиксне ширине
+ Величина фонта
+ Синхронизуј само преко бежичне везеУправљај сертификатимаВеруј системским сертификатимаВероваће се системским сертификатима и кориснички доданим сертификационим центрима (CA)
- Неће се веровати системским сертификатима и кориснички доданим сертификационим центрима
+ Неће се веровати системским сертификатима и кориснички додатим сертификационим центримаРесетуј којим се сертификатима (не) верујеРесетуј поверење свих кориснички прилагођеним сертификатимаСви кориснички поверљиви сертификати су очишћени
- Белешке - безбедност конекције
+ Белешке - безбедност везеБелешке су наишле на непознати сертификат. Да ли желите да му верујете?
@@ -71,13 +77,13 @@
Синхронизација није успела%1$s
- Неисправна лозинка:%1$s
+ Неисправна пријава:%1$sДа ли је апликација Белешки активирана на серверу?
- веза са сервером је пукла
- нема интернет конекције
- URL/Server грешка
+ веза са сервером је прекинута
+ нема мрежне везе
+ УРЛ/сервер имају грешкуПогрешна адреса сервера
- Корисничко име или лозинка нису тачни
+ Погрешно корисничко име или лозинкаПоставке
@@ -88,19 +94,19 @@
ОдржаваоцПрограмериПреводиоци
- Некстклауд заједница на <a href=\"%1$s\">Transifex</a>
+ Некстклауд заједница на <a href=\"%1$s\">Трансифексу</a>ТестериИзворни кôд
- Овај пројекат се држи на GitHub-у: <a href=\"%1$s\">%1$s</a>
- Грешке
- Пријаве грешака, предлоге и захтеве можете да оставите на Гитхабовом пратиоцу пријава: <a href=\"%1$s\">%1$s</a>
+ Овај пројекат се одржава на Гитхабу: <a href=\"%1$s\">%1$s</a>
+ Проблеми
+ Пријаве грешака, предлоге и захтеве можете да оставите на Гитхабовом пратиоцу проблема: <a href=\"%1$s\">%1$s</a>Преведи
- Придружите се Некстклауд тиму на Transifex-у и помозите нам да преведемо ову апликацију: <a href=\"%1$s\">%1$s</a>
+ Придружите се Некстклауд тиму на Трансифексу и помозите нам да преведемо ову апликацију: <a href=\"%1$s\">%1$s</a>Лиценца апликације
- Ова апликација је лиценцирана под ГНУовом Општом јавном лиценцом (ГПЛ) в3+.
+ Ова апликација је лиценцирана под ГНУовом општом јавном лиценцом в3+.Прикажи лиценцуИконе
- <p>Оригиналне иконе направио %1$s</p><p>Све остале иконе коришћене у овој апликацији су <a href=\"https://materialdesignicons.com/\">Material Design Icons</a> направљене од стране Google Inc. и лиценциране под Apache 2.0 лиценцом.</p>
+ <p>Оригиналне иконе направио %1$s</p><p>Све остале иконе коришћене у овој апликацији су <a href=\"https://materialdesignicons.com/\">Иконе материјал дизајна</a> направљене од стране Гугла и лиценциране под Апач 2.0 лиценцом.</p>ЗаслугеДоприносЛиценца
@@ -111,8 +117,8 @@
БелешкаБелешка није нађенаНаправи белешку
- Пријавите се на Белешке пре коришћења овог елемента
- Звездица се користила да означи да је ставка омиљена
+ Пријавите се на Белешке пре коришћења овог виџета
+ Икона звезде се користи да означи ставку као омиљенуПокреће апликацијуОдабери белешку
@@ -122,6 +128,15 @@
СветлаТамна
+ Нормална
+ Синхронизуј и на бежичној и на мобилној вези
+ Грешка
+ Затвори
+ Копирај
+ Изузетак
+ Копирано у оставу
+ Закачи на почетни екран
+ Ова белешка је обрисана
@@ -130,6 +145,13 @@
Запамти мој последњи избор
+
+
+ Мали
+ Средњи
+ Велики
+
+
%d означена
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index f2aec716..9cac32cb 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -3,9 +3,11 @@
AnteckningarInga anteckningar än
+ Alla anteckningarFavoriterNy anteckningInställningar
+ Borttagna anteckningarSökSparaAvbryt
@@ -14,6 +16,9 @@
Sparar …SparadOm
+ Fet
+ Länk
+ KursivVälj anteckningAnteckningen raderadAnteckningen återskapad
@@ -48,8 +53,11 @@
Visar huruvida uppgifterna är korrekta.AnslutAnsluter …
- Visningslägen för Anteckningar
- Tema
+ Visningsläge för anteckningar
+ Mörkt tema
+ Monospace font
+ Teckenstorlek
+ Synkronisera endast med Wi-FiHantera certifikatLita på systemcertifikatSystem- och användartillagda CAs kommer vara betrodda (rekommenderas)
@@ -120,6 +128,15 @@
LjusMörk
+ Normal
+ Synkronisera med Wi-Fi och mobil data
+ Fel
+ Stäng
+ Kopiera
+ Undantag
+ Kopierat till urklipp
+ Fäst på hemskärmen
+ Denna anteckning har raderats
@@ -128,6 +145,13 @@
Kom ihåg mitt sista val
+
+
+ Liten
+ Medium
+ Stor
+
+
%d vald
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 3fb3e16f..7b6d3741 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -16,6 +16,9 @@
Kaydediliyor …KaydedildiHakkında
+ Koyu
+ Bağlantı
+ YatıkNot seçinNot silindiNot geri yüklendi
@@ -27,7 +30,7 @@
SilKategoriSık Kullanılanlara Ekle
- Önizleme
+ Ön izlemePaylaşHakkında
@@ -51,7 +54,10 @@
BağlanBağlanılıyor …Notların görüntülenme kipi
- Tema
+ Koyu tema
+ Sabit aralıklı yazı tipi
+ Yazı boyutu
+ Yalnız Wi-Fi ile eşitlensinSertifika yönetimiSistem sertifikalarına güvenilsinSistem ve kullanıcı tarafından eklenen sertifika otoritelerine güvenilir (önerilir)
@@ -122,14 +128,30 @@
AçıkKoyu
+ Normal
+ Wi-Fi ve mobil veri ile eşitlensin
+ Hata
+ Kapat
+ Kopyala
+ İstisna
+ Panoya kopyalandı
+ Ana sayfaya sabitle
+ Bu not silinmişDüzenleme kipinde aç
- Önizleme kipinde aç
+ Ön izleme kipinde açSon seçimim hatırlansın
+
+
+ Küçük
+ Orta
+ Büyük
+
+
%d seçilmiş
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 13948f56..2d041f9b 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -16,6 +16,9 @@
正在保存 …已保存关于
+ 粗体
+ 链接
+ 斜体选择便签已删除的便签已恢复便签
@@ -51,7 +54,10 @@
连接连接 …笔记的显示模式
- 主题
+ 暗色主题
+ 等宽字体
+ 字体大小
+ 仅在Wi-Fi下同步管理证书信任系统证书系统和用户添加的 CAs 将被信任(推荐)
@@ -122,6 +128,15 @@
亮色主题暗色主题
+ 普通
+ 在有Wi-Fi和移动数据时同步
+ 错误
+ 关闭
+ 复制
+ 异常
+ 复制到剪贴板
+ 固定到主屏幕
+ 此便签已被删除
@@ -130,6 +145,13 @@
记住我上一次的选择
+
+
+ 小
+ 中等
+ 大
+
+
已选择 %d 个
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 307afaeb..1d4ed668 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -5,4 +5,9 @@
@string/pref_value_mode_preview@string/pref_value_mode_last
+
+ @string/pref_value_font_size_small
+ @string/pref_value_font_size_medium
+ @string/pref_value_font_size_large
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 6ddd571f..f52e80e7 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -12,6 +12,11 @@
16sp14sp
+
+ 16sp
+ 18sp
+ 22sp
+
8dp10dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 05bbcb4c..5e9905f2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -54,8 +54,10 @@
ConnectConnecting …Display mode for notes
- Theme
+ Dark themeMonospace font
+ Font size
+ Sync only on Wi-FiManage certificatesTrust system certificatesSystem and user-added CAs will be trusted (recommended)
@@ -141,14 +143,27 @@
noteModedarkThemefont
+ fontSize
+ wifiOnlylastNoteModeeditpreviewlastnote
+ small
+ medium
+ largeLightDarkNormal
+ Sync on Wi-Fi and mobile data
+ Error
+ Close
+ Copy
+ Exception
+ Copied to clipboard
+ Pin to homescreen
+ This note has been deleted
@@ -157,6 +172,13 @@
Remember my last selection
+
+
+ Small
+ Medium
+ Large
+
+
%d selected
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 2d5c1d7c..3e1a82ec 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -6,7 +6,7 @@
@color/primary
- @color/primary_dark
+ @color/primary@color/primarytrue
@@ -36,7 +36,7 @@