package com.adealink.weparty.module.account

import androidx.fragment.app.FragmentManager
import com.adealink.weparty.aab.IService
import com.adealink.weparty.module.account.data.UserKickReason

interface IAccountService : IService<IAccountService> {
    val uid: String

    val token: String
    fun showLoginDialog(fm: FragmentManager?)

    fun logout(toLogin: Boolean? = true)

    fun onKickedOffline(reason: UserKickReason)

    fun onTokenExpire()

    fun isLogin(): Boolean

    fun registerListener(l: ILoginListener)

    fun unregisterListener(l: ILoginListener)

    fun refreshToken()

    fun checkRemoteVirtualAppConfig()

}