main: fix color parsing

pull/653/merge
Varun Patil 2023-08-20 13:28:45 -07:00
parent 1bbc7e5066
commit 6756d73ffb
1 changed files with 22 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View import android.view.View
import android.view.WindowInsetsController import android.view.WindowInsetsController
@ -26,6 +27,10 @@ import androidx.media3.exoplayer.source.ProgressiveMediaSource
import gallery.memories.databinding.ActivityMainBinding import gallery.memories.databinding.ActivityMainBinding
@UnstableApi class MainActivity : AppCompatActivity() { @UnstableApi class MainActivity : AppCompatActivity() {
companion object {
val TAG = "MainActivity"
}
val binding by lazy(LazyThreadSafetyMode.NONE) { val binding by lazy(LazyThreadSafetyMode.NONE) {
ActivityMainBinding.inflate(layoutInflater) ActivityMainBinding.inflate(layoutInflater)
} }
@ -157,9 +162,13 @@ import gallery.memories.databinding.ActivityMainBinding
webSettings.domStorageEnabled = true webSettings.domStorageEnabled = true
webSettings.databaseEnabled = true webSettings.databaseEnabled = true
webSettings.userAgentString = userAgent webSettings.userAgentString = userAgent
binding.webview.clearCache(true) webSettings.setSupportZoom(false)
webSettings.builtInZoomControls = false
webSettings.displayZoomControls = false
binding.webview.addJavascriptInterface(nativex, "nativex") binding.webview.addJavascriptInterface(nativex, "nativex")
binding.webview.setLayerType(View.LAYER_TYPE_HARDWARE, null)
binding.webview.setBackgroundColor(Color.TRANSPARENT) binding.webview.setBackgroundColor(Color.TRANSPARENT)
binding.webview.clearCache(true)
WebView.setWebContentsDebuggingEnabled(true); WebView.setWebContentsDebuggingEnabled(true);
// Welcome page or actual app // Welcome page or actual app
@ -328,15 +337,25 @@ import gallery.memories.databinding.ActivityMainBinding
fun applyTheme(color: String?, isDark: Boolean) { fun applyTheme(color: String?, isDark: Boolean) {
if (color == null) return if (color == null) return
// Set dark mode
setTheme(if (isDark) android.R.style.Theme_Black else android.R.style.Theme_Light) setTheme(if (isDark) android.R.style.Theme_Black else android.R.style.Theme_Light)
window.navigationBarColor = Color.parseColor(color)
window.statusBarColor = Color.parseColor(color)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val appearance = WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS or WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS val appearance = WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS or WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
window.insetsController?.setSystemBarsAppearance(if (isDark) 0 else appearance, appearance) window.insetsController?.setSystemBarsAppearance(if (isDark) 0 else appearance, appearance)
} else { } else {
window.decorView.systemUiVisibility = if (isDark) 0 else View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR window.decorView.systemUiVisibility = if (isDark) 0 else View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
} }
// Set colors
try {
val parsed = Color.parseColor(color.trim())
window.navigationBarColor = parsed
window.statusBarColor = parsed
} catch (e: Exception) {
Log.w(TAG, "Invalid color: $color")
return
}
} }
fun hasMediaPermission(): Boolean { fun hasMediaPermission(): Boolean {