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

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorstefan-niedermann <info@niedermann.it>2019-02-07 23:27:26 +0300
committerstefan-niedermann <info@niedermann.it>2019-02-07 23:27:26 +0300
commitc221aa1329f6cf19cfe4c5efb24f545d70b6ca15 (patch)
tree24547a167e755aab116f82c3144e8b04b3a6c7f2 /app/src
parentf7ab04e209d0b4acc6419063220a24f4e35d3bfe (diff)
parent58e663b30f2e435f0591fbd9eea5a8b83b95df7d (diff)
Merge branch 'master' into monospace-font
# Conflicts: # app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java # app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/AndroidManifest.xml6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/AboutActivity.java12
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java5
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java45
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/PreferencesActivity.java4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/SelectSingleNoteActivity.java39
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/SettingsActivity.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/SplashscreenActivity.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java115
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetConfiguration.java39
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java55
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java90
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java39
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java99
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/CategoryDialogFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NoteEditFragment.java60
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/NotePreviewFragment.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java16
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentContributingTab.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentCreditsTab.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/about/AboutFragmentLicenseTab.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/Category.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/NavigationAdapter.java8
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/LoadNotesListTask.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java6
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/DisplayUtils.java62
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/MarkDownUtil.java15
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java4
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/NotesClient.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/NotesClientUtil.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/StyleCallback.java98
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/SupportUtil.java2
-rw-r--r--app/src/main/res/drawable/ic_format_bold_black_24dp.xml5
-rw-r--r--app/src/main/res/drawable/ic_format_italic_black_24dp.xml5
-rw-r--r--app/src/main/res/drawable/ic_insert_link_black_24dp.xml5
-rw-r--r--app/src/main/res/drawable/ic_library_music_black_24dp.xml5
-rw-r--r--app/src/main/res/drawable/single_note_widget.pngbin55508 -> 11035 bytes
-rw-r--r--app/src/main/res/layout/activity_about.xml4
-rw-r--r--app/src/main/res/layout/activity_note_list_configuration.xml17
-rw-r--r--app/src/main/res/layout/activity_notes_list_view.xml14
-rw-r--r--app/src/main/res/layout/activity_settings.xml12
-rw-r--r--app/src/main/res/layout/drawer_layout.xml82
-rw-r--r--app/src/main/res/layout/fragment_notes_list_note_item.xml18
-rw-r--r--app/src/main/res/layout/widget_entry.xml5
-rw-r--r--app/src/main/res/layout/widget_entry_dark.xml36
-rw-r--r--app/src/main/res/layout/widget_note_list_dark.xml77
-rw-r--r--app/src/main/res/layout/widget_single_note.xml10
-rw-r--r--app/src/main/res/layout/widget_single_note_content_dark.xml6
-rw-r--r--app/src/main/res/layout/widget_single_note_dark.xml25
-rw-r--r--app/src/main/res/menu/menu_list_view.xml2
-rw-r--r--app/src/main/res/menu/menu_note_activity.xml4
-rw-r--r--app/src/main/res/menu/menu_note_fragment.xml11
-rw-r--r--app/src/main/res/menu/style.xml16
-rw-r--r--app/src/main/res/values-cs-rCZ/strings.xml21
-rw-r--r--app/src/main/res/values-cy-rGB/strings.xml140
-rw-r--r--app/src/main/res/values-da/strings.xml2
-rw-r--r--app/src/main/res/values-de-rDE/strings.xml1
-rw-r--r--app/src/main/res/values-de/strings.xml3
-rw-r--r--app/src/main/res/values-el/strings.xml13
-rw-r--r--app/src/main/res/values-es/strings.xml1
-rw-r--r--app/src/main/res/values-fi-rFI/strings.xml19
-rw-r--r--app/src/main/res/values-fr/strings.xml1
-rw-r--r--app/src/main/res/values-he/strings.xml4
-rw-r--r--app/src/main/res/values-hu-rHU/strings.xml10
-rw-r--r--app/src/main/res/values-is/strings.xml1
-rw-r--r--app/src/main/res/values-it/strings.xml1
-rw-r--r--app/src/main/res/values-ja-rJP/strings.xml47
-rw-r--r--app/src/main/res/values-nb-rNO/strings.xml19
-rw-r--r--app/src/main/res/values-night/colors.xml2
-rw-r--r--app/src/main/res/values-nl/strings.xml3
-rw-r--r--app/src/main/res/values-pl/strings.xml1
-rw-r--r--app/src/main/res/values-pt-rBR/strings.xml1
-rw-r--r--app/src/main/res/values-ru/strings.xml7
-rw-r--r--app/src/main/res/values-sk-rSK/strings.xml1
-rw-r--r--app/src/main/res/values-sl/strings.xml138
-rw-r--r--app/src/main/res/values-sq/strings.xml16
-rw-r--r--app/src/main/res/values-sr/strings.xml1
-rw-r--r--app/src/main/res/values-sv/strings.xml8
-rw-r--r--app/src/main/res/values-tr/strings.xml1
-rw-r--r--app/src/main/res/values-zh-rCN/strings.xml29
-rw-r--r--app/src/main/res/values/colors.xml25
-rw-r--r--app/src/main/res/values/strings.xml3
85 files changed, 1326 insertions, 415 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 02252a7e..58eddca6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -70,6 +70,12 @@
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
+ <!-- Voice command "note to self" in google search -->
+ <intent-filter android:label="@string/action_create">
+ <action android:name="com.google.android.gm.action.AUTO_SEND"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="text/plain"/>
+ </intent-filter>
</activity>
<activity
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java b/app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java
index 3255633a..6a6a312b 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/AlwaysAutoCompleteTextView.java
@@ -1,7 +1,7 @@
package it.niedermann.owncloud.notes.android;
import android.content.Context;
-import android.support.v7.widget.AppCompatAutoCompleteTextView;
+import androidx.appcompat.widget.AppCompatAutoCompleteTextView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.WindowManager;
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 e7296491..937d2a20 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,12 @@
package it.niedermann.owncloud.notes.android.activity;
import android.os.Bundle;
-import android.support.design.widget.TabLayout;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
+import com.google.android.material.tabs.TabLayout;
+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 butterknife.BindView;
import butterknife.ButterKnife;
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 43ffd59b..9b781db6 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
@@ -5,8 +5,8 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@@ -115,6 +115,7 @@ public class EditNoteActivity extends AppCompatActivity implements BaseNoteFragm
} else {
fragment = NotePreviewFragment.newInstance(noteId);
}
+
if (savedState != null) {
fragment.setInitialSavedState(savedState);
}
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 71d3c6d4..14e9e213 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
@@ -10,20 +10,20 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v4.widget.SwipeRefreshLayout;
-import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.view.ActionMode;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.SearchView;
-import android.support.v7.widget.Toolbar;
-import android.support.v7.widget.helper.ItemTouchHelper;
-import android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback;
+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;
@@ -369,10 +369,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
});
- 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://", "");
- this.account.setText(username + "@" + url.substring(0, url.length() - 1));
+ this.updateUsernameInDrawer();
final NotesListViewActivity that = this;
this.account.setOnClickListener(new View.OnClickListener() {
@Override
@@ -520,7 +517,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
final MenuItem item = menu.findItem(R.id.search);
searchView = (SearchView) item.getActionView();
- final LinearLayout searchEditFrame = searchView.findViewById(android.support.v7.appcompat.R.id
+ final LinearLayout searchEditFrame = searchView.findViewById(R.id
.search_edit_frame);
searchEditFrame.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@@ -593,6 +590,7 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
// Create new Instance with new URL and credentials
db = NoteSQLiteOpenHelper.getInstance(this);
if (db.getNoteServerSyncHelper().isSyncPossible()) {
+ this.updateUsernameInDrawer();
adapter.removeAll();
synchronize();
} else {
@@ -601,6 +599,15 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap
}
}
+ 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)) {
+ this.account.setText(username + "@" + url.substring(0, url.length() - 1));
+ }
+ }
+
@Override
public void onNoteClick(int position, View v) {
if (mActionMode != null) {
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 1bb54f1e..2d64d596 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,8 +1,8 @@
package it.niedermann.owncloud.notes.android.activity;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import it.niedermann.owncloud.notes.android.fragment.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 2de33504..2e1e1d86 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,7 +6,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.v4.widget.SwipeRefreshLayout;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.view.Menu;
import android.view.View;
@@ -17,6 +17,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.Notes;
public class SelectSingleNoteActivity extends NotesListViewActivity {
@@ -26,15 +27,14 @@ public class SelectSingleNoteActivity extends NotesListViewActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setResult(Activity.RESULT_CANCELED);
SwipeRefreshLayout swipeRefreshLayout = getSwipeRefreshLayout();
- setResult(Activity.RESULT_CANCELED);
-
ButterKnife.bind(this);
fabCreate.setVisibility(View.GONE);
- android.support.v7.app.ActionBar ab = getSupportActionBar();
+ androidx.appcompat.app.ActionBar ab = getSupportActionBar();
if (ab != null) {
ab.setTitle(R.string.activity_select_single_note);
}
@@ -53,33 +53,24 @@ public class SelectSingleNoteActivity extends NotesListViewActivity {
Item item = adapter.getItem(position);
DBNote note = (DBNote) item;
long noteID = note.getId();
- Intent intent = getIntent();
- Bundle extras = intent.getExtras();
- int mAppWidgetId = -1;
+ final Bundle extras = getIntent().getExtras();
- if (extras != null) {
- mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
+ if (extras == null) {
+ finish();
}
+ int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
SharedPreferences.Editor sp = PreferenceManager.getDefaultSharedPreferences(this).edit();
- sp.putLong(SingleNoteWidget.WIDGET_KEY + mAppWidgetId, noteID);
+ sp.putLong(SingleNoteWidget.WIDGET_KEY + appWidgetId, noteID);
+ sp.putBoolean(SingleNoteWidget.DARK_THEME_KEY + appWidgetId, Notes.getAppTheme(getApplicationContext()));
sp.apply();
- Intent retIntent = new Intent(this, SingleNoteWidget.class);
- retIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
- retIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
- sendBroadcast(retIntent);
- setResult(RESULT_OK, retIntent);
+ Intent updateIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE, null,
+ getApplicationContext(), SingleNoteWidget.class);
+ updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
+ setResult(RESULT_OK, updateIntent);
+ getApplicationContext().sendBroadcast(updateIntent);
finish();
}
-
- @Override
- public boolean onNoteLongClick(int position, View v) {
- return false;
- }
-
- @Override
- public void onNoteFavoriteClick(int position, View view) {
- }
}
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 756f482b..ea9d1777 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,9 @@ import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
+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;
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 14195efc..295cd193 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,7 +2,7 @@ package it.niedermann.owncloud.notes.android.activity;
import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
/**
* Created by stefan on 18.04.17.
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 f2daca58..034fbb18 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
@@ -15,75 +15,100 @@ import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.activity.EditNoteActivity;
import it.niedermann.owncloud.notes.android.activity.NotesListViewActivity;
-import static android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE;
-
public class NoteListWidget extends AppWidgetProvider {
public static final String WIDGET_MODE_KEY = "NLW_mode";
public static final String WIDGET_CATEGORY_KEY = "NLW_cat";
+ public static final String DARK_THEME_KEY = "NLW_darkTheme";
public static final int NLW_DISPLAY_ALL = 0;
public static final int NLW_DISPLAY_STARRED = 1;
public static final int NLW_DISPLAY_CATEGORY = 2;
- @Override
- public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
- super.onUpdate(context, appWidgetManager, appWidgetIds);
+ static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) {
+ RemoteViews views;
+ boolean darkTheme;
for (int appWidgetId : appWidgetIds) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
int displayMode = sp.getInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, -1);
+
+ // onUpdate has been triggered before the user finished configuring the widget
+ if (displayMode == -1) {
+ return;
+ }
+
String category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, null);
- Intent serviceIntent = new Intent(context, NoteListWidgetService.class);
- RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list);
+ darkTheme = sp.getBoolean(NoteListWidget.DARK_THEME_KEY + appWidgetId, false);
+ Intent serviceIntent = new Intent(context, NoteListWidgetService.class);
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
serviceIntent.putExtra(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, displayMode);
+ serviceIntent.putExtra(NoteListWidget.DARK_THEME_KEY + appWidgetId, darkTheme);
+ serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
+
+ if (displayMode == NLW_DISPLAY_CATEGORY) {
+ serviceIntent.putExtra(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, category);
+ }
// 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()));
- PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
- intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
-
- views.setOnClickPendingIntent(R.id.widget_note_header_icon, pendingIntent);
- views.setOnClickPendingIntent(R.id.widget_note_list_title_tv, pendingIntent);
-
- // Launch create note activity if user taps "+" sign in header
- intent = new Intent(context, EditNoteActivity.class);
- pendingIntent = PendingIntent.getActivity(context,0,
- intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ // Open the main app if the user taps the widget header
+ PendingIntent openAppI = PendingIntent.getActivity( context, 0, intent,
+ PendingIntent.FLAG_UPDATE_CURRENT);
- views.setOnClickPendingIntent(R.id.widget_note_list_create_icon, pendingIntent);
+ // 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);
- Intent templateIntent = new Intent(context, EditNoteActivity.class);
- PendingIntent templatePI = PendingIntent.getActivity(context,
- 0, templateIntent,
+ PendingIntent templatePI = PendingIntent.getActivity(context,0,
+ (new Intent(context, EditNoteActivity.class)),
PendingIntent.FLAG_UPDATE_CURRENT);
- if (displayMode == NLW_DISPLAY_CATEGORY) {
- serviceIntent.putExtra(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, category);
+ if (darkTheme) {
+ views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list_dark);
+ views.setTextViewText(R.id.widget_note_list_title_tv_dark, getWidgetTitle(context, displayMode, category));
+ views.setOnClickPendingIntent(R.id.widget_note_header_icon_dark, openAppI);
+ views.setOnClickPendingIntent(R.id.widget_note_list_title_tv_dark, openAppI);
+ views.setOnClickPendingIntent(R.id.widget_note_list_create_icon_dark, newNoteI);
+ views.setPendingIntentTemplate(R.id.note_list_widget_lv_dark, templatePI);
+ views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv_dark, serviceIntent);
+ views.setEmptyView(R.id.note_list_widget_lv_dark, R.id.widget_note_list_placeholder_tv_dark);
+ awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv_dark);
+ } else {
+ views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list);
+ views.setTextViewText(R.id.widget_note_list_title_tv, getWidgetTitle(context, displayMode, category));
+ views.setOnClickPendingIntent(R.id.widget_note_header_icon, openAppI);
+ views.setOnClickPendingIntent(R.id.widget_note_list_title_tv, openAppI);
+ views.setOnClickPendingIntent(R.id.widget_note_list_create_icon, newNoteI);
+ views.setPendingIntentTemplate(R.id.note_list_widget_lv, templatePI);
+ views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv, serviceIntent);
+ views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv);
+ awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv);
}
- serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
- views.setPendingIntentTemplate(R.id.note_list_widget_lv, templatePI);
- views.setRemoteAdapter(appWidgetId, R.id.note_list_widget_lv, serviceIntent);
- views.setEmptyView(R.id.note_list_widget_lv, R.id.widget_note_list_placeholder_tv);
- appWidgetManager.updateAppWidget(appWidgetId, views);
+
+ awm.updateAppWidget(appWidgetId, views);
}
}
@Override
+ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
+ super.onUpdate(context, appWidgetManager, appWidgetIds);
+ updateAppWidget(context, appWidgetManager, appWidgetIds);
+ }
+
+ @Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
-
AppWidgetManager awm = AppWidgetManager.getInstance(context);
- int appWidgetIds[] = awm.getAppWidgetIds(new ComponentName(context, NoteListWidget.class));
- for (int appWidgetId : appWidgetIds) {
- if (ACTION_APPWIDGET_UPDATE.equals(intent.getAction())) {
- awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.note_list_widget_lv);
+ 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)));
}
}
}
@@ -92,14 +117,30 @@ public class NoteListWidget extends AppWidgetProvider {
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
- SharedPreferences.Editor editor = PreferenceManager
- .getDefaultSharedPreferences(context).edit();
+ SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
for (int appWidgetId : appWidgetIds) {
editor.remove(WIDGET_MODE_KEY + appWidgetId);
editor.remove(WIDGET_CATEGORY_KEY + appWidgetId);
+ editor.remove(DARK_THEME_KEY + appWidgetId);
}
editor.apply();
}
+
+ 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);
+ case NoteListWidget.NLW_DISPLAY_CATEGORY:
+ if (category.equals("")) {
+ return context.getString(R.string.action_uncategorized);
+ } else {
+ return category;
+ }
+ }
+
+ return null;
+ }
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetConfiguration.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetConfiguration.java
index 7b56b7bb..92fda731 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetConfiguration.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetConfiguration.java
@@ -7,10 +7,10 @@ import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.widget.Toast;
@@ -23,11 +23,12 @@ import it.niedermann.owncloud.notes.android.activity.NotesListViewActivity;
import it.niedermann.owncloud.notes.model.NavigationAdapter;
import it.niedermann.owncloud.notes.persistence.NoteSQLiteOpenHelper;
import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper;
+import it.niedermann.owncloud.notes.util.Notes;
public class NoteListWidgetConfiguration extends AppCompatActivity {
private static final String TAG = Activity.class.getSimpleName();
- private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
+ private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
private NavigationAdapter adapterCategories;
private NavigationAdapter.NavigationItem itemRecent, itemFavorites;
@@ -45,18 +46,18 @@ public class NoteListWidgetConfiguration extends AppCompatActivity {
// TODO Present user with app login screen
Log.w(TAG, "onCreate: user not logged in");
finish();
-
}
db = NoteSQLiteOpenHelper.getInstance(this);
final Bundle extras = getIntent().getExtras();
if (extras != null) {
- mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
+ appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
- if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+ if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+ Log.d(TAG, "INVALID_APPWIDGET_ID");
finish();
}
@@ -77,30 +78,26 @@ public class NoteListWidgetConfiguration extends AppCompatActivity {
SharedPreferences.Editor sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
if (item == itemRecent) {
- sp.putInt(NoteListWidget.WIDGET_MODE_KEY +
- mAppWidgetId, NoteListWidget.NLW_DISPLAY_ALL);
+ sp.putInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, NoteListWidget.NLW_DISPLAY_ALL);
} else if (item == itemFavorites) {
- sp.putInt(NoteListWidget.WIDGET_MODE_KEY +
- mAppWidgetId, NoteListWidget.NLW_DISPLAY_STARRED);
+ sp.putInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, NoteListWidget.NLW_DISPLAY_STARRED);
} else {
String category = "";
if (!item.label.equals(getString(R.string.action_uncategorized))) {
category = item.label;
}
- sp.putInt(NoteListWidget.WIDGET_MODE_KEY +
- mAppWidgetId, NoteListWidget.NLW_DISPLAY_CATEGORY);
- sp.putString(NoteListWidget.WIDGET_CATEGORY_KEY +
- mAppWidgetId, category);
+ sp.putInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, NoteListWidget.NLW_DISPLAY_CATEGORY);
+ sp.putString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, category);
}
+ sp.putBoolean(NoteListWidget.DARK_THEME_KEY + appWidgetId, Notes.getAppTheme(getApplicationContext()));
sp.apply();
- Intent updateIntent = new Intent(getApplicationContext(), NoteListWidget.class);
-
- updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
- updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
- sendBroadcast(updateIntent);
+ Intent updateIntent = new Intent( AppWidgetManager.ACTION_APPWIDGET_UPDATE, null,
+ getApplicationContext(), NoteListWidget.class);
+ updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, updateIntent);
+ getApplicationContext().sendBroadcast(updateIntent);
finish();
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java
index de30cfcf..4776acfa 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidgetFactory.java
@@ -7,7 +7,6 @@ import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.view.View;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
@@ -22,6 +21,7 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact
private final Context context;
private final int displayMode;
private final int appWidgetId;
+ private final boolean darkTheme;
private String category;
private final SharedPreferences sp;
private NoteSQLiteOpenHelper db;
@@ -33,33 +33,13 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact
AppWidgetManager.INVALID_APPWIDGET_ID);
sp = PreferenceManager.getDefaultSharedPreferences(this.context);
displayMode = sp.getInt(NoteListWidget.WIDGET_MODE_KEY + appWidgetId, -1);
+ darkTheme = sp.getBoolean(NoteListWidget.DARK_THEME_KEY + appWidgetId, false);
+ category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, "");
}
@Override
public void onCreate() {
db = NoteSQLiteOpenHelper.getInstance(context);
- RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_note_list);
-
- switch (displayMode)
- {
- case NoteListWidget.NLW_DISPLAY_ALL:
- views.setTextViewText(R.id.widget_note_list_title_tv, context.getString(R.string.app_name));
- break;
- case NoteListWidget.NLW_DISPLAY_STARRED:
- views.setTextViewText(R.id.widget_note_list_title_tv, "Starred");
- break;
- case NoteListWidget.NLW_DISPLAY_CATEGORY:
- category = sp.getString(NoteListWidget.WIDGET_CATEGORY_KEY + appWidgetId, null);
- if (category.equals("")) {
- views.setTextViewText(R.id.widget_note_list_title_tv, context.getString(R.string.action_uncategorized));
- } else {
- views.setTextViewText(R.id.widget_note_list_title_tv, category);
- }
- break;
- }
-
- AppWidgetManager awm = AppWidgetManager.getInstance(context);
- awm.updateAppWidget(appWidgetId, views);
}
@Override
@@ -94,12 +74,12 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact
@Override
public RemoteViews getViewAt(int i) {
+ RemoteViews note_content;
+
if (dbNotes == null || dbNotes.get(i) == null) {
return null;
}
- RemoteViews note_content = new RemoteViews(context.getPackageName(),
- R.layout.widget_entry);
DBNote note = dbNotes.get(i);
final Intent fillInIntent = new Intent();
final Bundle extras = new Bundle();
@@ -107,16 +87,31 @@ public class NoteListWidgetFactory implements RemoteViewsService.RemoteViewsFact
extras.putLong(EditNoteActivity.PARAM_NOTE_ID, note.getId());
fillInIntent.putExtras(extras);
fillInIntent.setData(Uri.parse(fillInIntent.toUri(Intent.URI_INTENT_SCHEME)));
- note_content.setOnClickFillInIntent(R.id.widget_note_list_entry, fillInIntent);
- if (note.isFavorite()) {
- note_content.setViewVisibility(R.id.widget_entry_fav_icon, View.VISIBLE);
+ if (darkTheme) {
+ note_content = new RemoteViews(context.getPackageName(), R.layout.widget_entry_dark);
+ note_content.setOnClickFillInIntent(R.id.widget_note_list_entry_dark, fillInIntent);
+ note_content.setTextViewText(R.id.widget_entry_content_tv_dark, note.getTitle());
+
+ if (note.isFavorite()) {
+ note_content.setImageViewResource(R.id.widget_entry_fav_icon_dark, R.drawable.ic_star_yellow_24dp);
+ } else {
+ note_content.setImageViewResource(R.id.widget_entry_fav_icon_dark, R.drawable.ic_star_grey_ccc_24dp);
+ }
} else {
- note_content.setViewVisibility(R.id.widget_entry_fav_icon, View.INVISIBLE);
+ note_content = new RemoteViews(context.getPackageName(), R.layout.widget_entry);
+ note_content.setOnClickFillInIntent(R.id.widget_note_list_entry, fillInIntent);
+ note_content.setTextViewText(R.id.widget_entry_content_tv, note.getTitle());
+
+ if (note.isFavorite()) {
+ note_content.setImageViewResource(R.id.widget_entry_fav_icon, R.drawable.ic_star_yellow_24dp);
+ } else {
+ note_content.setImageViewResource(R.id.widget_entry_fav_icon, R.drawable.ic_star_grey_ccc_24dp);
+ }
}
- note_content.setTextViewText(R.id.widget_entry_content_tv, note.getTitle());
return note_content;
+
}
@Override
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java
index cd1d52b7..d9ac9fae 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidget.java
@@ -14,66 +14,78 @@ import android.widget.RemoteViews;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.activity.EditNoteActivity;
-import static android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE;
-
public class SingleNoteWidget extends AppWidgetProvider {
+ private static boolean darkTheme;
+ public static final String DARK_THEME_KEY = "SNW_darkTheme";
public static final String WIDGET_KEY = "single_note_widget";
- @Override
- public void onDeleted(Context context, int[] appWidgetIds) {
- SharedPreferences.Editor editor = PreferenceManager
- .getDefaultSharedPreferences(context).edit();
+ static void updateAppWidget(Context context, AppWidgetManager awm, int[] appWidgetIds) {
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
+ Intent templateIntent = new Intent(context, EditNoteActivity.class);
+ templateIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
for (int appWidgetId : appWidgetIds) {
- editor.remove(WIDGET_KEY + appWidgetId);
- }
-
- editor.apply();
- super.onDeleted(context, appWidgetIds);
- }
+ // onUpdate has been triggered before the user finished configuring the widget
+ if ((sp.getLong(WIDGET_KEY + appWidgetId, -1)) == -1) {
+ return;
+ }
- @Override
- public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
- for (int appWidgetId : appWidgetIds) {
- Intent templateIntent = new Intent(context, EditNoteActivity.class);
- templateIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
+ darkTheme = sp.getBoolean(DARK_THEME_KEY + appWidgetId, false);
- PendingIntent templatePendingIntent = PendingIntent.getActivity(
- context,
- appWidgetId,
- templateIntent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent templatePendingIntent = PendingIntent.getActivity(context, appWidgetId, templateIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT);
Intent serviceIntent = new Intent(context, SingleNoteWidgetService.class);
- RemoteViews views = new RemoteViews(context.getPackageName(),
- R.layout.widget_single_note);
-
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
- views.setPendingIntentTemplate(R.id.single_note_widget_lv, templatePendingIntent);
- views.setRemoteAdapter(R.id.single_note_widget_lv, serviceIntent);
- views.setEmptyView(R.id.single_note_widget_lv, R.id.widget_single_note_placeholder_tv);
- appWidgetManager.updateAppWidget(appWidgetId, views);
+ RemoteViews views;
+
+ if (darkTheme) {
+ views = new RemoteViews(context.getPackageName(), R.layout.widget_single_note_dark);
+ views.setPendingIntentTemplate(R.id.single_note_widget_lv_dark, templatePendingIntent);
+ views.setRemoteAdapter(R.id.single_note_widget_lv_dark, serviceIntent);
+ views.setEmptyView(R.id.single_note_widget_lv_dark, R.id.widget_single_note_placeholder_tv_dark);
+ awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.single_note_widget_lv_dark);
+ } else {
+ views = new RemoteViews(context.getPackageName(), R.layout.widget_single_note);
+ views.setPendingIntentTemplate(R.id.single_note_widget_lv, templatePendingIntent);
+ views.setRemoteAdapter(R.id.single_note_widget_lv, serviceIntent);
+ views.setEmptyView(R.id.single_note_widget_lv, R.id.widget_single_note_placeholder_tv);
+ awm.notifyAppWidgetViewDataChanged(appWidgetId, R.id.single_note_widget_lv);
+ }
+
+ awm.updateAppWidget(appWidgetId, views);
}
+ }
+ @Override
+ public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
+ updateAppWidget(context, appWidgetManager, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
- AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
- int ids[] = appWidgetManager.getAppWidgetIds(new ComponentName(context,
- SingleNoteWidget.class));
-
- for (int appWidgetId : ids) {
- if (ACTION_APPWIDGET_UPDATE.equals(intent.getAction())) {
- appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId,
- R.id.single_note_widget_lv);
- }
+ super.onReceive(context, intent);
+ AppWidgetManager awm = AppWidgetManager.getInstance(context);
+
+ updateAppWidget(context, AppWidgetManager.getInstance(context),
+ (awm.getAppWidgetIds(new ComponentName(context, SingleNoteWidget.class))));
+ }
+
+ @Override
+ public void onDeleted(Context context, int[] appWidgetIds) {
+ SharedPreferences.Editor editor = PreferenceManager
+ .getDefaultSharedPreferences(context).edit();
+
+ for (int appWidgetId : appWidgetIds) {
+ editor.remove(WIDGET_KEY + appWidgetId);
+ editor.remove(NoteListWidget.DARK_THEME_KEY + appWidgetId);
}
- super.onReceive(context, intent);
+ editor.apply();
+ super.onDeleted(context, appWidgetIds);
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java
index 8006b10e..9841d48c 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/SingleNoteWidgetFactory.java
@@ -22,33 +22,36 @@ import it.niedermann.owncloud.notes.util.MarkDownUtil;
public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFactory {
private MarkdownProcessor markdownProcessor;
- private final Context mContext;
- private final int mAppWidgetId;
+ private final Context context;
+ private final int appWidgetId;
private NoteSQLiteOpenHelper db;
private DBNote note;
+ private SharedPreferences sp;
+ private static Boolean darkTheme;
private static final String TAG = SingleNoteWidget.class.getSimpleName();
SingleNoteWidgetFactory(Context context, Intent intent) {
- mContext = context;
- markdownProcessor = new MarkdownProcessor(mContext);
+ this.context = context;
+ appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
+ AppWidgetManager.INVALID_APPWIDGET_ID);
+ sp = PreferenceManager.getDefaultSharedPreferences(this.context);
+ darkTheme = sp.getBoolean(SingleNoteWidget.DARK_THEME_KEY + appWidgetId, false);
+ markdownProcessor = new MarkdownProcessor(this.context);
markdownProcessor.factory(TextFactory.create());
- markdownProcessor.config(MarkDownUtil.getMarkDownConfiguration(mContext).build());
- mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
- AppWidgetManager.INVALID_APPWIDGET_ID);
+ markdownProcessor.config(MarkDownUtil.getMarkDownConfiguration(this.context, darkTheme).build());
}
@Override
public void onCreate() {
- db = NoteSQLiteOpenHelper.getInstance(mContext);
+ db = NoteSQLiteOpenHelper.getInstance(context);
}
@Override
public void onDataSetChanged() {
- SharedPreferences sharedprefs = PreferenceManager.getDefaultSharedPreferences(mContext);
- long noteID = sharedprefs.getLong(SingleNoteWidget.WIDGET_KEY + mAppWidgetId, -1);
+ long noteID = sp.getLong(SingleNoteWidget.WIDGET_KEY + appWidgetId, -1);
if (noteID >= 0) {
note = db.getNote(noteID);
@@ -86,16 +89,24 @@ public class SingleNoteWidgetFactory implements RemoteViewsService.RemoteViewsFa
return null;
}
- RemoteViews note_content = new RemoteViews(mContext.getPackageName(),
- R.layout.widget_single_note_content);
+ RemoteViews note_content;
+
final Intent fillInIntent = new Intent();
final Bundle extras = new Bundle();
extras.putLong(EditNoteActivity.PARAM_NOTE_ID, note.getId());
fillInIntent.putExtras(extras);
fillInIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
- note_content.setOnClickFillInIntent(R.id.single_note_content_tv, fillInIntent);
- note_content.setTextViewText(R.id.single_note_content_tv, markdownProcessor.parse(note.getContent()));
+ if (darkTheme) {
+ note_content = new RemoteViews(context.getPackageName(), R.layout.widget_single_note_content_dark);
+ note_content.setOnClickFillInIntent(R.id.single_note_content_tv_dark, fillInIntent);
+ note_content.setTextViewText(R.id.single_note_content_tv_dark, markdownProcessor.parse(note.getContent()));
+
+ } else {
+ note_content = new RemoteViews(context.getPackageName(), R.layout.widget_single_note_content);
+ note_content.setOnClickFillInIntent(R.id.single_note_content_tv, fillInIntent);
+ note_content.setTextViewText(R.id.single_note_content_tv, markdownProcessor.parse(note.getContent()));
+ }
return note_content;
}
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 e46092a9..aee5bc9e 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
@@ -6,18 +6,27 @@ import android.app.FragmentManager;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.view.MenuItemCompat;
-import android.support.v7.widget.ShareActionProvider;
+import android.text.SpannableString;
+import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewTreeObserver;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import androidx.annotation.Nullable;
+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.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;
public abstract class BaseNoteFragment extends Fragment implements CategoryDialogFragment.CategoryDialogListener {
@@ -33,16 +42,39 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
private static final String SAVEDKEY_NOTE = "note";
private static final String SAVEDKEY_ORIGINAL_NOTE = "original_note";
+ protected SearchView searchView;
+ protected MenuItem searchMenuItem;
+
+ protected String searchQuery = null;
+
protected DBNote note;
@Nullable
private DBNote originalNote;
private NoteSQLiteOpenHelper db;
private NoteFragmentListener listener;
+ private TextView activeTextView;
+ private boolean isNew;
+
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ searchQuery = savedInstanceState.getString("searchQuery", "");
+ }
+
+ }
+
+ protected void setActiveTextView(TextView textView) {
+ activeTextView = textView;
+ }
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
+ isNew = true;
long id = getArguments().getLong(PARAM_NOTE_ID);
if (id > 0) {
note = originalNote = db.getNote(id);
@@ -55,6 +87,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
originalNote = null;
}
} else {
+ isNew = false;
note = (DBNote) savedInstanceState.getSerializable(SAVEDKEY_NOTE);
originalNote = (DBNote) savedInstanceState.getSerializable(SAVEDKEY_ORIGINAL_NOTE);
}
@@ -96,6 +129,18 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
saveNote(null);
outState.putSerializable(SAVEDKEY_NOTE, note);
outState.putSerializable(SAVEDKEY_ORIGINAL_NOTE, originalNote);
+
+ if (searchView != null && !TextUtils.isEmpty(searchView.getQuery().toString())) {
+ outState.putString("searchQuery", searchView.getQuery().toString());
+ }
+ }
+
+ private void colorWithText(String newText) {
+ if (activeTextView != null && ViewCompat.isAttachedToWindow(activeTextView)) {
+ activeTextView.setText(DisplayUtils.searchAndColor(activeTextView.getText().toString(), new SpannableString
+ (activeTextView.getText()), newText, getResources().getColor(R.color.primary)),
+ TextView.BufferType.SPANNABLE);
+ }
}
@Override
@@ -108,6 +153,54 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo
super.onPrepareOptionsMenu(menu);
MenuItem itemFavorite = menu.findItem(R.id.menu_favorite);
prepareFavoriteOption(itemFavorite);
+
+ searchMenuItem = menu.findItem(R.id.search);
+ searchView = (SearchView) searchMenuItem.getActionView();
+
+ if (!TextUtils.isEmpty(searchQuery) && isNew) {
+ searchMenuItem.expandActionView();
+ searchView.setQuery(searchQuery, true);
+ searchView.clearFocus();
+ } else {
+ searchMenuItem.collapseActionView();
+ }
+
+
+ final LinearLayout searchEditFrame = searchView.findViewById(R.id
+ .search_edit_frame);
+
+ searchEditFrame.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ int oldVisibility = -1;
+ @Override
+ public void onGlobalLayout() {
+ int currentVisibility = searchEditFrame.getVisibility();
+
+ if (currentVisibility != oldVisibility) {
+ if (currentVisibility != View.VISIBLE) {
+ colorWithText("");
+ searchQuery = "";
+ }
+
+ oldVisibility = currentVisibility;
+ }
+ }
+
+ });
+
+ searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ searchQuery = newText;
+ colorWithText(newText);
+ return true;
+ }
+ });
+
}
private void prepareFavoriteOption(MenuItem item) {
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 283782a1..7d6f7d83 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 android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
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 ee724378..c5c727b7 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
@@ -21,12 +21,14 @@ 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;
import it.niedermann.owncloud.notes.model.CloudNote;
import it.niedermann.owncloud.notes.util.ICallback;
import it.niedermann.owncloud.notes.util.MarkDownUtil;
+import it.niedermann.owncloud.notes.util.StyleCallback;
import rx.Subscriber;
public class NoteEditFragment extends BaseNoteFragment {
@@ -35,12 +37,39 @@ public class NoteEditFragment extends BaseNoteFragment {
private static final long DELAY = 2000; // Wait for this time after typing before saving
private static final long DELAY_AFTER_SYNC = 5000; // Wait for this time after saving before checking for next save
-
+ @BindView(R.id.editContent)
+ RxMDEditText editContent;
private Handler handler;
private boolean saveActive, unsavedEdit;
+ private final Runnable runAutoSave = new Runnable() {
+ @Override
+ public void run() {
+ if (unsavedEdit) {
+ Log.d(LOG_TAG_AUTOSAVE, "runAutoSave: start AutoSave");
+ autoSave();
+ } else {
+ Log.d(LOG_TAG_AUTOSAVE, "runAutoSave: nothing changed");
+ }
+ }
+ };
+ private final TextWatcher textWatcher = new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
- @BindView(R.id.editContent)
- RxMDEditText editContent;
+ @Override
+ public void onTextChanged(final CharSequence s, int start, int before, int count) {
+ }
+
+ @Override
+ public void afterTextChanged(final Editable s) {
+ unsavedEdit = true;
+ if (!saveActive) {
+ handler.removeCallbacks(runAutoSave);
+ handler.postDelayed(runAutoSave, DELAY);
+ }
+ }
+ };
public static NoteEditFragment newInstance(long noteId) {
NoteEditFragment f = new NoteEditFragment();
@@ -83,6 +112,8 @@ public class NoteEditFragment extends BaseNoteFragment {
ButterKnife.bind(this, getView());
+ setActiveTextView(editContent);
+
if (note.getContent().isEmpty()) {
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
@@ -94,17 +125,17 @@ public class NoteEditFragment extends BaseNoteFragment {
editContent.setEnabled(true);
RxMarkdown.live(editContent)
- .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()).build())
- .factory(EditFactory.create())
- .intoObservable()
- .subscribe(new Subscriber<CharSequence>() {
- @Override
- public void onCompleted() {
- }
-
- @Override
- public void onError(Throwable e) {
- }
+ .config(MarkDownUtil.getMarkDownConfiguration(getActivity().getApplicationContext()).build())
+ .factory(EditFactory.create())
+ .intoObservable()
+ .subscribe(new Subscriber<CharSequence>() {
+ @Override
+ public void onCompleted() {
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ }
@Override
public void onNext(CharSequence charSequence) {
@@ -112,6 +143,7 @@ public class NoteEditFragment extends BaseNoteFragment {
}
});
+ editContent.setCustomSelectionActionModeCallback(new StyleCallback(this.editContent));
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
if(sp.getBoolean("font", false)) {
editContent.setTypeface(Typeface.MONOSPACE);
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 a3465b24..da108de0 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
@@ -17,16 +17,14 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-import com.yydcdut.markdown.callback.OnTodoClickCallback;
import com.yydcdut.markdown.syntax.text.TextFactory;
-import com.yydcdut.rxmarkdown.RxMDConfiguration;
import com.yydcdut.rxmarkdown.RxMDTextView;
import com.yydcdut.rxmarkdown.RxMarkdown;
+import androidx.annotation.Nullable;
import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
-import it.niedermann.owncloud.notes.util.ICallback;
import it.niedermann.owncloud.notes.util.MarkDownUtil;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
@@ -63,6 +61,8 @@ public class NotePreviewFragment extends BaseNoteFragment {
super.onActivityCreated(savedInstanceState);
ButterKnife.bind(this, getView());
+ setActiveTextView(noteContent);
+
String content = note.getContent();
RxMarkdown.with(content, getActivity())
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 9dc9ce9b..e3cb0a6f 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
@@ -7,7 +7,7 @@ import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.SwitchPreference;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import android.widget.Toast;
import at.bitfire.cert4android.CustomCertManager;
@@ -30,11 +30,11 @@ public class PreferencesFragment extends PreferenceFragment {
}
});
- final SwitchPreference themePref = (SwitchPreference) findPreference("darkTheme");
+ final SwitchPreference themePref = (SwitchPreference) findPreference(getString(R.string.pref_key_theme));
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
- Boolean darkTheme = sp.getBoolean(getString(R.string.pref_key_theme), false);
- setThemePreferenceSummary(themePref, darkTheme);
+ 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) {
@@ -47,12 +47,4 @@ public class PreferencesFragment extends PreferenceFragment {
}
});
}
-
- private void setThemePreferenceSummary(SwitchPreference themePref, Boolean darkTheme) {
- if (darkTheme) {
- themePref.setSummary(getString(R.string.pref_value_theme_dark));
- } else {
- themePref.setSummary(getString(R.string.pref_value_theme_light));
- }
- }
}
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 ea439116..3d4358d7 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,7 +1,7 @@
package it.niedermann.owncloud.notes.android.fragment.about;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
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 91ac1570..f725393c 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,7 +1,7 @@
package it.niedermann.owncloud.notes.android.fragment.about;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
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 1093269e..cf8fe07b 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,7 +3,7 @@ package it.niedermann.owncloud.notes.android.fragment.about;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import android.support.v4.app.Fragment;
+import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/Category.java b/app/src/main/java/it/niedermann/owncloud/notes/model/Category.java
index 336ce23f..72f176c8 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/Category.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/Category.java
@@ -1,6 +1,6 @@
package it.niedermann.owncloud.notes.model;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import java.io.Serializable;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
index 9dd9e693..dc80dbba 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/ItemAdapter.java
@@ -1,7 +1,7 @@
package it.niedermann.owncloud.notes.model;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,7 +16,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import it.niedermann.owncloud.notes.R;
-import static android.support.v7.widget.RecyclerView.NO_POSITION;
+import static androidx.recyclerview.widget.RecyclerView.NO_POSITION;
public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NavigationAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NavigationAdapter.java
index bf8c08e6..a59a6bcf 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/NavigationAdapter.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NavigationAdapter.java
@@ -1,10 +1,10 @@
package it.niedermann.owncloud.notes.model;
import android.graphics.Color;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
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 af50f9ec..ac4a9278 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
@@ -2,9 +2,9 @@ package it.niedermann.owncloud.notes.persistence;
import android.content.Context;
import android.os.AsyncTask;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.WorkerThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.WorkerThread;
import android.text.Html;
import android.text.SpannableString;
import android.text.TextUtils;
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 812cdbe9..b92d29cc 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
@@ -6,9 +6,9 @@ import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.WorkerThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.WorkerThread;
import android.text.TextUtils;
import android.util.Log;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/DisplayUtils.java b/app/src/main/java/it/niedermann/owncloud/notes/util/DisplayUtils.java
new file mode 100644
index 00000000..53d58bac
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/DisplayUtils.java
@@ -0,0 +1,62 @@
+/*
+ * Nextcloud Notes application
+ *
+ * @author Mario Danic
+ * Copyright (C) 2018 Mario Danic <mario@lovelyhq.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package it.niedermann.owncloud.notes.util;
+
+import android.graphics.Typeface;
+import android.text.Spannable;
+import android.text.TextUtils;
+import android.text.style.CharacterStyle;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.StyleSpan;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import androidx.annotation.ColorInt;
+
+public class DisplayUtils {
+
+ public static Spannable searchAndColor(String text, Spannable spannable, String searchText, @ColorInt int color) {
+
+ Object spansToRemove[] = spannable.getSpans(0, text.length(), Object.class);
+ for(Object span: spansToRemove){
+ if(span instanceof CharacterStyle)
+ spannable.removeSpan(span);
+ }
+
+ if (TextUtils.isEmpty(text) || TextUtils.isEmpty(searchText)) {
+ return spannable;
+ }
+
+ Matcher m = Pattern.compile(searchText, Pattern.CASE_INSENSITIVE | Pattern.LITERAL)
+ .matcher(text);
+
+
+ while (m.find()) {
+ int start = m.start();
+ int end = m.end();
+ spannable.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ spannable.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+
+ return spannable;
+ }
+
+}
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 b55b26ee..b1f8ff82 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,7 +1,7 @@
package it.niedermann.owncloud.notes.util;
import android.content.Context;
-import android.support.v4.content.res.ResourcesCompat;
+import androidx.core.content.res.ResourcesCompat;
import com.yydcdut.rxmarkdown.RxMDConfiguration;
import com.yydcdut.rxmarkdown.RxMDConfiguration.Builder;
@@ -31,4 +31,17 @@ public class MarkDownUtil {
.setHorizontalRulesHeight(2)
.setLinkFontColor(ResourcesCompat.getColor(context.getResources(), R.color.primary, null));
}
+
+ public static Builder getMarkDownConfiguration(Context context, Boolean darkTheme) {
+ return new RxMDConfiguration.Builder(context)
+ .setUnOrderListColor(ResourcesCompat.getColor(context.getResources(),
+ darkTheme ? R.color.widget_fg_dark_theme : R.color.widget_fg_default, null))
+ .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));
+ }
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java
index 99bdb847..47c0a58f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java
@@ -1,8 +1,8 @@
package it.niedermann.owncloud.notes.util;
import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import java.util.regex.Pattern;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java b/app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java
index 0b6015d1..75f43f05 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java
@@ -4,7 +4,7 @@ import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
-import android.support.v7.app.AppCompatDelegate;
+import androidx.appcompat.app.AppCompatDelegate;
public class Notes extends Application {
private static final String DARK_THEME = "darkTheme";
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClient.java b/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClient.java
index aab3c1c2..87c3b6e5 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClient.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClient.java
@@ -1,6 +1,6 @@
package it.niedermann.owncloud.notes.util;
-import android.support.annotation.WorkerThread;
+import androidx.annotation.WorkerThread;
import android.util.Base64;
import android.util.Log;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClientUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClientUtil.java
index 242d17e5..ef192eae 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClientUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/NotesClientUtil.java
@@ -1,6 +1,6 @@
package it.niedermann.owncloud.notes.util;
-import android.support.annotation.StringRes;
+import androidx.annotation.StringRes;
import android.util.Base64;
import android.util.Log;
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/StyleCallback.java b/app/src/main/java/it/niedermann/owncloud/notes/util/StyleCallback.java
new file mode 100644
index 00000000..50fea152
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/StyleCallback.java
@@ -0,0 +1,98 @@
+package it.niedermann.owncloud.notes.util;
+
+import android.graphics.Typeface;
+import android.text.SpannableStringBuilder;
+import android.text.style.StyleSpan;
+import android.view.ActionMode;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.EditText;
+
+import it.niedermann.owncloud.notes.R;
+
+public class StyleCallback implements ActionMode.Callback {
+
+ private EditText editText;
+
+ public StyleCallback(EditText editText) {
+ this.editText = editText;
+ }
+
+ @Override
+ public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+ MenuInflater inflater = mode.getMenuInflater();
+ inflater.inflate(R.menu.style, menu);
+ menu.removeItem(android.R.id.selectAll);
+ return true;
+ }
+
+ @Override
+ public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+ return false;
+ }
+
+ @Override
+ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+ int start = editText.getSelectionStart();
+ int end = editText.getSelectionEnd();
+ SpannableStringBuilder ssb = new SpannableStringBuilder(editText.getText());
+ final String markdown;
+
+
+ switch(item.getItemId()) {
+ case R.id.bold:
+ markdown = "**";
+ if (hasAlreadyMarkdown(start, end, markdown)) {
+ this.removeMarkdown(ssb, start, end, markdown);
+ } else {
+ this.addMarkdown(ssb, start, end, markdown, Typeface.BOLD);
+ }
+ editText.setText(ssb);
+ break;
+ case R.id.italic:
+ markdown = "*";
+ if (hasAlreadyMarkdown(start, end, markdown)) {
+ this.removeMarkdown(ssb, start, end, markdown);
+ } else {
+ this.addMarkdown(ssb, start, end, markdown, Typeface.ITALIC);
+ }
+ editText.setText(ssb);
+ break;
+ case R.id.link:
+ ssb.insert(end, "]()");
+ ssb.insert(start, "[");
+ end++;
+ ssb.setSpan(new StyleSpan(Typeface.NORMAL), start, end, 1);
+ editText.setText(ssb);
+ editText.setSelection(end + 2); // after <end>](
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void onDestroyActionMode(ActionMode mode) {
+
+ }
+
+ private boolean hasAlreadyMarkdown(int start, int end, String markdown) {
+ return start > markdown.length() && markdown.contentEquals(editText.getText().subSequence(start - markdown.length(), start)) &&
+ editText.getText().length() > end + markdown.length() && markdown.contentEquals(editText.getText().subSequence(end, end + markdown.length()));
+ }
+
+ private void removeMarkdown(SpannableStringBuilder ssb, int start, int end, String markdown) {
+ ssb.delete(start - markdown.length(), start);
+ ssb.delete(end - markdown.length(), end);
+ ssb.setSpan(new StyleSpan(Typeface.NORMAL), start, end, 1);
+ }
+
+ private void addMarkdown(SpannableStringBuilder ssb, int start, int end, String markdown, int typeface) {
+ ssb.insert(end, markdown);
+ ssb.insert(start, markdown);
+ editText.getText().charAt(start);
+ editText.getText().charAt(start + 1);
+ end += markdown.length() * 2;
+ ssb.setSpan(new StyleSpan(typeface), start, end, 1);
+ }
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/util/SupportUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/util/SupportUtil.java
index 28ba7b75..48792a8a 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/util/SupportUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/util/SupportUtil.java
@@ -4,7 +4,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
-import android.support.annotation.WorkerThread;
+import androidx.annotation.WorkerThread;
import android.text.Html;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
diff --git a/app/src/main/res/drawable/ic_format_bold_black_24dp.xml b/app/src/main/res/drawable/ic_format_bold_black_24dp.xml
new file mode 100644
index 00000000..625077f9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_format_bold_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="#666666" android:viewportHeight="24.0"
+ android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M15.6,10.79c0.97,-0.67 1.65,-1.77 1.65,-2.79 0,-2.26 -1.75,-4 -4,-4L7,4v14h7.04c2.09,0 3.71,-1.7 3.71,-3.79 0,-1.52 -0.86,-2.82 -2.15,-3.42zM10,6.5h3c0.83,0 1.5,0.67 1.5,1.5s-0.67,1.5 -1.5,1.5h-3v-3zM13.5,15.5L10,15.5v-3h3.5c0.83,0 1.5,0.67 1.5,1.5s-0.67,1.5 -1.5,1.5z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_format_italic_black_24dp.xml b/app/src/main/res/drawable/ic_format_italic_black_24dp.xml
new file mode 100644
index 00000000..48f2605e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_format_italic_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="#666666" android:viewportHeight="24.0"
+ android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M10,4v3h2.21l-3.42,8H6v3h8v-3h-2.21l3.42,-8H18V4z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_insert_link_black_24dp.xml b/app/src/main/res/drawable/ic_insert_link_black_24dp.xml
new file mode 100644
index 00000000..3672c276
--- /dev/null
+++ b/app/src/main/res/drawable/ic_insert_link_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="#666666" android:viewportHeight="24.0"
+ android:viewportWidth="24.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M3.9,12c0,-1.71 1.39,-3.1 3.1,-3.1h4L11,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h4v-1.9L7,15.1c-1.71,0 -3.1,-1.39 -3.1,-3.1zM8,13h8v-2L8,11v2zM17,7h-4v1.9h4c1.71,0 3.1,1.39 3.1,3.1s-1.39,3.1 -3.1,3.1h-4L13,17h4c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_library_music_black_24dp.xml b/app/src/main/res/drawable/ic_library_music_black_24dp.xml
new file mode 100644
index 00000000..e90b1c40
--- /dev/null
+++ b/app/src/main/res/drawable/ic_library_music_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#757575"
+ android:viewportHeight="24.0" android:viewportWidth="24.0"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF757575" android:pathData="M20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,7h-3v5.5c0,1.38 -1.12,2.5 -2.5,2.5S10,13.88 10,12.5s1.12,-2.5 2.5,-2.5c0.57,0 1.08,0.19 1.5,0.51L14,5h4v2zM4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6z"/>
+</vector>
diff --git a/app/src/main/res/drawable/single_note_widget.png b/app/src/main/res/drawable/single_note_widget.png
index 7b1c2258..b6f02ff4 100644
--- a/app/src/main/res/drawable/single_note_widget.png
+++ b/app/src/main/res/drawable/single_note_widget.png
Binary files differ
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
index 00f694ef..78e17475 100644
--- a/app/src/main/res/layout/activity_about.xml
+++ b/app/src/main/res/layout/activity_about.xml
@@ -4,12 +4,12 @@
android:layout_height="match_parent"
android:orientation="vertical">
- <android.support.design.widget.TabLayout
+ <com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
- <android.support.v4.view.ViewPager
+ <androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
diff --git a/app/src/main/res/layout/activity_note_list_configuration.xml b/app/src/main/res/layout/activity_note_list_configuration.xml
index 596a6cbc..209ab66a 100644
--- a/app/src/main/res/layout/activity_note_list_configuration.xml
+++ b/app/src/main/res/layout/activity_note_list_configuration.xml
@@ -4,21 +4,10 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
- <android.support.v7.widget.RecyclerView
+ <androidx.recyclerview.widget.RecyclerView
android:id="@+id/nlw_config_recyclerv"
android:layout_width="match_parent"
android:layout_height="match_parent"
- app:layoutManager="android.support.v7.widget.LinearLayoutManager"
- />
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
- <!--
- <Switch
- android:id="@+id/nlw_config_theme_sw"
- android:layout_width="match_parent"
- android:layout_height="61dp"
- android:padding="@dimen/widget_note_list_outer_padding"
- android:text="Dark theme"
- android:layout_alignParentBottom="true"
- />
- -->
-</RelativeLayout> \ No newline at end of file
+</RelativeLayout>
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 4bfa1c02..816903ba 100644
--- a/app/src/main/res/layout/activity_notes_list_view.xml
+++ b/app/src/main/res/layout/activity_notes_list_view.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -9,7 +9,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
- <android.support.v7.widget.Toolbar
+ <androidx.appcompat.widget.Toolbar
android:id="@+id/notesListActivityActionBar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
@@ -17,7 +17,7 @@
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="4dp" />
- <android.support.v4.widget.SwipeRefreshLayout xmlns:tools="http://schemas.android.com/tools"
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/swiperefreshlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -25,22 +25,22 @@
tools:context="it.niedermann.owncloud.notes.android.activity.NotesListViewActivity"
tools:ignore="MergeRootFrame">
- <android.support.v7.widget.RecyclerView
+ <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_highlighted"
android:scrollbars="vertical" />
- </android.support.v4.widget.SwipeRefreshLayout>
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</LinearLayout>
- <android.support.design.widget.FloatingActionButton
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_create"
style="@style/fab"
android:src="@drawable/ic_add_white_24dp"
android:title="@string/action_create"
app:backgroundTint="@color/primary"
app:rippleColor="@color/primary_dark" />
-</android.support.design.widget.CoordinatorLayout> \ No newline at end of file
+</androidx.coordinatorlayout.widget.CoordinatorLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index ee39da1c..405b48b8 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -8,7 +8,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin">
- <android.support.design.widget.TextInputLayout
+ <com.google.android.material.textfield.TextInputLayout
android:id="@+id/settings_url_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -21,7 +21,7 @@
android:hint="@string/settings_url"
android:inputType="textUri"
android:textColor="@color/fg_default" />
- </android.support.design.widget.TextInputLayout>
+ </com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/settings_url_warn_http"
@@ -35,7 +35,7 @@
android:textColor="@color/fg_contrast"
android:visibility="gone" />
- <android.support.design.widget.TextInputLayout
+ <com.google.android.material.textfield.TextInputLayout
android:id="@+id/settings_username_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -47,9 +47,9 @@
android:hint="@string/settings_username"
android:inputType="text"
android:textColor="@color/fg_default" />
- </android.support.design.widget.TextInputLayout>
+ </com.google.android.material.textfield.TextInputLayout>
- <android.support.design.widget.TextInputLayout
+ <com.google.android.material.textfield.TextInputLayout
android:id="@+id/settings_password_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -62,7 +62,7 @@
android:hint="@string/settings_password"
android:inputType="textPassword"
android:textColor="@color/fg_default" />
- </android.support.design.widget.TextInputLayout>
+ </com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/settings_submit"
diff --git a/app/src/main/res/layout/drawer_layout.xml b/app/src/main/res/layout/drawer_layout.xml
index 7ef2c8f3..fa6a14ee 100644
--- a/app/src/main/res/layout/drawer_layout.xml
+++ b/app/src/main/res/layout/drawer_layout.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
@@ -11,14 +11,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
- <android.support.design.widget.NavigationView
+ <com.google.android.material.navigation.NavigationView
android:id="@+id/navigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">
- <android.support.v4.widget.NestedScrollView
+ <androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
@@ -27,58 +27,46 @@
android:layout_height="wrap_content"
android:orientation="vertical">
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="178dp"
- android:background="@color/primary"
- android:orientation="vertical"
- android:weightSum="1">
+ android:layout_height="wrap_content"
+ android:background="?attr/colorPrimary"
+ android:padding="10dp"
+ android:theme="@style/ThemeOverlay.AppCompat.Dark"
+ android:orientation="horizontal"
+ android:gravity="bottom">
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="24dp"
+ android:layout_gravity="center_vertical"
+ android:src="@mipmap/ic_launcher"
+ android:contentDescription="@string/app_name" />
- <LinearLayout
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
- android:layout_height="56dp"
- android:orientation="vertical"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true"
- android:layout_alignParentStart="true">
-
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingLeft="12dp"
+ android:paddingStart="12dp"
+ android:paddingTop="24dp"
+ android:orientation="vertical">
<TextView
- android:id="@+id/name"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="16dp"
- android:textColor="#ffffff"
android:text="@string/app_name"
- android:textSize="14sp"
- android:textStyle="bold"
-
- />
+ android:textAppearance="@style/TextAppearance.AppCompat.Title" />
<TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="#ffffff"
- android:layout_marginLeft="16dp"
- android:layout_marginTop="5dp"
android:id="@+id/account"
- android:textSize="14sp"
- android:textStyle="normal"
-
- />
- </LinearLayout>
-
- <ImageView
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:layout_marginLeft="16dp"
- android:layout_marginTop="38dp"
- android:src="@mipmap/ic_launcher_round"
- android:contentDescription="@string/app_name" />
- </RelativeLayout>
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </LinearLayout>
- <android.support.v7.widget.RecyclerView
+ <androidx.recyclerview.widget.RecyclerView
android:id="@+id/navigationList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -92,7 +80,7 @@
android:layout_height="1dp"
android:background="@color/separator" />
- <android.support.v7.widget.RecyclerView
+ <androidx.recyclerview.widget.RecyclerView
android:id="@+id/navigationMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -103,8 +91,8 @@
</LinearLayout>
- </android.support.v4.widget.NestedScrollView>
+ </androidx.core.widget.NestedScrollView>
- </android.support.design.widget.NavigationView>
+ </com.google.android.material.navigation.NavigationView>
-</android.support.v4.widget.DrawerLayout> \ No newline at end of file
+</androidx.drawerlayout.widget.DrawerLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_notes_list_note_item.xml b/app/src/main/res/layout/fragment_notes_list_note_item.xml
index 75898a40..a1cc0a56 100644
--- a/app/src/main/res/layout/fragment_notes_list_note_item.xml
+++ b/app/src/main/res/layout/fragment_notes_list_note_item.xml
@@ -13,7 +13,7 @@
android:layout_marginLeft="@dimen/button_padding"
android:layout_marginStart="@dimen/button_padding"
android:contentDescription="@string/menu_favorite"
- android:src="@drawable/ic_star_yellow_24dp" />
+ android:src="@drawable/ic_star_white_24dp" />
<ImageView
android:id="@+id/noteDeleteRight"
@@ -25,7 +25,7 @@
android:contentDescription="@string/menu_delete"
android:src="@drawable/ic_delete_white_32dp" />
- <android.support.v7.widget.LinearLayoutCompat
+ <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/noteSwipeable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -58,7 +58,7 @@
</FrameLayout>
- <android.support.v7.widget.LinearLayoutCompat
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -68,7 +68,7 @@
android:orientation="vertical"
android:background="@drawable/list_item_background_selector">
- <android.support.v7.widget.LinearLayoutCompat
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item_background_selector">
@@ -81,10 +81,10 @@
android:layout_weight="1"
android:textColor="@drawable/list_item_color_selector"
android:textSize="@dimen/primary_font_size" />
- </android.support.v7.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
- <android.support.v7.widget.LinearLayoutCompat
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item_background_selector">
@@ -121,9 +121,9 @@
android:singleLine="true"
android:textColor="@drawable/list_item_color_selector"
android:textSize="@dimen/secondary_font_size" />
- </android.support.v7.widget.LinearLayoutCompat>
- </android.support.v7.widget.LinearLayoutCompat>
- </android.support.v7.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
<ImageView
android:layout_width="match_parent"
diff --git a/app/src/main/res/layout/widget_entry.xml b/app/src/main/res/layout/widget_entry.xml
index e89db4f0..b9cc5ee9 100644
--- a/app/src/main/res/layout/widget_entry.xml
+++ b/app/src/main/res/layout/widget_entry.xml
@@ -28,10 +28,9 @@
android:paddingEnd="@dimen/widget_note_list_outer_padding"
android:paddingRight="@dimen/widget_note_list_outer_padding"
android:layout_gravity="center_vertical"
- android:gravity="center_vertical"
android:layout_weight="1"
android:textColor="@color/widget_fg_default"
- android:lines="1"
- android:ellipsize="end" />
+ android:ellipsize="end"
+ android:lines="1" />
</LinearLayout>
diff --git a/app/src/main/res/layout/widget_entry_dark.xml b/app/src/main/res/layout/widget_entry_dark.xml
new file mode 100644
index 00000000..54cf8581
--- /dev/null
+++ b/app/src/main/res/layout/widget_entry_dark.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/widget_note_list_entry_dark"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:orientation="horizontal"
+ android:padding="@dimen/widget_note_list_padding">
+
+ <ImageView
+ android:id="@+id/widget_entry_fav_icon_dark"
+ android:layout_width="@dimen/widget_note_list_fav_icon_width"
+ android:layout_height="@dimen/widget_note_list_fav_icon_height"
+ android:layout_gravity="center_vertical"
+ android:foregroundGravity="center_vertical"
+ android:paddingStart="@dimen/widget_note_list_inner_padding"
+ android:paddingLeft="@dimen/widget_note_list_inner_padding"
+ android:paddingEnd="@dimen/widget_note_list_outer_padding"
+ android:paddingRight="@dimen/widget_note_list_outer_padding"
+ android:src="@drawable/ic_star_yellow_24dp"
+ android:contentDescription="@string/widget_entry_fav_contentDescription" />
+
+ <TextView
+ android:id="@+id/widget_entry_content_tv_dark"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:paddingStart="@dimen/widget_note_list_inner_padding"
+ android:paddingLeft="@dimen/widget_note_list_inner_padding"
+ android:paddingEnd="@dimen/widget_note_list_outer_padding"
+ android:paddingRight="@dimen/widget_note_list_outer_padding"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:textColor="@color/fg_default_dark_theme"
+ android:lines="1"
+ android:ellipsize="end" />
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_note_list_dark.xml b/app/src/main/res/layout/widget_note_list_dark.xml
new file mode 100644
index 00000000..a42bba18
--- /dev/null
+++ b/app/src/main/res/layout/widget_note_list_dark.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:background="@color/widget_background_dark_theme">
+
+ <!-- Widget header -->
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:id="@+id/widget_note_list_hdr_dark"
+ android:layout_height="@dimen/widget_note_list_header_height"
+ android:background="@color/primary"
+ android:padding="@dimen/widget_note_list_hdr_padding">
+
+ <ImageView
+ android:id="@+id/widget_note_header_icon_dark"
+ android:layout_width="@dimen/widget_note_list_icon_width"
+ android:layout_height="match_parent"
+ android:src="@mipmap/ic_launcher"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_alignParentBottom="true"
+ android:paddingStart="4dp"
+ android:paddingEnd="@dimen/widget_note_list_inner_padding"
+ android:paddingLeft="4dp"
+ android:paddingRight="@dimen/widget_note_list_inner_padding"
+ android:contentDescription="@string/widget_app_launcher_contentDescription" />
+
+ <TextView
+ android:id="@+id/widget_note_list_title_tv_dark"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:textColor="@color/fg_default_dark_theme"
+ android:textStyle="bold"
+ android:textSize="18sp"
+ android:layout_toRightOf="@id/widget_note_header_icon_dark"
+ android:layout_toEndOf="@id/widget_note_header_icon_dark"
+ android:gravity="center_vertical"
+ android:paddingStart="@dimen/widget_note_list_outer_padding"
+ android:paddingEnd="@dimen/widget_note_list_inner_padding"
+ android:paddingLeft="@dimen/widget_note_list_outer_padding"
+ android:paddingRight="@dimen/widget_note_list_inner_padding" />
+
+ <ImageView
+ android:id="@+id/widget_note_list_create_icon_dark"
+ android:layout_width="@dimen/widget_note_list_icon_width"
+ android:layout_height="match_parent"
+ android:src="@drawable/ic_add_white_24dp"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:paddingStart="@dimen/widget_note_list_inner_padding"
+ android:paddingEnd="@dimen/widget_note_list_outer_padding"
+ android:paddingLeft="@dimen/widget_note_list_inner_padding"
+ android:paddingRight="@dimen/widget_note_list_outer_padding"
+ android:contentDescription="@string/widget_create_note" />
+
+ </RelativeLayout>
+ <!-- End header -->
+
+ <ListView
+ android:id="@+id/note_list_widget_lv_dark"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="@color/fg_default_dark_theme"
+ android:divider="@color/fg_default_low_dark_theme"/>
+
+ <TextView
+ android:id="@+id/widget_note_list_placeholder_tv_dark"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="@string/widget_note_list_placeholder"
+ android:textColor="@color/fg_default_dark_theme" />
+
+</LinearLayout>
diff --git a/app/src/main/res/layout/widget_single_note.xml b/app/src/main/res/layout/widget_single_note.xml
index 3332d256..b553c720 100644
--- a/app/src/main/res/layout/widget_single_note.xml
+++ b/app/src/main/res/layout/widget_single_note.xml
@@ -17,14 +17,8 @@
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/widget_single_note_placeholder_tv"
- android:textColor="@color/fg_default_high"
+ android:textColor="@color/fg_default_high_dark_theme"
android:textAlignment="center"
android:padding="@dimen/widget_single_note_padding" />
-</RelativeLayout><!--
- TODO: Markdown support
-
- <com.yydcdut.rxmarkdown.RxMDTextView
-
-
- -->
+</RelativeLayout>
diff --git a/app/src/main/res/layout/widget_single_note_content_dark.xml b/app/src/main/res/layout/widget_single_note_content_dark.xml
new file mode 100644
index 00000000..71aff8aa
--- /dev/null
+++ b/app/src/main/res/layout/widget_single_note_content_dark.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/single_note_content_tv_dark"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:textColor="@color/fg_default_dark_theme" />
diff --git a/app/src/main/res/layout/widget_single_note_dark.xml b/app/src/main/res/layout/widget_single_note_dark.xml
new file mode 100644
index 00000000..47bf4d53
--- /dev/null
+++ b/app/src/main/res/layout/widget_single_note_dark.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/widget_single_note_dark"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/widget_background_dark_theme">
+
+ <ListView
+ android:id="@+id/single_note_widget_lv_dark"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="@dimen/widget_single_note_padding" />
+
+ <TextView
+ android:id="@+id/widget_single_note_placeholder_tv_dark"
+ android:background="@color/widget_background_dark_theme"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="@string/widget_single_note_placeholder_tv"
+ android:textColor="@color/fg_default_high_dark_theme"
+ android:textAlignment="center"
+ android:padding="@dimen/widget_single_note_padding" />
+
+</RelativeLayout>
diff --git a/app/src/main/res/menu/menu_list_view.xml b/app/src/main/res/menu/menu_list_view.xml
index 957c6574..70103414 100644
--- a/app/src/main/res/menu/menu_list_view.xml
+++ b/app/src/main/res/menu/menu_list_view.xml
@@ -7,6 +7,6 @@
android:id="@+id/search"
android:title="@string/action_search"
android:icon="@drawable/ic_search_white_24dp"
- app:actionViewClass="android.support.v7.widget.SearchView"
+ app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView|always" />
</menu> \ No newline at end of file
diff --git a/app/src/main/res/menu/menu_note_activity.xml b/app/src/main/res/menu/menu_note_activity.xml
index 91ecfc23..311c5108 100644
--- a/app/src/main/res/menu/menu_note_activity.xml
+++ b/app/src/main/res/menu/menu_note_activity.xml
@@ -4,13 +4,13 @@
<item
android:id="@+id/menu_preview"
android:icon="@drawable/ic_eye_white_24dp"
- android:orderInCategory="50"
+ android:orderInCategory="60"
android:title="@string/menu_preview"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_edit"
android:icon="@drawable/ic_edit_white_24dp"
- android:orderInCategory="50"
+ android:orderInCategory="60"
android:title="@string/simple_edit"
app:showAsAction="ifRoom" />
</menu> \ No newline at end of file
diff --git a/app/src/main/res/menu/menu_note_fragment.xml b/app/src/main/res/menu/menu_note_fragment.xml
index 337b8ff3..17d42d3d 100644
--- a/app/src/main/res/menu/menu_note_fragment.xml
+++ b/app/src/main/res/menu/menu_note_fragment.xml
@@ -1,6 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/search"
+ android:title="@string/action_search"
+ android:icon="@drawable/ic_search_white_24dp"
+ android:orderInCategory="50"
+ app:actionViewClass="androidx.appcompat.widget.SearchView"
+ app:showAsAction="ifRoom|collapseActionView" />
+
<item
android:id="@+id/menu_favorite"
android:orderInCategory="80"
@@ -19,7 +28,7 @@
android:orderInCategory="100"
android:title="@string/menu_share"
app:showAsAction="never"
- app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
+ app:actionProviderClass="androidx.appcompat.widget.ShareActionProvider" />
<item
android:id="@+id/menu_cancel"
android:icon="@drawable/ic_clear_white_24dp"
diff --git a/app/src/main/res/menu/style.xml b/app/src/main/res/menu/style.xml
new file mode 100644
index 00000000..7d671bb1
--- /dev/null
+++ b/app/src/main/res/menu/style.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:id="@+id/italic"
+ android:icon="@drawable/ic_format_italic_black_24dp"
+ android:title="@string/simple_italic"
+ app:showAsAction="ifRoom" />
+ <item android:id="@+id/bold"
+ android:icon="@drawable/ic_format_bold_black_24dp"
+ android:title="@string/simple_bold"
+ app:showAsAction="ifRoom" />
+ <item android:id="@+id/link"
+ android:icon="@drawable/ic_insert_link_black_24dp"
+ android:title="@string/simple_link"
+ app:showAsAction="ifRoom" />
+</menu> \ No newline at end of file
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index bd127106..7597aa6e 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Oblíbené</string>
<string name="action_create">Nová poznámka</string>
<string name="action_settings">Nastavení</string>
+ <string name="action_trashbin">Smazané poznámky</string>
<string name="action_search">Hledat</string>
<string name="action_create_save">Uložit</string>
<string name="simple_cancel">Storno</string>
@@ -42,7 +43,7 @@
<string name="settings_server_settings">Účet</string>
<string name="settings_url">Adresa serveru</string>
<string name="settings_url_check_description">Značí, zda lze adresu pingnout.</string>
- <string name="settings_url_warn_http">POZOR: \"http\" není bezpečné. Prosím použijte \"https\"</string>
+ <string name="settings_url_warn_http">POZOR: „http„ není bezpečné. Prosím použijte „https“</string>
<string name="settings_username">Uživatelské jméno</string>
<string name="settings_password">Heslo</string>
<string name="settings_password_unchanged">Heslo (nezměněno)</string>
@@ -60,7 +61,7 @@
<string name="settings_cert_reset_toast">Všechny vlastní certifikáty byly odebrány</string>
<!-- Certificates -->
- <string name="certificate_notification_connection_security">Poznámky - Zabezpečení připojení</string>
+ <string name="certificate_notification_connection_security">Poznámky – Zabezpečení připojení</string>
<string name="trust_certificate_unknown_certificate_found">Poznámky se setkaly s neznámým certifikátem. Chcete mu věřit?</string>
<!-- Network -->
@@ -69,14 +70,14 @@
<string name="network_disconnected">Síť není dostupná</string>
<!-- Error -->
- <string name="error_sync">Synchronizace selhala: %1$s</string>
+ <string name="error_sync">Synchronizace se nezdařila: %1$s</string>
<string name="error_invalid_login">Neplatné přihlášení: %1$s</string>
<string name="error_json">je aplikace Poznámky aktivní na serveru?</string>
- <string name="error_io">spojení se serverem je nefunkční</string>
+ <string name="error_io">spojení se serverem není funkční</string>
<string name="error_no_network">žádné síťové spojení</string>
<string name="error_server">Chyby v URL/Serveru</string>
- <string name="error_url_malformed">Špatná serverová adresa</string>
- <string name="error_username_password_invalid">Špatné uživatelské jméno nebo heslo</string>
+ <string name="error_url_malformed">Chybná adresa serveru</string>
+ <string name="error_username_password_invalid">Chybné uživatelské jméno nebo heslo</string>
<!-- Snackbar Actions -->
<string name="snackbar_settings">Nastavení</string>
@@ -89,12 +90,12 @@
<string name="about_translators_title">Překladatelé</string>
<string name="about_translators_transifex">Nextcloud komunita na &lt;a href=\"%1$s\">Transifex&lt;/a></string>
<string name="about_testers_title">Testeři</string>
- <string name="about_source_title">Zdrojový kód</string>
+ <string name="about_source_title">Zdrojové kódy</string>
<string name="about_source">Tento projekt je hostován na GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_issues_title">Problémy</string>
<string name="about_issues">Můžete nahlásit chyby, návrhy a požadavky na zlepšení na GitHub issue tracker: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_translate_title">Překládat</string>
- <string name="about_translate">Připojte se ke komunitě na Transifex a pomozte nám přeložit tuto aplikaci: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_translate">Připojte se k týmu na službě Transifex a pomozte nám přelkládat tuto aplikaci: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_app_license_title">Licence aplikace</string>
<string name="about_app_license">Tato aplikace je licencována pod GNU GENERAL PUBLIC LICENSE v3+.</string>
<string name="about_app_license_button">Zobrazit licenci</string>
@@ -110,7 +111,7 @@
<string name="widget_single_note_title">Jedna poznámka</string>
<string name="widget_single_note_placeholder_tv">Poznámka nenalezena</string>
<string name="widget_create_note">Vytvořit poznámku</string>
- <string name="widget_not_logged_in">Před použitím widgetu se, prosím, přihlašte do aplikace Poznámky</string>
+ <string name="widget_not_logged_in">Abyste mohli tento widget používat, přihlaste se do aplikacie Poznámky</string>
<string name="widget_entry_fav_contentDescription">Ikonka hvězdy označí položku jako oblíbenou</string>
<string name="widget_app_launcher_contentDescription">Spustí aplikaci</string>
@@ -124,7 +125,7 @@
<!-- Array: note modes -->
<string-array name="noteMode_entries">
- <item>Otevřít v editačním režimu</item>
+ <item>Otevřít v režimu úprav</item>
<item>Otevřít v náhledovém režimu</item>
<item>Zapamatovat si můj poslední výběr</item>
</string-array>
diff --git a/app/src/main/res/values-cy-rGB/strings.xml b/app/src/main/res/values-cy-rGB/strings.xml
new file mode 100644
index 00000000..030a2b94
--- /dev/null
+++ b/app/src/main/res/values-cy-rGB/strings.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+ <string name="app_name">Nodiadau</string>
+ <string name="no_notes">Dim nodiadau eto</string>
+ <string name="label_all_notes">Pob nodyn</string>
+ <string name="label_favorites">Ffefrynnau</string>
+ <string name="action_create">Nodyn newydd</string>
+ <string name="action_settings">Gosodiadau</string>
+ <string name="action_trashbin">Nodau wedi\'u dileu</string>
+ <string name="action_search">Chwilio</string>
+ <string name="action_create_save">Cadw</string>
+ <string name="simple_cancel">Diddymu</string>
+ <string name="simple_edit">Golygu</string>
+ <string name="action_edit_save">Cadw</string>
+ <string name="action_edit_saving">Yn cadw &#8230;</string>
+ <string name="action_edit_saved">Wedi\'u cadw</string>
+ <string name="simple_about">Ynghylch</string>
+ <string name="action_select_note">Dewis nodyn</string>
+ <string name="action_note_deleted">Nodyn wedi\'i ddileu</string>
+ <string name="action_note_restored">Nodyn wedi\'i adfer</string>
+ <string name="action_undo">Dadwneud</string>
+ <string name="action_drawer_open">agor llywio</string>
+ <string name="action_drawer_close">cau llywio</string>
+ <string name="action_recent">Diweddar</string>
+ <string name="action_uncategorized">Dim categori</string>
+ <string name="menu_delete">Dileu</string>
+ <string name="menu_change_category">Categori</string>
+ <string name="menu_favorite">Ffefryn</string>
+ <string name="menu_preview">Rhagolwg</string>
+ <string name="menu_share">Rhannu</string>
+ <string name="menu_about">Ynghylch</string>
+
+ <string name="change_category_title">Dewis categori</string>
+
+ <string name="listview_updated_today">Heddiw</string>
+ <string name="listview_updated_yesterday">Ddoe</string>
+ <string name="listview_updated_this_week">Wythnos hon</string>
+ <string name="listview_updated_this_month">Mis yma</string>
+ <string name="listview_updated_earlier">Ynghynt</string>
+
+ <!-- Settings -->
+ <string name="settings_server_settings">Cyfrif</string>
+ <string name="settings_url">Cyfeiriad gweinydd</string>
+ <string name="settings_url_check_description">Yn dangos p\'un ai mae modd pingio\'r cyfeiriad</string>
+ <string name="settings_url_warn_http">RHYBUDD: \"mae http\" yn anniogel. Defnyddiwch \"https\".</string>
+ <string name="settings_username">Enw defnyddiwr</string>
+ <string name="settings_password">Cyfrinair</string>
+ <string name="settings_password_unchanged">Cyfrinair (heb ei newid)</string>
+ <string name="settings_password_check_description">Yn dangos p\'un ai yw\'ch manylion yn gywir</string>
+ <string name="settings_submit">Cysylltu</string>
+ <string name="settings_submitting">Cysylltu i &#8230;</string>
+ <string name="settings_note_mode">Y modd dangos ar gyfer Notes</string>
+ <string name="settings_theme_title">Thema</string>
+ <string name="settings_cert_category">Rheoli tystysgrifau</string>
+ <string name="settings_cert_trust_system">Tysytysgrfiau\'r system ymddiriedaeth</string>
+ <string name="settings_cert_trust_system_on">CA\'r system a\'r rhai ychwanegwyd gan y defnyddiwr yn gymeradwy (argymell)</string>
+ <string name="settings_cert_trust_system_off">CA\'r system a\'r rhai ychwanegwyd gan y defnyddiwr ddim yn gymeradwy</string>
+ <string name="settings_cert_reset">Ailosod tystysgrifau cymeradwy/anghymeradwy</string>
+ <string name="settings_cert_reset_summary">Ailosod ymddiriedaeth pob tytysgrif gyfaddas</string>
+ <string name="settings_cert_reset_toast">Mae\'r holl dystysgrifau cyfaddas wedi eu clirio</string>
+
+ <!-- Certificates -->
+ <string name="certificate_notification_connection_security">`Nodau - Diogelwch cysylltiad</string>
+ <string name="trust_certificate_unknown_certificate_found">Mae Nodau wedi canfod tystysgrif anhysbys. Ydych chi\'n ymddiried ynddi?</string>
+
+ <!-- Network -->
+ <string name="network_connecting">Cysylltu</string>
+ <string name="network_connected">Wedi cysylltu</string>
+ <string name="network_disconnected">Dim rhwydwaith ar gael</string>
+
+ <!-- Error -->
+ <string name="error_sync">Methodd y cydweddiad: %1$s</string>
+ <string name="error_invalid_login">Mewngofnod annilys: %1$s</string>
+ <string name="error_json">A yw\'r ap Nodau yn weithredol ar y gweinydd?</string>
+ <string name="error_io">mae cysylltiad y gweinydd wedi torri</string>
+ <string name="error_no_network">dim cysylltiad rthwydwaith</string>
+ <string name="error_server">Mae gan URL/gweinydd wallau</string>
+ <string name="error_url_malformed">Cyfeiriad gweinydd anghywir</string>
+ <string name="error_username_password_invalid">Enw defnyddiwr neu gyfrinair anghywir</string>
+
+ <!-- Snackbar Actions -->
+ <string name="snackbar_settings">Gosodiadau</string>
+
+ <!-- About -->
+ <string name="about_version_title">Fersiwn</string>
+ <string name="about_version">Ar hyn o bryd rydych yn defnyddio &lt;strong>%1$s&lt;/strong></string>
+ <string name="about_maintainer_title">Gofalwr</string>
+ <string name="about_developers_title">Datblygwr</string>
+ <string name="about_translators_title">Cyfieithwyr</string>
+ <string name="about_translators_transifex">Cymuned Nextcloud ar &lt;a href=\"%1$s\">Transifex&lt;/a></string>
+ <string name="about_testers_title">Profwyr</string>
+ <string name="about_source_title">Cod ffynhonnell</string>
+ <string name="about_source">Mae\'r project yn cael ei gynnal ar GitLab:&lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_issues_title">Materion</string>
+ <string name="about_issues">Gallwch adrodd ar wallau, gwelliannau a ceisiadau am nodweddion ar draciwr materion GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_translate_title">Cyfieithu</string>
+ <string name="about_translate">Ymunwch a thim Transifex a\'n cynorthwyo i gyfieithu\'r ap hwn: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_app_license_title">Trwydded yr ap</string>
+ <string name="about_app_license">Mae\'r ap wedi ei drwyddedu o dan yr GNU GENERAL PUBLIC LICENSE v3+.</string>
+ <string name="about_app_license_button">Gweld y drwydded</string>
+ <string name="about_icons_disclaimer_title">Eiconau</string>
+ <string name="about_icons_disclaimer">&lt;p>Roedd yr eiconau gwreiddiol wedi eu gwneud gan %1$s&lt;/p>&lt;p>Mae\'r eiconau ychwanegol sy\'n cael eu defnyddio yn yr ap yn&lt;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.&lt;/p></string>
+ <string name="about_credits_tab_title">Diolchiadau</string>
+ <string name="about_contribution_tab_title">Cyfraniadau</string>
+ <string name="about_license_tab_title">Trwydded</string>
+
+ <!-- Widgets -->
+ <string name="widget_note_list_title">Rhestr nodau</string>
+ <string name="widget_note_list_placeholder">Dim nodau</string>
+ <string name="widget_single_note_title">Nodyn unigol</string>
+ <string name="widget_single_note_placeholder_tv">Heb ganfod nodyn</string>
+ <string name="widget_create_note">Creu Nodyn</string>
+ <string name="widget_not_logged_in">Mewngofnodwch i Nodyn cyn defnyddio\'r teclyn hwn</string>
+ <string name="widget_entry_fav_contentDescription">Mae eicon seren yn cael ei ddefnyddio i ddynodi eitem fel ffefryn</string>
+ <string name="widget_app_launcher_contentDescription">Yn cychwyn yr ap</string>
+
+ <string name="activity_select_single_note">Dewis nodyn</string>
+
+ <!-- Shortcuts -->
+ <string name="shortcut_create_long">Creu nodyn newydd</string>
+
+ <string name="pref_value_theme_light">Golau</string>
+ <string name="pref_value_theme_dark">Tywyll</string>
+
+ <!-- Array: note modes -->
+ <string-array name="noteMode_entries">
+ <item>Agor yn y modd golygu</item>
+ <item>Agor yn y modd rhagolwg</item>
+ <item>Cofio fy newis olaf</item>
+ </string-array>
+
+ <!-- Plurals -->
+ <plurals name="ab_selected">
+ <item quantity="one">Wedi dewis %d</item>
+ <item quantity="two">Wedi dewis %d</item>
+ <item quantity="many">Wedi dewis %d</item>
+ <item quantity="other">Wedi dewis %d</item>
+ </plurals>
+</resources>
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 7f8f724e..c26bfe02 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -45,7 +45,7 @@
<string name="settings_note_mode">Display tilstand for noter</string>
<string name="settings_cert_trust_system">Stol på systemcertifikater</string>
<string name="settings_cert_trust_system_on">System og bruger tilføjede CA\'er stoles der på (anbefalet)</string>
- <string name="settings_cert_trust_system_off">System og bruger tilføjede CA\\'er stoles der ikke på</string>
+ <string name="settings_cert_trust_system_off">System og bruger tilføjede CA\'er stoles der ikke på</string>
<string name="settings_cert_reset">Nulstil (ikke)betroede certifikater</string>
<string name="settings_cert_reset_summary">Nulstiller alle brugerdefinerede certifikater</string>
<string name="settings_cert_reset_toast">Alle brugerdefinerede certifikater er fjernet</string>
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index 04421cfd..7935a1f2 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoriten</string>
<string name="action_create">Neue Notiz</string>
<string name="action_settings">Einstellungen</string>
+ <string name="action_trashbin">Gelöschte Notizen</string>
<string name="action_search">Suche</string>
<string name="action_create_save">Speichern</string>
<string name="simple_cancel">Abbrechen</string>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index dbd7a9c2..0e3d91be 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoriten</string>
<string name="action_create">Neue Notiz</string>
<string name="action_settings">Einstellungen</string>
+ <string name="action_trashbin">Gelöschte Notizen</string>
<string name="action_search">Suche</string>
<string name="action_create_save">Speichern</string>
<string name="simple_cancel">Abbrechen</string>
@@ -76,7 +77,7 @@
<string name="error_no_network">keine Netzwerk-Verbindung</string>
<string name="error_server">URL/Server fehlerhaft</string>
<string name="error_url_malformed">URL nicht korrekt</string>
- <string name="error_username_password_invalid">Benutzername / Passwort nicht korrekt</string>
+ <string name="error_username_password_invalid">Falscher Benutzername oder Passwort</string>
<!-- Snackbar Actions -->
<string name="snackbar_settings">Einstellungen</string>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 3d470973..b597b3d0 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -7,11 +7,15 @@
<string name="label_favorites">Αγαπημένα</string>
<string name="action_create">Νέα σημείωση</string>
<string name="action_settings">Ρυθμίσεις</string>
+ <string name="action_trashbin">Διεγραμμένες σημειώσεις</string>
<string name="action_search">Ψάχνει</string>
<string name="action_create_save">Αποθήκευση</string>
+ <string name="simple_cancel">Άκυρο</string>
+ <string name="simple_edit">Επεξεργασία</string>
<string name="action_edit_save">Αποθήκευση</string>
<string name="action_edit_saving">Γίνεται αποθήκευση &#8230;</string>
<string name="action_edit_saved">Αποθηκεύτηκε</string>
+ <string name="simple_about">Περί</string>
<string name="action_select_note">Επιλογή σημείωσης</string>
<string name="action_note_deleted">Η σημείωση διαγράφηκε.</string>
<string name="action_note_restored">Έγινε επαναφορά της σημείωσης.</string>
@@ -27,12 +31,16 @@
<string name="menu_share">Διαμοιρασμός</string>
<string name="menu_about">Περί</string>
+ <string name="change_category_title">Επιλογή κατηγορίας</string>
+
<string name="listview_updated_today">Σήμερα</string>
<string name="listview_updated_yesterday">Χθες</string>
<string name="listview_updated_this_week">Αυτή την εβδομάδα</string>
<string name="listview_updated_this_month">Αυτό το μήνα</string>
<string name="listview_updated_earlier">Νωρίτερα</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">Λογαριαμός</string>
<string name="settings_url">Διεύθυνση διακομιστή</string>
<string name="settings_url_warn_http">ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Το \"http\" δεν είναι ασφαλές. Παρακαλούμε χρησιμοποιήστε το \"https\".</string>
<string name="settings_username">Όνομα χρήστη</string>
@@ -41,6 +49,8 @@
<string name="settings_submit">Σύνδεση</string>
<string name="settings_submitting">Συνδέεται &#8230;</string>
<string name="settings_note_mode">Λειτουργία προβολής σημειώσεων</string>
+ <string name="settings_theme_title">Θέμα</string>
+ <string name="settings_cert_category">Διαχείριση πιστοποιητικών</string>
<string name="settings_cert_trust_system">Εμπιστοσύνη πιστοποιητικών συστήματος.</string>
<string name="settings_cert_reset">Επαναφορά (μη) έμπιστων πιστοποιητικών</string>
<!-- Certificates -->
@@ -101,6 +111,9 @@
<!-- Shortcuts -->
<string name="shortcut_create_long">Δημιουργία νέας σημείωσης</string>
+ <string name="pref_value_theme_light">Φωτεινό</string>
+ <string name="pref_value_theme_dark">Σκοτεινό</string>
+
<!-- Array: note modes -->
<string-array name="noteMode_entries">
<item>Άνοιγμα σε λειτουργία τροποποίησης</item>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index a3d49acc..00b04fb9 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoritos</string>
<string name="action_create">Nueva nota</string>
<string name="action_settings">Ajustes</string>
+ <string name="action_trashbin">Notas eliminadas</string>
<string name="action_search">Buscar</string>
<string name="action_create_save">Guardar</string>
<string name="simple_cancel">Cancelar</string>
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index 36fcc673..23565df0 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -3,8 +3,11 @@
<string name="app_name">Muistiinpanot</string>
<string name="no_notes">Ei muistiinpanoja</string>
+ <string name="label_all_notes">Kaikki muistiinpanot</string>
+ <string name="label_favorites">Suosikit</string>
<string name="action_create">Uusi muistiinpano</string>
<string name="action_settings">Asetukset</string>
+ <string name="action_trashbin">Poistetut muistiinpanot</string>
<string name="action_search">Etsi</string>
<string name="action_create_save">Tallenna</string>
<string name="simple_cancel">Peruuta</string>
@@ -12,7 +15,6 @@
<string name="action_edit_save">Tallenna</string>
<string name="action_edit_saving">Tallennetaan...</string>
<string name="action_edit_saved">Tallennettu</string>
- <string name="action_edit_cancel">Peruuta</string>
<string name="simple_about">Tietoja</string>
<string name="action_select_note">Valitse muistiinpano</string>
<string name="action_note_deleted">Muistiinpano poistettu</string>
@@ -21,16 +23,13 @@
<string name="action_recent">Viimeisimmät</string>
<string name="action_uncategorized">Luokittelemattomat</string>
<string name="menu_delete">Poista</string>
- <string name="menu_copy">Kopioi</string>
- <string name="menu_edit">Muokkaa</string>
- <string name="menu_cancel">Peruuta</string>
<string name="menu_change_category">Luokka</string>
<string name="menu_favorite">Suosikki</string>
<string name="menu_preview">Esikatselu</string>
<string name="menu_share">Jaa</string>
<string name="menu_about">Tietoja</string>
- <string name="copy">Kopioi</string>
+ <string name="change_category_title">Valitse luokka</string>
<string name="listview_updated_today">Tänään</string>
<string name="listview_updated_yesterday">Eilen</string>
@@ -39,15 +38,17 @@
<string name="listview_updated_earlier">Aikaisemmat</string>
<!-- Settings -->
- <string name="settings_server_settings">Tilin asetukset</string>
+ <string name="settings_server_settings">Tili</string>
<string name="settings_url">Palvelimen osoite</string>
<string name="settings_url_warn_http">VAROITUS: \"http\" on suojaamaton. Käytä \"https\"-yhteyttä.</string>
<string name="settings_username">Käyttäjätunnus</string>
<string name="settings_password">Salasana</string>
<string name="settings_password_unchanged">Salasana (ei muutettu)</string>
+ <string name="settings_password_check_description">Näyttää ovatko tilitiedot oikein.</string>
<string name="settings_submit">Yhdistä</string>
<string name="settings_submitting">Yhdistetään...</string>
- <string name="settings_cert_category">Varmenteet</string>
+ <string name="settings_theme_title">Teema</string>
+ <string name="settings_cert_category">Hallitse varmenteita</string>
<string name="settings_cert_trust_system">Luota järjestelmävarmenteisiin</string>
<!-- Network -->
<string name="network_connecting">Yhdistetään</string>
@@ -89,12 +90,14 @@
<string name="widget_single_note_title">Yksittäinen muistiinpano</string>
<string name="widget_single_note_placeholder_tv">Muistiinpanoa ei löytynyt</string>
<string name="widget_create_note">Luo muistiinpano</string>
- <string name="widget_entry_fav_contentDescription">Tähden kuvalla merkitään suosikki</string>
<string name="activity_select_single_note">Valitse muistiinpano</string>
<!-- Shortcuts -->
<string name="shortcut_create_long">Luo uusi muistiinpano</string>
+ <string name="pref_value_theme_light">Vaalea</string>
+ <string name="pref_value_theme_dark">Tumma</string>
+
<!-- Array: note modes -->
<string-array name="noteMode_entries">
<item>Avaa muokkaustilassa</item>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 72613fa5..c8cfc6c9 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoris</string>
<string name="action_create">Nouvelle note</string>
<string name="action_settings">Paramètres</string>
+ <string name="action_trashbin">Notes supprimées</string>
<string name="action_search">Rechercher</string>
<string name="action_create_save">Sauvegarder</string>
<string name="simple_cancel">Annuler</string>
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index ec3f470d..4bbe39a2 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">מועדפים</string>
<string name="action_create">פתק חדש</string>
<string name="action_settings">הגדרות</string>
+ <string name="action_trashbin">פתקים שנמחקו</string>
<string name="action_search">חיפוש</string>
<string name="action_create_save">שמירה</string>
<string name="simple_cancel">ביטול</string>
@@ -38,6 +39,8 @@
<string name="listview_updated_this_month">החודש</string>
<string name="listview_updated_earlier">לפני כן</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">חשבון</string>
<string name="settings_url">כתובת שרת</string>
<string name="settings_url_check_description">מציג אם ניתן לשלוח פינג לשרת.</string>
<string name="settings_url_warn_http">אזהרה: „http” אינו מאובטח. נא להשתמש ב־„https”.</string>
@@ -49,6 +52,7 @@
<string name="settings_submitting">מתבצעת התחברות &#8230;</string>
<string name="settings_note_mode">מצב תצוגת פתקים</string>
<string name="settings_theme_title">ערכת עיצוב</string>
+ <string name="settings_cert_category">ניהול אישורים</string>
<string name="settings_cert_trust_system">מתן אמון באישורי המערכת</string>
<string name="settings_cert_trust_system_on">מתן אמון אוטומטית ברשויות אישורים של המערכת ובאלו שנוספו על ידי המשתמש (מומלץ)</string>
<string name="settings_cert_trust_system_off">לא לתת אמון ברשויות אישורים של המערכת ובאלו שנוספו על ידי המשתמש</string>
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index 04806614..971eb5d5 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Kedvencek</string>
<string name="action_create">Új jegyzet</string>
<string name="action_settings">Beállítások</string>
+ <string name="action_trashbin">Törölt jegyzetek</string>
<string name="action_search">Keresés</string>
<string name="action_create_save">Mentés</string>
<string name="simple_cancel">Mégsem</string>
@@ -18,7 +19,7 @@
<string name="action_select_note">Jegyzet választás</string>
<string name="action_note_deleted">Jegyzet törölve</string>
<string name="action_note_restored">Jegyzet visszaállítva</string>
- <string name="action_undo">Visszavon</string>
+ <string name="action_undo">Visszavonás</string>
<string name="action_drawer_open">navigáció megnyitása</string>
<string name="action_drawer_close">navigáció bezárása</string>
<string name="action_recent">Friss</string>
@@ -38,9 +39,11 @@
<string name="listview_updated_this_month">Ebben a hónapban</string>
<string name="listview_updated_earlier">Korábban</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">Fiók</string>
<string name="settings_url">A szerver címe</string>
- <string name="settings_url_check_description">Mutatja, hogy cím pingelhető-e.</string>
- <string name="settings_url_warn_http">Figyelem: a \"http\" biztonságtalan. Kérjük használj \"https\"-t.</string>
+ <string name="settings_url_check_description">Mutatja, hogy a cím pingelhető-e.</string>
+ <string name="settings_url_warn_http">Figyelem: a \"http\" nem biztonságos. Kérjük használj \"https\"-t!</string>
<string name="settings_username">Felhasználónév</string>
<string name="settings_password">Jelszó</string>
<string name="settings_password_unchanged">Jelszó (módosítatlan)</string>
@@ -49,6 +52,7 @@
<string name="settings_submitting">Kapcsolódás &#8230;</string>
<string name="settings_note_mode">Jegyzetmegjelenítési módok</string>
<string name="settings_theme_title">Téma</string>
+ <string name="settings_cert_category">Tanúsítványok kezelése</string>
<string name="settings_cert_trust_system">Megbízás a rendszertanúsítványokban</string>
<string name="settings_cert_trust_system_on">A rendszer és felhasználó által hozzáadott CA-k megbízhatók (javasolt)</string>
<string name="settings_cert_trust_system_off">A rendszer és felhasználó által hozzáadott CA-k nem megbízhatók</string>
diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml
index 24192e2c..5c881743 100644
--- a/app/src/main/res/values-is/strings.xml
+++ b/app/src/main/res/values-is/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Eftirlæti</string>
<string name="action_create">Nýr minnispunktur</string>
<string name="action_settings">Stillingar</string>
+ <string name="action_trashbin">Eyddir minnispunktar</string>
<string name="action_search">Leita</string>
<string name="action_create_save">Vista</string>
<string name="simple_cancel">Hætta við</string>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 79e389c6..3c06c4e6 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Preferite</string>
<string name="action_create">Nuova nota</string>
<string name="action_settings">Impostazioni</string>
+ <string name="action_trashbin">Note eliminate</string>
<string name="action_search">Cerca</string>
<string name="action_create_save">Salva</string>
<string name="simple_cancel">Annulla</string>
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index eced01d1..e8d5bbae 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -3,8 +3,11 @@
<string name="app_name">ノート</string>
<string name="no_notes">まだノートはありません</string>
+ <string name="label_all_notes">すべてのノート</string>
+ <string name="label_favorites">お気に入り</string>
<string name="action_create">新しいノート</string>
<string name="action_settings">設定</string>
+ <string name="action_trashbin">ゴミ箱</string>
<string name="action_search">検索</string>
<string name="action_create_save">保存</string>
<string name="simple_cancel">キャンセル</string>
@@ -12,14 +15,16 @@
<string name="action_edit_save">保存</string>
<string name="action_edit_saving">保存中&#8230;</string>
<string name="action_edit_saved">保存しました</string>
- <string name="action_edit_cancel">キャンセル</string>
- <string name="simple_about">アプリについて</string>
+ <string name="simple_about">バージョン情報</string>
<string name="action_select_note">ノートを選択</string>
+ <string name="action_note_deleted">削除されたノート</string>
+ <string name="action_note_restored">復元されたノート</string>
<string name="action_undo">元に戻す</string>
+ <string name="action_drawer_open">ナビゲーションを開く</string>
+ <string name="action_drawer_close">ナビゲーションを閉じる</string>
+ <string name="action_recent">最新</string>
+ <string name="action_uncategorized">未分類</string>
<string name="menu_delete">削除</string>
- <string name="menu_copy">コピー</string>
- <string name="menu_edit">編集</string>
- <string name="menu_cancel">キャンセル</string>
<string name="menu_change_category">カテゴリ</string>
<string name="menu_favorite">お気に入り</string>
<string name="menu_preview">プレビュー</string>
@@ -27,7 +32,6 @@
<string name="menu_about">アプリについて</string>
<string name="change_category_title">カテゴリを選択</string>
- <string name="copy">コピー</string>
<string name="listview_updated_today">今日</string>
<string name="listview_updated_yesterday">昨日</string>
@@ -36,15 +40,26 @@
<string name="listview_updated_earlier">早期</string>
<!-- Settings -->
- <string name="settings_server_settings">アカウント設定</string>
+ <string name="settings_server_settings">アカウント</string>
<string name="settings_url">サーバーアドレス</string>
+ <string name="settings_url_check_description">アドレスにpingを実行できるかどうかを表示します。</string>
<string name="settings_url_warn_http">警告: \"http\" は安全ではありません。 \"https\" を使用してください。</string>
<string name="settings_username">ユーザー名</string>
<string name="settings_password">パスワード</string>
<string name="settings_password_unchanged">パスワード (変更されていません)</string>
+ <string name="settings_password_check_description">資格情報が正しいかどうかを表示します。</string>
<string name="settings_submit">接続</string>
<string name="settings_submitting">接続中&#8230;</string>
- <string name="settings_cert_category">証明書</string>
+ <string name="settings_note_mode">ノートの表示モード</string>
+ <string name="settings_theme_title">テーマ</string>
+ <string name="settings_cert_category">証明書を管理する</string>
+ <string name="settings_cert_trust_system">システム証明書を信頼する</string>
+ <string name="settings_cert_trust_system_on">システムおよびユーザーが追加したCAは信頼される(推奨)</string>
+ <string name="settings_cert_trust_system_off">システムおよびユーザーが追加したCAは信頼されません</string>
+ <string name="settings_cert_reset">信頼できる(できない)証明書をリセットする</string>
+ <string name="settings_cert_reset_summary">すべてのカスタム証明書の信頼をリセットします。</string>
+ <string name="settings_cert_reset_toast">すべてのカスタム証明書がクリアされました</string>
+
<!-- Certificates -->
<string name="certificate_notification_connection_security">ノート - セキュリティ接続</string>
<string name="trust_certificate_unknown_certificate_found">ノートで未知の証明書が発見されました。これを信頼しますか?</string>
@@ -89,8 +104,14 @@
<string name="about_contribution_tab_title">貢献</string>
<string name="about_license_tab_title">ライセンス</string>
+ <!-- Widgets -->
+ <string name="widget_note_list_title">ノート一覧</string>
+ <string name="widget_note_list_placeholder">ノートがありません</string>
<string name="widget_single_note_title">一つのノート</string>
+ <string name="widget_single_note_placeholder_tv">ノートが見つかりません</string>
<string name="widget_create_note">ノートを作成</string>
+ <string name="widget_not_logged_in">このウィジェットを使用する前に、ノートにログインしてください</string>
+ <string name="widget_entry_fav_contentDescription">スターアイコンは、アイテムをお気に入りとして示すために使用されます</string>
<string name="widget_app_launcher_contentDescription">アプリを起動する</string>
<string name="activity_select_single_note">ノートを選択</string>
@@ -98,6 +119,16 @@
<!-- Shortcuts -->
<string name="shortcut_create_long">新しいノートを作成</string>
+ <string name="pref_value_theme_light">ライト</string>
+ <string name="pref_value_theme_dark">ダーク</string>
+
+ <!-- Array: note modes -->
+ <string-array name="noteMode_entries">
+ <item>編集モードで開く</item>
+ <item>プレビューモードで開く</item>
+ <item>最後の使用状態を覚えておく</item>
+ </string-array>
+
<!-- Plurals -->
<plurals name="ab_selected">
<item quantity="other">%d 選択済</item>
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index d615f7c6..3a973e81 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoritter</string>
<string name="action_create">Nytt notat</string>
<string name="action_settings">Innstillinger</string>
+ <string name="action_trashbin">Slettede notat</string>
<string name="action_search">Søk</string>
<string name="action_create_save">Lagre</string>
<string name="simple_cancel">Avbryt</string>
@@ -30,12 +31,16 @@
<string name="menu_share">Del</string>
<string name="menu_about">Om</string>
+ <string name="change_category_title">Velg kategori</string>
+
<string name="listview_updated_today">Idag</string>
- <string name="listview_updated_yesterday">Igår</string>
+ <string name="listview_updated_yesterday">I går</string>
<string name="listview_updated_this_week">Denne uken</string>
<string name="listview_updated_this_month">Denne måneden</string>
<string name="listview_updated_earlier">Tidligere</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">Konto</string>
<string name="settings_url">Tjeneradresse</string>
<string name="settings_url_check_description">Viser hvorvidt adressen kan pinges.</string>
<string name="settings_url_warn_http">ADVARSEL: \"http\" er usikker. Bruk \"https\".</string>
@@ -46,11 +51,13 @@
<string name="settings_submit">Koble til</string>
<string name="settings_submitting">Kobler &#8230;</string>
<string name="settings_note_mode">Visningsmodus for Notater</string>
+ <string name="settings_theme_title">Tema</string>
+ <string name="settings_cert_category">Administrer sertifikat</string>
<string name="settings_cert_trust_system">Stol på systemets sertifikater</string>
<string name="settings_cert_trust_system_on">System- og bruker -tillagte seritikatsmyndigheter vil stoles på (anbefalt)</string>
- <string name="settings_cert_trust_system_off">Syste. og bruker -tillagte sertifikatsmyndigheter vil ikke bli stolt på</string>
- <string name="settings_cert_reset">Tilbakestill (ikke)tiltrodde sertifikater</string>
- <string name="settings_cert_reset_summary">Tilbakestill tillit til alle systemsertifikater</string>
+ <string name="settings_cert_trust_system_off">Sertifikatmyndighet fra system eller bruker vil ikke bli stolt på</string>
+ <string name="settings_cert_reset">Tilbakestill klarerte sertifikater</string>
+ <string name="settings_cert_reset_summary">Tilbakestiller tillit til alle tilpassede sertifikater</string>
<string name="settings_cert_reset_toast">Alle egendefinerte sertifikater har blitt fjernet</string>
<!-- Certificates -->
@@ -105,6 +112,7 @@
<string name="widget_single_note_placeholder_tv">Notatet ble ikke funnet</string>
<string name="widget_create_note">Opprett notat</string>
<string name="widget_not_logged_in">Logg inn i Notater før du bruker dette miniprogrammet</string>
+ <string name="widget_entry_fav_contentDescription">Stjerne ikon er brukt for å angi et element som en favoritt</string>
<string name="widget_app_launcher_contentDescription">Starter programmet</string>
<string name="activity_select_single_note">Velg notat</string>
@@ -112,6 +120,9 @@
<!-- Shortcuts -->
<string name="shortcut_create_long">Opprett et nytt notat</string>
+ <string name="pref_value_theme_light">Lys</string>
+ <string name="pref_value_theme_dark">Mørk</string>
+
<!-- Array: note modes -->
<string-array name="noteMode_entries">
<item>Åpne i redigeringsmodus</item>
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 8bd366f2..8b37c430 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -4,7 +4,7 @@
<color name="primary_dark">#286090</color>
- <color name="separator">#444</color>
+ <color name="separator">#262626</color>
<color name="bg_highlighted">#111</color>
<color name="bg_normal">#222222</color>
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index c9211ba6..c0ac366c 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favorieten</string>
<string name="action_create">Nieuwe notitie</string>
<string name="action_settings">Instellingen</string>
+ <string name="action_trashbin">Verwijder notities</string>
<string name="action_search">Zoeken</string>
<string name="action_create_save">Opslaan</string>
<string name="simple_cancel">Annuleren</string>
@@ -22,7 +23,7 @@
<string name="action_drawer_open">open navigatie</string>
<string name="action_drawer_close">sluit navigatie</string>
<string name="action_recent">Recent</string>
- <string name="action_uncategorized">Ongecategorizeerd</string>
+ <string name="action_uncategorized">Niet gecategoriseerd</string>
<string name="menu_delete">Verwijderen</string>
<string name="menu_change_category">Categorie</string>
<string name="menu_favorite">Favoriet</string>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 56ae93f5..9027db46 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Ulubione</string>
<string name="action_create">Nowa notatka</string>
<string name="action_settings">Ustawienia</string>
+ <string name="action_trashbin">Usunięte notatki</string>
<string name="action_search">Szukaj</string>
<string name="action_create_save">Zapisz</string>
<string name="simple_cancel">Anuluj</string>
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index f63a15df..4f2d6664 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Favoritos</string>
<string name="action_create">Nova nota</string>
<string name="action_settings">Configurações</string>
+ <string name="action_trashbin">Anotações excluídas</string>
<string name="action_search">Pesquisar</string>
<string name="action_create_save">Salvar</string>
<string name="simple_cancel">Cancelar</string>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1dd228f6..5669f3c0 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Избранные</string>
<string name="action_create">Новая заметка</string>
<string name="action_settings">Настройки</string>
+ <string name="action_trashbin">Удалённые заметки</string>
<string name="action_search">Поиск</string>
<string name="action_create_save">Сохранить</string>
<string name="simple_cancel">Отмена</string>
@@ -79,7 +80,7 @@
<string name="error_username_password_invalid">Неправильный логин или пароль</string>
<!-- Snackbar Actions -->
- <string name="snackbar_settings">Настройки</string>
+ <string name="snackbar_settings">Параметры</string>
<!-- About -->
<string name="about_version_title">Версия</string>
@@ -95,8 +96,8 @@
<string name="about_issues">Вы можете сообщить об ошибках, внести предложения об улучшениях и пожеланиях в системе тикетов GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
<string name="about_translate_title">Перевести</string>
<string name="about_translate">Включайтесь в команду Nextcloud на сайте Transifex и помогайте переводить это приложение: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
- <string name="about_app_license_title">Лицензия программы</string>
- <string name="about_app_license">Программа выпускается под лицензией GNU GENERAL PUBLIC LICENSE v3+.</string>
+ <string name="about_app_license_title">Лицензия приложения</string>
+ <string name="about_app_license">Лицензия на программу предоставляется в соответствии с условиями Открытого лицензионного соглашения GNU (GNU GPL) версии 3+.</string>
<string name="about_app_license_button">Посмотреть лицензию</string>
<string name="about_icons_disclaimer_title">Значки</string>
<string name="about_icons_disclaimer">&lt;p>Исходные значки были созданы %1$s&lt;/p>&lt;p>Все дальнейшие значки, которые используются в этой программе, являются &lt;a href=\"https://materialdesignicons.com/\">Material Design Icons&lt;/a> от Google Inc. и защищены лицензией использования Apache 2.0. &lt;/p></string>
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 269a706c..2b3c047c 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Obľúbené</string>
<string name="action_create">Nová poznámka</string>
<string name="action_settings">Settings</string>
+ <string name="action_trashbin">Zmazané poznámky</string>
<string name="action_search">Hľadať</string>
<string name="action_create_save">Uložiť</string>
<string name="simple_cancel">Zrušiť</string>
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 54c523cd..0f6a02dd 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -1,10 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
+
+ <string name="app_name">Beležka Notes</string>
+ <string name="no_notes">Ni še dodane nobene zabeležke</string>
+ <string name="label_all_notes">Vse zabeležke</string>
+ <string name="label_favorites">Priljubljene</string>
+ <string name="action_create">Nova zabeležka</string>
+ <string name="action_settings">Nastavitve</string>
+ <string name="action_trashbin">Izbrisane zabeležke</string>
+ <string name="action_search">Poišči</string>
+ <string name="action_create_save">Shrani</string>
+ <string name="simple_cancel">Prekliči</string>
+ <string name="simple_edit">Uredi</string>
+ <string name="action_edit_save">Shrani</string>
+ <string name="action_edit_saving">Poteka shranjevanje&#8230;</string>
+ <string name="action_edit_saved">Shranjeno</string>
+ <string name="simple_about">O programu</string>
+ <string name="action_select_note">Izbor zabeležke</string>
+ <string name="action_note_deleted">Zabeležka je izbrisana</string>
+ <string name="action_note_restored">Zabeležka je obnovljena</string>
+ <string name="action_undo">Razveljavi</string>
+ <string name="action_drawer_open">odpri iskalnik</string>
+ <string name="action_drawer_close">zapri iskalnik</string>
+ <string name="action_recent">Nedavno</string>
+ <string name="action_uncategorized">Neopredeljeno</string>
+ <string name="menu_delete">Izbriši</string>
+ <string name="menu_change_category">Kategorija</string>
+ <string name="menu_favorite">Priljubljena</string>
+ <string name="menu_preview">Predogled</string>
+ <string name="menu_share">Souporaba</string>
+ <string name="menu_about">O programu</string>
+
+ <string name="change_category_title">Izbor kategorije</string>
+
+ <string name="listview_updated_today">Danes</string>
+ <string name="listview_updated_yesterday">Včeraj</string>
+ <string name="listview_updated_this_week">Zadnji teden</string>
+ <string name="listview_updated_this_month">Zadnji mesec</string>
+ <string name="listview_updated_earlier">Starejše</string>
+
+ <!-- Settings -->
+ <string name="settings_server_settings">Račun</string>
+ <string name="settings_url">Naslov strežnika</string>
+ <string name="settings_url_check_description">Pokaže, ali je naslov mogoče pripeti.</string>
+ <string name="settings_url_warn_http">OPOZORILO: protokol »http« ni varen. Priporočljivo je uporabiti protokol »https«.</string>
+ <string name="settings_username">Uporabniško ime</string>
+ <string name="settings_password">Geslo</string>
+ <string name="settings_password_unchanged">Geslo (ni spremenjeno)</string>
+ <string name="settings_password_check_description">Pokaže, ali so poverila pravilna.</string>
+ <string name="settings_submit">Poveži</string>
+ <string name="settings_submitting">Poteka vzpostavljanje povezave z&#8230;</string>
+ <string name="settings_note_mode">Prikazni način za zabeležke</string>
+ <string name="settings_theme_title">Tema</string>
+ <string name="settings_cert_category">Upravljanje s potrdili</string>
+ <string name="settings_cert_trust_system">Zaupaj sistemskim potrdilom</string>
+ <string name="settings_cert_trust_system_on">Sistemska in s strani uporabnika dodana potrdila CA bodo obravnavana kot varna (priporočljivo)</string>
+ <string name="settings_cert_trust_system_off">Sistemska in s strani uporabnika dodana potrdila CA ne bodo obravnavana kot varna</string>
+ <string name="settings_cert_reset">Ponastavi (ne)zaupanja vredna potrdila</string>
+ <string name="settings_cert_reset_summary">Ponastavi zaupanje vseh uporabniških potrdil</string>
+ <string name="settings_cert_reset_toast">Vsa uporabniška potrdila so počiščena.</string>
+
+ <!-- Certificates -->
+ <string name="certificate_notification_connection_security">Beležka Notes – varnost povezave</string>
+ <string name="trust_certificate_unknown_certificate_found">Program je zaznal uporabo neznanega potrdila. Ali želite potrditi zaupanje v potrdilo?</string>
+
+ <!-- Network -->
+ <string name="network_connecting">Poteka vzpostavljanje povezave ...</string>
+ <string name="network_connected">Povezano</string>
+ <string name="network_disconnected">Na voljo ni nobenega omrežja</string>
+
+ <!-- Error -->
+ <string name="error_sync">Usklajevanje je spodletelo: %1$s</string>
+ <string name="error_invalid_login">Neveljavna prijava: %1$s</string>
+ <string name="error_json">Ali je program Beležka Notes nameščen na strežniku?</string>
+ <string name="error_io">povezava s strežnikom je okvarjena</string>
+ <string name="error_no_network">ni omrežne povezave</string>
+ <string name="error_server">naslov/strežnik je naveden napačno</string>
+ <string name="error_url_malformed">Napačen naslov strežnika</string>
+ <string name="error_username_password_invalid">Napačno uporabniško ime ali geslo</string>
+
+ <!-- Snackbar Actions -->
+ <string name="snackbar_settings">Nastavitve</string>
+
+ <!-- About -->
+ <string name="about_version_title">Različica</string>
+ <string name="about_version">Trenutno je v uporabi &lt;strong>%1$s&lt;/strong></string>
+ <string name="about_maintainer_title">Vzdrževalec</string>
+ <string name="about_developers_title">Razvijalci</string>
+ <string name="about_translators_title">Prevajalci</string>
+ <string name="about_translators_transifex">Skupnost Nextcloud na &lt;a href=\"%1$s\">Transifex&lt;/a></string>
+ <string name="about_testers_title">Preizkuševalci</string>
+ <string name="about_source_title">Izvorna koda</string>
+ <string name="about_source">Projekt uporablja okolje GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_issues_title">Odzivi</string>
+ <string name="about_issues">Poročila o hroščih, predloge za izboljšave in prošnje za nove programske zmožnosti je mogoče objaviti na sledilniku GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_translate_title">Prevodi</string>
+ <string name="about_translate">Za urejanje prevodov Projekta Nextcloud se uporablja spletno okolje Transifex: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
+ <string name="about_app_license_title">Dovoljenje za uporabo</string>
+ <string name="about_app_license">Program je objavljen pod pogoji Splošnega javnega dovoljenja (GNU GPL) različice 3 ali novejše.</string>
+ <string name="about_app_license_button">Podrobno besedilo dovoljenja</string>
+ <string name="about_icons_disclaimer_title">Ikone</string>
+ <string name="about_icons_disclaimer">&lt;p>Ikono programa je ustvaril %1$s&lt;/p>&lt;p>Vse ostale ikone, uporabljene v programu, so del zbirke &lt;a href=\"https://materialdesignicons.com/\">Material Design Icons&lt;/a>, ki jo je pod pogoji dovoljenja Apache 2.0 objavilo podjetje Google Inc.&lt;/p></string>
+ <string name="about_credits_tab_title">Zasluge</string>
+ <string name="about_contribution_tab_title">Skupnost</string>
+ <string name="about_license_tab_title">Dovoljenje</string>
+
+ <!-- Widgets -->
+ <string name="widget_note_list_title">Seznam zabeležk</string>
+ <string name="widget_note_list_placeholder">Ni zabeležk</string>
+ <string name="widget_single_note_title">Samostojna zabeležka</string>
+ <string name="widget_single_note_placeholder_tv">Zabeležke ni mogoče najti</string>
+ <string name="widget_create_note">Ustvari zabeležko</string>
+ <string name="widget_not_logged_in">Pred uporabo gradnika se je treba prijaviti v program Beležka Notes</string>
+ <string name="widget_entry_fav_contentDescription">Zvezdica označuje priljubljene predmete</string>
+ <string name="widget_app_launcher_contentDescription">Zažene program</string>
+
+ <string name="activity_select_single_note">Izbor zabeležke</string>
+
+ <!-- Shortcuts -->
+ <string name="shortcut_create_long">Ustvari novo zabeležko</string>
+
+ <string name="pref_value_theme_light">Svetla</string>
+ <string name="pref_value_theme_dark">Temna</string>
+
+ <!-- Array: note modes -->
+ <string-array name="noteMode_entries">
+ <item>Odpre se v urejevalnem načinu</item>
+ <item>Odpre se v predogledu</item>
+ <item>Zapomni si zadnjo izbiro</item>
+ </string-array>
+
<!-- Plurals -->
<plurals name="ab_selected">
- <item quantity="one">%d izbran(a)</item>
- <item quantity="two">%d izbrana(i)</item>
- <item quantity="few">%d izbranih</item>
+ <item quantity="one">%d izbrana</item>
+ <item quantity="two">%d izbrani</item>
+ <item quantity="few">%d izbrane</item>
<item quantity="other">%d izbranih</item>
</plurals>
-</resources> \ No newline at end of file
+</resources>
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index daa05be9..3f9f22ea 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -3,13 +3,19 @@
<string name="app_name">Shënime</string>
<string name="no_notes">Nuk ka shënime</string>
+ <string name="label_all_notes">Të gjitha shënimet</string>
+ <string name="label_favorites">Të preferuarat</string>
<string name="action_create">Shënim i ri</string>
<string name="action_settings">Konfigurimet</string>
+ <string name="action_trashbin">Shënimet e fshira</string>
<string name="action_search">Kërko</string>
<string name="action_create_save">Ruaj</string>
+ <string name="simple_cancel">Anullo</string>
+ <string name="simple_edit">Redakto</string>
<string name="action_edit_save">Ruaj</string>
<string name="action_edit_saving">Duke ruajtur &#8230;</string>
<string name="action_edit_saved">U ruajt</string>
+ <string name="simple_about">Rreth </string>
<string name="action_select_note">Selekto shënimin</string>
<string name="action_note_deleted">Shënimi u fshi</string>
<string name="action_note_restored">Shënimi i rivendos</string>
@@ -25,12 +31,16 @@
<string name="menu_share">Ndaj</string>
<string name="menu_about">Rreth nesh</string>
+ <string name="change_category_title">Zgjidh një kategori</string>
+
<string name="listview_updated_today">Sot</string>
<string name="listview_updated_yesterday">Dje</string>
<string name="listview_updated_this_week">Këtë javë</string>
<string name="listview_updated_this_month">Këtë muaj</string>
<string name="listview_updated_earlier">Më herët</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">Llogari</string>
<string name="settings_url">Adresa e serverit</string>
<string name="settings_url_check_description">Tregon nëse adresa mund të bëhet ping.</string>
<string name="settings_url_warn_http">PARALAJMËRIM: \"http\" nuk është e sigurt. Ju lutemi përdorni \"https\".</string>
@@ -41,6 +51,8 @@
<string name="settings_submit">Lidhu</string>
<string name="settings_submitting">Duke u lidhur &#8230;</string>
<string name="settings_note_mode">Mënyra e paraqitjes për Shënimet</string>
+ <string name="settings_theme_title">Temë</string>
+ <string name="settings_cert_category">Menaxhoni certifikatat</string>
<string name="settings_cert_trust_system">Beso tek çertifikatat e sistemit</string>
<string name="settings_cert_trust_system_on">Sistemi dhe përdoruesit e shtuar CAs do të besohen (rekomandohet)</string>
<string name="settings_cert_trust_system_off">Sistemi dhe përdoruesit e shtuar CAs nuk do të besohen</string>
@@ -100,6 +112,7 @@
<string name="widget_single_note_placeholder_tv">Shënimi nuk u gjet</string>
<string name="widget_create_note">Krijoni shënim</string>
<string name="widget_not_logged_in">Ju lutemi identifikohuni në aplikacion përpara se të përdorni këtë widget</string>
+ <string name="widget_entry_fav_contentDescription">Ikona e yllit përdoret për të treguar artikullin si të preferuar</string>
<string name="widget_app_launcher_contentDescription">Hape aplikacionin</string>
<string name="activity_select_single_note">Zgjidh shënimin</string>
@@ -107,6 +120,9 @@
<!-- Shortcuts -->
<string name="shortcut_create_long">Krijo një shënim të ri</string>
+ <string name="pref_value_theme_light">E çelët</string>
+ <string name="pref_value_theme_dark">E errët</string>
+
<!-- Array: note modes -->
<string-array name="noteMode_entries">
<item>Hapur në modalitetin e redaktimit</item>
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 6217065f..b4f0f28a 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Омиљене</string>
<string name="action_create">Нова белешка</string>
<string name="action_settings">Поставке</string>
+ <string name="action_trashbin">Обрисане белешке</string>
<string name="action_search">Тражи</string>
<string name="action_create_save">Сачувај</string>
<string name="simple_cancel">Поништи</string>
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 0bfb16d0..767a0b5a 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -25,12 +25,16 @@
<string name="menu_share">Dela</string>
<string name="menu_about">Om</string>
+ <string name="change_category_title">Välj en kategori</string>
+
<string name="listview_updated_today">Idag</string>
<string name="listview_updated_yesterday">Igår</string>
<string name="listview_updated_this_week">Denna vecka</string>
<string name="listview_updated_this_month">Denna månad</string>
<string name="listview_updated_earlier">Tidigare</string>
+ <!-- Settings -->
+ <string name="settings_server_settings">Konto</string>
<string name="settings_url">Serveradress</string>
<string name="settings_url_check_description">Visar om adressen kan pingas.</string>
<string name="settings_url_warn_http">VARNING: \"http\" är osäkert. Vänligen använd \"https\".</string>
@@ -41,6 +45,7 @@
<string name="settings_submit">Anslut</string>
<string name="settings_submitting">Ansluter &#8230;</string>
<string name="settings_note_mode">Visningslägen för Anteckningar</string>
+ <string name="settings_cert_category">Hantera certifikat</string>
<string name="settings_cert_trust_system">Lita på systemcertifikat</string>
<string name="settings_cert_trust_system_on">System- och användartillagda CAs kommer vara betrodda (rekommenderas)</string>
<string name="settings_cert_trust_system_off">System- och användartillagda CAs kommer inte vara betrodda</string>
@@ -76,7 +81,7 @@
<string name="about_maintainer_title">Underhållare</string>
<string name="about_developers_title">Utvecklare</string>
<string name="about_translators_title">Översättare</string>
- <string name="about_translators_transifex">Nextcloud community på &lt;a href=\"%1$s\">Transifex&lt;/a></string>
+ <string name="about_translators_transifex">Nextcloud-gemenskapen på &lt;a href=\"%1$s\">Transifex&lt;/a></string>
<string name="about_testers_title">Testare</string>
<string name="about_source_title">Källkod</string>
<string name="about_source">Detta projekt finns på GitHub: &lt;a href=\"%1$s\">%1$s&lt;/a></string>
@@ -100,6 +105,7 @@
<string name="widget_single_note_placeholder_tv">Anteckning hittades inte</string>
<string name="widget_create_note">Skapa anteckning</string>
<string name="widget_not_logged_in">Vänligen logga in i Anteckningar innan denna används</string>
+ <string name="widget_entry_fav_contentDescription">Stjärnan används för att beteckna ett objekt som favorit</string>
<string name="widget_app_launcher_contentDescription">Startar app</string>
<string name="activity_select_single_note">Välj anteckning</string>
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 59aae35a..3fb3e16f 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -7,6 +7,7 @@
<string name="label_favorites">Sık Kullanılanlar</string>
<string name="action_create">Not ekle</string>
<string name="action_settings">Ayarlar</string>
+ <string name="action_trashbin">Silinmiş notlar</string>
<string name="action_search">Arama</string>
<string name="action_create_save">Kaydet</string>
<string name="simple_cancel">İptal</string>
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 4a2a0553..7ffe1499 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -1,23 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="app_name">便笺</string>
- <string name="no_notes">没有便笺</string>
- <string name="label_all_notes">所有便笺</string>
+ <string name="app_name">便签</string>
+ <string name="no_notes">还没有便签</string>
+ <string name="label_all_notes">所有便签</string>
<string name="label_favorites">收藏</string>
- <string name="action_create">新建便笺</string>
+ <string name="action_create">新建便签</string>
<string name="action_settings">设置</string>
+ <string name="action_trashbin">已删除的笔记</string>
<string name="action_search">搜索</string>
<string name="action_create_save">保存</string>
<string name="simple_cancel">取消</string>
<string name="simple_edit">编辑</string>
<string name="action_edit_save">保存</string>
- <string name="action_edit_saving">保存 &#8230;</string>
+ <string name="action_edit_saving">正在保存 &#8230;</string>
<string name="action_edit_saved">已保存</string>
<string name="simple_about">关于</string>
- <string name="action_select_note">选择便笺</string>
- <string name="action_note_deleted">已删除的笔记</string>
- <string name="action_note_restored">已恢复笔记</string>
+ <string name="action_select_note">选择便签</string>
+ <string name="action_note_deleted">已删除的便签</string>
+ <string name="action_note_restored">已恢复便签</string>
<string name="action_undo">撤销</string>
<string name="action_drawer_open">打开导航</string>
<string name="action_drawer_close">关闭导航</string>
@@ -27,7 +28,7 @@
<string name="menu_change_category">类别</string>
<string name="menu_favorite">收藏</string>
<string name="menu_preview">预览</string>
- <string name="menu_share">分享</string>
+ <string name="menu_share">共享</string>
<string name="menu_about">关于</string>
<string name="change_category_title">选择一个分类</string>
@@ -41,13 +42,17 @@
<!-- Settings -->
<string name="settings_server_settings">账户设置</string>
<string name="settings_url">服务器地址</string>
+ <string name="settings_url_check_description">测试服务器是否可Ping通.</string>
<string name="settings_url_warn_http">警告:“http”是不安全的,请使用“https”。</string>
<string name="settings_username">用户名</string>
<string name="settings_password">密码</string>
<string name="settings_password_unchanged">密码(没修改)</string>
+ <string name="settings_password_check_description">显示证书是否正确。</string>
<string name="settings_submit">连接</string>
<string name="settings_submitting">连接 &#8230;</string>
<string name="settings_note_mode">笔记的显示模式</string>
+ <string name="settings_theme_title">主题</string>
+ <string name="settings_cert_category">管理证书</string>
<string name="settings_cert_trust_system">信任系统证书</string>
<string name="settings_cert_trust_system_on">系统和用户添加的 CAs 将被信任(推荐)</string>
<string name="settings_cert_trust_system_off">系统和用户添加的 CAs 将不被信任</string>
@@ -95,6 +100,7 @@
<string name="about_app_license">此程序通过GNU通用公共许可证V3+授权。</string>
<string name="about_app_license_button">查看授权</string>
<string name="about_icons_disclaimer_title">图标</string>
+ <string name="about_icons_disclaimer">&lt;p>原创图标来自 %1$s&lt;/p>&lt;p>本应用中使用的其他图标来自 Google Inc. 基于创作共用协议提供的 &lt;a href=\"https://materialdesignicons.com/\">Material Design Icons&lt;/a>.&lt;/p></string>
<string name="about_credits_tab_title">致谢</string>
<string name="about_contribution_tab_title">贡献</string>
<string name="about_license_tab_title">授权</string>
@@ -105,6 +111,8 @@
<string name="widget_single_note_title">单个便笺</string>
<string name="widget_single_note_placeholder_tv">未找到笔记</string>
<string name="widget_create_note">创建笔记</string>
+ <string name="widget_not_logged_in">请在使用此小部件之前登录Notes</string>
+ <string name="widget_entry_fav_contentDescription">标星项目为收藏</string>
<string name="widget_app_launcher_contentDescription">启动应用程序</string>
<string name="activity_select_single_note">选择笔记</string>
@@ -112,6 +120,9 @@
<!-- Shortcuts -->
<string name="shortcut_create_long">创建新便笺</string>
+ <string name="pref_value_theme_light">亮色主题</string>
+ <string name="pref_value_theme_dark">暗色主题</string>
+
<!-- Array: note modes -->
<string-array name="noteMode_entries">
<item>以编辑模式打开</item>
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 84abe509..ef9efb0b 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -5,7 +5,7 @@
<color name="primary">#0082C9</color>
<color name="primary_dark">#286090</color>
- <color name="separator">#d2d2d2</color>
+ <color name="separator">#fbfbfb</color>
<color name="bg_transparent">#aa000000</color>
<color name="bg_highlighted">#f3f3f3</color>
@@ -19,11 +19,26 @@
<color name="fg_contrast">#ffffff</color>
<color name="icon_grey">#757575</color>
- <color name="widget_background">#FFFFFF</color>
+ <color name="widget_background">#DFFFFFFF</color>
+ <color name="widget_fg_default">#000000</color>
+ <color name="widget_fg_contrast">#ffffff</color>
<color name="category_background">#FFF</color>
<color name="category_border">@color/primary</color>
- <color name="widget_fg_default">#000000</color>
- <color name="widget_fg_contrast">#ffffff</color>
-</resources> \ No newline at end of file
+ <!-- Dark Theme -->
+ <!-- Defined here until appwidgets can use night/colors -->
+ <color name="bg_transparent_dark_theme">#aa000000</color>
+ <color name="bg_highlighted_dark_theme">#f3f3f3</color>
+ <color name="bg_normal_dark_theme">#222</color>
+ <color name="bg_attention_dark_theme">#d40000</color>
+ <color name="bg_warning_dark_theme">#ffcc00</color>
+ <color name="fg_default_dark_theme">#eeeeee</color>
+ <color name="fg_default_selection_dark_theme">#333333</color>
+ <color name="fg_default_low_dark_theme">#666666</color>
+ <color name="fg_default_high_dark_theme">#cccccc</color>
+ <color name="fg_contrast_dark_theme">#ffffff</color>
+
+ <color name="widget_background_dark_theme">#bf222222</color>
+ <color name="widget_fg_dark_theme">#ffffff</color>
+</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b850f096..cec5237e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -16,6 +16,9 @@
<string name="action_edit_saving">Saving &#8230;</string>
<string name="action_edit_saved">Saved</string>
<string name="simple_about">About</string>
+ <string name="simple_bold">Bold</string>
+ <string name="simple_link">Link</string>
+ <string name="simple_italic">Italic</string>
<string name="action_select_note">Select note</string>
<string name="action_note_deleted">Note deleted</string>
<string name="action_note_restored">Note restored</string>