合并6.8.0代码

This commit is contained in:
Martin
2024-08-01 13:08:08 +08:00
parent c3ffb658c8
commit f157a5862d
429 changed files with 25508 additions and 5888 deletions

View File

@@ -80,6 +80,7 @@ dependencies {
api project(':common')
api project(':lib_faceunity')//新娱美颜
api project(':Share')//分享
// api project(':SVGAlibrary')//分享
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]

View File

@@ -58,8 +58,8 @@
android:screenOrientation="portrait" />
<activity
android:name=".activity.LanguageSettingActivity"
android:screenOrientation="portrait"
android:configChanges="locale|layoutDirection|keyboard" />
android:configChanges="locale|layoutDirection|keyboard"
android:screenOrientation="portrait" />
<activity
android:name=".activity.SearchActivity"
android:screenOrientation="portrait"
@@ -152,9 +152,19 @@
<activity
android:name=".activity.RedPacketUsersActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.UserAvatarSelectActivity"
<activity
android:name=".activity.UserAvatarSelectActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.BattlePassActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.FeedbackActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.FeedbackSuccessActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.BattlePassActivity" />
<activity android:name=".activity.MainHomeCommunityActivity"
android:screenOrientation="portrait" />
@@ -181,9 +191,8 @@
android:name=".activity.UserHomeActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.FeedbackActivity" android:screenOrientation="portrait" />
<activity android:name=".activity.FeedbackSuccessActivity" android:screenOrientation="portrait"/>
<activity android:name=".activity.FeedbackEditActivity" android:screenOrientation="portrait"/>
<activity android:name=".activity.FeedbackEditActivity"
android:screenOrientation="portrait"/>
</application>

View File

