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

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-06-10 17:58:43 +0300
committerStefan Niedermann <info@niedermann.it>2020-06-10 17:58:43 +0300
commit2b71e1b2f8eca83c40afba079b2379e9e1c5ea1d (patch)
tree164de8264e0e402d1195e269a89a3be34b38a67f /app/src/main/java/it/niedermann/owncloud
parent15b3906b0edde550a566181472f0e9059e2dc731 (diff)
Remove markdown rendering due to its bad performance
Diffstat (limited to 'app/src/main/java/it/niedermann/owncloud')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java28
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/android/fragment/PreferencesFragment.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/GridItemDecoration.java8
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewGridHolder.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java35
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithExcerpt.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithoutExcerpt.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/model/SectionItemDecoration.java39
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java13
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_9_10.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/NoteUtil.java23
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/util/Notes.java13
12 files changed, 102 insertions, 68 deletions
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 ef940a63..c5956a80 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
@@ -23,6 +23,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.SearchView;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.GravityCompat;
import androidx.core.view.ViewCompat;
@@ -68,6 +69,7 @@ import it.niedermann.owncloud.notes.model.GridItemDecoration;
import it.niedermann.owncloud.notes.model.ISyncCallback;
import it.niedermann.owncloud.notes.model.Item;
import it.niedermann.owncloud.notes.model.ItemAdapter;
+import it.niedermann.owncloud.notes.model.SectionItemDecoration;
import it.niedermann.owncloud.notes.model.LocalAccount;
import it.niedermann.owncloud.notes.model.NavigationAdapter;
import it.niedermann.owncloud.notes.model.NavigationAdapter.CategoryNavigationItem;
@@ -84,9 +86,9 @@ import it.niedermann.owncloud.notes.util.NoteUtil;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
-import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
import static it.niedermann.owncloud.notes.branding.BrandingUtil.getSecondaryForegroundColorDependingOnTheme;
import static it.niedermann.owncloud.notes.util.ColorUtil.contrastRatioIsSufficient;
+import static it.niedermann.owncloud.notes.util.Notes.isGridViewEnabled;
import static it.niedermann.owncloud.notes.util.SSOUtil.askForNewAccount;
import static java.util.Arrays.asList;
@@ -129,7 +131,7 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi
protected FloatingActionButton fabCreate;
private RecyclerView listView;
- protected ItemAdapter adapter = null;
+ protected ItemAdapter adapter;
protected NotesDatabase db = null;
private NavigationAdapter adapterCategories;
@@ -183,7 +185,10 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi
db = NotesDatabase.getInstance(this);
- gridView = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_gridview), false);
+ gridView = isGridViewEnabled(this);
+ if (!gridView) {
+ activityBinding.activityNotesListView.setBackgroundColor(ContextCompat.getColor(this, R.color.primary));
+ }
setupToolbars();
setupNavigationList(categoryAdapterSelectedItem);
@@ -606,9 +611,22 @@ public class NotesListViewActivity extends LockedActivity implements NoteClickLi
int spanCount = (int) ((displayMetrics.widthPixels / displayMetrics.density) / getResources().getInteger(R.integer.max_dp_grid_view));
StaggeredGridLayoutManager gridLayoutManager = new StaggeredGridLayoutManager(spanCount, StaggeredGridLayoutManager.VERTICAL);
listView.setLayoutManager(gridLayoutManager);
- listView.addItemDecoration(new GridItemDecoration(adapter, getResources().getDimensionPixelSize(R.dimen.spacer_2x)));
+ listView.addItemDecoration(new GridItemDecoration(adapter,
+ getResources().getDimensionPixelSize(R.dimen.spacer_3x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_5x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_3x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_1x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_2x)
+ ));
} else {
- listView.setLayoutManager(new LinearLayoutManager(this));
+ LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+ listView.setLayoutManager(layoutManager);
+ listView.addItemDecoration(new SectionItemDecoration(adapter,
+ getResources().getDimensionPixelSize(R.dimen.spacer_6x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_5x),
+ getResources().getDimensionPixelSize(R.dimen.spacer_1x),
+ 0
+ ));
}
}
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 e5121b2e..c89763ef 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
@@ -66,7 +66,8 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
final Boolean gridView = (Boolean) newValue;
Log.v(TAG, "gridView: " + gridView);
requireActivity().setResult(Activity.RESULT_OK);
- new Thread(() -> NotesDatabase.getInstance(requireContext()).regenerateExcerpts(!gridView)).start();
+ new Thread(() -> NotesDatabase.getInstance(requireContext()).regenerateExcerpts(gridView)).start();
+ Notes.updateGridViewEnabled(gridView);
return true;
});
} else {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/GridItemDecoration.java b/app/src/main/java/it/niedermann/owncloud/notes/model/GridItemDecoration.java
index 3d7ae944..6443121e 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/GridItemDecoration.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/GridItemDecoration.java
@@ -4,21 +4,25 @@ import android.graphics.Rect;
import android.view.View;
import androidx.annotation.NonNull;
+import androidx.annotation.Px;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
-public class GridItemDecoration extends RecyclerView.ItemDecoration {
+public class GridItemDecoration extends SectionItemDecoration {
@NonNull
private final ItemAdapter adapter;
private final int gutter;
- public GridItemDecoration(@NonNull ItemAdapter adapter, int gutter) {
+ public GridItemDecoration(@NonNull ItemAdapter adapter, @Px int sectionLeft, @Px int sectionTop, @Px int sectionRight, @Px int sectionBottom, @Px int gutter) {
+ super(adapter, sectionLeft, sectionTop, sectionRight, sectionBottom);
this.adapter = adapter;
this.gutter = gutter;
}
+ @Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
+ super.getItemOffsets(outRect, view, parent, state);
final int position = parent.getChildAdapterPosition(view);
final StaggeredGridLayoutManager.LayoutParams lp = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewGridHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewGridHolder.java
index 22062832..0054ce01 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewGridHolder.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewGridHolder.java
@@ -14,7 +14,7 @@ public class NoteViewGridHolder extends NoteViewHolder {
private final ItemNotesListNoteItemGridBinding binding;
public NoteViewGridHolder(@NonNull ItemNotesListNoteItemGridBinding binding, @NonNull NoteClickListener noteClickListener) {
- super(binding.getRoot(), noteClickListener, true);
+ super(binding.getRoot(), noteClickListener);
this.binding = binding;
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java
index f063167a..db211b85 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolder.java
@@ -4,8 +4,6 @@ import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Build;
-import android.os.Handler;
-import android.os.Looper;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.BackgroundColorSpan;
@@ -21,37 +19,23 @@ import androidx.annotation.Nullable;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.recyclerview.widget.RecyclerView;
-import com.yydcdut.markdown.MarkdownProcessor;
-import com.yydcdut.markdown.syntax.text.TextFactory;
-
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.branding.BrandingUtil;
-import it.niedermann.owncloud.notes.util.MarkDownUtil;
import it.niedermann.owncloud.notes.util.Notes;
import static it.niedermann.owncloud.notes.util.ColorUtil.contrastRatioIsSufficient;
import static it.niedermann.owncloud.notes.util.ColorUtil.isColorDark;
-import static it.niedermann.owncloud.notes.util.MarkDownUtil.parseCompat;
public abstract class NoteViewHolder extends RecyclerView.ViewHolder {
@NonNull
private final NoteClickListener noteClickListener;
- private final boolean renderMarkdown;
- @Nullable
- private MarkdownProcessor markdownProcessor;
- public NoteViewHolder(@NonNull View v, @NonNull NoteClickListener noteClickListener, boolean renderMarkdown) {
+ public NoteViewHolder(@NonNull View v, @NonNull NoteClickListener noteClickListener) {
super(v);
this.noteClickListener = noteClickListener;
- this.renderMarkdown = renderMarkdown;
- if (renderMarkdown) {
- markdownProcessor = new MarkdownProcessor(itemView.getContext());
- markdownProcessor.factory(TextFactory.create());
- markdownProcessor.config(MarkDownUtil.getMarkDownConfiguration(itemView.getContext()).build());
- }
}
@CallSuper
@@ -125,22 +109,7 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder {
processedContent = spannableString;
}
- bindContent(textView, processedContent);
- }
-
- private void bindContent(@NonNull TextView textView, @NonNull CharSequence charSequence) {
- if (renderMarkdown && markdownProcessor != null) {
- new Thread(() -> {
- try {
- final CharSequence parsedCharSequence = parseCompat(markdownProcessor, charSequence);
- new Handler(Looper.getMainLooper()).post(() -> textView.setText(parsedCharSequence));
- } catch (StringIndexOutOfBoundsException e) {
- // Workaround for RxMarkdown: https://github.com/stefan-niedermann/nextcloud-notes/issues/668
- }
- }).start();
- } else {
- textView.setText(charSequence);
- }
+ textView.setText(processedContent);
}
public abstract void showSwipe(boolean left);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithExcerpt.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithExcerpt.java
index a4ab40a2..1becf381 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithExcerpt.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithExcerpt.java
@@ -14,7 +14,7 @@ public class NoteViewHolderWithExcerpt extends NoteViewHolder {
private final ItemNotesListNoteItemWithExcerptBinding binding;
public NoteViewHolderWithExcerpt(@NonNull ItemNotesListNoteItemWithExcerptBinding binding, @NonNull NoteClickListener noteClickListener) {
- super(binding.getRoot(), noteClickListener, false);
+ super(binding.getRoot(), noteClickListener);
this.binding = binding;
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithoutExcerpt.java b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithoutExcerpt.java
index ef56acbb..78a74a5f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithoutExcerpt.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/NoteViewHolderWithoutExcerpt.java
@@ -14,7 +14,7 @@ public class NoteViewHolderWithoutExcerpt extends NoteViewHolder {
private final ItemNotesListNoteItemWithoutExcerptBinding binding;
public NoteViewHolderWithoutExcerpt(@NonNull ItemNotesListNoteItemWithoutExcerptBinding binding, @NonNull NoteClickListener noteClickListener) {
- super(binding.getRoot(), noteClickListener, false);
+ super(binding.getRoot(), noteClickListener);
this.binding = binding;
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/model/SectionItemDecoration.java b/app/src/main/java/it/niedermann/owncloud/notes/model/SectionItemDecoration.java
new file mode 100644
index 00000000..baf95926
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/model/SectionItemDecoration.java
@@ -0,0 +1,39 @@
+package it.niedermann.owncloud.notes.model;
+
+import android.graphics.Rect;
+import android.view.View;
+
+import androidx.annotation.CallSuper;
+import androidx.annotation.NonNull;
+import androidx.annotation.Px;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+
+public class SectionItemDecoration extends RecyclerView.ItemDecoration {
+
+ @NonNull
+ private final ItemAdapter adapter;
+ private final int sectionLeft;
+ private final int sectionTop;
+ private final int sectionRight;
+ private final int sectionBottom;
+
+ public SectionItemDecoration(@NonNull ItemAdapter adapter, @Px int sectionLeft, @Px int sectionTop, @Px int sectionRight, @Px int sectionBottom) {
+ this.adapter = adapter;
+ this.sectionLeft = sectionLeft;
+ this.sectionTop = sectionTop;
+ this.sectionRight = sectionRight;
+ this.sectionBottom = sectionBottom;
+ }
+
+ @CallSuper
+ public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
+ final int position = parent.getChildAdapterPosition(view);
+ if (adapter.getItemViewType(position) == ItemAdapter.TYPE_SECTION) {
+ outRect.left = sectionLeft;
+ outRect.top = sectionTop;
+ outRect.right = sectionRight;
+ outRect.bottom = sectionBottom;
+ }
+ }
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
index 286bfbd2..ae595cd7 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
@@ -58,6 +58,7 @@ import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACT
import static it.niedermann.owncloud.notes.android.appwidget.NoteListWidget.updateNoteListWidgets;
import static it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget.updateSingleNoteWidgets;
import static it.niedermann.owncloud.notes.model.NoteListsWidgetData.MODE_DISPLAY_CATEGORY;
+import static it.niedermann.owncloud.notes.util.Notes.isGridViewEnabled;
/**
* Helps to add, get, update and delete Notes with the option to trigger a Resync with the Server.
@@ -94,7 +95,7 @@ public class NotesDatabase extends AbstractNotesDatabase {
* @param note Note
*/
public long addNoteAndSync(SingleSignOnAccount ssoAccount, long accountId, CloudNote note) {
- DBNote dbNote = new DBNote(0, 0, note.getModified(), note.getTitle(), note.getContent(), note.isFavorite(), note.getCategory(), note.getEtag(), DBStatus.LOCAL_EDITED, accountId, NoteUtil.generateNoteExcerpt(note.getContent()), 0);
+ DBNote dbNote = new DBNote(0, 0, note.getModified(), note.getTitle(), note.getContent(), note.isFavorite(), note.getCategory(), note.getEtag(), DBStatus.LOCAL_EDITED, accountId, NoteUtil.generateNoteExcerpt(note.getContent(), isGridViewEnabled(context)), 0);
long id = addNote(accountId, dbNote);
notifyWidgets();
getNoteServerSyncHelper().scheduleSync(ssoAccount, true);
@@ -121,7 +122,7 @@ public class NotesDatabase extends AbstractNotesDatabase {
} else {
values.put(key_status, DBStatus.VOID.getTitle());
values.put(key_account_id, accountId);
- values.put(key_excerpt, NoteUtil.generateNoteExcerpt(note.getContent()));
+ values.put(key_excerpt, NoteUtil.generateNoteExcerpt(note.getContent(), isGridViewEnabled(context)));
}
if (note.getRemoteId() > 0) {
values.put(key_remote_id, note.getRemoteId());
@@ -135,12 +136,12 @@ public class NotesDatabase extends AbstractNotesDatabase {
return db.insert(table_notes, null, values);
}
- public void regenerateExcerpts(boolean stripMarkdown) {
+ public void regenerateExcerpts(boolean keepMarkdown) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.query(table_notes, new String[]{key_id, key_content}, key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, null, null, null);
ContentValues values = new ContentValues(1);
while (cursor.moveToNext()) {
- values.put(key_excerpt, NoteUtil.generateNoteExcerpt(cursor.getString(1), stripMarkdown));
+ values.put(key_excerpt, NoteUtil.generateNoteExcerpt(cursor.getString(1), keepMarkdown));
db.update(table_notes, values, key_id + " = ?", new String[]{String.valueOf(cursor.getInt(0))});
}
cursor.close();
@@ -521,7 +522,7 @@ public class NotesDatabase extends AbstractNotesDatabase {
if (newContent == null) {
newNote = new DBNote(oldNote.getId(), oldNote.getRemoteId(), oldNote.getModified(), oldNote.getTitle(), oldNote.getContent(), oldNote.isFavorite(), oldNote.getCategory(), oldNote.getEtag(), DBStatus.LOCAL_EDITED, accountId, oldNote.getExcerpt(), oldNote.getScrollY());
} else {
- newNote = new DBNote(oldNote.getId(), oldNote.getRemoteId(), Calendar.getInstance(), NoteUtil.generateNonEmptyNoteTitle(newContent, getContext()), newContent, oldNote.isFavorite(), oldNote.getCategory(), oldNote.getEtag(), DBStatus.LOCAL_EDITED, accountId, NoteUtil.generateNoteExcerpt(newContent), oldNote.getScrollY());
+ newNote = new DBNote(oldNote.getId(), oldNote.getRemoteId(), Calendar.getInstance(), NoteUtil.generateNonEmptyNoteTitle(newContent, getContext()), newContent, oldNote.isFavorite(), oldNote.getCategory(), oldNote.getEtag(), DBStatus.LOCAL_EDITED, accountId, NoteUtil.generateNoteExcerpt(newContent, isGridViewEnabled(context)), oldNote.getScrollY());
}
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues(7);
@@ -585,7 +586,7 @@ public class NotesDatabase extends AbstractNotesDatabase {
values.put(key_favorite, remoteNote.isFavorite());
values.put(key_category, getCategoryIdByTitle(localAccount.getId(), remoteNote.getCategory()));
values.put(key_etag, remoteNote.getEtag());
- values.put(key_excerpt, NoteUtil.generateNoteExcerpt(remoteNote.getContent()));
+ values.put(key_excerpt, NoteUtil.generateNoteExcerpt(remoteNote.getContent(), isGridViewEnabled(context)));
String whereClause;
String[] whereArgs;
if (forceUnchangedDBNoteState != null) {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_9_10.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_9_10.java
index 98ddc601..855130f1 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_9_10.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/migration/Migration_9_10.java
@@ -18,7 +18,7 @@ public class Migration_9_10 {
Cursor cursor = db.query("NOTES", new String[]{"ID", "CONTENT"}, null, null, null, null, null, null);
while (cursor.moveToNext()) {
ContentValues values = new ContentValues();
- values.put("EXCERPT", NoteUtil.generateNoteExcerpt(cursor.getString(1)));
+ values.put("EXCERPT", NoteUtil.generateNoteExcerpt(cursor.getString(1), false));
db.update("NOTES", values, "ID" + " = ? ", new String[]{cursor.getString(0)});
}
cursor.close();
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 337fb521..225f63e9 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
@@ -81,29 +81,18 @@ public class NoteUtil {
/**
* Generates an excerpt of a content String (reads second line which is not empty)
*
- * @param content {@link String}
+ * @param content {@link String}
+ * @param keepMarkdown whether or not the markdown should be stripped from the excerpt
* @return excerpt String
*/
@NonNull
- public static String generateNoteExcerpt(@NonNull String content) {
- return generateNoteExcerpt(content, true); // TODO check gridview
- }
-
- /**
- * Generates an excerpt of a content String (reads second line which is not empty)
- *
- * @param content {@link String}
- * @param stripMarkdown whether or not the markdown should be stripped from the excerpt
- * @return excerpt String
- */
- @NonNull
- public static String generateNoteExcerpt(@NonNull String content, boolean stripMarkdown) {
+ public static String generateNoteExcerpt(@NonNull String content, boolean keepMarkdown) {
if (!content.contains("\n")) {
return "";
}
- return stripMarkdown
- ? truncateString(removeMarkDown(content.replaceFirst("^.*\n", "")), 150).replace("\n", " ")
- : truncateString(content.replaceFirst("^.*\n", ""), 200);
+ return keepMarkdown
+ ? truncateString(removeMarkDown(content.replaceFirst("^.*\n", "")), 150)
+ : truncateString(removeMarkDown(content.replaceFirst("^.*\n", "")), 150).replace("\n", " ");
}
@NonNull
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 9a4de905..f671bd2b 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
@@ -6,12 +6,15 @@ import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.preference.PreferenceManager;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.android.DarkModeSetting;
+import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
+
public class Notes extends Application {
private static final String TAG = Notes.class.getSimpleName();
@@ -20,6 +23,7 @@ public class Notes extends Application {
private static boolean isLocked = true;
private static long lastInteraction = 0;
private static String PREF_KEY_THEME;
+ private static boolean isGridViewEnabled = false;
@Override
public void onCreate() {
@@ -27,6 +31,7 @@ public class Notes extends Application {
setAppTheme(getAppTheme(getApplicationContext()));
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
lockedPreference = prefs.getBoolean(getString(R.string.pref_key_lock), false);
+ isGridViewEnabled = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_gridview), false);
super.onCreate();
}
@@ -34,6 +39,14 @@ public class Notes extends Application {
AppCompatDelegate.setDefaultNightMode(setting.getModeId());
}
+ public static boolean isGridViewEnabled(@NonNull Context context) {
+ return isGridViewEnabled;
+ }
+
+ public static void updateGridViewEnabled(Boolean gridView) {
+ isGridViewEnabled = gridView;
+ }
+
public static DarkModeSetting getAppTheme(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String mode;