Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. public abstract class AuthFragment extends Fragment {
  2.  
  3. protected Callback callback;
  4.  
  5. @BindView(R.id.caption)
  6. protected VerticalTextView caption;
  7.  
  8. @BindView(R.id.root)
  9. protected ViewGroup parent;
  10.  
  11. protected boolean lock;
  12.  
  13. @Override
  14. public void onCreate(@Nullable Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setRetainInstance(true);
  17. }
  18.  
  19. @Nullable
  20. @Override
  21. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  22. View root=inflater.inflate(authLayout(),container,false);
  23. ButterKnife.bind(this,root);
  24. KeyboardVisibilityEvent.setEventListener(getActivity(), isOpen -> {
  25. callback.scale(isOpen);
  26. if(!isOpen){
  27. clearFocus();
  28. }
  29. });
  30. return root;
  31. }
  32.  
  33. public void setCallback(@NonNull Callback callback) {
  34. this.callback = callback;
  35. }
  36.  
  37. @LayoutRes
  38. public abstract int authLayout();
  39. public abstract void fold();
  40. public abstract void clearFocus();
  41. public abstract Transition unfoldTransition();
  42.  
  43. @OnClick(R.id.caption)
  44. @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  45. public void unfold(){
  46. if(!lock) {
  47. Transition transition = unfoldTransition();
  48. transition.addListener(new TransitionAdapterListener() {
  49. @Override
  50. public void onTransitionEnd(Transition transition) {
  51. super.onTransitionEnd(transition);
  52. caption.setVerticalText(false);
  53. caption.setRotation(0);
  54. caption.requestLayout();
  55. }
  56. });
  57. TransitionManager.beginDelayedTransition(parent, transition);
  58. ConstraintLayout.LayoutParams params = getParams();
  59. params.rightToRight = ConstraintLayout.LayoutParams.PARENT_ID;
  60. params.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID;
  61. params.verticalBias = 0.8f;
  62. caption.setScaleY(1f);
  63. caption.setScaleX(1f);
  64. caption.setRotation(-90);
  65. caption.setLayoutParams(params);
  66. callback.show(this);
  67. lock=true;
  68. }
  69. }
  70.  
  71. protected ConstraintLayout.LayoutParams getParams(){
  72. return ConstraintLayout.LayoutParams.class.cast(caption.getLayoutParams());
  73. }
  74.  
  75. interface Callback {
  76. void show(AuthFragment fragment);
  77. void scale(boolean hasFocus);
  78. }
  79.  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement