Это довольно простое решение, для начала вам просто нужно проверить, есть ли флаг в префе.Лучше всего сделать это в onCreate вашей активности запуска
val settings = PreferenceManager.getDefaultSharedPreferences(context)
val shouldDisplayDialog = settings.getBoolean("first-launch", true)
if(shouldDisplayDialog) // your logic here
Второе значение в методе getBoolean является значением по умолчанию, поэтому для него будет установлено значение shouldDisplayDialog true, если сохраненного значения нет.После успешного входа в систему или чего-либо еще, просто запишите значение в SharedPrefs.
with (settings.edit()) {
putBoolean("first-launch", false)
commit()
}
Вот и все!