import {EventEmitter, Injectable} from '@angular/core';
import {Platform, ToastController,  NavController,} from "@ionic/angular";
// import {App} from "@ionic/pro";
import {IonTabs} from "@ionic/angular";
import {EmitService} from "./emit.service";

@Injectable()
export class BackButtonService {

    //控制硬件返回按钮是否触发，默认false
    backButtonPressed: boolean = false;

    //  1.false  正常返回上一层，2.true，禁止返回上一层，3.result,返回列表页面
    isDo = 'false';

    //构造函数 依赖注入
    constructor(public platform: Platform,
                // public appCtrl: App,
                public eventEmitSer: EmitService,
                public toastCtrl: ToastController) {
        // console.log(this.appCtrl)
        // 接收发射过来的数据
        this.eventEmitSer.eventEmit.subscribe((value: any) => {
            this.isDo = value;
        });
    }

    //注册方法
    registerBackButtonAction(tabRef: IonTabs): void {

        //registerBackButtonAction是系统自带的方法
        // this.platform.registerBackButtonAction(() => {
            //获取NavController
            // let activeNav: NavController = this.appCtrl.getActiveNavs()[0];

            // //如果可以返回上一页，则执行pop
            // if (activeNav.canGoBack()) {
            //     if (this.isDo === 'false') {  //正常返回
            //         activeNav.pop();
            //     }
            //     if (this.isDo === 'result') {
            //         let index = activeNav.length() - 2;
            //         activeNav.remove(2, index)
            //     }
            // } else {
            //     if (tabRef == null || tabRef._selectHistory[tabRef._selectHistory.length - 1] === tabRef.getByIndex(0).id) {
            //         //执行退出
            //         // this.showExit();
            //     } else {
            //         //选择首页第一个的标签
            //         tabRef.select(0);
            //     }
            // }
        // });
    }

    //退出应用方法
    private showExit(): void {
        //如果为true，退出
        if (this.backButtonPressed) {
            // this.platform.exitApp();
        } else {
            // //第一次按，弹出Toast
            // this.toastCtrl.create({
            //     message: '再按一次退出应用',
            //     duration: 2000,
            //     position: 'top'
            // }).present();
            // //标记为true
            // this.backButtonPressed = true;
            //两秒后标记为false，如果退出的话，就不会执行了
            setTimeout(() => this.backButtonPressed = false, 2000);
        }
    }
}