minor fixes

This commit is contained in:
Thibault Deckers 2023-01-11 12:15:44 +01:00
parent 41faaffd34
commit 4d226e6e38
3 changed files with 16 additions and 7 deletions

View file

@ -39,6 +39,7 @@ open class MainActivity : FlutterActivity() {
private lateinit var analysisStreamHandler: AnalysisStreamHandler
internal lateinit var intentDataMap: MutableMap<String, Any?>
private lateinit var analysisHandler: AnalysisHandler
private lateinit var mediaSessionHandler: MediaSessionHandler
override fun onCreate(savedInstanceState: Bundle?) {
Log.i(LOG_TAG, "onCreate intent=$intent")
@ -77,13 +78,14 @@ open class MainActivity : FlutterActivity() {
errorStreamHandler = ErrorStreamHandler().apply {
EventChannel(messenger, ErrorStreamHandler.CHANNEL).setStreamHandler(this)
}
val mediaCommandHandler = MediaCommandStreamHandler().apply {
val mediaCommandStreamHandler = MediaCommandStreamHandler().apply {
EventChannel(messenger, MediaCommandStreamHandler.CHANNEL).setStreamHandler(this)
}
// dart -> platform -> dart
// - need Context
analysisHandler = AnalysisHandler(this, ::onAnalysisCompleted)
mediaSessionHandler = MediaSessionHandler(this, mediaCommandStreamHandler)
MethodChannel(messenger, AnalysisHandler.CHANNEL).setMethodCallHandler(analysisHandler)
MethodChannel(messenger, AppAdapterHandler.CHANNEL).setMethodCallHandler(AppAdapterHandler(this))
MethodChannel(messenger, DebugHandler.CHANNEL).setMethodCallHandler(DebugHandler(this))
@ -94,7 +96,7 @@ open class MainActivity : FlutterActivity() {
MethodChannel(messenger, HomeWidgetHandler.CHANNEL).setMethodCallHandler(HomeWidgetHandler(this))
MethodChannel(messenger, MediaFetchBytesHandler.CHANNEL, AvesByteSendingMethodCodec.INSTANCE).setMethodCallHandler(MediaFetchBytesHandler(this))
MethodChannel(messenger, MediaFetchObjectHandler.CHANNEL).setMethodCallHandler(MediaFetchObjectHandler(this))
MethodChannel(messenger, MediaSessionHandler.CHANNEL).setMethodCallHandler(MediaSessionHandler(this, mediaCommandHandler))
MethodChannel(messenger, MediaSessionHandler.CHANNEL).setMethodCallHandler(mediaSessionHandler)
MethodChannel(messenger, MediaStoreHandler.CHANNEL).setMethodCallHandler(MediaStoreHandler(this))
MethodChannel(messenger, MetadataFetchHandler.CHANNEL).setMethodCallHandler(MetadataFetchHandler(this))
MethodChannel(messenger, StorageHandler.CHANNEL).setMethodCallHandler(StorageHandler(this))
@ -167,6 +169,7 @@ open class MainActivity : FlutterActivity() {
override fun onDestroy() {
Log.i(LOG_TAG, "onDestroy")
mediaSessionHandler.dispose()
mediaStoreChangeStreamHandler.dispose()
settingsChangeStreamHandler.dispose()
super.onDestroy()

View file

@ -33,15 +33,19 @@ class MediaSessionHandler(private val context: Context, private val mediaCommand
}
}
fun dispose() {
context.unregisterReceiver(noisyAudioReceiver)
}
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
when (call.method) {
"update" -> ioScope.launch { safeSuspend(call, result, ::update) }
"release" -> ioScope.launch { safe(call, result, ::release) }
"update" -> ioScope.launch { safeSuspend(call, result, ::updateSession) }
"release" -> ioScope.launch { safe(call, result, ::releaseSession) }
else -> result.notImplemented()
}
}
private suspend fun update(call: MethodCall, result: MethodChannel.Result) {
private suspend fun updateSession(call: MethodCall, result: MethodChannel.Result) {
val uri = call.argument<String>("uri")?.let { Uri.parse(it) }
val title = call.argument<String>("title")
val durationMillis = call.argument<Number>("durationMillis")?.toLong()
@ -115,7 +119,7 @@ class MediaSessionHandler(private val context: Context, private val mediaCommand
result.success(null)
}
private fun release(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) {
private fun releaseSession(@Suppress("unused_parameter") call: MethodCall, result: MethodChannel.Result) {
session?.let {
it.release()
session = null

View file

@ -384,7 +384,9 @@ class _AvesAppState extends State<AvesApp> with WidgetsBindingObserver {
void didChangeMetrics() => _updateCutoutInsets();
Future<void> _updateCutoutInsets() async {
AvesApp.cutoutInsetsNotifier.value = await windowService.getCutoutInsets();
if (await windowService.isCutoutAware()) {
AvesApp.cutoutInsetsNotifier.value = await windowService.getCutoutInsets();
}
}
Widget _getFirstPage({Map? intentData}) => settings.hasAcceptedTerms ? HomePage(intentData: intentData) : const WelcomePage();