chore: init
This commit is contained in:
51
android/src/main/java/DuckPlugin.kt
Normal file
51
android/src/main/java/DuckPlugin.kt
Normal file
@ -0,0 +1,51 @@
|
||||
package de.cfp.duck
|
||||
|
||||
import android.app.Activity
|
||||
import app.tauri.annotation.Command
|
||||
import app.tauri.annotation.InvokeArg
|
||||
import app.tauri.annotation.TauriPlugin
|
||||
import app.tauri.plugin.JSObject
|
||||
import app.tauri.plugin.Plugin
|
||||
import app.tauri.plugin.Invoke
|
||||
|
||||
import android.media.AudioFocusRequest
|
||||
import android.media.AudioManager
|
||||
import android.context.Context
|
||||
import android.webkit.WebView
|
||||
|
||||
@TauriPlugin
|
||||
class DuckPlugin(private val activity: Activity): Plugin(activity) {
|
||||
private val implementation = Duck()
|
||||
private lateinit var audioManager: AudioManager
|
||||
private lateinit var focusRequest: AudioFocusRequest
|
||||
|
||||
override fun load(webView: WebView) {
|
||||
audioManager = (AudioManager) getBridge().getActivity().getSystemService(Context.AUDIO_SERVICE)
|
||||
}
|
||||
|
||||
@Command
|
||||
fun duck(invoke: Invoke) {
|
||||
focusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
|
||||
.setAcceptsDelayedFocusGain(false)
|
||||
.setWillPauseWhenDucked(false)
|
||||
.setForceDucking(true)
|
||||
.build()
|
||||
|
||||
audioManager.requestAudioFocus(focusRequest)
|
||||
|
||||
val ret = JSObject()
|
||||
ret.put("success", true)
|
||||
invoke.resolve(ret)
|
||||
}
|
||||
|
||||
@Command
|
||||
fun unduck(invoke: Invoke) {
|
||||
if (focusRequest != null) {
|
||||
audioManager.abandonAudioFocusRequest(focusRequest)
|
||||
}
|
||||
|
||||
val ret = JSObject()
|
||||
ret.put("success", true)
|
||||
invoke.resolve(ret)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user