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

Reply via email to