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

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/.classpath9
-rw-r--r--app/.project33
-rw-r--r--app/build.gradle2
-rw-r--r--app/proguard-project.txt20
-rw-r--r--app/project.properties13
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/about/AboutActivity.java73
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java8
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryAdapter.java9
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java5
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java3
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/SupportUtil.java26
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java10
-rw-r--r--app/src/main/res/layout/activity_about.xml2
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin54708 -> 59203 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties3
-rwxr-xr-xgradlew117
-rw-r--r--gradlew.bat53
-rw-r--r--markdown/build.gradle10
21 files changed, 166 insertions, 239 deletions
diff --git a/app/.classpath b/app/.classpath
deleted file mode 100644
index 51769745..00000000
--- a/app/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
- <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="gen"/>
- <classpathentry kind="output" path="bin/classes"/>
-</classpath>
diff --git a/app/.project b/app/.project
deleted file mode 100644
index b3936bdb..00000000
--- a/app/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>OwnCloudNotes</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ApkBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/app/build.gradle b/app/build.gradle
index e551e090..8f39ab5b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 29
- buildToolsVersion '29.0.3'
+ buildToolsVersion '30.0.3'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
diff --git a/app/proguard-project.txt b/app/proguard-project.txt
deleted file mode 100644
index f2fe1559..00000000
--- a/app/proguard-project.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# To enable ProGuard in your project, edit project.properties
-# to define the proguard.config property as described in that file.
-#
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in ${sdk.dir}/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the ProGuard
-# include property in project.properties.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
diff --git a/app/project.properties b/app/project.properties
deleted file mode 100644
index f13bd4b1..00000000
--- a/app/project.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system edit
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-#
-# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
-#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-# Project target.
-target=android-19
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/about/AboutActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/about/AboutActivity.java
index d764ba7a..5c5bf519 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/about/AboutActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/about/AboutActivity.java
@@ -5,17 +5,23 @@ import android.os.Bundle;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.fragment.app.FragmentActivity;
+import androidx.viewpager2.adapter.FragmentStateAdapter;
+
+import com.google.android.material.tabs.TabLayoutMediator;
-import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.LockedActivity;
+import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.branding.BrandingUtil;
import it.niedermann.owncloud.notes.databinding.ActivityAboutBinding;
public class AboutActivity extends LockedActivity {
private ActivityAboutBinding binding;
+ private final static int POS_CREDITS = 0;
+ private final static int POS_CONTRIB = 1;
+ private final static int POS_LICENSE = 2;
+ private final static int TOTAL_COUNT = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -25,8 +31,22 @@ public class AboutActivity extends LockedActivity {
setContentView(binding.getRoot());
setSupportActionBar(binding.toolbar);
- binding.pager.setAdapter(new TabsPagerAdapter(getSupportFragmentManager()));
- binding.tabs.setupWithViewPager(binding.pager);
+ binding.pager.setAdapter(new TabsStateAdapter(this));
+ // generate title based on given position
+ new TabLayoutMediator(binding.tabs, binding.pager, (tab, position) -> {
+ switch (position) {
+ default: // Fall-through to credits tab
+ case POS_CREDITS:
+ tab.setText(R.string.about_credits_tab_title);
+ break;
+ case POS_CONTRIB:
+ tab.setText(R.string.about_contribution_tab_title);
+ break;
+ case POS_LICENSE:
+ tab.setText(R.string.about_license_tab_title);
+ break;
+ }
+ }).attach();
}
@Override
@@ -36,15 +56,15 @@ public class AboutActivity extends LockedActivity {
binding.tabs.setSelectedTabIndicatorColor(finalMainColor);
}
- private class TabsPagerAdapter extends FragmentPagerAdapter {
+ private static class TabsStateAdapter extends FragmentStateAdapter {
- TabsPagerAdapter(FragmentManager fragmentManager) {
- super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
+ TabsStateAdapter(FragmentActivity fa) {
+ super(fa);
}
@Override
- public int getCount() {
- return 3;
+ public int getItemCount() {
+ return TOTAL_COUNT;
}
/**
@@ -52,36 +72,17 @@ public class AboutActivity extends LockedActivity {
*/
@NonNull
@Override
- public Fragment getItem(int position) {
+ public Fragment createFragment(int position) {
switch (position) {
- case 1:
- return new AboutFragmentContributingTab();
-
- case 2:
- return new AboutFragmentLicenseTab();
-
- default:
+ default: // Fall-through to credits tab
+ case POS_CREDITS:
return new AboutFragmentCreditsTab();
- }
- }
- /**
- * generate title based on given position
- */
- @Override
- public CharSequence getPageTitle(int position) {
- switch (position) {
- case 0:
- return getString(R.string.about_credits_tab_title);
-
- case 1:
- return getString(R.string.about_contribution_tab_title);
-
- case 2:
- return getString(R.string.about_license_tab_title);
+ case POS_CONTRIB:
+ return new AboutFragmentContributingTab();
- default:
- return null;
+ case POS_LICENSE:
+ return new AboutFragmentLicenseTab();
}
}
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
index 7a4e6a51..c92cdf1f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java
@@ -13,6 +13,8 @@ import android.widget.EditText;
import androidx.annotation.ColorInt;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.preference.PreferenceManager;
@@ -43,7 +45,7 @@ public class BrandingUtil {
Log.v(TAG, "--- Read: shared_preference_theme_main");
return sharedPreferences.getInt(pref_key_branding_main, context.getApplicationContext().getResources().getColor(R.color.defaultBrand));
} else {
- return context.getResources().getColor(R.color.defaultBrand);
+ return ContextCompat.getColor(context, R.color.defaultBrand);
}
}
@@ -70,7 +72,7 @@ public class BrandingUtil {
if (isBrandingEnabled(context) && context instanceof BrandedActivity) {
if (mainColor != previousMainColor || textColor != previousTextColor) {
final BrandedActivity activity = (BrandedActivity) context;
- activity.runOnUiThread(activity::recreate);
+ activity.runOnUiThread(() -> ActivityCompat.recreate(activity));
}
}
}
@@ -80,7 +82,7 @@ public class BrandingUtil {
*/
@ColorInt
public static int getSecondaryForegroundColorDependingOnTheme(@NonNull Context context, @ColorInt int mainColor) {
- final int primaryColor = context.getResources().getColor(R.color.primary);
+ final int primaryColor = ContextCompat.getColor(context, R.color.primary);
final boolean isDarkTheme = NotesApplication.isDarkThemeActive(context);
if (isDarkTheme && !contrastRatioIsSufficient(mainColor, primaryColor)) {
Log.v(TAG, "Contrast ratio between brand color " + String.format("#%06X", (0xFFFFFF & mainColor)) + " and dark theme is too low. Falling back to WHITE as brand color.");
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryAdapter.java
index d938cb53..b5b4f394 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryAdapter.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryAdapter.java
@@ -9,6 +9,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatImageView;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.recyclerview.widget.RecyclerView;
@@ -50,17 +51,17 @@ public class CategoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
switch (category.id) {
case addItemId:
- Drawable wrapDrawable = DrawableCompat.wrap(context.getResources().getDrawable(category.icon));
- DrawableCompat.setTint(wrapDrawable, context.getResources().getColor(R.color.icon_color_default));
+ Drawable wrapDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(context, category.icon));
+ DrawableCompat.setTint(wrapDrawable, ContextCompat.getColor(context, R.color.icon_color_default));
categoryViewHolder.getIcon().setImageDrawable(wrapDrawable);
categoryViewHolder.getCategoryWrapper().setOnClickListener((v) -> listener.onCategoryAdded());
break;
case clearItemId:
- categoryViewHolder.getIcon().setImageDrawable(context.getResources().getDrawable(category.icon));
+ categoryViewHolder.getIcon().setImageDrawable(ContextCompat.getDrawable(context, category.icon));
categoryViewHolder.getCategoryWrapper().setOnClickListener((v) -> listener.onCategoryCleared());
break;
default:
- categoryViewHolder.getIcon().setImageDrawable(context.getResources().getDrawable(category.icon));
+ categoryViewHolder.getIcon().setImageDrawable(ContextCompat.getDrawable(context, category.icon));
categoryViewHolder.getCategoryWrapper().setOnClickListener((v) -> listener.onCategoryChosen(category.label));
break;
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java
index 1ce27fcc..66620320 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java
@@ -22,6 +22,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.SearchView;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.GravityCompat;
@@ -770,7 +771,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, V
case server_settings: {
// Recreate activity completely, because theme switching makes problems when only invalidating the views.
// @see https://github.com/stefan-niedermann/nextcloud-notes/issues/529
- recreate();
+ ActivityCompat.recreate(this);
break;
}
case manage_account: {
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java
index 645533a7..da5425b7 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java
@@ -12,6 +12,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Px;
+import androidx.core.content.ContextCompat;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -63,7 +64,7 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i
public <T extends Context & NoteClickListener> ItemAdapter(@NonNull T context, boolean gridView) {
this.noteClickListener = context;
this.gridView = gridView;
- this.mainColor = context.getResources().getColor(R.color.defaultBrand);
+ this.mainColor = ContextCompat.getColor(context, R.color.defaultBrand);
this.textColor = Color.WHITE;
final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
this.fontSize = getFontSizeFromPreferences(context, sp);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java
index 15810817..49535e96 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/NoteViewHolder.java
@@ -18,6 +18,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;
+import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.recyclerview.widget.RecyclerView;
@@ -112,7 +113,7 @@ public abstract class NoteViewHolder extends RecyclerView.ViewHolder {
protected void bindSearchableContent(@NonNull Context context, @NonNull TextView textView, @Nullable CharSequence searchQuery, @NonNull String content, int mainColor) {
CharSequence processedContent = content;
if (!TextUtils.isEmpty(searchQuery)) {
- @ColorInt final int searchBackground = context.getResources().getColor(R.color.bg_highlighted);
+ @ColorInt final int searchBackground = ContextCompat.getColor(context, R.color.bg_highlighted);
@ColorInt final int searchForeground = BrandingUtil.getSecondaryForegroundColorDependingOnTheme(context, mainColor);
// The Pattern.quote method will add \Q to the very beginning of the string and \E to the end of the string
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
index d324b9f6..4a890be0 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java
@@ -7,6 +7,7 @@ import android.util.Log;
import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
+import androidx.core.app.ActivityCompat;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
@@ -49,7 +50,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
final Boolean branding = (Boolean) newValue;
Log.v(TAG, "branding: " + branding);
requireActivity().setResult(Activity.RESULT_OK);
- requireActivity().recreate();
+ ActivityCompat.recreate(requireActivity());
return true;
});
} else {
@@ -94,7 +95,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
themePref.setOnPreferenceChangeListener((preference, newValue) -> {
NotesApplication.setAppTheme(DarkModeSetting.valueOf((String) newValue));
requireActivity().setResult(Activity.RESULT_OK);
- requireActivity().recreate();
+ ActivityCompat.recreate(requireActivity());
return true;
});
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java
index 4d09f6a3..f270fa9f 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/DisplayUtils.java
@@ -29,6 +29,7 @@ import android.text.style.MetricAffectingSpan;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -89,7 +90,7 @@ public class DisplayUtils {
this.mainColor = mainColor;
this.textColor = textColor;
this.current = current;
- this.highlightColor = context.getResources().getColor(R.color.bg_highlighted);
+ this.highlightColor = ContextCompat.getColor(context, R.color.bg_highlighted);
}
@Override
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/SupportUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/SupportUtil.java
index 9c117190..8bf80cb9 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/SupportUtil.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/SupportUtil.java
@@ -1,14 +1,10 @@
package it.niedermann.owncloud.notes.shared.util;
-import android.os.Build;
-import android.text.Html;
-import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;
import androidx.annotation.NonNull;
-
-import static android.os.Build.VERSION_CODES.N;
+import androidx.core.text.HtmlCompat;
/**
* Some helper functionality in alike the Android support library.
@@ -28,24 +24,8 @@ public class SupportUtil {
* @param formatArgs Arguments for the string resource.
*/
public static void setHtml(@NonNull TextView view, int stringId, Object... formatArgs) {
- view.setText(SupportUtil.fromHtml(view.getResources().getString(stringId, formatArgs)));
+ view.setText(HtmlCompat.fromHtml(
+ view.getResources().getString(stringId, formatArgs), HtmlCompat.FROM_HTML_MODE_LEGACY));
view.setMovementMethod(LinkMovementMethod.getInstance());
}
-
- /**
- * Creates a {@link Spanned} from a HTML string on all SDK versions.
- *
- * @param source Source string with HTML markup
- * @return Spannable for using in a {@link TextView}
- * @see Html#fromHtml(String)
- * @see Html#fromHtml(String, int)
- */
- private static Spanned fromHtml(String source) {
- if (Build.VERSION.SDK_INT >= N) {
- return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY);
- } else {
- //noinspection deprecation
- return Html.fromHtml(source);
- }
- }
}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java
index 7584b966..188910e8 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/widget/notelist/NoteListWidget.java
@@ -11,6 +11,8 @@ import android.net.Uri;
import android.util.Log;
import android.widget.RemoteViews;
+import androidx.core.content.ContextCompat;
+
import java.util.NoSuchElementException;
import it.niedermann.owncloud.notes.R;
@@ -85,7 +87,7 @@ public class NoteListWidget extends AppWidgetProvider {
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.setRemoteAdapter(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);
if (BrandingUtil.isBrandingEnabled(context)) {
@@ -94,7 +96,7 @@ public class NoteListWidget extends AppWidgetProvider {
views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", localAccount.getTextColor());
views.setTextColor(R.id.widget_note_list_title_tv_dark, localAccount.getTextColor());
} else {
- views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand));
+ views.setInt(R.id.widget_note_header_dark, "setBackgroundColor", ContextCompat.getColor(context, R.color.defaultBrand));
views.setInt(R.id.widget_note_header_icon_dark, "setColorFilter", Color.WHITE);
views.setInt(R.id.widget_note_list_create_icon_dark, "setColorFilter", Color.WHITE);
views.setTextColor(R.id.widget_note_list_title_tv_dark, Color.WHITE);
@@ -106,7 +108,7 @@ public class NoteListWidget extends AppWidgetProvider {
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.setRemoteAdapter(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);
if (BrandingUtil.isBrandingEnabled(context)) {
@@ -115,7 +117,7 @@ public class NoteListWidget extends AppWidgetProvider {
views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", localAccount.getTextColor());
views.setTextColor(R.id.widget_note_list_title_tv, localAccount.getTextColor());
} else {
- views.setInt(R.id.widget_note_header, "setBackgroundColor", context.getResources().getColor(R.color.defaultBrand));
+ views.setInt(R.id.widget_note_header, "setBackgroundColor", ContextCompat.getColor(context, R.color.defaultBrand));
views.setInt(R.id.widget_note_header_icon, "setColorFilter", Color.WHITE);
views.setInt(R.id.widget_note_list_create_icon, "setColorFilter", Color.WHITE);
views.setTextColor(R.id.widget_note_list_title_tv, Color.WHITE);
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
index 476c7743..d96e3026 100644
--- a/app/src/main/res/layout/activity_about.xml
+++ b/app/src/main/res/layout/activity_about.xml
@@ -28,7 +28,7 @@
app:tabIndicatorColor="@color/defaultBrand" />
</com.google.android.material.appbar.AppBarLayout>
- <androidx.viewpager.widget.ViewPager
+ <androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7a3265ee..e708b1c0 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 996cd8b3..1f3fdbc5 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Oct 13 09:37:22 CEST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
diff --git a/gradlew b/gradlew
index 91a7e269..4f906e0c 100755
--- a/gradlew
+++ b/gradlew
@@ -1,4 +1,20 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
##
@@ -6,20 +22,38 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
-warn ( ) {
+warn () {
echo "$*"
}
-die ( ) {
+die () {
echo
echo "$*"
echo
@@ -30,6 +64,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
+nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,33 +75,14 @@ case "`uname`" in
MINGW* )
msys=true
;;
+ NONSTOP* )
+ nonstop=true
+ ;;
esac
-# For Cygwin, ensure paths are in UNIX format before anything is touched.
-if $cygwin ; then
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >&-
-APP_HOME="`pwd -P`"
-cd "$SAVED" >&-
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -90,7 +106,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -110,11 +126,13 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
@@ -138,27 +156,30 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=$((i+1))
+ i=`expr $i + 1`
done
case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index aec99730..ac1b06f9 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -8,20 +24,23 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -35,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -45,34 +64,14 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/markdown/build.gradle b/markdown/build.gradle
index 20764e10..8d09fa64 100644
--- a/markdown/build.gradle
+++ b/markdown/build.gradle
@@ -4,25 +4,17 @@ plugins {
android {
compileSdkVersion 30
- buildToolsVersion "30.0.1"
+ buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 30
- versionCode 1
- versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
multiDexEnabled true
}
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8