优化代码

This commit is contained in:
xuhuixiang
2026-03-17 15:27:40 +08:00
parent 3e9378472b
commit 229ffaea8f
3 changed files with 116 additions and 143 deletions

View File

@@ -31,55 +31,4 @@ public class FcmCheckUtil {
&& googleApi.getApkVersion(context) >= MIN_GOOGLE_PLAY_SERVICES_VERSION;
}
/**
* 获取详细的FCM支持状态用于调试/用户提示)
* @param context 上下文
* @return 状态描述
*/
public static String getFcmSupportStatus(Context context) {
GoogleApiAvailability googleApi = GoogleApiAvailability.getInstance();
int resultCode = googleApi.isGooglePlayServicesAvailable(context);
switch (resultCode) {
case ConnectionResult.SUCCESS:
if (googleApi.getApkVersion(context) >= MIN_GOOGLE_PLAY_SERVICES_VERSION) {
return "设备支持FCMGoogle Play服务可用且版本达标";
} else {
return "Google Play服务版本过低不支持FCM需更新";
}
case ConnectionResult.SERVICE_MISSING:
return "未安装Google Play服务不支持FCM";
case ConnectionResult.SERVICE_DISABLED:
return "Google Play服务已禁用不支持FCM";
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
return "Google Play服务需要更新暂不支持FCM";
default:
return "设备不支持FCM错误码" + resultCode + "";
}
}
/**
* 获取详细的FCM支持状态用于调试/用户提示)
* @param context 上下文
* @return 状态描述
*/
public static boolean getFcmSupport(Context context) {
LogUtils.i("支持FCM"+getFcmSupportStatus(context));
GoogleApiAvailability googleApi = GoogleApiAvailability.getInstance();
int resultCode = googleApi.isGooglePlayServicesAvailable(context);
switch (resultCode) {
case ConnectionResult.SUCCESS:
return true;
case ConnectionResult.SERVICE_MISSING:
return false;
case ConnectionResult.SERVICE_DISABLED:
return false;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
return false;
default:
return false;
}
}
}

View File

