mirror of
https://github.com/bitwarden/android.git
synced 2026-02-03 18:17:54 -06:00
Set landscape orientation for HorizonOS devices
This commit is contained in:
parent
757f444493
commit
70aa1ac5c6
@ -2,6 +2,7 @@ package com.x8bit.bitwarden
|
||||
|
||||
import android.app.ComponentCaller
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.KeyEvent
|
||||
@ -22,6 +23,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.compose.NavHost
|
||||
import com.bitwarden.annotation.OmitFromCoverage
|
||||
import com.bitwarden.core.util.isHorizonOS
|
||||
import com.bitwarden.ui.platform.base.util.EventsEffect
|
||||
import com.bitwarden.ui.platform.theme.BitwardenTheme
|
||||
import com.bitwarden.ui.platform.util.setupEdgeToEdge
|
||||
@ -85,6 +87,12 @@ class MainActivity : AppCompatActivity() {
|
||||
var shouldShowSplashScreen = true
|
||||
installSplashScreen().setKeepOnScreenCondition { shouldShowSplashScreen }
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// Set landscape orientation for Horizon OS devices
|
||||
if (isHorizonOS()) {
|
||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
}
|
||||
|
||||
window.decorView.filterTouchesWhenObscured = true
|
||||
if (savedInstanceState == null) {
|
||||
mainViewModel.trySendAction(MainAction.ReceiveFirstIntent(intent = intent))
|
||||
|
||||
@ -5,12 +5,26 @@ package com.bitwarden.core.util
|
||||
import com.bitwarden.annotation.OmitFromCoverage
|
||||
|
||||
private const val KEY_XIAOMI_HYPER_OS_NAME = "ro.mi.os.version.name"
|
||||
private const val HORIZON_OS_SDK = "horizonos.os.Build\$HorizonOsSdk"
|
||||
|
||||
/**
|
||||
* Returns true if the device is running Xiaomi HyperOS.
|
||||
*/
|
||||
fun isHyperOS(): Boolean = !getSystemProperty(KEY_XIAOMI_HYPER_OS_NAME).isNullOrEmpty()
|
||||
|
||||
/**
|
||||
* Returns true if the device is running Horizon OS.
|
||||
*/
|
||||
fun isHorizonOS(): Boolean {
|
||||
return try {
|
||||
val horizonOsSdk = Class.forName(HORIZON_OS_SDK)
|
||||
val getVersionMethod = horizonOsSdk.getMethod("getVersion")
|
||||
getVersionMethod.invoke(null) != null
|
||||
} catch (_: Throwable) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads an Android system property using the android.os.SystemProperties API
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user