Browse Source

Animation fixes splash

master
preyearegmi 6 years ago
parent
commit
60dbf83b6b
  1. 66
      app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java
  2. 14
      app/src/main/res/layout/activity_splash_screen_key_1.xml
  3. 13
      app/src/main/res/layout/activity_splash_screen_key_2.xml
  4. 2
      app/src/main/res/values/strings.xml

66
app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java

@ -2,6 +2,7 @@ package com.gmeremit.online.gmeremittance_native.splash_screen.view;
import android.content.Context;
import android.content.Intent;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.annotation.NonNull;
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.ViewCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPropertyAnimatorListenerAdapter;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
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.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.utils.KeyboardUtils;
import com.gmeremit.online.gmeremittance_native.utils.other.PersistenceStorageManager;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 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)
ConstraintLayout rootLayout;
@BindView(R.id.languageView)
View languageView;
@BindView(R.id.iv_back)
ImageView iv_back;
@ -71,6 +68,9 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
@BindView(R.id.selectedLanguageText)
TextView selectedLanguageText;
@BindView(R.id.languageRv)
RecyclerView languageRv;
private int[] layouts;
private TextView[] dots;
@ -101,7 +101,14 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen_key_1);
init();
performDefaultAction(savedInstanceState);
}
private void performDefaultAction(Bundle savedInstanceState) {
if (savedInstanceState == null) {
languageViewTransitionManager.underlineTitleText(true);
}
}
private void init() {
@ -149,28 +156,30 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_login:
// startActivity(new Intent(this, LoginV2Activity.class));
languageViewTransitionManager.showLanguageView(null);
startActivity(new Intent(this, LoginV2Activity.class));
break;
case R.id.btn_new_user:
startActivity(new Intent(this, RegisterV2Activity.class));
break;
case R.id.iv_back:
Log.d("SplashScreen","Back button pressed");
if (languageViewTransitionManager.isUserOnLanguageSelectionView())
onBackPressed();
break;
case R.id.selectedLanguageText:
if (!languageViewTransitionManager.isUserOnLanguageSelectionView())
languageViewTransitionManager.showLanguageView(null);
break;
}
}
@Override
protected void onStart() {
super.onStart();
btn_login.setOnClickListener(this);
btn_new_user.setOnClickListener(this);
iv_back.setOnClickListener(this);
selectedLanguageText.setOnClickListener(this);
}
@Override
@ -179,6 +188,8 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
btn_login.setOnClickListener(null);
btn_new_user.setOnClickListener(null);
iv_back.setOnClickListener(null);
selectedLanguageText.setOnClickListener(null);
}
@Override
@ -251,6 +262,7 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
private Interpolator overshootInterpolator;
private Interpolator accelerateDecelerateInterpolator;
private boolean userNavigatedToLanguageView;
private int textViewPaintFlags;
LanguageViewTransitionManager(Context context) {
isAnimationOnProgress = false;
@ -259,11 +271,11 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
anticipateOvershootInterpolator = new AnticipateOvershootInterpolator(1f);
overshootInterpolator = new OvershootInterpolator();
accelerateDecelerateInterpolator = new AccelerateDecelerateInterpolator();
textViewPaintFlags = selectedLanguageText.getPaintFlags();
}
public void showLanguageView(Runnable onAnimationCompleteCallback) {
constraintSet.clone(context, R.layout.activity_splash_screen_key_2);
Transition transition = new ChangeBounds();
transition.setInterpolator(anticipateOvershootInterpolator);
transition.setDuration(ANIMATION_DURATION);
@ -271,16 +283,12 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
@Override
public void onTransitionStart(@NonNull Transition transition) {
super.onTransitionStart(transition);
underlineTitleText(false);
userNavigatedToLanguageView = false;
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
@ -297,6 +305,14 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
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) {
constraintSet.clone(context, R.layout.activity_splash_screen_key_1);
@ -308,16 +324,15 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
@Override
public void onTransitionStart(@NonNull Transition transition) {
super.onTransitionStart(transition);
underlineTitleText(true);
userNavigatedToLanguageView = true;
isAnimationOnProgress = true;
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
@ -343,4 +358,5 @@ public class SplashScreen extends AppCompatActivity implements View.OnClickListe
return this.userNavigatedToLanguageView;
}
}
}

14
app/src/main/res/layout/activity_splash_screen_key_1.xml

@ -51,25 +51,27 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="12dp"
android:text="@string/select_language_underlined"
android:text="@string/select_language_text"
android:textColor="@color/white"
android:textSize="21sp"
app:layout_constraintBottom_toBottomOf="@+id/selectedLanguageIcon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/selectedLanguageIcon"
app:layout_constraintTop_toTopOf="@+id/selectedLanguageIcon"
app:txtfontName="@string/semibold" />
app:txtfontName="@string/semibold"
/>
<View
android:id="@+id/languageView"
<android.support.v7.widget.RecyclerView
android:id="@+id/languageRv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@android:color/holo_green_dark"
android:background="#33000000"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/view_pager" />
app:layout_constraintTop_toTopOf="@+id/view_pager"
/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"

13
app/src/main/res/layout/activity_splash_screen_key_2.xml

@ -32,17 +32,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<View
android:id="@+id/languageView"
<android.support.v7.widget.RecyclerView
android:id="@+id/languageRv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="18dp"
android:background="@android:color/holo_green_dark"
android:background="#33000000"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/selectedLanguageText" />
app:layout_constraintTop_toBottomOf="@+id/selectedLanguageText"
/>
<ImageView
android:id="@+id/selectedLanguageIcon"
@ -62,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="12dp"
android:text="@string/select_language_underlined"
android:text="@string/select_language_text"
android:textColor="@color/white"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="@+id/selectedLanguageIcon"
@ -79,7 +80,7 @@
app:layout_constraintBottom_toTopOf="@+id/layoutDots"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/languageView" />
app:layout_constraintTop_toTopOf="@+id/languageRv" />
<LinearLayout
android:id="@+id/layoutDots"

2
app/src/main/res/values/strings.xml

@ -311,7 +311,7 @@
<string name="unpaid_text">Unpaid</string>
<string name="paid_text">Paid</string>
<string name="processing_request_text">Processing request…</string>
<string name="select_language_underlined"><u>Select Language</u></string>
<!--<string name="select_language_underlined"><u>Select Language</u></string>-->
<string name="select_dob_text">Select dob</string>
</resources>
Loading…
Cancel
Save