/*
 * Copyright (C) 2024 Huawei Device Co., Ltd.
 * 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.
 */
import router from '@system.router';
import { ImageKnife } from '@ohos/libraryimageknife'
@Entry
@Component

struct Index {

  getResourceString(res:Resource){
    return getContext().resourceManager.getStringSync(res.id)
  }

  aboutToAppear(): void {
    // 新增内存缓存测试用例,针对大图耗时场景增加超时
    ImageKnife.getInstance().setConnectTimeout(600000)
    ImageKnife.getInstance().setReadTimeout(600000)
  }

  build() {
    Scroll(){
      Column() {
        Button($r('app.string.Test_ImageAnimator')).onClick(()=>{
          router.push({
            uri: 'pages/ImageAnimatorPage',
          });
        })
        Button(this.getResourceString($r('app.string.Test_ImageAnimator')) + 'V2').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ImageAnimatorPageV2',
          });
        })
        Button('lazyForEach + reloadData').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestGetCacheImageSync',
          });
        })
        Button($r('app.string.Network_reload')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ImageKnifeReload',
          });
        })
        Button($r('app.string.ImageMirrorEnd')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ImageMirrorEnd',
          });
        })
        Button($r('app.string.preloading_prefetch')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/PrefetchAndCacheCount',
          });
        })
        Button($r('app.string.request_concurrency')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SetMaxRequestPage',
          });
        })
        Button($r('app.string.Single_CallBack')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SingleImageCallBack',
          });
        })
        Button($r('app.string.Test_multiple_images')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestCommonImage',
          });
        })
        Button($r('app.string.two_watch_with_one_reuse')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ReusableLoadImage',
          });
        })
        Button($r('app.string.Test_Task_error')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestTaskResourcePage',
          });
        })
        Button($r('app.string.Test_HSP')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestHspPreLoadImage',

          });
        })
        Button($r('app.string.Test_SingleImage')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SingleImage',

          });
        })
        Button(this.getResourceString($r('app.string.Test_SingleImage')) + 'V2').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SingleImageV2',

          });
        })
        Button(this.getResourceString($r('app.string.Preloading_images_to_file_cache_using_option')) + 'V2').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/PreloadAndRemoveV2',

          });
        })
        Button($r('app.string.Test_LocalImageShow')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/LocalImage',

          });
        })
        Button($r('app.string.Error_Message')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ErrorMessageDownload',
          });
        })
        Button($r('app.string.Test_custom_download')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestSetCustomImagePage',

          });
        })
        Button($r('app.string.Single_network_download')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SingleCustomPage',
          });
        })
        Button(this.getResourceString($r('app.string.Multiple_images')) + ' + reuse + LazyForeach').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/UserPage',

          });
        })
        Button($r('app.string.Image_Downsampling_Functionality')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/DownSamplePage',
          });
        })
        Button('APP').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/AppDemo',

          });
        })
        Button($r('app.string.Auto_ImageFit')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/AutoImageFit',

          });
        })
        Button($r('app.string.Image_scaling')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TransformPage',

          });
        })
        Button(this.getResourceString($r('app.string.Message_list')) + ' + List').margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestImageFlash',

          });
        })
        Button($r('app.string.Custom_cache_key')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/SignatureTestPage',

          });
        })
        Button($r('app.string.Preloading_images_to_cache')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestPrefetchToFileCache',

          });
        })
        Button($r('app.string.Retrieve_image_display_from_cache')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestIsUrlExist',

          });
        })
        Button($r('app.string.Test_single_request_header')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestHeader',

          });
        })
        Button($r('app.string.Test_write_cache_strategy')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestWriteCacheStage',

          });
        })
        Button($r('app.string.Image_Transformation')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ImageTransformation',

          });

        })

        Button($r('app.string.Different_ObjectFit')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/ObjectFitPage',

          });

        })

        Button($r('app.string.Test_image_loading_success_or_failure_events')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/LoadStatePage',
          })
        })

        Button($r('app.string.Test_removing_image_cache_interface')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestRemoveCache',
          });
        })
        Button($r('app.string.Test_error_image_display')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/TestErrorHolderPage',

          });
        })
        Button($r('app.string.Test_media_URL')).margin({top:10}).onClick(()=>{
          router.push({
            uri: 'pages/dataShareUriLoadPage',

          });
        })
        Button($r('app.string.test_cache_btn')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: 'pages/TestCacheDataPage',
          });
        })
        Button($r('app.string.test_change_color_btn')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: 'pages/TestChangeColorPage',
          });
        })
        Button($r('app.string.test_cancel_callback_btn')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: 'pages/TestLoadCancelListenerPage',
          });
        })
        Button($r('app.string.test_callback')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: 'pages/TestImageKnifeCallbackPage',

          });
        })
        Button($r('app.string.test_exif')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: 'pages/TestImageExif',
          });
        })
        Button($r('app.string.test_jpeg_decoding')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: "pages/TestJpegDecode",
          });
        })
        Button($r('app.string.compare_jpeg_decoding')).margin({ top: 10 }).onClick(() => {
          router.push({
            uri: "pages/CompareJpegDecode",
          });
        })
      }
    } .width('100%')
    .height('100%')
  }
}