@@ -1,7 +1,10 @@
package com.yunbao.main.activity;
import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
import static com.yunbao.common.CommonAppContext.home_zdy_img_cn;
import static com.yunbao.common.CommonAppContext.home_zdy_img_us;
import static com.yunbao.live.presenter.LiveLinkMicPresenter.mContext;
import static com.yunbao.live.views.LivePushSwViewHolder.btn_close;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -11,18 +14,25 @@ import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Paint;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.provider.Settings;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -47,12 +57,6 @@ import com.facebook.login.LoginResult;
import com.fm.openinstall.OpenInstall;
import com.fm.openinstall.listener.AppInstallAdapter;
import com.fm.openinstall.model.AppData;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.tasks.Task;
import com.linecorp.linesdk.Scope;
import com.linecorp.linesdk.auth.LineAuthenticationParams;
import com.linecorp.linesdk.auth.LineLoginApi;
@@ -84,12 +88,13 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.NoviceInstructorManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.MessageChatNotifyManager;
import com.yunbao.common.utils.GoogleUtils;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import com.yunbao.main.dialog.LoginTipsDialog;
import com.yunbao.main.http.MainHttpUtil;
@@ -97,6 +102,7 @@ import com.yunbao.main.http.MainHttpUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.json.JSONException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@@ -115,7 +121,7 @@ public class EntryActivity extends AppCompatActivity {
private ImageView btn_phone, btn_line, btn_twitter;
private TextView btn_tip, btn_tip1, tv_customer;
private TwitterLoginButton tt_login_button;
private LinearLayout btn_google;
private LinearLayout btn_google, googleLayout;
public static Activity activity;
private static String mLoginType = Constants.MOB_PHONE;//登录方式
public String mPromoCode = "", UserID = "";//推广码
@@ -125,12 +131,30 @@ public class EntryActivity extends AppCompatActivity {
private static boolean mShowInvite;//显示邀请码弹窗
private static Context Contexts;
private ImageView img_view;
private GoogleSignInClient mGoogleSignInClient;
private LinearLayout lt_btn_twitter, lt_btn_facebook, lt_customer;
private String kefuUrl = "";
private boolean mBtnClick = false;
private Dialog loginLoadingDialog;
GoogleUtils googleUtils;
private WebView webview;
private WebSettings webSettings;
private View webViewLayout;
private View webBack;
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
config.locale = IMLoginManager.get(this).getLocaleLanguage();
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void close(String str) {
if ("close_login".equals(str)) {
@@ -155,7 +179,7 @@ public class EntryActivity extends AppCompatActivity {
public void Get_hash_key() {
PackageInfo info;
try {
info = getPackageManager().getPackageInfo("com.pandora.sy", PackageManager.GET_SIGNATURES);
info = getPackageManager().getPackageInfo("com.pdlive.shayu", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
@@ -173,6 +197,7 @@ public class EntryActivity extends AppCompatActivity {
}
}
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -181,11 +206,20 @@ public class EntryActivity extends AppCompatActivity {
IMLoginManager.get(this).logout(this);
ToastUtil.show(R.string.login_invalid);
}
googleUtils = new GoogleUtils(EntryActivity.this);
Get_hash_key();
activity = this;
Contexts = this;
setStatusBar();
MessageChatNotifyManager.getInstance().clear();
googleLayout = findViewById(R.id.googleLayout);
if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
googleLayout.setVisibility(View.GONE);
}
lt_btn_facebook = findViewById(R.id.lt_btn_facebook);
lt_btn_twitter = findViewById(R.id.lt_btn_twitter);
btn_tip = findViewById(R.id.btn_tip);
@@ -208,17 +242,21 @@ public class EntryActivity extends AppCompatActivity {
btn_tip1.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
btn_tip1.getPaint().setAntiAlias(true);
webview = findViewById(R.id.webview);
webViewLayout = findViewById(R.id.webview_container);
webBack = findViewById(R.id.btn_back1);
initView();
btn_tip1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"),false);
WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"), false);
}
});
btn_tip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY1+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"),false);
WebViewActivity.forward(EntryActivity.this, HtmlConfig.LOGIN_PRIVCAY1 + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"), false);
}
});
@@ -250,7 +288,7 @@ public class EntryActivity extends AppCompatActivity {
video_view.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
video_view.stopPlayback(); //播放异常,则停止播放,防止弹窗使界面阻塞`
video_view.stopPlayback(); //播放异常,则停止播放,防止弹窗使界面阻塞
img_view.setVisibility(View.VISIBLE);
video_view.setVisibility(View.GONE);
return false;
@@ -263,25 +301,7 @@ public class EntryActivity extends AppCompatActivity {
if (isBtnClick()) {
return;
}
timerOutBtn(view);
MainNetManager.get(EntryActivity.this)
.FaceBookUp(new com.yunbao.common.http.base.HttpCallback<FaceBookUpModel>() {
@Override
public void onSuccess(FaceBookUpModel data) {
if (data.getType().equals("0")) {
LoginManager.getInstance().logInWithReadPermissions(EntryActivity.this, Arrays.asList("public_profile"));
} else {
WebViewActivity.forward(EntryActivity.this, data.getLink() + "?",false);
}
}
@Override
public void onError(String error) {
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
verfiy(1);
}
});
@@ -302,7 +322,6 @@ public class EntryActivity extends AppCompatActivity {
}
});
googleLoginSet();
twitterLoginSet();
btn_google.setOnClickListener(new View.OnClickListener() {
@@ -311,9 +330,7 @@ public class EntryActivity extends AppCompatActivity {
if (isBtnClick()) {
return;
}
timerOutBtn(v);
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, 1002);
verfiy(2);
}
});
@@ -323,8 +340,7 @@ public class EntryActivity extends AppCompatActivity {
if (isBtnClick()) {
return;
}
timerOutBtn(v);
tt_login_button.performClick();
verfiy(3);
}
});
@@ -364,22 +380,7 @@ public class EntryActivity extends AppCompatActivity {
if (isBtnClick()) {
return;
}
timerOutBtn(view);
try {
// App-to-app login
Intent loginIntent = LineLoginApi.getLoginIntent(
view.getContext(),
"2004666616",
new LineAuthenticationParams.Builder()
.scopes(Arrays.asList(Scope.PROFILE))
// .nonce("<a randomly-generated string>") // nonce can be used to improve security
.build());
startActivityForResult(loginIntent, 1001);
} catch (Exception e) {
Log.e("ERROR", e.toString());
ToastUtil.show(getResources().getString(R.string.user_login_outtime));
}
verfiy(4);
}
});
@@ -395,8 +396,95 @@ public class EntryActivity extends AppCompatActivity {
}
}
});
ViewClicksAntiShake.clicksAntiShake(webBack, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
webViewLayout.setVisibility(View.GONE);
}
});
}
private void verfiy(int loginType) {
this.loginType = loginType;
webViewLayout.setVisibility(View.VISIBLE);
// 开启js支持
webSettings.setJavaScriptEnabled(true);
webview.addJavascriptInterface(new JsBridge(), "jsBridge");
// 也可以加载本地html(webView.loadUrl("file:///android_asset/xxx.html"))
webview.loadUrl(CommonAppConfig.HOST + "/h5/live/TCaptcha.html" + "?isZh=" + (WordUtil.isNewZh() ? "1" : 0));
}
private int loginType; // 1:facebook 2:google 3:twitter 4:Line
private void todo() {
timerOutBtn();
if (loginType == 1) {
MainNetManager.get(EntryActivity.this).FaceBookUp(new com.yunbao.common.http.base.HttpCallback<FaceBookUpModel>() {
@Override
public void onSuccess(FaceBookUpModel data) {
if (data.getType().equals("0")) {
LoginManager.getInstance().logInWithReadPermissions(EntryActivity.this, Arrays.asList("public_profile"));
} else {
WebViewActivity.forward(EntryActivity.this, data.getLink() + "?", false);
}
}
@Override
public void onError(String error) {
ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
}
});
} else if (loginType == 2) {
startActivityForResult(googleUtils.getIntent(), 1002);
} else if (loginType == 3) {
tt_login_button.performClick();
} else if (loginType == 4) {
try {
// App-to-app login
Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "1656399535", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
// .nonce("<a randomly-generated string>") // nonce can be used to improve security
.build());
startActivityForResult(loginIntent, 1001);
} catch (Exception e) {
Log.e("ERROR", e.toString());
ToastUtil.show(getResources().getString(R.string.user_login_outtime));
}
}
}
public class JsBridge {
@JavascriptInterface
public void getData(final String Randstr, final String Ticket) {
runOnUiThread(new Runnable() {
@Override
public void run() {
webViewLayout.setVisibility(View.GONE);
//跳转
todo();
}
});
}
}
private void initView() {
webview = (WebView) findViewById(R.id.webview);
webSettings = webview.getSettings();
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
// 禁用缓存
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
private void getUrl() {
MainHttpUtil.getCustomerService(new HttpCallback() {
@Override
@@ -408,29 +496,19 @@ public class EntryActivity extends AppCompatActivity {
}
}
});
ViewClicksAntiShake.clicksAntiShake(webBack, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
webViewLayout.setVisibility(View.GONE);
}
});
}
private void twitterLoginSet() {
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig(getResources().getString(R.string.twitter_key), getResources().getString(R.string.twitter_secret)))
.debug(true)
.build();
TwitterConfig config = new TwitterConfig.Builder(this).logger(new DefaultLogger(Log.DEBUG)).twitterAuthConfig(new TwitterAuthConfig(getResources().getString(R.string.twitter_key), getResources().getString(R.string.twitter_secret))).debug(true).build();
Twitter.initialize(config);
}
private void googleLoginSet() {
//TODO Google登录
//配置登录以请求用户的ID,电子邮件地址和基本配置文件.ID和基本配置文件包含在DEFAULT_SIGN_IN中.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
// .requestIdToken("AIzaSyDVnuGnQzjI_vDrxh20Hv_S1OMUD7Vp3zU")
.build();
//使用gso指定的选项构建一个GoogleSignInClient.
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
}
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {//30
// 先判断有没有权限
@@ -484,8 +562,7 @@ public class EntryActivity extends AppCompatActivity {
}
} else if (requestCode == 1002) {//google登录
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
handleSignInResult(data);
} else {
tt_login_button.onActivityResult(requestCode, resultCode, data);//twitter登录回调
callbackManager.onActivityResult(requestCode, resultCode, data);//facebook登录回调
@@ -494,22 +571,16 @@ public class EntryActivity extends AppCompatActivity {
}
private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
private void handleSignInResult(Intent intent) {
org.json.JSONObject jsonObject = googleUtils.getLoginResult(intent);
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
//account里可以直接获取到IDname和头像
String idToken = account.getIdToken();
account.getFamilyName();
account.getGivenName();
LoginData data = new LoginData();
data.setAvatar("");
data.setNickName(account.getDisplayName());
data.setOpenID(account.getId());
data.setNickName(jsonObject.getString("displayName"));
data.setOpenID(jsonObject.getString("openId"));
data.setType("google");
loginBuyThird(data);
} catch (ApiException e) {
} catch (JSONException e) {
e.printStackTrace();
Log.i("Log", "ApiException = " + e);
ToastUtil.show(getResources().getString(R.string.user_login_outtime));
@@ -565,7 +636,7 @@ public class EntryActivity extends AppCompatActivity {
Log.d("OpenInstall", "appData.getData()= " + appData.getData());
//获取自定义数据
if (appData.getData() != null && !appData.getData().equals("")) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1 || CommonAppConfig.IS_GOOGLE_PLAY == 2 || CommonAppConfig.IS_GOOGLE_PLAY == 3) {
} else {
JSONObject data = JSON.parseObject(appData.getData());
@@ -601,7 +672,7 @@ public class EntryActivity extends AppCompatActivity {
*/
private void loginBuyThird(LoginData data) {
mLoginType = data.getType();
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1 || CommonAppConfig.IS_GOOGLE_PLAY == 2 || CommonAppConfig.IS_GOOGLE_PLAY == 3) {
mPromoCode = "";
}
MainHttpUtil.loginByThird(UserID, data.getOpenID(), mPromoCode, mUuidDevice, data.getNickName(), data.getAvatar(), data.getType(), new HttpCallback() {
@@ -649,33 +720,31 @@ public class EntryActivity extends AppCompatActivity {
public void callback(UserBean bean) {
if (mFirstLogin) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1 || CommonAppConfig.IS_GOOGLE_PLAY == 2 || CommonAppConfig.IS_GOOGLE_PLAY == 3) {
EntryActivity.this.startActivity(new Intent(EntryActivity.this, OneLoginActivity.class));
} else {
HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor")
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (info[0] != null) {
JSONObject obj = JSON.parseObject(info[0]);
IMLoginManager.get(EntryActivity.this).setNewUserGif(true);
IMLoginManager.get(EntryActivity.this).setisNewUserOne(true);
MainActivity.forward(EntryActivity.this, false);
gotoLive(obj.getString("anchor_id"));
if (obj.containsKey("home_zdy_img_us")) {
home_zdy_img_us = obj.getString("home_zdy_img_us");
home_zdy_img_cn = obj.getString("home_zdy_img_cn");
}
if (obj.containsKey("home_zdy_pop")) {
NoviceInstructorManager.get(activity).setHomeZdyPop(obj.getString(
"home_zdy_pop"));
}
} else {
MainActivity.forward(EntryActivity.this, false);
}
HttpClient.getInstance().post("Home.getRandJoinAnchor", "Home.getRandJoinAnchor").execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (info[0] != null) {
JSONObject obj = JSON.parseObject(info[0]);
IMLoginManager.get(EntryActivity.this).setNewUserGif(true);
IMLoginManager.get(EntryActivity.this).setisNewUserOne(true);
MainActivity.forward(EntryActivity.this, false);
gotoLive(obj.getString("anchor_id"));
if (obj.containsKey("home_zdy_img_us")) {
home_zdy_img_us = obj.getString("home_zdy_img_us");
home_zdy_img_cn = obj.getString("home_zdy_img_cn");
}
});
if (obj.containsKey("home_zdy_pop")) {
NoviceInstructorManager.get(activity).setHomeZdyPop(obj.getString("home_zdy_pop"));
}
} else {
MainActivity.forward(EntryActivity.this, false);
}
}
});
}
} else {
MainActivity.forward(EntryActivity.this, false);
@@ -697,8 +766,8 @@ public class EntryActivity extends AppCompatActivity {
}
new LiveRoomCheckLivePresenter(activity, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal), isSw);
}
@Override
@@ -716,7 +785,7 @@ public class EntryActivity extends AppCompatActivity {
});
}
private void timerOutBtn(View btn) {
private void timerOutBtn() {
if (mBtnClick) {
return;
}

View File

@@ -73,7 +73,11 @@ public class LanguageSettingActivity extends AbsActivity {
allActivityStacks.get(i).finish();
}
}
IMLoginManager.get(mContext).setLanguage(locale != Locale.SIMPLIFIED_CHINESE);
IMLoginManager.get(mContext).setLanguage(locale != Locale.SIMPLIFIED_CHINESE
&& locale != Locale.TRADITIONAL_CHINESE
&& locale != Locale.CHINESE
&& locale != Locale.CHINA
);
startActivity(new Intent(mContext, MainActivity.class));
finish();
}

