fix: bug fix
This commit is contained in:
@@ -15,11 +15,9 @@ import android.widget.Toast;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.util.Consumer;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.chwl.app.R;
|
||||
import com.chwl.app.application.App;
|
||||
import com.chwl.app.common.AbsStatusFragment;
|
||||
import com.chwl.app.common.LoadingFragment;
|
||||
import com.chwl.app.common.NetworkErrorFragment;
|
||||
@@ -67,6 +65,9 @@ public abstract class BaseFragment extends RxFragment implements KeyEvent.Callba
|
||||
super.onCreate(savedInstanceState);
|
||||
mContext = getContext();
|
||||
onInitArguments(getArguments());
|
||||
// if (getContext() != null) {
|
||||
// dialogManager = new DialogManager(getContext());
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -588,30 +589,47 @@ public abstract class BaseFragment extends RxFragment implements KeyEvent.Callba
|
||||
//todo do fix
|
||||
protected DialogManager getDialogManager() {
|
||||
|
||||
FragmentActivity activity = getActivity();
|
||||
try {
|
||||
if (activity instanceof BaseMvpActivity) {
|
||||
return ((BaseMvpActivity) activity).getDialogManager();
|
||||
} else if (activity instanceof BaseActivity) {
|
||||
return ((BaseActivity) activity).getDialogManager();
|
||||
}
|
||||
|
||||
Activity topActivity = App.gStack.getTopActivity();
|
||||
if (dialogManager == null && topActivity != null) {
|
||||
dialogManager = new DialogManager(topActivity);
|
||||
}
|
||||
|
||||
Context fragmentContext = requireContext();
|
||||
if (dialogManager == null) {
|
||||
dialogManager = new DialogManager(fragmentContext);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
if (dialogManager != null) {
|
||||
return dialogManager;
|
||||
} else {
|
||||
dialogManager = new DialogManager(true);
|
||||
return dialogManager;
|
||||
}
|
||||
|
||||
|
||||
return dialogManager;
|
||||
// FragmentActivity activity = getActivity();
|
||||
// try {
|
||||
// if (activity instanceof BaseMvpActivity) {
|
||||
// DialogManager dialogManager1 = ((BaseMvpActivity) activity).getDialogManager();
|
||||
// if (dialogManager1 != null) {
|
||||
// dialogManager = dialogManager1;
|
||||
// }
|
||||
// return dialogManager1;
|
||||
// } else if (activity instanceof BaseActivity) {
|
||||
// DialogManager dialogManager2 = ((BaseActivity) activity).getDialogManager();
|
||||
// if (dialogManager2 != null) {
|
||||
// dialogManager = dialogManager2;
|
||||
// }
|
||||
// return dialogManager2;
|
||||
// }
|
||||
//
|
||||
// Context fragmentContext = getContext();
|
||||
// if (dialogManager == null && fragmentContext != null) {
|
||||
// dialogManager = new DialogManager(fragmentContext);
|
||||
// }
|
||||
//
|
||||
// if (dialogManager == null) {
|
||||
// Activity topActivity = App.gStack.getTopActivity();
|
||||
// if (topActivity != null) {
|
||||
// dialogManager = new DialogManager(topActivity);
|
||||
// }
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// dialogManager = new DialogManager(true);
|
||||
// }
|
||||
//
|
||||
// return dialogManager;
|
||||
}
|
||||
|
||||
public BaseActivity getBaseActivity() {
|
||||
|
@@ -10,8 +10,11 @@ import java.lang.reflect.ParameterizedType
|
||||
abstract class BaseViewBindingFragment<T : ViewBinding> : BaseFragment() {
|
||||
|
||||
protected var _binding: T? = null
|
||||
//todo do fix
|
||||
|
||||
val binding get() = _binding!!
|
||||
fun getViewBinding():T?{
|
||||
return _binding
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
//反射没有想象中的那么耗时
|
||||
|
@@ -54,6 +54,7 @@ public class DialogManager {
|
||||
private Switch switchTips;
|
||||
private int mProgressMax = 0;
|
||||
private String mTip;
|
||||
private boolean isError;
|
||||
|
||||
public DialogManager(Context context) {
|
||||
mContext = context;
|
||||
@@ -77,6 +78,10 @@ public class DialogManager {
|
||||
mCanceledOnClickOutside = canceledOnClickOutside;
|
||||
}
|
||||
|
||||
public DialogManager(boolean isError) {
|
||||
this.isError = isError;
|
||||
}
|
||||
|
||||
public static boolean isHtmlAlertDialog(String html) {
|
||||
try {
|
||||
return html.matches(".*<([^>]*)>.*");
|
||||
@@ -363,7 +368,9 @@ public class DialogManager {
|
||||
mDialog.dismiss();
|
||||
}
|
||||
} else {
|
||||
mDialog.dismiss();
|
||||
if (mDialog != null) {
|
||||
mDialog.dismiss();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -396,8 +403,7 @@ public class DialogManager {
|
||||
}
|
||||
|
||||
public void showOkWithTitleDialog(CharSequence message, boolean isCanCancel) {
|
||||
showOkWithTitleDialog(getContext().getString(R.string.common_tip), message,
|
||||
getContext().getString(R.string.text_ok), isCanCancel, null);
|
||||
showOkWithTitleDialog(getContext().getString(R.string.common_tip), message, getContext().getString(R.string.text_ok), isCanCancel, null);
|
||||
}
|
||||
|
||||
public void showOkWithTitleDialog(CharSequence message) {
|
||||
@@ -529,7 +535,7 @@ public class DialogManager {
|
||||
}
|
||||
|
||||
public int getShowingDialogId() {
|
||||
if (mDialog.isShowing() && mDialog instanceof CommonPopupDialog) {
|
||||
if (mDialog != null && mDialog.isShowing() && mDialog instanceof CommonPopupDialog) {
|
||||
return ((CommonPopupDialog) mDialog).getId();
|
||||
}
|
||||
return 0;
|
||||
@@ -978,7 +984,7 @@ public class DialogManager {
|
||||
public void showProgressDialog(Context context, String msg, boolean cancelable, boolean outSideCancelable,
|
||||
DialogInterface.OnDismissListener listener, DialogInterface.OnCancelListener cancelListener) {
|
||||
showProgressDialog(context, msg, cancelable, outSideCancelable, listener);
|
||||
if (cancelListener != null) {
|
||||
if (cancelListener != null && mDialog != null) {
|
||||
mDialog.setOnCancelListener(cancelListener);
|
||||
}
|
||||
}
|
||||
|
@@ -405,7 +405,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
UserDetailInfo.DataBean.RelationUserVO cpInfo = dataBean.getRelationUserVO();
|
||||
|
||||
//头像
|
||||
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty() && cpInfo.showCpAvatar){
|
||||
if (cpInfo != null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty() && cpInfo.showCpAvatar){
|
||||
//cp 头像
|
||||
mBinding.cpViews.setVisibility(View.VISIBLE);
|
||||
mBinding.ivHeadWear.loadFile(CpUtils.INSTANCE.getHeadSvga(cpInfo.cpLevel));
|
||||
@@ -419,45 +419,50 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}else {
|
||||
mBinding.cpViews.setVisibility(View.INVISIBLE);
|
||||
|
||||
//正常头像
|
||||
HeadWearInfo headWearInfo = userInfo.getUserHeadwear();
|
||||
if (headWearInfo != null && headWearInfo.getFirstUrl() != null) {
|
||||
AvatarHelper.loadAvatarFrame(mBinding.ivHeadWear, headWearInfo.getFirstUrl(), headWearInfo.getType());
|
||||
mBinding.ivUserHead.setPadding(0, 0, 0, 0);
|
||||
mBinding.ivHeadWear.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
int padding = getResources().getDimensionPixelOffset(R.dimen.dp_0_5);
|
||||
mBinding.ivUserHead.setPadding(padding, padding, padding, padding);
|
||||
mBinding.cpViews.setVisibility(View.INVISIBLE);
|
||||
mBinding.ivHeadWear.setVisibility(View.INVISIBLE);
|
||||
if (userInfo != null) {
|
||||
//正常头像
|
||||
HeadWearInfo headWearInfo = userInfo.getUserHeadwear();
|
||||
if (headWearInfo != null && headWearInfo.getFirstUrl() != null) {
|
||||
AvatarHelper.loadAvatarFrame(mBinding.ivHeadWear, headWearInfo.getFirstUrl(), headWearInfo.getType());
|
||||
mBinding.ivUserHead.setPadding(0, 0, 0, 0);
|
||||
mBinding.ivHeadWear.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
int padding = getResources().getDimensionPixelOffset(R.dimen.dp_0_5);
|
||||
mBinding.ivUserHead.setPadding(padding, padding, padding, padding);
|
||||
mBinding.cpViews.setVisibility(View.INVISIBLE);
|
||||
mBinding.ivHeadWear.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//cp 卡片
|
||||
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty()) {
|
||||
mBinding.cpCardDay.setText(cpInfo.cpDay + ""+ ResUtil.getString(R.string.days));
|
||||
mBinding.cpCardDay.setVisibility(cpInfo.cpDay > 0? View.VISIBLE : View.INVISIBLE);
|
||||
if (userInfo != null) {
|
||||
//cp 卡片
|
||||
if (cpInfo!= null && cpInfo.cpAvatar != null && !cpInfo.cpAvatar.isEmpty()) {
|
||||
mBinding.cpCardDay.setText(cpInfo.cpDay + ""+ ResUtil.getString(R.string.days));
|
||||
mBinding.cpCardDay.setVisibility(cpInfo.cpDay > 0? View.VISIBLE : View.INVISIBLE);
|
||||
|
||||
mBinding.cpCardLevel.setImageResource(CpUtils.INSTANCE.getLevelImg(cpInfo.cpLevel));
|
||||
mBinding.cpCardLevel.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardLevelEmpty.setVisibility(View.INVISIBLE);
|
||||
mBinding.cpCardLevel.setImageResource(CpUtils.INSTANCE.getLevelImg(cpInfo.cpLevel));
|
||||
mBinding.cpCardLevel.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardLevelEmpty.setVisibility(View.INVISIBLE);
|
||||
|
||||
ImageLoadUtils.loadAvatar(userInfo.getAvatar(),mBinding.cpCardUserAvatar);
|
||||
ImageLoadUtils.loadAvatar(cpInfo.cpAvatar,mBinding.cpCardUserAvatarCp);
|
||||
mBinding.cpCardUserHeadCp.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardUserAvatarCp.setOnClickListener(v -> {
|
||||
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
|
||||
});
|
||||
}else {
|
||||
mBinding.cpCardDay.setVisibility(View.INVISIBLE);
|
||||
mBinding.cpCardLevelEmpty.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardLevel.setVisibility(View.INVISIBLE);
|
||||
mBinding.cpCardUserAvatarCp.setImageResource(R.drawable.ic_user_info_cp_def_avatar);
|
||||
mBinding.cpCardUserAvatarCp.setOnClickListener(null);
|
||||
mBinding.cpCardUserHeadCp.setVisibility(View.INVISIBLE);
|
||||
ImageLoadUtils.loadAvatar(userInfo.getAvatar(), mBinding.cpCardUserAvatar);
|
||||
ImageLoadUtils.loadAvatar(userInfo.getAvatar(),mBinding.cpCardUserAvatar);
|
||||
ImageLoadUtils.loadAvatar(cpInfo.cpAvatar,mBinding.cpCardUserAvatarCp);
|
||||
mBinding.cpCardUserHeadCp.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardUserAvatarCp.setOnClickListener(v -> {
|
||||
UserInfoActivity.Companion.start(context,cpInfo.cpUid);
|
||||
});
|
||||
}else {
|
||||
mBinding.cpCardDay.setVisibility(View.INVISIBLE);
|
||||
mBinding.cpCardLevelEmpty.setVisibility(View.VISIBLE);
|
||||
mBinding.cpCardLevel.setVisibility(View.INVISIBLE);
|
||||
mBinding.cpCardUserAvatarCp.setImageResource(R.drawable.ic_user_info_cp_def_avatar);
|
||||
mBinding.cpCardUserAvatarCp.setOnClickListener(null);
|
||||
mBinding.cpCardUserHeadCp.setVisibility(View.INVISIBLE);
|
||||
ImageLoadUtils.loadAvatar(userInfo.getAvatar(), mBinding.cpCardUserAvatar);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//cp 动画
|
||||
if (cpInfo != null && cpInfo.showCpAnim && isFirst) {
|
||||
String animUrl = CpUtils.INSTANCE.getUserInfoAnim(cpInfo.cpLevel);
|
||||
|
@@ -64,8 +64,8 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
}
|
||||
gameUrl = url
|
||||
initView()
|
||||
binding.webView.isInvisible = true
|
||||
binding.webView.loadUrl(url)
|
||||
getViewBinding()?.webView?.isInvisible = true
|
||||
getViewBinding()?.webView?.loadUrl(url)
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
@@ -75,7 +75,7 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
@SuppressLint("SetJavaScriptEnabled", "JavascriptInterface")
|
||||
private fun initWebView() {
|
||||
//防⽌⽤浏览器打开⽹⻚
|
||||
binding.webView.webViewClient = object : WebViewClient() {
|
||||
getViewBinding()?.webView?.webViewClient = object : WebViewClient() {
|
||||
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
super.onPageStarted(view, url, favicon)
|
||||
@@ -114,7 +114,7 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
super.onPageFinished(view, url)
|
||||
try {
|
||||
if (!isLoadError) {
|
||||
binding?.webView?.isVisible = true
|
||||
getViewBinding()?.webView?.isVisible = true
|
||||
}
|
||||
}catch (e:Exception){
|
||||
|
||||
@@ -143,46 +143,46 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
}
|
||||
}
|
||||
//设置webview背景透明,默认为⽩⾊
|
||||
binding.webView.setBackgroundColor(0)
|
||||
getViewBinding()?.webView?.setBackgroundColor(0)
|
||||
//设置view背景透明,默认为⽩⾊ 可选(单独activity添加webView组件时需要添加)
|
||||
binding.root.setBackgroundColor(0)
|
||||
getViewBinding()?.root?.setBackgroundColor(0)
|
||||
|
||||
val settings = binding.webView.settings
|
||||
val settings = getViewBinding()?.webView?.settings
|
||||
//设置⽀持Javascript
|
||||
settings.javaScriptEnabled = true
|
||||
settings?.javaScriptEnabled = true
|
||||
//设置默认⽂本编码
|
||||
settings.defaultTextEncodingName = "UTF-8"
|
||||
settings?.defaultTextEncodingName = "UTF-8"
|
||||
//设置可访问本地⽂件
|
||||
settings.allowFileAccess = true
|
||||
settings?.allowFileAccess = true
|
||||
//设置允许通过file url加载的Javascript读取全部资源(包括⽂件,http,https)
|
||||
settings.allowUniversalAccessFromFileURLs = true
|
||||
settings?.allowUniversalAccessFromFileURLs = true
|
||||
//设置优先加载缓存
|
||||
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
||||
settings?.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
||||
//设置启⽤HTML5 DOM storage
|
||||
settings.domStorageEnabled = true
|
||||
settings?.domStorageEnabled = true
|
||||
//设置开启数据库缓存
|
||||
settings.databaseEnabled = true
|
||||
settings.databasePath = (requireContext().applicationContext.filesDir.absolutePath)
|
||||
settings?.databaseEnabled = true
|
||||
settings?.databasePath = (requireContext().applicationContext.filesDir.absolutePath)
|
||||
//设置⽀持缩放
|
||||
settings.setSupportZoom(true)
|
||||
settings?.setSupportZoom(true)
|
||||
//设置⾃适应
|
||||
settings.useWideViewPort = true
|
||||
settings?.useWideViewPort = true
|
||||
//设置⾃动播放媒体
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
settings.mediaPlaybackRequiresUserGesture = false
|
||||
settings?.mediaPlaybackRequiresUserGesture = false
|
||||
}
|
||||
//设置5.0以上允许加载http和https混合的⻚⾯
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
|
||||
settings?.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
|
||||
}
|
||||
|
||||
//游戏调⽤的类,必须定义为 NativeBridge
|
||||
binding.webView.addJavascriptInterface(BaiShunGameJSBridge(this), "NativeBridge")
|
||||
getViewBinding()?.webView?.addJavascriptInterface(BaiShunGameJSBridge(this), "NativeBridge")
|
||||
}
|
||||
|
||||
override fun callJs(str: String) {
|
||||
binding.webView.post {
|
||||
binding.webView.loadUrl("javascript:$str")
|
||||
getViewBinding()?.webView?.post {
|
||||
getViewBinding()?.webView?.loadUrl("javascript:$str")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
|
||||
private fun onReceivedError(url: String?, code: Int?, message: CharSequence?) {
|
||||
if (url == gameUrl) {
|
||||
binding.webView.isInvisible = true
|
||||
getViewBinding()?.webView?.isInvisible = true
|
||||
dialogManager.dismissDialog()
|
||||
showLoadErrorDialog(message?.toString() ?: "($code)")
|
||||
}
|
||||
@@ -252,7 +252,7 @@ class BaiShunGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>(
|
||||
getString(R.string.exit_text),
|
||||
false, false, true, object : OkCancelDialogListener {
|
||||
override fun onOk() {
|
||||
binding.webView.reload()
|
||||
getViewBinding()?.webView?.reload()
|
||||
}
|
||||
|
||||
override fun onCancel() {
|
||||
|
@@ -69,8 +69,8 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
}
|
||||
gameUrl = url
|
||||
initView()
|
||||
binding.webView.isInvisible = true
|
||||
binding.webView.loadUrl(url)
|
||||
getViewBinding()?.webView?.isInvisible = true
|
||||
getViewBinding()?.webView?.loadUrl(url)
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
@@ -80,7 +80,7 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
@SuppressLint("SetJavaScriptEnabled", "JavascriptInterface")
|
||||
private fun initWebView() {
|
||||
//防⽌⽤浏览器打开⽹⻚
|
||||
binding.webView.webViewClient = object : WebViewClient() {
|
||||
getViewBinding()?.webView?.webViewClient = object : WebViewClient() {
|
||||
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
super.onPageStarted(view, url, favicon)
|
||||
@@ -118,7 +118,7 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
override fun onPageFinished(view: WebView?, url: String?) {
|
||||
super.onPageFinished(view, url)
|
||||
if (!isLoadError) {
|
||||
binding?.webView?.isVisible = true
|
||||
getViewBinding()?.webView?.isVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,58 +143,58 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
}
|
||||
}
|
||||
//设置webview背景透明,默认为⽩⾊
|
||||
binding.webView.setBackgroundColor(0)
|
||||
getViewBinding()?.webView?.setBackgroundColor(0)
|
||||
//设置view背景透明,默认为⽩⾊ 可选(单独activity添加webView组件时需要添加)
|
||||
binding.root.setBackgroundColor(0)
|
||||
getViewBinding()?.root?.setBackgroundColor(0)
|
||||
|
||||
val settings = binding.webView.settings
|
||||
val settings = getViewBinding()?.webView?.settings
|
||||
//设置⽀持Javascript
|
||||
settings.javaScriptEnabled = true
|
||||
settings?.javaScriptEnabled = true
|
||||
//设置默认⽂本编码
|
||||
settings.defaultTextEncodingName = "UTF-8"
|
||||
settings?.defaultTextEncodingName = "UTF-8"
|
||||
//设置可访问本地⽂件
|
||||
settings.allowFileAccess = true
|
||||
settings?.allowFileAccess = true
|
||||
//设置允许通过file url加载的Javascript读取全部资源(包括⽂件,http,https)
|
||||
settings.allowUniversalAccessFromFileURLs = true
|
||||
settings?.allowUniversalAccessFromFileURLs = true
|
||||
//设置优先加载缓存
|
||||
settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
||||
settings?.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
|
||||
//设置启⽤HTML5 DOM storage
|
||||
settings.domStorageEnabled = true
|
||||
settings?.domStorageEnabled = true
|
||||
//设置开启数据库缓存
|
||||
settings.databaseEnabled = true
|
||||
settings.databasePath = (requireContext().applicationContext.filesDir.absolutePath)
|
||||
settings?.databaseEnabled = true
|
||||
settings?.databasePath = (requireContext().applicationContext.filesDir.absolutePath)
|
||||
//设置⽀持缩放
|
||||
settings.setSupportZoom(true)
|
||||
settings?.setSupportZoom(true)
|
||||
//设置⾃适应
|
||||
settings.useWideViewPort = true
|
||||
settings?.useWideViewPort = true
|
||||
//设置⾃动播放媒体
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
settings.mediaPlaybackRequiresUserGesture = false
|
||||
settings?.mediaPlaybackRequiresUserGesture = false
|
||||
}
|
||||
//设置5.0以上允许加载http和https混合的⻚⾯
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
|
||||
settings?.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
|
||||
}
|
||||
|
||||
//游戏调⽤的类,必须定义为 LingxianAndroid
|
||||
leaderccJSBridge = LeaderccJSBridge(this)
|
||||
binding.webView.addJavascriptInterface(leaderccJSBridge!!, "LingxianAndroid")
|
||||
getViewBinding()?.webView?.addJavascriptInterface(leaderccJSBridge!!, "LingxianAndroid")
|
||||
|
||||
if (gameConfig?.showType == 2){
|
||||
binding.webView.post {
|
||||
binding.bg.setVis(true)
|
||||
binding.bg.click {
|
||||
getViewBinding()?.webView?.post {
|
||||
getViewBinding()?.bg?.setVis(true)
|
||||
getViewBinding()?.bg?.click {
|
||||
leaderccJSBridge?.closeGame()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
binding.webView.postDelayed({ dialogManager?.dismissDialog() }, 2000)
|
||||
getViewBinding()?.webView?.postDelayed({ dialogManager?.dismissDialog() }, 2000)
|
||||
}
|
||||
|
||||
override fun callJs(str: String) {
|
||||
binding.webView.post {
|
||||
binding.webView.loadUrl("javascript:$str")
|
||||
getViewBinding()?.webView?.post {
|
||||
getViewBinding()?.webView?.loadUrl("javascript:$str")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,7 +256,7 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
|
||||
private fun onReceivedError(url: String?, code: Int?, message: CharSequence?) {
|
||||
if (url == gameUrl) {
|
||||
binding.webView.isInvisible = true
|
||||
getViewBinding()?.webView?.isInvisible = true
|
||||
dialogManager.dismissDialog()
|
||||
showLoadErrorDialog(message?.toString() ?: "($code)")
|
||||
}
|
||||
@@ -270,7 +270,7 @@ class LeaderccGameWebFragment : BaseViewBindingFragment<RoomGameFragmentBinding>
|
||||
getString(R.string.exit_text),
|
||||
false, false, true, object : OkCancelDialogListener {
|
||||
override fun onOk() {
|
||||
binding.webView.reload()
|
||||
getViewBinding()?.webView?.reload()
|
||||
}
|
||||
|
||||
override fun onCancel() {
|
||||
|
@@ -42,41 +42,45 @@ abstract class PickImageActionNew protected constructor(
|
||||
if (resultCode == BaseDialogFragment.RESULT_OK) {
|
||||
when (requestCode) {
|
||||
NimPhotoPickActivity.PICK_ACT_RESULT and 0xff -> {
|
||||
if (data == null) return
|
||||
val uri = data.data
|
||||
if (uri != null) {
|
||||
val file = copyFile(activity, uri)
|
||||
if (file == null) {
|
||||
file?.path?.let { path ->
|
||||
val paths = mutableListOf(path)
|
||||
PhotoCompressUtil.compress(BaseApp.getContext(),
|
||||
paths,
|
||||
PhotoCompressUtil.getCompressCachePath(),
|
||||
object : PhotosCompressCallback {
|
||||
override fun onSuccess(compressedImgList: ArrayList<String>) {
|
||||
// sendImageAfterSelfImagePicker(compressedImgList)
|
||||
for (path in compressedImgList) {
|
||||
val file = File(path)
|
||||
if (TextUtils.isEmpty(path) || !file.exists()) {
|
||||
SingleToastUtil.showToastShort(
|
||||
path + ResUtil.getString(
|
||||
R.string.xchat_android_core_file_filemodel_01
|
||||
try {
|
||||
if (data == null) return
|
||||
val uri = data.data
|
||||
if (uri != null) {
|
||||
val file = copyFile(activity, uri)
|
||||
if (file == null) {
|
||||
file?.path?.let { path ->
|
||||
val paths = mutableListOf(path)
|
||||
PhotoCompressUtil.compress(BaseApp.getContext(),
|
||||
paths,
|
||||
PhotoCompressUtil.getCompressCachePath(),
|
||||
object : PhotosCompressCallback {
|
||||
override fun onSuccess(compressedImgList: ArrayList<String>) {
|
||||
// sendImageAfterSelfImagePicker(compressedImgList)
|
||||
for (path in compressedImgList) {
|
||||
val file = File(path)
|
||||
if (TextUtils.isEmpty(path) || !file.exists()) {
|
||||
SingleToastUtil.showToastShort(
|
||||
path + ResUtil.getString(
|
||||
R.string.xchat_android_core_file_filemodel_01
|
||||
)
|
||||
)
|
||||
)
|
||||
return
|
||||
return
|
||||
}
|
||||
onPicked(file)
|
||||
}
|
||||
onPicked(file)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(e: Throwable) {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
}
|
||||
})
|
||||
override fun onFail(e: Throwable) {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
}
|
||||
} else {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
SingleToastUtil.showToastShort(R.string.picker_image_error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user