Dbrant has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/358829 )
Change subject: Introduce a general-purpose onboarding view.
......................................................................
Introduce a general-purpose onboarding view.
This introduces a view that can be slipped into various portions of our UX
where any kind of onboarding or one-time acknowledgment is desired.
It allows for a Title, Text, and a Positive and Negative action button,
with some customizability of each of these elements.
Change-Id: I9ff6ede76fe2b8fd0baf192dc9d04aae098f76b9
---
A app/src/main/java/org/wikipedia/onboarding/OnboardingView.java
A app/src/main/res/layout/view_onboarding.xml
2 files changed, 146 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/29/358829/1
diff --git a/app/src/main/java/org/wikipedia/onboarding/OnboardingView.java
b/app/src/main/java/org/wikipedia/onboarding/OnboardingView.java
new file mode 100644
index 0000000..32bee3c
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/onboarding/OnboardingView.java
@@ -0,0 +1,80 @@
+package org.wikipedia.onboarding;
+
+import android.content.Context;
+import android.support.annotation.ColorRes;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.StringRes;
+import android.support.v4.content.ContextCompat;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import org.wikipedia.R;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class OnboardingView extends LinearLayout {
+ public interface Callback {
+ void onPositiveAction();
+ void onNegativeAction();
+ }
+
+ @BindView(R.id.view_onboarding_title) TextView titleView;
+ @BindView(R.id.view_onboarding_text) TextView textView;
+ @BindView(R.id.view_onboarding_action_positive) TextView
actionViewPositive;
+ @BindView(R.id.view_onboarding_action_negative) TextView
actionViewNegative;
+
+ @Nullable private Callback callback;
+
+ public OnboardingView(@NonNull Context context) {
+ super(context);
+ setOrientation(VERTICAL);
+ inflate(context, R.layout.view_onboarding, this);
+ ButterKnife.bind(this);
+ }
+
+ public void setCallback(@Nullable Callback callback) {
+ this.callback = callback;
+ }
+
+ public void setTitle(@StringRes int id) {
+ titleView.setText(id);
+ }
+
+ public void setText(@StringRes int id) {
+ textView.setText(id);
+ }
+
+ public void setPositiveAction(@StringRes int id) {
+ actionViewPositive.setText(id);
+ }
+
+ public void setPositiveTextColor(@ColorRes int id) {
+ actionViewPositive.setTextColor(ContextCompat.getColor(getContext(),
id));
+ }
+
+ public void setNegativeAction(@StringRes int id) {
+ actionViewNegative.setText(id);
+ }
+
+ @Override
+ public void setBackgroundColor(@ColorRes int id) {
+ super.setBackgroundColor(ContextCompat.getColor(getContext(), id));
+ }
+
+ @OnClick(R.id.view_onboarding_action_positive)
+ void onPositiveActionClick() {
+ if (callback != null) {
+ callback.onPositiveAction();
+ }
+ }
+
+ @OnClick(R.id.view_onboarding_action_negative)
+ void onNegativeActionClick() {
+ if (callback != null) {
+ callback.onNegativeAction();
+ }
+ }
+}
diff --git a/app/src/main/res/layout/view_onboarding.xml
b/app/src/main/res/layout/view_onboarding.xml
new file mode 100644
index 0000000..04e21ba
--- /dev/null
+++ b/app/src/main/res/layout/view_onboarding.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<merge
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:parentTag="LinearLayout"
+ tools:layout_width="match_parent"
+ tools:layout_height="wrap_content"
+ tools:orientation="vertical">
+
+ <TextView
+ android:id="@+id/view_onboarding_title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/RtlAwareTextView"
+ android:textColor="@android:color/white"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginBottom="12dp"
+ android:textStyle="bold"
+ android:textSize="14sp"
+ android:lineSpacingMultiplier="1.21"
+ tools:text="Lorem ipsum"/>
+
+ <TextView
+ android:id="@+id/view_onboarding_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/RtlAwareTextView"
+ android:textColor="@android:color/white"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:layout_marginBottom="12dp"
+ android:textSize="14sp"
+ android:lineSpacingMultiplier="1.21"
+ tools:text="Lorem ipsum"/>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end"
+ android:layout_marginBottom="8dp"
+ android:paddingLeft="12dp"
+ android:paddingRight="12dp">
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/view_onboarding_action_negative"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp"
+ style="@style/Widget.AppCompat.Button.Borderless"
+ android:textColor="@android:color/white"
+ android:text="@string/view_announcement_card_negative_action"/>
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/view_onboarding_action_positive"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="4dp"
+ style="@style/Widget.AppCompat.Button.Colored"
+ app:backgroundTint="@android:color/white"
+ android:textColor="@color/accent50"
+ tools:text="Lorem ipsum"/>
+ </LinearLayout>
+
+</merge>
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/358829
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9ff6ede76fe2b8fd0baf192dc9d04aae098f76b9
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits