|
@ -2,6 +2,7 @@ package com.gmeremit.online.gmeremittance_native.splash_screen.view; |
|
|
|
|
|
|
|
|
import android.content.Context; |
|
|
import android.content.Context; |
|
|
import android.content.Intent; |
|
|
import android.content.Intent; |
|
|
|
|
|
import android.graphics.Paint; |
|
|
import android.os.Bundle; |
|
|
import android.os.Bundle; |
|
|
import android.support.annotation.NonNull; |
|
|
import android.support.annotation.NonNull; |
|
|
import android.support.annotation.Nullable; |
|
|
import android.support.annotation.Nullable; |
|
@ -15,10 +16,9 @@ import android.support.v4.content.ContextCompat; |
|
|
import android.support.v4.view.PagerAdapter; |
|
|
import android.support.v4.view.PagerAdapter; |
|
|
import android.support.v4.view.ViewCompat; |
|
|
import android.support.v4.view.ViewCompat; |
|
|
import android.support.v4.view.ViewPager; |
|
|
import android.support.v4.view.ViewPager; |
|
|
import android.support.v4.view.ViewPropertyAnimatorListenerAdapter; |
|
|
|
|
|
import android.support.v7.app.AppCompatActivity; |
|
|
import android.support.v7.app.AppCompatActivity; |
|
|
|
|
|
import android.support.v7.widget.RecyclerView; |
|
|
import android.text.Html; |
|
|
import android.text.Html; |
|
|
import android.util.Log; |
|
|
|
|
|
import android.view.LayoutInflater; |
|
|
import android.view.LayoutInflater; |
|
|
import android.view.View; |
|
|
import android.view.View; |
|
|
import android.view.ViewGroup; |
|
|
import android.view.ViewGroup; |
|
@ -32,13 +32,13 @@ import android.widget.TextView; |
|
|
|
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.R; |
|
|
import com.gmeremit.online.gmeremittance_native.R; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.view.HomeActivityV2; |
|
|
import com.gmeremit.online.gmeremittance_native.homeV2.view.HomeActivityV2; |
|
|
|
|
|
import com.gmeremit.online.gmeremittance_native.loginV2.view.LoginV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.registerV2.view.RegisterV2Activity; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.KeyboardUtils; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.KeyboardUtils; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.other.PersistenceStorageManager; |
|
|
import com.gmeremit.online.gmeremittance_native.utils.other.PersistenceStorageManager; |
|
|
|
|
|
|
|
|
import butterknife.BindView; |
|
|
import butterknife.BindView; |
|
|
import butterknife.ButterKnife; |
|
|
import butterknife.ButterKnife; |
|
|
import butterknife.OnClick; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Created by FMI-LT-17 on 2/9/2018. |
|
|
* Created by FMI-LT-17 on 2/9/2018. |
|
@ -56,9 +56,6 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
@BindView(R.id.rootLayout) |
|
|
@BindView(R.id.rootLayout) |
|
|
ConstraintLayout rootLayout; |
|
|
ConstraintLayout rootLayout; |
|
|
|
|
|
|
|
|
@BindView(R.id.languageView) |
|
|
|
|
|
View languageView; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.iv_back) |
|
|
@BindView(R.id.iv_back) |
|
|
ImageView iv_back; |
|
|
ImageView iv_back; |
|
|
|
|
|
|
|
@ -71,6 +68,9 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
@BindView(R.id.selectedLanguageText) |
|
|
@BindView(R.id.selectedLanguageText) |
|
|
TextView selectedLanguageText; |
|
|
TextView selectedLanguageText; |
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.languageRv) |
|
|
|
|
|
RecyclerView languageRv; |
|
|
|
|
|
|
|
|
private int[] layouts; |
|
|
private int[] layouts; |
|
|
private TextView[] dots; |
|
|
private TextView[] dots; |
|
|
|
|
|
|
|
@ -101,7 +101,14 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
super.onCreate(savedInstanceState); |
|
|
super.onCreate(savedInstanceState); |
|
|
setContentView(R.layout.activity_splash_screen_key_1); |
|
|
setContentView(R.layout.activity_splash_screen_key_1); |
|
|
init(); |
|
|
init(); |
|
|
|
|
|
performDefaultAction(savedInstanceState); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void performDefaultAction(Bundle savedInstanceState) { |
|
|
|
|
|
if (savedInstanceState == null) { |
|
|
|
|
|
languageViewTransitionManager.underlineTitleText(true); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void init() { |
|
|
private void init() { |
|
@ -149,28 +156,30 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
public void onClick(View view) { |
|
|
public void onClick(View view) { |
|
|
switch (view.getId()) { |
|
|
switch (view.getId()) { |
|
|
case R.id.btn_login: |
|
|
case R.id.btn_login: |
|
|
// startActivity(new Intent(this, LoginV2Activity.class)); |
|
|
|
|
|
languageViewTransitionManager.showLanguageView(null); |
|
|
|
|
|
|
|
|
startActivity(new Intent(this, LoginV2Activity.class)); |
|
|
break; |
|
|
break; |
|
|
case R.id.btn_new_user: |
|
|
case R.id.btn_new_user: |
|
|
startActivity(new Intent(this, RegisterV2Activity.class)); |
|
|
startActivity(new Intent(this, RegisterV2Activity.class)); |
|
|
break; |
|
|
break; |
|
|
case R.id.iv_back: |
|
|
case R.id.iv_back: |
|
|
Log.d("SplashScreen","Back button pressed"); |
|
|
|
|
|
if (languageViewTransitionManager.isUserOnLanguageSelectionView()) |
|
|
if (languageViewTransitionManager.isUserOnLanguageSelectionView()) |
|
|
onBackPressed(); |
|
|
onBackPressed(); |
|
|
break; |
|
|
break; |
|
|
|
|
|
case R.id.selectedLanguageText: |
|
|
|
|
|
if (!languageViewTransitionManager.isUserOnLanguageSelectionView()) |
|
|
|
|
|
languageViewTransitionManager.showLanguageView(null); |
|
|
|
|
|
break; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
protected void onStart() { |
|
|
protected void onStart() { |
|
|
super.onStart(); |
|
|
super.onStart(); |
|
|
btn_login.setOnClickListener(this); |
|
|
btn_login.setOnClickListener(this); |
|
|
btn_new_user.setOnClickListener(this); |
|
|
btn_new_user.setOnClickListener(this); |
|
|
iv_back.setOnClickListener(this); |
|
|
iv_back.setOnClickListener(this); |
|
|
|
|
|
selectedLanguageText.setOnClickListener(this); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -179,6 +188,8 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
btn_login.setOnClickListener(null); |
|
|
btn_login.setOnClickListener(null); |
|
|
btn_new_user.setOnClickListener(null); |
|
|
btn_new_user.setOnClickListener(null); |
|
|
iv_back.setOnClickListener(null); |
|
|
iv_back.setOnClickListener(null); |
|
|
|
|
|
selectedLanguageText.setOnClickListener(null); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -251,6 +262,7 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
private Interpolator overshootInterpolator; |
|
|
private Interpolator overshootInterpolator; |
|
|
private Interpolator accelerateDecelerateInterpolator; |
|
|
private Interpolator accelerateDecelerateInterpolator; |
|
|
private boolean userNavigatedToLanguageView; |
|
|
private boolean userNavigatedToLanguageView; |
|
|
|
|
|
private int textViewPaintFlags; |
|
|
|
|
|
|
|
|
LanguageViewTransitionManager(Context context) { |
|
|
LanguageViewTransitionManager(Context context) { |
|
|
isAnimationOnProgress = false; |
|
|
isAnimationOnProgress = false; |
|
@ -259,11 +271,11 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
anticipateOvershootInterpolator = new AnticipateOvershootInterpolator(1f); |
|
|
anticipateOvershootInterpolator = new AnticipateOvershootInterpolator(1f); |
|
|
overshootInterpolator = new OvershootInterpolator(); |
|
|
overshootInterpolator = new OvershootInterpolator(); |
|
|
accelerateDecelerateInterpolator = new AccelerateDecelerateInterpolator(); |
|
|
accelerateDecelerateInterpolator = new AccelerateDecelerateInterpolator(); |
|
|
|
|
|
textViewPaintFlags = selectedLanguageText.getPaintFlags(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void showLanguageView(Runnable onAnimationCompleteCallback) { |
|
|
public void showLanguageView(Runnable onAnimationCompleteCallback) { |
|
|
constraintSet.clone(context, R.layout.activity_splash_screen_key_2); |
|
|
constraintSet.clone(context, R.layout.activity_splash_screen_key_2); |
|
|
|
|
|
|
|
|
Transition transition = new ChangeBounds(); |
|
|
Transition transition = new ChangeBounds(); |
|
|
transition.setInterpolator(anticipateOvershootInterpolator); |
|
|
transition.setInterpolator(anticipateOvershootInterpolator); |
|
|
transition.setDuration(ANIMATION_DURATION); |
|
|
transition.setDuration(ANIMATION_DURATION); |
|
@ -271,16 +283,12 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
@Override |
|
|
@Override |
|
|
public void onTransitionStart(@NonNull Transition transition) { |
|
|
public void onTransitionStart(@NonNull Transition transition) { |
|
|
super.onTransitionStart(transition); |
|
|
super.onTransitionStart(transition); |
|
|
|
|
|
underlineTitleText(false); |
|
|
userNavigatedToLanguageView = false; |
|
|
userNavigatedToLanguageView = false; |
|
|
isAnimationOnProgress = true; |
|
|
isAnimationOnProgress = true; |
|
|
selectedLanguageText.setText(getString(R.string.select_language_text)); |
|
|
|
|
|
ViewCompat.animate(view_pager).withLayer().alpha(0f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator).setListener(new ViewPropertyAnimatorListenerAdapter() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationEnd(View view) { |
|
|
|
|
|
super.onAnimationEnd(view); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}).start(); |
|
|
|
|
|
|
|
|
ViewCompat.animate(view_pager).withLayer().alpha(0f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator) |
|
|
|
|
|
.withStartAction(() -> ViewCompat.animate(languageRv).withLayer().alpha(1f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator).start()); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -297,6 +305,14 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
constraintSet.applyTo(rootLayout); |
|
|
constraintSet.applyTo(rootLayout); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void underlineTitleText(boolean action) { |
|
|
|
|
|
if (action) |
|
|
|
|
|
selectedLanguageText.setPaintFlags(textViewPaintFlags | Paint.UNDERLINE_TEXT_FLAG); |
|
|
|
|
|
else |
|
|
|
|
|
selectedLanguageText.setPaintFlags(textViewPaintFlags); |
|
|
|
|
|
selectedLanguageText.invalidate(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public void hideLanguage(Runnable onAnimationCompleteCallback) { |
|
|
public void hideLanguage(Runnable onAnimationCompleteCallback) { |
|
|
|
|
|
|
|
|
constraintSet.clone(context, R.layout.activity_splash_screen_key_1); |
|
|
constraintSet.clone(context, R.layout.activity_splash_screen_key_1); |
|
@ -308,16 +324,15 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
@Override |
|
|
@Override |
|
|
public void onTransitionStart(@NonNull Transition transition) { |
|
|
public void onTransitionStart(@NonNull Transition transition) { |
|
|
super.onTransitionStart(transition); |
|
|
super.onTransitionStart(transition); |
|
|
|
|
|
|
|
|
|
|
|
underlineTitleText(true); |
|
|
userNavigatedToLanguageView = true; |
|
|
userNavigatedToLanguageView = true; |
|
|
isAnimationOnProgress = true; |
|
|
isAnimationOnProgress = true; |
|
|
iv_back.setVisibility(View.INVISIBLE); |
|
|
iv_back.setVisibility(View.INVISIBLE); |
|
|
ViewCompat.animate(view_pager).withLayer().alpha(1f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator).setListener(new ViewPropertyAnimatorListenerAdapter() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void onAnimationEnd(View view) { |
|
|
|
|
|
super.onAnimationEnd(view); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
}).start(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ViewCompat.animate(view_pager).withLayer().alpha(1f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator) |
|
|
|
|
|
.withStartAction(() -> ViewCompat.animate(languageRv).withLayer().alpha(0f).setDuration(FADE_IN_OUT_DURATION).setInterpolator(accelerateDecelerateInterpolator).start()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -343,4 +358,5 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe |
|
|
return this.userNavigatedToLanguageView; |
|
|
return this.userNavigatedToLanguageView; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |