summaryrefslogtreecommitdiff
path: root/android/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/main/java')
-rw-r--r--android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt5
-rw-r--r--android/app/src/main/java/dev/equestria/mist/MainActivity.kt93
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