android
system screen rotate click listener
노명규
2023. 3. 7. 18:09
private val autoRotateObserver = AutoRotateObserver(this, listener)
contentResolver.registerContentObserver(
Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION),
true, autoRotateObserver
)
override fun onDestroy() {
super.onDestroy()
contentResolver.unregisterContentObserver(autoRotateObserver)
}
class AutoRotateObserver(context: Context, listener: RotateConfigEventListener) : ContentObserver(null) {
private val mContext: Context = context
private val listener = listener
override fun onChange(selfChange: Boolean) {
super.onChange(selfChange)
// 설정값이 변경되면 호출됨
val autoRotateEnabled = Settings.System.getInt( mContext.contentResolver, Settings.System.ACCELEROMETER_ROTATION, 0) == 1
// Log.d(LOGTAG,"AutoRotateObserver onChange selfChange : ${selfChange} / ${autoRotateEnabled}")
listener.onChangeRotate(autoRotateEnabled)
}
}
autoRoateEnabled이 true면 회전 on, false면 off