diff options
Diffstat (limited to 'android/app/src/main/java')
-rw-r--r-- | android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt | 5 | ||||
-rw-r--r-- | android/app/src/main/java/dev/equestria/mist/MainActivity.kt | 93 |
2 files changed, 53 insertions, 45 deletions
diff --git a/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt b/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt index 62c3b03..294e80f 100644 --- a/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt +++ b/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt @@ -2,6 +2,7 @@ package dev.equestria.mist import android.Manifest import android.annotation.SuppressLint +import android.app.PendingIntent import android.content.Context import android.content.Intent import android.content.pm.PackageManager @@ -148,7 +149,11 @@ class JavaScriptExtensions(originalActivity: MainActivity, private val window: W session.setCallback(callback) session.setMetadata(builder.build()) session.setPlaybackState(playbackStateBuilder.build()) + style.setMediaSession(session.sessionToken) + + notificationBuilder.setContentTitle(title) + notificationBuilder.setContentText("$artist - $album") notificationBuilder.setStyle(style) val notification = notificationBuilder.build() diff --git a/android/app/src/main/java/dev/equestria/mist/MainActivity.kt b/android/app/src/main/java/dev/equestria/mist/MainActivity.kt index 930d309..78807c2 100644 --- a/android/app/src/main/java/dev/equestria/mist/MainActivity.kt +++ b/android/app/src/main/java/dev/equestria/mist/MainActivity.kt @@ -48,6 +48,7 @@ import dev.equestria.mist.ui.theme.MistTheme class MainActivity : ComponentActivity() { private lateinit var intent: Intent + lateinit var webview: WebView @OptIn(ExperimentalMaterial3Api::class) fun showError() { @@ -101,7 +102,7 @@ class MainActivity : ComponentActivity() { } } - val channel = NotificationChannel("main", "Playback", NotificationManager.IMPORTANCE_DEFAULT).apply {} + val channel = NotificationChannel("main", "Playback", NotificationManager.IMPORTANCE_LOW).apply {} val notificationManager: NotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel) @@ -155,50 +156,52 @@ class MainActivity : ComponentActivity() { Log.d("StatusBarHeight", getStatusBarHeight(this).toString()) Log.d("NavigationBarHeight", getNavigationBarHeight(this).toString()) } -} - -@SuppressLint("SetJavaScriptEnabled") -@Composable -fun WebViewContainer(activity: MainActivity, intent: Intent) { - val mUrl = "https://mist.equestria.horse/app/" - - AndroidView(factory = { - WebView(it).apply { - layoutParams = ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT - ) - - clearCache(true) - clearHistory() - webViewClient = WebViewClient() - - settings.domStorageEnabled = true - settings.javaScriptEnabled = true - settings.safeBrowsingEnabled = false - settings.mediaPlaybackRequiresUserGesture = false - settings.userAgentString += " MistAndroid/" + BuildConfig.VERSION_NAME - settings.cacheMode = WebSettings.LOAD_NO_CACHE - - settings.setSupportMultipleWindows(true) - webChromeClient = object : WebChromeClient() { - override fun onCreateWindow( - view: WebView, - dialog: Boolean, - userGesture: Boolean, - resultMsg: Message - ): Boolean { - val result = view.hitTestResult - val data = result.extra - val context = view.context - val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(data)) - context.startActivity(browserIntent) - return false + + @SuppressLint("SetJavaScriptEnabled") + @Composable + fun WebViewContainer(activity: MainActivity, intent: Intent) { + val mUrl = "https://mist.equestria.horse/app/" + + AndroidView(factory = { + WebView(it).apply { + webview = this + + layoutParams = ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT + ) + + clearCache(true) + clearHistory() + webViewClient = WebViewClient() + + settings.domStorageEnabled = true + settings.javaScriptEnabled = true + settings.safeBrowsingEnabled = false + settings.mediaPlaybackRequiresUserGesture = false + settings.userAgentString += " MistAndroid/" + BuildConfig.VERSION_NAME + settings.cacheMode = WebSettings.LOAD_NO_CACHE + + settings.setSupportMultipleWindows(true) + webChromeClient = object : WebChromeClient() { + override fun onCreateWindow( + view: WebView, + dialog: Boolean, + userGesture: Boolean, + resultMsg: Message + ): Boolean { + val result = view.hitTestResult + val data = result.extra + val context = view.context + val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(data)) + context.startActivity(browserIntent) + return false + } } - } - addJavascriptInterface(JavaScriptExtensions(activity, activity.window, this, intent), "MistAndroid") - loadUrl(mUrl) - } - }) + addJavascriptInterface(JavaScriptExtensions(activity, activity.window, this, intent), "MistAndroid") + loadUrl(mUrl) + } + }) + } }
\ No newline at end of file |