package com.xg.navigation.delegates;

import android.os.Bundle;
import android.widget.Toast;

import com.xg.navigation.delegates.NavigationDelegate;

import java.util.Map;

/**
 * Created by yuanyuan on 18-1-25.
 * 继承自基础的Fragment，封装了返回方法和一些公共方法主要给JS使用
 */

public abstract class ReactDelegate extends BaseDelegate {

    // 再点一次退出程序时间设置
    private static final long WAIT_TIME = 2000L;
    private long TOUCH_TIME = 0;

    @SuppressWarnings("unchecked")
    public <T extends BaseDelegate> T getParentDelegate() {
        return (T) getParentFragment();
    }

    @Override
    public boolean onBackPressedSupport() {

        if (getFragmentManager().getBackStackEntryCount() > 1) {
            return false;
        }

        if (System.currentTimeMillis() - TOUCH_TIME < WAIT_TIME) {
            _mActivity.finish();
        } else {
            TOUCH_TIME = System.currentTimeMillis();
            Toast.makeText(_mActivity, "双击退出程序", Toast.LENGTH_LONG).show();
        }
        return true;
    }

    public abstract Bundle generateRoute();

    public abstract Map<String, Object> setNavigationParams();
}
