import { ArkUIViewController, Compose } from 'compose';
import { hilog } from '@kit.PerformanceAnalysisKit';
import nativeApi from 'libentry.so';
import { testArkTsToArkTs } from './TestJumpClass';
//import测试区域

const DOMAIN = 0x0000;

@Entry
@Component
struct Index {
  private controller: ArkUIViewController | undefined = undefined;

  @State errorMessage: string = 'Native module not ready';

  aboutToAppear() {
   hilog.info(DOMAIN, 'Compose', 'aboutToAppear');

    //ArkTs生命周期断点处
    if (nativeApi === undefined) {
      hilog.error(DOMAIN, 'Compose', 'nativeApi is undefined, cannot create controller');
      this.errorMessage = 'nativeApi is undefined';
      return;
    }

    let unusedInt:number = 0;//未使用的变量

    //ArkTs到Kotlin的单向跳转
    nativeApi.testArkTsToKotin();


    //原生内部跳转
    testArkTsToArkTs();

    try {
      this.controller = nativeApi.MainArkUIViewController();
      const state = this.controller ? 'created' : 'not_created';
      hilog.info(DOMAIN, 'Compose', 'controller init state: %{public}s', state);
      if (!this.controller) {
        this.errorMessage = 'Controller creation failed (returned null)';
      }
    } catch (e) {
      hilog.error(DOMAIN, 'Compose', 'Exception creating controller: %{public}s', JSON.stringify(e));
      this.errorMessage = 'Exception creating controller: ' + JSON.stringify(e);
    }
  }

  // 模拟耗时操作
    private loadData() {
      for (let i = 0; i < 10000; i++) {
        // 模拟数据处理
        let temp = i * i;
      }
    }

  build() {
    Column() {
      if (this.controller) {
        Compose({
          controller: this.controller,
          libraryName: 'entry',
          onBackPressed: () => false
          // onBackPressed: () => this.controller!.onBackPress() 不能使用这个 会出现无限循环
        })
      } else {
        Text(this.errorMessage)
      }
    }
    .width('100%')
    .height('100%')
  }

  onPageHide() {
    if (this.controller) {
      this.controller.onPageHide();
    }
  }

  onBackPress(): boolean {
    return this.controller ? this.controller.onBackPress() : false;
  }

  //测试-自定义鸿蒙原生函数

}


//测试性能-代码插入
function testPerformance(){
  //性能测试插件测试点

}


//测试格式化
function testFormat(){
  //测试后请复原
  //输入"let a:     number = 0;" 保留：和number的间距
  //选中上列代码（将光标移至代码最左侧，长按向右覆盖整段代码，同复制时的选中复制内容的操作），输入快捷键
  //Mac ：Cmd + Option + L (默认)
  //Windows:Ctrl + Alt + L （默认）
  //观察是否复位  代码自动格式化为"let a:number = 0;"
  //代码格式化测试点

}

//测试代码修复
function testRepair(){
    //输入 "hilop.debug(DOMAIN, 'Compose', 'testRepair');"
    //鼠标悬停在 "hilop"上，等待修复窗口出现，观察窗口上是否有修改为"hilog"相关的字样，点击修复选项（包含“change”相关字段）。
    //修正为 hilog.debug(DOMAIN, 'Compose', 'testRepair');
    //代码修复测试点


}

//测试Find Usages
export function testFindUsages(){
   //测试引用

}