View File

@@ -136,14 +136,14 @@ public class MyWalletActivity extends AbsActivity {
}
});
} catch (JSONException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
}
});
}
}
} catch (JSONException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
}
});
@@ -491,7 +491,7 @@ public class MyWalletActivity extends AbsActivity {
} catch (JSONException e) {
throw new RuntimeException(e);
e.printStackTrace();
}
}

View File

@@ -1,18 +1,23 @@
package com.yunbao.main.activity;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowInsets;
import android.view.WindowManager;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
@@ -24,6 +29,8 @@ import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import com.alibaba.android.arouter.facade.annotation.Route;
@@ -52,6 +59,7 @@ import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@@ -62,6 +70,8 @@ import org.greenrobot.eventbus.ThreadMode;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@Route(path = RouteUtil.PATH_ZHUANGBANACTIVITY)
@@ -76,18 +86,27 @@ public class ZhuangBanActivity extends AbsActivity {
private SVGAImageView svga;
private View v_spacing;
private LinearLayout lt_title;
private List<String> HTTP_SCHEMES = Arrays.asList("http", "https");
@Override
public void setStatusBar() {
super.setStatusBar();
// getWindow().setStatusBarColor(Color.parseColor("#FFFFFF"));
// 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);
}
@Override
protected int getLayoutId() {
return R.layout.activity_zhuang_ban;
}
@Override
protected void create() {
super.create();
}
@Override
protected void main() {
Bus.getOn(this);
@@ -131,6 +150,8 @@ public class ZhuangBanActivity extends AbsActivity {
if (!TextUtils.isEmpty(content)) {
copy(content);
}
} else if (shouldOverrideUrlLoadingInner(view, url)) {
return true;
} else {
view.loadUrl(url);
}
@@ -146,6 +167,7 @@ public class ZhuangBanActivity extends AbsActivity {
}
int height = view.getMeasuredHeight();
Log.e("网页高度", height + "");
view.loadUrl("javascript:setTop(" + DpUtil.dp2px(15) + ")");
}
@Override
@@ -204,7 +226,7 @@ public class ZhuangBanActivity extends AbsActivity {
}
mWebView.loadUrl(url);
AndroidBug5497Workaround.assistActivity(this);
if(!StringUtil.isEmpty(url)&&url.startsWith(HtmlConfig.SHOP)){
if (!StringUtil.isEmpty(url) && url.startsWith(HtmlConfig.SHOP)) {
lt_title.setVisibility(View.GONE);
}
}
@@ -296,16 +318,16 @@ public class ZhuangBanActivity extends AbsActivity {
public static void forward(Context context, String url, boolean addArgs) {
if (addArgs) {
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 {
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);
Log.i("tag1212", url);
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", "");
}
context.startActivity(intent);
@@ -404,7 +426,7 @@ public class ZhuangBanActivity extends AbsActivity {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@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) {
return;
}
@@ -413,7 +435,7 @@ public class ZhuangBanActivity extends AbsActivity {
return;
}
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk), isSw);
finish();
}
@@ -432,4 +454,88 @@ 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,8 @@ import com.bumptech.glide.request.target.DrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
import com.ms.banner.Banner;
import com.ms.banner.listener.OnBannerClickListener;
import com.yunbao.common.dialog.GiftWallDialog;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
@@ -211,7 +213,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
});
} else {
pp = 0;
if(select==0){
if (select == 0) {
select = list.get(0).getId();
}
MainHttpUtil.getClassLive(select, p, callback);
@@ -409,8 +411,8 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
liveBean.setParams(gotoRoomKey);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk,boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal),isSw);
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk, boolean isSw) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal), isSw);
}
@Override
@@ -467,6 +469,10 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
WebViewActivity.forward(mContext, link, true, false);
} else if ("home_page_banner_battle".equals(link)) {
RouteUtil.forwardBattlePass();
} else if ("home_page_banner_giftwall".equals(link)) {
new GiftWallDialog(mContext, IMLoginManager.get(mContext).getUserInfo().getId() + "",
IMLoginManager.get(mContext).getUserInfo().getUserNicename(),null
, false).setFullWindows(true).setTab2(true).showDialog();
} else {
gotoLive(link);
}
@@ -504,7 +510,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@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 (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
@@ -516,7 +522,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk),isSw);
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk), isSw);
}
}

