Неверная конфигурация контекста - PullRequest
2 голосов
/ 05 марта 2019

У меня есть класс util для вращения устройств (пример ниже).Он работает в контексте приложения.Когда у меня телефон в портретном режиме, он возвращает ПОРТРЕТ.Однако, когда я поворачиваю телефон в альбомную ориентацию, этот метод по-прежнему возвращает PORTRAIT.

То же самое происходит, когда у меня есть значения и значения-land с логическим флагом, указывающим ландшафт, который я читаю по требованию.

Похоже, что конфигурация контекста приложения остается неизменной на протяжении всего времени жизни процесса.Например, он сохраняет конфигурацию, с которой начал.

Кто-нибудь может подтвердить это, пожалуйста?И если да, то как мне подойти к этому вопросу?

@Singleton
class DeviceInfo @Inject constructor(private val context: Context) {

    enum class DeviceOrientation {
        PORTRAIT, LANDSCAPE
    }

    fun getOrientation(): DeviceOrientation {
        val orientation = context.resources.configuration.orientation
        return when (orientation) {
            Configuration.ORIENTATION_LANDSCAPE -> DeviceOrientation.LANDSCAPE
            else -> DeviceOrientation.PORTRAIT
        }
    }
}
...