1. Splash screenów nie robi się timerem bo tylko sztucznie wydłużamy czas otwierania aplikacji co może irytować użytkownika. Takie podejście byłoby zdecydowanie lepsze: https://medium.com/viithiisys/android-perfect-way-to-create-splash-screen-ca3c5bee137f
2. Do bindowania widoków użyj biblioteki ButterKnife.
3. Porozdzielaj onCreate na więcej metod bo to ci troche za długie wyszło. Dodaj metody typu setupCopyClickListener, setupClearClickListener itd. i do nich powrzucaj konkretne ustawianie listenera, a te metody wywołuj z oncreate
Generalnie mało co jest do komentowania bo bardzo mała aplikacja.
Ze swojej strony polecam używanie kotlina, ułatwia bardzo sprawę, do bindowania widoków nie musiałbyś używać ButterKnife ani findViewById tylko odnosiłbyś się do nich z kodu po prostu po id