NativePigeonRegistrar.ets 1.65 KB
import { HealthKitHostApi } from '../pigeon/HealthKitApi';
import { WearEngineHostApi } from '../pigeon/WearEngineApi';
import { AlipayHostApi } from '../pigeon/AlipayApi';
import { BinaryMessenger } from '@ohos/flutter_ohos/src/main/ets/plugin/common/BinaryMessenger';
import { AlipayHostApiImpl } from './AlipayHostApiImpl';
import { HealthKitHostApiImpl } from './HealthKitHostApiImpl';
import { WearEngineHostApiImpl } from './WearEngineHostApiImpl';
import { PlatformHostApi } from '../pigeon/PlatformApi';
import { PlatformHostApiImpl } from './PlatformHostApiImpl';
import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';

/** Registers all Pigeon host-API implementations with the Flutter binary messenger. */
export class NativePigeonRegistrar {
  private static platformHostApi?: PlatformHostApiImpl;

  static register(binaryMessenger: BinaryMessenger, context: common.UIAbilityContext): void {
    HealthKitHostApi.setup(binaryMessenger, new HealthKitHostApiImpl(context));
    WearEngineHostApi.setup(binaryMessenger, new WearEngineHostApiImpl());
    AlipayHostApi.setup(binaryMessenger, new AlipayHostApiImpl());
    NativePigeonRegistrar.platformHostApi = new PlatformHostApiImpl(context);
    PlatformHostApi.setup(binaryMessenger, NativePigeonRegistrar.platformHostApi);
  }

  static handleWant(want: Want): void {
    NativePigeonRegistrar.platformHostApi?.handleWant(want);
  }

  static clearUnhandedUrl(url: string): void {
    NativePigeonRegistrar.platformHostApi?.clearUnhandedUrl(url);
  }

  static setAppForeground(isForeground: boolean): void {
    NativePigeonRegistrar.platformHostApi?.setAppForeground(isForeground);
  }
}