View File

@@ -12,7 +12,6 @@ import com.lxj.xpopup.XPopup;
import com.yunbao.common.dialog.MessageSayHiNotifyDialog;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.dialog.SkitCheckInWasSuccessfulPopup;
import com.yunbao.common.event.FloatWarOrderEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.MessageSayHiNotifyManager;

View File

@@ -23,12 +23,18 @@ public class TestWebViewClient extends WebViewClient {
private List<String> HTTP_SCHEMES = Arrays.asList("http", "https");
public TestWebViewClient(Activity context, WebView webView) {
this.mContext = context;
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG, "shouldOverrideUrlLoading url1=" + url);
if(url.contains("umobile-redirect")) {
openByBrowser(mContext, url);
return true;
}
if(shouldOverrideUrlLoadingInner(view, url)) {

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -297,4 +298,46 @@
android:visibility="gone"
android:src="@mipmap/white_logo" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/webview_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible">
<View
android:id="@+id/view2"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/btn_back1"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginTop="10dp"
android:onClick="backClick"
android:padding="9dp"
android:src="@mipmap/icon_back"
app:layout_constraintBottom_toBottomOf="@+id/view2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_centerHorizontal="true"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view2" />
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -106,4 +106,5 @@
<string name="activity_feedback_edit_img_select">從相冊選取</string>
<string name="activity_feedback_edit_img_camera">拍照</string>
<string name="activity_battle_pass_all_get">一鍵領取</string>
</resources>

View File

@@ -107,4 +107,6 @@
<string name="activity_feedback_edit_img_select">Select from album</string>
<string name="activity_feedback_edit_img_camera">Photo shoot</string>
<string name="activity_battle_pass_all_get">Receive all</string>
<string name="live_room_sud_hint_join">Join</string>
<string name="live_dialog_top_guardian_tasks">Guard tasks</string>
</resources>