From 6354e15469b39eea1e2bbaedae4fa11a6a4e951f Mon Sep 17 00:00:00 2001 From: Krocks Date: Tue, 4 Jul 2017 16:06:49 +0300 Subject: [PATCH] changed welcome, added spanables and toasts --- .../mobile/ui/activities/WelcomeActivity.java | 8 +--- .../ui/fragments/signin/CodeFragment.java | 23 ----------- .../fragments/signin/CodeInputFragment.java | 40 +++++++++++++++++++ .../ui/fragments/signin/LoginFragment.java | 15 +++++++ .../ninja/mobile/utils/SpannableUtils.java | 40 +++++++++++++++++++ app/src/main/res/layout/activity_welcome.xml | 7 ++-- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 103 insertions(+), 32 deletions(-) delete mode 100644 app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeFragment.java create mode 100644 app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeInputFragment.java create mode 100644 app/src/main/java/com/ninja/mobile/utils/SpannableUtils.java diff --git a/app/src/main/java/com/ninja/mobile/ui/activities/WelcomeActivity.java b/app/src/main/java/com/ninja/mobile/ui/activities/WelcomeActivity.java index 37172dc72d..68642fcb9f 100644 --- a/app/src/main/java/com/ninja/mobile/ui/activities/WelcomeActivity.java +++ b/app/src/main/java/com/ninja/mobile/ui/activities/WelcomeActivity.java @@ -31,13 +31,9 @@ public class WelcomeActivity extends BaseActivity { mIndicator.notifyDataSetChanged(); } - @OnClick(R.id.welcome_btn_next) + @OnClick({R.id.welcome_btn_next, R.id.f_welcome_btn_start}) void clickNext() { - if (mViewPager.getAdapter().getCount() - 1 > mViewPager.getCurrentItem()) { - mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true); - } else { - startActivity(RegistrationActivity.getLaunchRegistrationActivity(this)); - } + startActivity(RegistrationActivity.getLaunchRegistrationActivity(this)); } } diff --git a/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeFragment.java b/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeFragment.java deleted file mode 100644 index 1e8ceea20d..0000000000 --- a/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeFragment.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ninja.mobile.ui.fragments.signin; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.ninja.mobile.R; -import com.ninja.mobile.ui.base.BaseFragment; - -/** - * Created by Max Chervatiuk on 23.06.17. - * Email: duo.blood@gmail.com - */ - -public class CodeFragment extends BaseFragment { - - @Nullable @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - return inflater.inflate(R.layout.fragment_input_code, container, false); - } -} diff --git a/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeInputFragment.java b/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeInputFragment.java new file mode 100644 index 0000000000..bea781c8c6 --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/ui/fragments/signin/CodeInputFragment.java @@ -0,0 +1,40 @@ +package com.ninja.mobile.ui.fragments.signin; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import android.widget.Toast; + +import com.ninja.mobile.R; +import com.ninja.mobile.ui.base.BaseFragment; +import com.ninja.mobile.utils.SpannableUtils; + +import butterknife.BindView; + +/** + * Created by Max Chervatiuk on 23.06.17. + * Email: duo.blood@gmail.com + */ + +public class CodeInputFragment extends BaseFragment { + @BindView(R.id.f_code_tv_repeat) TextView haventReceived; + + @Nullable @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_input_code, container, false); + } + + @Override + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + initSpannableTerms(); + } + + private void initSpannableTerms() { + View.OnClickListener onClickListener = v -> Toast.makeText(getActivity(), "It is not working now :-(", Toast.LENGTH_SHORT).show(); + SpannableUtils.setSpannable(getActivity(), haventReceived, R.string.signin_text_have_not_received, R.string.signin_text_have_not_received, onClickListener); + } +} diff --git a/app/src/main/java/com/ninja/mobile/ui/fragments/signin/LoginFragment.java b/app/src/main/java/com/ninja/mobile/ui/fragments/signin/LoginFragment.java index dc824b232b..3e073af48b 100644 --- a/app/src/main/java/com/ninja/mobile/ui/fragments/signin/LoginFragment.java +++ b/app/src/main/java/com/ninja/mobile/ui/fragments/signin/LoginFragment.java @@ -1,11 +1,17 @@ package com.ninja.mobile.ui.fragments.signin; import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -13,6 +19,7 @@ import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; import com.arellomobile.mvp.presenter.InjectPresenter; import com.jakewharton.rxbinding2.widget.RxTextView; @@ -26,6 +33,7 @@ import com.ninja.mobile.ui.base.BaseFragment; import com.ninja.mobile.ui.views.HintEditText; import com.ninja.mobile.ui.views.wheel.WheelView; import com.ninja.mobile.utils.PhoneWatcher; +import com.ninja.mobile.utils.SpannableUtils; import java.util.List; @@ -45,6 +53,7 @@ public class LoginFragment extends BaseFragment implements LoginView { @BindView(R.id.f_iphone_tv_country) TextView mCountry; @BindView(R.id.f_iphone_edt_country_code) EditText mCountryCode; @BindView(R.id.f_iphone_edt_number) HintEditText mPhoneEditText; + @BindView(R.id.f_iphone_tv_description) TextView termsOfUse; @InjectPresenter LoginPresenter mPresenter; @@ -77,6 +86,7 @@ public class LoginFragment extends BaseFragment implements LoginView { mPresenter.setCodeObservable(RxTextView.textChanges(mCountryCode).map(CharSequence::toString)); mPresenter.setPhoneObservable(RxTextView.textChanges(mPhoneEditText).map(CharSequence::toString)); + initSpannableTerms(); } @Override public void navigateToProfile() { @@ -157,4 +167,9 @@ public class LoginFragment extends BaseFragment implements LoginView { @Override public void setSelectedCountry(int countryPosition) { mWheelView.setSelected(countryPosition, -72); } + + private void initSpannableTerms() { + View.OnClickListener onClickListener = v -> Toast.makeText(getActivity(), "It is not working now :-(", Toast.LENGTH_SHORT).show(); + SpannableUtils.setSpannable(getActivity(), termsOfUse, R.string.signin_text_description, R.string.signin_text_description_highlight, onClickListener); + } } diff --git a/app/src/main/java/com/ninja/mobile/utils/SpannableUtils.java b/app/src/main/java/com/ninja/mobile/utils/SpannableUtils.java new file mode 100644 index 0000000000..8192f4d743 --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/utils/SpannableUtils.java @@ -0,0 +1,40 @@ +package com.ninja.mobile.utils; + +import android.content.Context; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.method.LinkMovementMethod; +import android.text.method.MovementMethod; +import android.text.style.ClickableSpan; +import android.text.style.ForegroundColorSpan; +import android.view.View; +import android.widget.TextView; + +import com.ninja.mobile.R; + +public class SpannableUtils { + private static final int LINK_COLOR = R.color.link_highlight; + + public static void setSpannable(Context context, TextView textView, int text, int textToSpan, View.OnClickListener onClickListener) { + String all = context.getString(text); + String toHighLight = context.getString(textToSpan); + if (!all.contains(toHighLight)) { + return; + } + int start = all.indexOf(toHighLight); + int end = start + toHighLight.length(); + + + SpannableString ss = new SpannableString(all); + + MovementMethod movementMethod = LinkMovementMethod.getInstance(); + textView.setMovementMethod(movementMethod); + ss.setSpan(new ClickableSpan() { + @Override public void onClick(View widget) { + onClickListener.onClick(widget); + } + }, start, end, Spannable.SPAN_POINT_MARK); + ss.setSpan(new ForegroundColorSpan(context.getResources().getColor(LINK_COLOR)), start, end, 0); + textView.setText(ss); + } +} diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml index b80b19f020..97410d329a 100644 --- a/app/src/main/res/layout/activity_welcome.xml +++ b/app/src/main/res/layout/activity_welcome.xml @@ -43,8 +43,8 @@ android:id="@+id/f_welcome_btn_start" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="8dp" - android:layout_marginRight="8dp" + android:layout_marginLeft="85dp" + android:layout_marginRight="85dp" android:layout_marginTop="48dp" android:layout_marginBottom="78dp" android:background="@drawable/bg_rect_btn_start" @@ -52,6 +52,7 @@ android:paddingStart="16dp" android:layout_alignParentBottom="true" android:text="@string/welcome.but.get_started" - android:textSize="18sp" /> + android:textSize="18sp" + tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b7b16e0aab..ccad443dcd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,6 +3,7 @@ #2d2f34 #000000 #C90010 + #3a85ce #C9D2D1 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 35458079a5..abfea973bb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,7 @@ Wrong country code Invalid phone number Please confirm your country code and enter your phone number.\n By signing up, you agree to our terms of service. + terms of service Haven`t received the code? We`ve sent a code to your phone. How would you like to be called? -- GitLab