This commit is contained in:
zlzw 2024-07-17 12:11:41 +08:00
parent 46fba9429d
commit efa4c25c4b
3 changed files with 99 additions and 11 deletions

View File

@ -186,8 +186,8 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow {
tab2.setTextColor(Color.parseColor("#FFFFFF")); tab2.setTextColor(Color.parseColor("#FFFFFF"));
list_type = 1; list_type = 1;
((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename1)); ((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_assistance_user));
((TextView) findViewById(R.id.tv_rename)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename_value1)); ((TextView) findViewById(R.id.tv_rename)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_assistance_star));
initData(); initData();
}); });
ViewClicksAntiShake.clicksAntiShake(tab2, () -> { ViewClicksAntiShake.clicksAntiShake(tab2, () -> {
@ -356,7 +356,7 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow {
private void setTips(String tmp) { private void setTips(String tmp) {
btn_one_tips.setText(String.format(Locale.getDefault(), "%s%s%s" btn_one_tips.setText(String.format(Locale.getDefault(), "%s%s%s"
, WordUtil.isNewZh() ? "" : "Need", , WordUtil.isNewZh() ? " " : "Need ",
tmp, tmp,
WordUtil.isNewZh() ? "" : "")); WordUtil.isNewZh() ? "" : ""));
} }

View File

@ -1,10 +1,13 @@
package com.yunbao.main.activity; package com.yunbao.main.activity;
import android.app.Activity;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
@ -62,6 +65,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Locale; import java.util.Locale;
@Route(path = RouteUtil.PATH_ZHUANGBANACTIVITY) @Route(path = RouteUtil.PATH_ZHUANGBANACTIVITY)
@ -76,13 +81,14 @@ public class ZhuangBanActivity extends AbsActivity {
private SVGAImageView svga; private SVGAImageView svga;
private View v_spacing; private View v_spacing;
private LinearLayout lt_title; private LinearLayout lt_title;
private List<String> HTTP_SCHEMES = Arrays.asList("http", "https");
@Override @Override
public void setStatusBar() { public void setStatusBar() {
// getWindow().setStatusBarColor(Color.parseColor("#FFFFFF")); // getWindow().setStatusBarColor(Color.parseColor("#FFFFFF"));
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); // getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); // getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
} }
@Override @Override
protected int getLayoutId() { protected int getLayoutId() {
return R.layout.activity_zhuang_ban; return R.layout.activity_zhuang_ban;
@ -131,6 +137,8 @@ public class ZhuangBanActivity extends AbsActivity {
if (!TextUtils.isEmpty(content)) { if (!TextUtils.isEmpty(content)) {
copy(content); copy(content);
} }
} else if (shouldOverrideUrlLoadingInner(view, url)) {
return true;
} else { } else {
view.loadUrl(url); view.loadUrl(url);
} }
@ -204,7 +212,7 @@ public class ZhuangBanActivity extends AbsActivity {
} }
mWebView.loadUrl(url); mWebView.loadUrl(url);
AndroidBug5497Workaround.assistActivity(this); AndroidBug5497Workaround.assistActivity(this);
if(!StringUtil.isEmpty(url)&&url.startsWith(HtmlConfig.SHOP)){ if (!StringUtil.isEmpty(url) && url.startsWith(HtmlConfig.SHOP)) {
lt_title.setVisibility(View.GONE); lt_title.setVisibility(View.GONE);
} }
} }
@ -296,16 +304,16 @@ public class ZhuangBanActivity extends AbsActivity {
public static void forward(Context context, String url, boolean addArgs) { public static void forward(Context context, String url, boolean addArgs) {
if (addArgs) { if (addArgs) {
if (url.contains("?")) { if (url.contains("?")) {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"); url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
} else { } else {
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"); url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
} }
} }
Intent intent = new Intent(context, ZhuangBanActivity.class); Intent intent = new Intent(context, ZhuangBanActivity.class);
Log.i("tag1212", url); Log.i("tag1212", url);
intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
if (url.contains("Noble/index.html") || url.contains("Grade/index.html")|| url.contains("Guard/index.html")) { if (url.contains("Noble/index.html") || url.contains("Grade/index.html") || url.contains("Guard/index.html")) {
intent.putExtra("title", ""); intent.putExtra("title", "");
} }
context.startActivity(intent); context.startActivity(intent);
@ -404,7 +412,7 @@ public class ZhuangBanActivity extends AbsActivity {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class); LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() { new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override @Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) { public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
if (liveBean == null) { if (liveBean == null) {
return; return;
} }
@ -413,7 +421,7 @@ public class ZhuangBanActivity extends AbsActivity {
return; return;
} }
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw); RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk), isSw);
finish(); finish();
} }
@ -431,5 +439,84 @@ public class ZhuangBanActivity extends AbsActivity {
}); });
} }
/**
* Parse the url and open it by system function.
* case 1: deal "intent://xxxx" url.
* case 2: deal custom scheme. url
* @param view: WebView
* @param url
* @return
*/
private boolean shouldOverrideUrlLoadingInner(WebView view, String url) {
if(!TextUtils.isEmpty(url)) {
Uri uri = Uri.parse(url);
if(uri != null) {
if ("intent".equals(uri.getScheme())) {
try {
Intent intent = Intent.parseUri(uri.toString(), Intent.URI_INTENT_SCHEME);
if(intent != null) {
PackageManager pm = mContext.getPackageManager();
ResolveInfo info = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
if(info != null) {
mContext.startActivity(Intent.parseUri(uri.toString(), Intent.URI_INTENT_SCHEME));
return true;
}
else {
String fallbackUrl = intent.getStringExtra("browser_fallback_url");
if (!TextUtils.isEmpty(fallbackUrl)) {
if(fallbackUrl.startsWith("market://"))
startAppMarketWithUrl(mContext, fallbackUrl, false);
else
view.loadUrl(fallbackUrl);
return true;
}else{
mContext.startActivity(new Intent(Intent.ACTION_VIEW, uri));
}
}
}
} catch (Exception e) {
}
}
if (!HTTP_SCHEMES.contains(uri.getScheme())) {
startUrl(mContext, url, true);
return true;
}
}
}
return false;
}
public static void startAppMarketWithUrl(Activity context, String url, boolean forceUseGoogle) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
if (forceUseGoogle || hasActivity(context, intent, "com.android.vending"))
intent.setPackage("com.android.vending");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} catch (Exception e) {
try {
startUrl(context, url, true);
} catch (Exception e1) {}
}
}
public static boolean hasActivity(Context context, Intent intent, String packageName) {
PackageManager pm = context.getPackageManager();
List<ResolveInfo> appList = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : appList) {
if (info.activityInfo.packageName.equals(packageName))
return true;
}
return false;
}
public static void startUrl(Context context, String url, boolean isNewTask) {
if(context != null && !TextUtils.isEmpty(url)) {
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
if(isNewTask) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
context.startActivity(intent);
} catch (Exception e) {
}
}
}
} }

View File

@ -29,6 +29,7 @@ public class TestWebViewClient extends WebViewClient {
Log.d(TAG, "shouldOverrideUrlLoading url1=" + url); Log.d(TAG, "shouldOverrideUrlLoading url1=" + url);
if(url.contains("umobile-redirect")) { if(url.contains("umobile-redirect")) {
openByBrowser(mContext, url); openByBrowser(mContext, url);
return true; return true;
} }
if(shouldOverrideUrlLoadingInner(view, url)) { if(shouldOverrideUrlLoadingInner(view, url)) {