package com.arpa.hndahesudintocctmsdriver.util import android.app.Activity import android.content.Context import androidx.annotation.NonNull import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentActivity import com.arpa.hndahesudintocctmsdriver.cuspop.MessagePop import com.arpa.hndahesudintocctmsdriver.cuspop.MyRequestCallback import com.arpa.hndahesudintocctmsdriver.cuspop.TopMsgPopup import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop import com.lxj.xpopup.XPopup import com.lxj.xpopup.core.BasePopupView import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.callback.RequestCallback /** * @ClassName MessageUtils * @Author 用户 * @Date 2023/8/15 09:51 * @Description TODO */ class PermissionUtils { companion object { fun getInstance() = InstanceHelper.sSingle } object InstanceHelper { val sSingle = PermissionUtils() } /** * 显示权限申请 * @param activity AppCompatActivity * @param message String * @param permission List * @param callback RequestCallback * @return BasePopupView? */ fun showPermissionMessage(activity: FragmentActivity,title:String, message: String,vararg permission:String,callback: MyRequestCallback){ val show = XPopup.Builder(activity) .hasShadowBg(false) .hasBlurBg(false) .isTouchThrough(true) .isCenterHorizontal(true) .offsetY(140) .asCustom( TopMsgPopup( activity, title, message ) ) .show() PermissionX.init(activity) .permissions(listOf(*permission)) .request { allGranted, grantedList, deniedList -> show.dismiss() if (callback!=null){ callback.onResult(allGranted,grantedList,deniedList) } } } fun showCenMessage(ctx: Context, message: String, message2: String) { XPopup.Builder(ctx) // .hasNavigationBar(false) .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .asCustom(MessagePop(ctx, message, message2).setOnMyItemClickListener(object : MessagePop.OnMyItemClickListener { override fun onItemClick(startTime: String, endTime: String) { } })) .show() } fun showSimCenPop( ctx: Context, message: String, onMyItemClickListener: SimCenterPop.OnMyItemClickListener ) { // XPopup.Builder(ctx) // // .hasNavigationBar(false) // .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 // .asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(object : SimCenterPop.OnMyItemClickListener{ // override fun onItemClick() { // val intent = Intent(ctx, CertificatesActivity::class.java) // intent.putExtra("index", type) // ctx.startActivity(intent) // } // })) // .show() XPopup.Builder(ctx) // .hasNavigationBar(false) .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .asCustom(SimCenterPop(ctx, message).setOnMyItemClickListener(onMyItemClickListener)) .show() } fun showSimCenPop( ctx: Context, message: String, left: String, right: String, onMyItemClickListener: SimCenterPop.OnMyItemClickListener ) { // XPopup.Builder(ctx) // // .hasNavigationBar(false) // .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 // .asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(object : SimCenterPop.OnMyItemClickListener{ // override fun onItemClick() { // val intent = Intent(ctx, CertificatesActivity::class.java) // intent.putExtra("index", type) // ctx.startActivity(intent) // } // })) // .show() XPopup.Builder(ctx) // .hasNavigationBar(false) .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .asCustom( SimCenterPop(ctx, message, left, right).setOnMyItemClickListener( onMyItemClickListener ) ) .show() } }