From 82fe43a921f9101ca598497decb2fbf460cbf21c Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Sat, 12 Jan 2019 16:32:51 +0300 Subject: [PATCH] TablePlugin another create factory method --- app/src/main/java/ru/noties/markwon/AppBarItem.java | 4 ++-- .../main/java/ru/noties/markwon/MainActivity.java | 8 +------- .../java/ru/noties/markwon/MarkdownRenderer.java | 1 - app/src/main/java/ru/noties/markwon/Views.java | 12 ------------ .../ru/noties/markwon/ext/tables/TablePlugin.java | 11 +++++++++++ .../ru/noties/markwon/recycler/MarkwonAdapter.java | 2 ++ .../noties/markwon/recycler/MarkwonAdapterImpl.java | 2 +- 7 files changed, 17 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/ru/noties/markwon/AppBarItem.java b/app/src/main/java/ru/noties/markwon/AppBarItem.java index c4960a2c..bf83e658 100644 --- a/app/src/main/java/ru/noties/markwon/AppBarItem.java +++ b/app/src/main/java/ru/noties/markwon/AppBarItem.java @@ -23,8 +23,8 @@ abstract class AppBarItem { final TextView subtitle; Renderer(@NonNull View view, @NonNull View.OnClickListener themeChangeClicked) { - this.title = Views.findView(view, R.id.app_bar_title); - this.subtitle = Views.findView(view, R.id.app_bar_subtitle); + this.title = view.findViewById(R.id.app_bar_title); + this.subtitle = view.findViewById(R.id.app_bar_subtitle); view.findViewById(R.id.app_bar_theme_changer) .setOnClickListener(themeChangeClicked); } diff --git a/app/src/main/java/ru/noties/markwon/MainActivity.java b/app/src/main/java/ru/noties/markwon/MainActivity.java index b50fcbd5..d0a11d07 100644 --- a/app/src/main/java/ru/noties/markwon/MainActivity.java +++ b/app/src/main/java/ru/noties/markwon/MainActivity.java @@ -28,9 +28,6 @@ public class MainActivity extends Activity { @Inject UriProcessor uriProcessor; -// -// @Inject -// GifProcessor gifProcessor; @Override protected void onCreate(final Bundle savedInstanceState) { @@ -42,9 +39,6 @@ public class MainActivity extends Activity { themes.apply(this); - // how can we obtain MarkwonConfiguration after theme was applied? - // as we inject `themes` we won't be able to inject configuration, as it requires theme set - setContentView(R.layout.activity_main); // we process additionally github urls, as if url has in path `blob`, we won't receive @@ -60,7 +54,7 @@ public class MainActivity extends Activity { } }); - final TextView textView = Views.findView(this, R.id.text); + final TextView textView = findViewById(R.id.text); final View progress = findViewById(R.id.progress); appBarRenderer.render(appBarState()); diff --git a/app/src/main/java/ru/noties/markwon/MarkdownRenderer.java b/app/src/main/java/ru/noties/markwon/MarkdownRenderer.java index 265b9cd5..cf2ab04c 100644 --- a/app/src/main/java/ru/noties/markwon/MarkdownRenderer.java +++ b/app/src/main/java/ru/noties/markwon/MarkdownRenderer.java @@ -8,7 +8,6 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.Spanned; -import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; diff --git a/app/src/main/java/ru/noties/markwon/Views.java b/app/src/main/java/ru/noties/markwon/Views.java index b9f692d0..3c172e4b 100644 --- a/app/src/main/java/ru/noties/markwon/Views.java +++ b/app/src/main/java/ru/noties/markwon/Views.java @@ -1,7 +1,5 @@ package ru.noties.markwon; -import android.app.Activity; -import android.support.annotation.IdRes; import android.support.annotation.IntDef; import android.support.annotation.NonNull; import android.view.View; @@ -13,16 +11,6 @@ public abstract class Views { @interface NotVisible { } - public static V findView(@NonNull View view, @IdRes int id) { - //noinspection unchecked - return (V) view.findViewById(id); - } - - public static V findView(@NonNull Activity activity, @IdRes int id) { - //noinspection unchecked - return (V) activity.findViewById(id); - } - public static void setVisible(@NonNull View view, boolean visible) { setVisible(view, visible, View.GONE); } diff --git a/markwon-ext-tables/src/main/java/ru/noties/markwon/ext/tables/TablePlugin.java b/markwon-ext-tables/src/main/java/ru/noties/markwon/ext/tables/TablePlugin.java index d6a5d26e..7a944665 100644 --- a/markwon-ext-tables/src/main/java/ru/noties/markwon/ext/tables/TablePlugin.java +++ b/markwon-ext-tables/src/main/java/ru/noties/markwon/ext/tables/TablePlugin.java @@ -23,6 +23,10 @@ import ru.noties.markwon.SpannableBuilder; public class TablePlugin extends AbstractMarkwonPlugin { + public interface ThemeConfigure { + void configureTheme(@NonNull TableTheme.Builder builder); + } + @NonNull public static TablePlugin create(@NonNull Context context) { return new TablePlugin(TableTheme.create(context)); @@ -33,6 +37,13 @@ public class TablePlugin extends AbstractMarkwonPlugin { return new TablePlugin(tableTheme); } + @NonNull + public static TablePlugin create(@NonNull ThemeConfigure themeConfigure) { + final TableTheme.Builder builder = new TableTheme.Builder(); + themeConfigure.configureTheme(builder); + return new TablePlugin(builder.build()); + } + private final TableVisitor visitor; @SuppressWarnings("WeakerAccess") diff --git a/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapter.java b/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapter.java index fc0d4cb9..e37c2a75 100644 --- a/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapter.java +++ b/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapter.java @@ -181,6 +181,8 @@ public abstract class MarkwonAdapter extends RecyclerView.Adapter nodes); + public abstract int getNodeViewType(@NonNull Class node); + @SuppressWarnings("WeakerAccess") public static class Holder extends RecyclerView.ViewHolder { diff --git a/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapterImpl.java b/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapterImpl.java index 5a8d2fa6..afd1aa71 100644 --- a/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapterImpl.java +++ b/markwon-recycler/src/main/java/ru/noties/markwon/recycler/MarkwonAdapterImpl.java @@ -111,7 +111,7 @@ class MarkwonAdapterImpl extends MarkwonAdapter { return entry.id(node); } - @SuppressWarnings("WeakerAccess") + @Override public int getNodeViewType(@NonNull Class node) { // if has registered -> then return it, else 0 final int hash = node.hashCode();