Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. import android.app.Activity;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.graphics.Point;
  5. import android.os.Bundle;
  6. import android.view.View;
  7.  
  8. import androidx.annotation.NonNull;
  9. import androidx.annotation.Nullable;
  10. import androidx.databinding.ViewDataBinding;
  11.  
  12. public abstract class RevealBaseActivity<T extends ViewDataBinding, V extends BaseViewModel> extends BaseActivity<T, V> {
  13. public static final String EXTRA_REVEAL_CENTER = "EXTRA_REVEAL_CENTER";
  14. private static final int revealDuration = 350;
  15. private static final int hideDuration = 250;
  16.  
  17. private Point revealCenter;
  18.  
  19. public static void startRevealWithOrigin(@NonNull Context context, @Nullable Bundle extras, @NonNull Class<? extends RevealBaseActivity> activityClass, @NonNull Point revealCenter) {
  20. startBaseActivity(context, getExtras(extras, revealCenter), activityClass);
  21. }
  22.  
  23. public static void startRevealWithOriginForResult(@NonNull Activity activity, @Nullable Bundle extras, @NonNull Class<? extends RevealBaseActivity> activityClass, int requestCode, @NonNull Point revealCenter) {
  24. startBaseActivityForResult(activity, getExtras(extras, revealCenter), activityClass, requestCode);
  25. }
  26.  
  27. @NonNull
  28. private static Bundle getExtras(@Nullable Bundle extras, @NonNull Point revealCenter) {
  29. Bundle originExtras = new Bundle();
  30. originExtras.putParcelable(EXTRA_REVEAL_CENTER, revealCenter);
  31.  
  32. if (extras != null) {
  33. originExtras.putAll(extras);
  34. }
  35. return originExtras;
  36. }
  37.  
  38. @Override
  39. protected void onCreate(@Nullable Bundle savedInstanceState) {
  40. overridePendingTransition(0, 0);
  41. super.onCreate(savedInstanceState);
  42. getView().getRoot().setVisibility(View.INVISIBLE);
  43. }
  44.  
  45. @Override
  46. protected void startEnterAnimations() {
  47. Intent intent = getIntent();
  48. if (intent.hasExtra(EXTRA_REVEAL_CENTER)) {
  49. revealCenter = intent.getParcelableExtra(EXTRA_REVEAL_CENTER);
  50. SimpleAnimationUtils.revealOrFadeIn(getView().getRoot(), revealDuration, revealCenter).start();
  51. return;
  52. }
  53.  
  54. SimpleAnimationUtils.revealOrFadeIn(getView().getRoot(), revealDuration).start();
  55. }
  56.  
  57. @Override
  58. protected void onPause() {
  59. super.onPause();
  60. if (isFinishing()) {
  61. overridePendingTransition(0, 0);
  62. }
  63. }
  64.  
  65. @Override
  66. public void finish() {
  67. SimpleAnimationListener listener = new SimpleAnimationListener() {
  68. @Override
  69. public boolean onAnimationEnd(@NonNull View view) {
  70. RevealBaseActivity.super.finish();
  71. return false;
  72. }
  73. };
  74.  
  75. if (revealCenter != null) {
  76. SimpleAnimationUtils.hideOrFadeOut(getView().getRoot(), hideDuration, listener, revealCenter).start();
  77. return;
  78. }
  79.  
  80. SimpleAnimationUtils.hideOrFadeOut(getView().getRoot(), hideDuration, listener).start();
  81. }
  82.  
  83. public void finishWithoutUnreveal() {
  84. super.finish();
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement