Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class AuthFragment extends Fragment {
- protected Callback callback;
- @BindView(R.id.caption)
- protected VerticalTextView caption;
- @BindView(R.id.root)
- protected ViewGroup parent;
- protected boolean lock;
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setRetainInstance(true);
- }
- @Nullable
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View root=inflater.inflate(authLayout(),container,false);
- ButterKnife.bind(this,root);
- KeyboardVisibilityEvent.setEventListener(getActivity(), isOpen -> {
- callback.scale(isOpen);
- if(!isOpen){
- clearFocus();
- }
- });
- return root;
- }
- public void setCallback(@NonNull Callback callback) {
- this.callback = callback;
- }
- @LayoutRes
- public abstract int authLayout();
- public abstract void fold();
- public abstract void clearFocus();
- public abstract Transition unfoldTransition();
- @OnClick(R.id.caption)
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
- public void unfold(){
- if(!lock) {
- Transition transition = unfoldTransition();
- transition.addListener(new TransitionAdapterListener() {
- @Override
- public void onTransitionEnd(Transition transition) {
- super.onTransitionEnd(transition);
- caption.setVerticalText(false);
- caption.setRotation(0);
- caption.requestLayout();
- }
- });
- TransitionManager.beginDelayedTransition(parent, transition);
- ConstraintLayout.LayoutParams params = getParams();
- params.rightToRight = ConstraintLayout.LayoutParams.PARENT_ID;
- params.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID;
- params.verticalBias = 0.8f;
- caption.setScaleY(1f);
- caption.setScaleX(1f);
- caption.setRotation(-90);
- caption.setLayoutParams(params);
- callback.show(this);
- lock=true;
- }
- }
- protected ConstraintLayout.LayoutParams getParams(){
- return ConstraintLayout.LayoutParams.class.cast(caption.getLayoutParams());
- }
- interface Callback {
- void show(AuthFragment fragment);
- void scale(boolean hasFocus);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement