/* * Copyright (C) 2024 The Android Open Source Project * Copyright (C) 2024 Mopria Alliance, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.bips.jni import android.net.Uri import com.android.bips.BuiltInPrintService import com.android.bips.ipp.Backend class PrinterStatusMonitor( path: Uri, service: BuiltInPrintService, private val onPrinterStatus: (JobCallbackParams) -> Unit, ) { private val statusId: Long init { statusId = service.backend.nativeMonitorStatusSetup( Backend.getIp(path.host), path.port, path.path, path.scheme, ) if (statusId != 0L) { service.backend.nativeMonitorStatusStart(statusId, this) } } fun stopMonitor(service: BuiltInPrintService) { service.backend.nativeMonitorStatusStop(statusId) } /** This method is calling from JNI layer */ private fun callbackReceiver(status: JobCallbackParams) { onPrinterStatus(status) } }