package com.lukouguoji.module_base.router

import android.content.Context
import android.util.Log
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.facade.annotation.Interceptor
import com.alibaba.android.arouter.facade.callback.InterceptorCallback
import com.alibaba.android.arouter.facade.template.IInterceptor
import com.lukouguoji.module_base.router.ARouterConstants


/**
 * priority: 优先级，适用于多个拦截器的情况。
 */
@Interceptor(priority = 8, name = "拦截器")
class MyInterceptor : IInterceptor {
    override fun process(postcard: Postcard, callback: InterceptorCallback) {


        // 如果目标是"影视页面"
        if (postcard.path == ARouterConstants.ACTIVITY_URL_LOGIN) {

            // 如果没有登录，跳转到登陆页面。
            postcard.withString("account", "10001")
        }
        /**
         * 继续跳转或者终止跳转，如果不调用，路由直接结束。
         */
        // 1.继续跳转
        callback.onContinue(postcard)

        // 2.终止跳转
        //callback.onInterrupt(null)
        //callback.onInterrupt(new RuntimeException()) // 抛出异常
    }

    override fun init(context: Context?) {

        // 会在sdk初始化的时候调用且仅调用一次
        Log.d("feather", "拦截器初始化")
    }


}