Как уже выше написали, вы впускаете юзера в приложение, даже если он не имеет права туда войти
По вашему вы изначально открываете мейн активити(или фрагмент, не важно), а уже потом делаете проверку
Т.е. ваше флоу Main -> Login, а нужно бы Splash -> Main или Splash -> Login
Но, если бы у меня была сингл активити + нав компонент, то я бы при старте в активити делал проверку и использовал бы метод нав компонента setStartDestination