@@ -322,7 +322,7 @@ public class MainActivity extends AppCompatActivity {
setTotalTongJi(); //每日活跃统计
LogUtils.i("版本号1"+getVersion());
// LogUtils.i("版本号1"+getVersion());
}
@@ -401,6 +401,9 @@ public class MainActivity extends AppCompatActivity {
ActionConfirmDialog actionDialog;
/**
* 检查请求通知权限
*/
public void checkNotify() {
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@@ -419,6 +422,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void toCancel() {
//通知请求为强制要求时候 拒绝直接app 不让用
if (notifyApply == 1) {
MainActivity.this.finish();
}
@@ -598,91 +602,7 @@ public class MainActivity extends AppCompatActivity {
DataInfo dataInfo = o.data;
if (dataInfo != null) {
if (dataInfo.getIsUse() == 0) {
MainActivity.this.finish();
return;
}
if (!TextUtils.isEmpty(dataInfo.getUrl())) {
saveString(MainActivity.this, "base_url", dataInfo.getUrl());
toLoadWebUrl(dataInfo);
}
String link = dataInfo.getLinkConfig();
if (!TextUtils.isEmpty(link)) {
try {
linkconfiglist = GsonUtils.getListFromJSON(link, LinkConfigInfo.class);
} catch (Exception e) {
}
}
if (!TextUtils.isEmpty(dataInfo.getVersionCode())) {
if (Integer.parseInt(dataInfo.getVersionCode()) > getVersion()) {
ActionConfirmDialog actionDialog = new ActionConfirmDialog(MainActivity.this,
getString(R.string.banbengengxin_txt), getString(R.string.xiacigengxin_txt),
getString(R.string.lijigengxin_txt));
actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() {
@Override
public void toSumbit() {
checkUpdate(dataInfo.getApkUrl());
}
@Override
public void toCancel() {
if (dataInfo.getForceUpdate() == 1) {
MainActivity.this.finish();
}
}
});
actionDialog.show();
}
}
contactApply = dataInfo.getContactApplyMode();
notifyApply = dataInfo.getNoticeApplyMode();
if (notifyApply == 0 || notifyApply == 1) {
if (FcmCheckUtil.isFcmSupported(MainActivity.this) && FcmCheckUtil.getFcmSupport(MainActivity.this)) {
regFcm();
}
}
facebookUrl = dataInfo.getFbUrl().trim();
telegramUrl = dataInfo.getTgUrl().trim();
whatsappUrl = dataInfo.getWsUrl().trim();
if (!TextUtils.isEmpty(facebookUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE);
}
if (!TextUtils.isEmpty(telegramUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.ivFacebook.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivTel.setVisibility(View.VISIBLE);
}
if (!TextUtils.isEmpty(whatsappUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivWhatsapp.setVisibility(View.VISIBLE);
}
if (userId == 143 || userId == 149) {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
activityMain2Binding.ivFacebook.setVisibility(View.GONE);
activityMain2Binding.ivTel.setVisibility(View.GONE);
activityMain2Binding.ivWhatsapp.setVisibility(View.GONE);
activityMain2Binding.layoutOtherapp.setVisibility(View.GONE);
}
toConfigSet(dataInfo);
} else {
url = getString(MainActivity.this, "base_url", url);
activityMain2Binding.webview.loadUrl(url);
@@ -706,7 +626,111 @@ public class MainActivity extends AppCompatActivity {
}
private void toConfigSet(DataInfo dataInfo) {
//后台禁用了 直接退出
if (dataInfo.getIsUse() == 0) {
MainActivity.this.finish();
return;
}
//后台配置url不为空 去加载
if (!TextUtils.isEmpty(dataInfo.getUrl())) {
saveString(MainActivity.this, "base_url", dataInfo.getUrl());
toLoadWebUrl(dataInfo);
}
//通用外链配置
String link = dataInfo.getLinkConfig();
if (!TextUtils.isEmpty(link)) {
try {
linkconfiglist = GsonUtils.getListFromJSON(link, LinkConfigInfo.class);
} catch (Exception e) {
}
}
showUpApp(dataInfo);
contactApply = dataInfo.getContactApplyMode();
notifyApply = dataInfo.getNoticeApplyMode();
//通知权限
if (notifyApply == 0 || notifyApply == 1) {
//检测手机是否支持fcm推送
if (FcmCheckUtil.isFcmSupported(MainActivity.this)) {
regFcm();
}
}
facebookUrl = dataInfo.getFbUrl().trim();
telegramUrl = dataInfo.getTgUrl().trim();
whatsappUrl = dataInfo.getWsUrl().trim();
//外链逻辑修改
if (!TextUtils.isEmpty(facebookUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE);
}
if (!TextUtils.isEmpty(telegramUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.ivFacebook.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.ivFacebook.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivTel.setVisibility(View.VISIBLE);
}
if (!TextUtils.isEmpty(whatsappUrl)) {
if (userId == 217 || userId == 211) {
activityMain2Binding.btOtherapp.setVisibility(View.VISIBLE);
} else {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
}
activityMain2Binding.ivWhatsapp.setVisibility(View.VISIBLE);
}
if (userId == 143 || userId == 149) {
activityMain2Binding.btOtherapp.setVisibility(View.INVISIBLE);
activityMain2Binding.ivFacebook.setVisibility(View.GONE);
activityMain2Binding.ivTel.setVisibility(View.GONE);
activityMain2Binding.ivWhatsapp.setVisibility(View.GONE);
activityMain2Binding.layoutOtherapp.setVisibility(View.GONE);
}
}
private void showUpApp(DataInfo dataInfo) {
//判定版本更新
if (!TextUtils.isEmpty(dataInfo.getVersionCode())) {
if (Integer.parseInt(dataInfo.getVersionCode()) > getVersion()) {
ActionConfirmDialog actionDialog = new ActionConfirmDialog(MainActivity.this,
getString(R.string.banbengengxin_txt), getString(R.string.xiacigengxin_txt),
getString(R.string.lijigengxin_txt));
actionDialog.setOnToActionListener(new ActionConfirmDialog.OnToActionListener() {
@Override
public void toSumbit() {
checkUpdate(dataInfo.getApkUrl());
}
@Override
public void toCancel() {
if (dataInfo.getForceUpdate() == 1) {
MainActivity.this.finish();
}
}
});
actionDialog.show();
}
}
}
/**
* 主链接和备用链接 ping 选择最优线路
* @param dataInfo
*/
private void toLoadWebUrl(DataInfo dataInfo) {
//没有备用域名 直接加载主域名
if (TextUtils.isEmpty(dataInfo.getBackupDomains())) {
activityMain2Binding.webview.loadUrl(dataInfo.getUrl());
} else {
@@ -728,6 +752,10 @@ public class MainActivity extends AppCompatActivity {
int lastCheckIndex = 0;
/**
* ping 最佳线路 加载
* @param index
*/
private void checkUrl(int index) {
lastCheckIndex = index;
Uri uri = Uri.parse(urlList.get(lastCheckIndex));
@@ -845,7 +873,7 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onPageFinished(WebView webView, String s) {
super.onPageFinished(webView, s);
LogUtils.i("URL是啥加载完成" + webView.getUrl());
// LogUtils.i("URL是啥加载完成" + webView.getUrl());
if (webView.getUrl().contains("hasSignIn")) {
hasSignIn = true;
}
@@ -923,8 +951,6 @@ public class MainActivity extends AppCompatActivity {
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url1) {
LogUtils.i("URL是啥" + url1);
if (url1.equals(url + "index") || url1.equals(url + "/index")) {
isAtGame = false;
activityMain2Binding.topVvvv.setVisibility(View.GONE);
@@ -977,7 +1003,6 @@ public class MainActivity extends AppCompatActivity {
uri = Uri.parse(request.toString());
}
String url1 = uri.toString();
LogUtils.i("URL是啥1" + url1);
if (isToOutSideUrl(url1)) {
try {
@@ -1121,7 +1146,6 @@ public class MainActivity extends AppCompatActivity {
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
LogUtils.i("数据接口onShowFileChooser");
mUploadCallbackForHighApi = filePathCallback;
Intent intent = fileChooserParams.createIntent();
intent.addCategory(Intent.CATEGORY_OPENABLE);

View File

@@ -11,7 +11,6 @@ public class IndexActivity extends MainActivity {
initConfig();
super.onCreate(savedInstanceState);
initWinwdowLogoConfig();
// registerFCM();
}
@Override
@@ -33,6 +32,7 @@ public class IndexActivity extends MainActivity {
if (!task.isSuccessful()) {
msg = "Subscribe failed";
}else{
//fcm能注册成功 再去请求通知权限
checkNotify();
}
LogUtils.i("支持FCM 结果:"+msg);