Temp commit with messy code: Things are pretty good but we lack animation when keyboard is showing/hiding

3rd-party keyboard switching is also broken.