This commit is contained in:
2025-11-18 15:12:24 +08:00
parent c173c425ce
commit a7d2035e70
1361 changed files with 367452 additions and 0 deletions
@@ -0,0 +1,45 @@
package cn.shangyu.gdxzExpert.umeng;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.WindowManager;
public class AppUtils {
public static int dp2px(Context context, float dipValue) {
try {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
} catch (Exception e) {
return (int) dipValue;
}
}
public static int px2dp(Context context, float px) {
try {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
} catch (Exception e) {
return (int) px;
}
}
public static int getPhoneWidthPixels(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics var2 = new DisplayMetrics();
if (wm != null) {
wm.getDefaultDisplay().getMetrics(var2);
}
return var2.widthPixels;
}
public static int getPhoneHeightPixels(Context context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics var2 = new DisplayMetrics();
if (wm != null) {
wm.getDefaultDisplay().getMetrics(var2);
}
return var2.heightPixels;
}
}
@@ -0,0 +1,18 @@
package cn.shangyu.gdxzExpert.umeng;
public interface AuthPageConfig {
/**
* 配置授权页样式
*/
void configAuthPage();
/**
* android8.0兼容
*/
void onResume();
/**
* 释放sdk内部引用,防止内存泄漏
*/
void release();
}
@@ -0,0 +1,131 @@
package cn.shangyu.gdxzExpert.umeng;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.util.TypedValue;
import android.view.Surface;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.umeng.umverify.UMVerifyHelper;
import static cn.shangyu.gdxzExpert.umeng.AppUtils.dp2px;
public abstract class BaseUIConfig implements AuthPageConfig {
public Activity mActivity;
public Context mContext;
public UMVerifyHelper mAuthHelper;
public int mScreenWidthDp;
public int mScreenHeightDp;
public static AuthPageConfig init( int type,Activity activity, UMVerifyHelper authHelper) {
switch (type) {
case 0://login
return new FullPortConfig(activity, authHelper);
case 1://bind
return new FullPortBindConfig(activity, authHelper);
// case DIALOG_PORT:
// return new DialogPortConfig(activity, authHelper);
// case DIALOG_LAND:
// return new DialogLandConfig(activity, authHelper);
// case DIALOG_BOTTOM:
// return new DialogBottomConfig(activity, authHelper);
// case CUSTOM_VIEW:
// return new CustomViewConfig(activity, authHelper);
// case CUSTOM_XML:
// return new CustomXmlConfig(activity, authHelper);
default:
return null;
}
}
public BaseUIConfig(Activity activity, UMVerifyHelper authHelper) {
mActivity = activity;
mContext = activity.getApplicationContext();
mAuthHelper = authHelper;
}
protected View initSwitchView(int marginTop,String text,Boolean center) {
TextView switchTV = new TextView(mContext);
// RelativeLayout.LayoutParams mLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dp2px(mContext, 50));
RelativeLayout.LayoutParams mLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//一键登录按钮默认marginTop 270dp
mLayoutParams.setMargins(dp2px(mContext,20), dp2px(mContext, marginTop), 0, 0);
if(center)
{
mLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
}
switchTV.setText(text);
switchTV.setTextColor(Color.parseColor("#8D2316"));
switchTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14.0F);
switchTV.setLayoutParams(mLayoutParams);
return switchTV;
}
protected View initCustomhView(int marginTop,String text,Boolean center) {
TextView switchTV = new TextView(mContext);
// RelativeLayout.LayoutParams mLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, dp2px(mContext, 50));
RelativeLayout.LayoutParams mLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//一键登录按钮默认marginTop 270dp
mLayoutParams.setMargins(dp2px(mContext,20), dp2px(mContext, marginTop), 0, 0);
if(center)
{
mLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
}
switchTV.setText(text);
switchTV.setTextColor(Color.parseColor("#ff999999"));
switchTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13.0F);
switchTV.setLayoutParams(mLayoutParams);
return switchTV;
}
protected void updateScreenSize(int authPageScreenOrientation) {
int screenHeightDp = AppUtils.px2dp(mContext, AppUtils.getPhoneHeightPixels(mContext));
int screenWidthDp = AppUtils.px2dp(mContext, AppUtils.getPhoneWidthPixels(mContext));
int rotation = mActivity.getWindowManager().getDefaultDisplay().getRotation();
if (authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_BEHIND) {
authPageScreenOrientation = mActivity.getRequestedOrientation();
}
if (authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|| authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
|| authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE) {
rotation = Surface.ROTATION_90;
} else if (authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
|| authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
|| authPageScreenOrientation == ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT) {
rotation = Surface.ROTATION_180;
}
switch (rotation) {
case Surface.ROTATION_0:
case Surface.ROTATION_180:
mScreenWidthDp = screenWidthDp;
mScreenHeightDp = screenHeightDp;
break;
case Surface.ROTATION_90:
case Surface.ROTATION_270:
mScreenWidthDp = screenHeightDp;
mScreenHeightDp = screenWidthDp;
break;
default:
break;
}
}
/**
* 在横屏APP弹竖屏一键登录页面或者竖屏APP弹横屏授权页时处理特殊逻辑
* Android8.0只能启动SCREEN_ORIENTATION_BEHIND模式的Activity
*/
public void onResume() {
}
public void release() {
mAuthHelper.setAuthListener(null);
mAuthHelper.setUIClickListener(null);
mAuthHelper.removeAuthRegisterViewConfig();
mAuthHelper.removeAuthRegisterXmlConfig();
}
}
@@ -0,0 +1,196 @@
package cn.shangyu.gdxzExpert.umeng;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Build;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import com.umeng.umverify.UMResultCode;
import com.umeng.umverify.UMVerifyHelper;
import com.umeng.umverify.listener.UMAuthUIControlClickListener;
import com.umeng.umverify.listener.UMCustomInterface;
import com.umeng.umverify.view.UMAuthRegisterViewConfig;
import com.umeng.umverify.view.UMAuthUIConfig;
import org.json.JSONException;
import org.json.JSONObject;
import cn.shangyu.gdxzExpert.R;
public class FullPortBindConfig extends BaseUIConfig {
private final String TAG = "LoginTAG";
public FullPortBindConfig(Activity activity, UMVerifyHelper authHelper) {
super(activity, authHelper);
}
@Override
public void configAuthPage() {
mAuthHelper.setUIClickListener(new UMAuthUIControlClickListener() {
@Override
public void onClick(String code, Context context, String jsonString) {
try {
JSONObject jsonObj = new JSONObject(jsonString);
switch (code) {
//点击授权页默认样式的返回按钮
case UMResultCode.CODE_ERROR_USER_CANCEL:
Log.e(TAG, "点击了授权页默认返回按钮");
mAuthHelper.quitLoginPage();
mActivity.finish();
break;
//点击授权页默认样式的切换其他登录方式 会关闭授权页
//如果不希望关闭授权页那就setSwitchAccHidden(true)隐藏默认的 通过自定义view添加自己的
case UMResultCode.CODE_ERROR_USER_SWITCH:
Log.e(TAG, "点击了授权页默认切换其他登录方式");
break;
//点击一键登录按钮会发出此回调
//当协议栏没有勾选时 点击按钮会有默认toast 如果不需要或者希望自定义内容 setLogBtnToastHidden(true)隐藏默认Toast
//通过此回调自己设置toast
case UMResultCode.CODE_ERROR_USER_LOGIN_BTN:
if (!jsonObj.getBoolean("isChecked")) {
Toast.makeText(mContext, R.string.custom_toast1, Toast.LENGTH_SHORT).show();
}
break;
//checkbox状态改变触发此回调
case UMResultCode.CODE_ERROR_USER_CHECKBOX:
break;
//点击协议栏触发此回调
case UMResultCode.CODE_ERROR_USER_PROTOCOL_CONTROL:
Log.e(TAG, "点击协议," + "name: " + jsonObj.getString("name") + ", url: " + jsonObj.getString("url"));
break;
default:
break;
}
} catch (JSONException e) {
}
}
});
mAuthHelper.removeAuthRegisterXmlConfig();
mAuthHelper.removeAuthRegisterViewConfig();
//添加自定义切换其他登录方式
mAuthHelper.addAuthRegistViewConfig("switch_msg", new UMAuthRegisterViewConfig.Builder()
.setView(initSwitchView(301,"绑定其他手机号",false))
.setRootViewId(UMAuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
.setCustomInterface(new UMCustomInterface() {
@Override
public void onClick(Context context) {
// Toast.makeText(mContext, "切换到短信登录方式", Toast.LENGTH_SHORT).show();
// Intent pIntent = new Intent(mActivity, LoginNewActivity.class);
// mActivity.startActivityForResult(pIntent, 1002);
mAuthHelper.quitLoginPage();
}
}).build());
mAuthHelper.addAuthRegistViewConfig("text", new UMAuthRegisterViewConfig.Builder()
.setView(initCustomhView(220,"根据工信部网络平台实名制要求,需要您绑定手机号",false))
.setRootViewId(UMAuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
.build());
// mAuthHelper.addAuthRegisterXmlConfig(new UMAuthRegisterXmlConfig.Builder()
// .setLayout(R.layout.custom_bind, new UMAbstractPnsViewDelegate() {
// @Override
// public void onViewCreated(View view) {
//
// }
// })
// .build());
int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
if (Build.VERSION.SDK_INT == 26) {
authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
}
// Resources resources =mContext.getResources();
mAuthHelper.setAuthUIConfig(new UMAuthUIConfig.Builder()
//loding
.setLoadingImgDrawable(mContext.getResources().getDrawable(R.drawable.refresh_anim))
// .setLoadingBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.icon_custom_toast_bg))
//隐私政策
// .setAppPrivacyOne("《肝胆相照隐私政策》", "http://doc.igandan.com/app/integral/permission.html")
// .setAppPrivacyTwo("《肝胆相照用户协议》", "http://doc.igandan.com/app/integral/permission.html")
.setPrivacyTextSize(12)
.setAppPrivacyColor(Color.parseColor("#666666"),Color.parseColor("#8D2316"))
.setUncheckedImgPath("login_new_unselect")
.setCheckedImgPath("login_new_select")
.setPrivacyBefore("绑定即同意")
.setPrivacyMargin(15)
.setPrivacyOffsetY_B(15)
.setProtocolGravity(Gravity.LEFT)
.setProtocolLayoutGravity(Gravity.LEFT)
//协议网页
.setWebViewStatusBarColor(Color.parseColor("#FFEFEFEF"))
.setWebNavColor(Color.parseColor("#FFEFEFEF"))
.setWebNavTextColor(Color.parseColor("#8D2316"))
.setWebNavTextSize(20)
.setWebSupportedJavascript(true)
//隐藏默认切换其他登录方式
.setSwitchAccHidden(true)
//隐藏默认Toast
.setLogBtnToastHidden(true)
//沉浸式状态栏
.setStatusBarColor(Color.parseColor("#FFEFEFEF"))
.setStatusBarHidden(false)
.setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LOW_PROFILE)
.setLightColor(true)
//导航栏
.setNavColor(Color.parseColor("#FFEFEFEF"))
.setNavText("绑定手机")
.setNavTextColor(Color.parseColor("#8D2316"))
.setNavTextSize(20)
.setNavReturnImgPath("top_back")
.setNavReturnHidden(true)
.setNavReturnImgWidth(40)
.setNavReturnImgHeight(40)
.setNavReturnScaleType(ImageView.ScaleType.CENTER)
//logo
.setLogoImgDrawable(mContext.getResources().getDrawable(R.drawable.icon_login_logo))
.setLogoHidden(false)
.setLogoHeight(73)
.setLogoWidth(73)
.setLogoOffsetY(53)
.setSloganText("专家端")
.setSloganTextSize(16)
.setSloganTextColor(Color.parseColor("#8D2316"))
.setSloganOffsetY(138)
//号码
.setNumberColor(Color.parseColor("#000000"))
.setNumberSize(17)
.setNumFieldOffsetY(172)
//登录
.setLogBtnText("一键绑定")
.setLogBtnTextColor(Color.parseColor("#FFFFFF"))
.setLogBtnTextSize(17)
.setLogBtnMarginLeftAndRight(20)
.setLogBtnBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.selector_btn))
.setLogBtnHeight(39)
.setLogBtnOffsetY(252)
// //短信验证码登录
// .setSwitchAccHidden(false)
// .setSwitchAccText("短信验证码登录")
// .setSwitchAccTextColor(Color.parseColor("#8D2316"))
// .setSwitchAccTextSize(14)
//图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
.setAuthPageActIn("in_activity", "out_activity")
.setAuthPageActOut("in_activity", "out_activity")
.setVendorPrivacyPrefix("《")
.setVendorPrivacySuffix("》")
// .setPageBackgroundPath("page_background_color")
// .setLogoImgPath("mytel_app_launcher")
//一键登录按钮三种状态背景示例login_btn_bg.xml
// .setLogBtnBackgroundPath("login_btn_bg")
.setScreenOrientation(authPageOrientation)
.create());
}
}
@@ -0,0 +1,413 @@
package cn.shangyu.gdxzExpert.umeng;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Build;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.umeng.umverify.UMResultCode;
import com.umeng.umverify.UMVerifyHelper;
import com.umeng.umverify.listener.UMAuthUIControlClickListener;
import com.umeng.umverify.listener.UMCustomInterface;
import com.umeng.umverify.view.UMAbstractPnsViewDelegate;
import com.umeng.umverify.view.UMAuthRegisterViewConfig;
import com.umeng.umverify.view.UMAuthRegisterXmlConfig;
import com.umeng.umverify.view.UMAuthUIConfig;
import org.json.JSONException;
import org.json.JSONObject;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.activity.LoginNewActivity;
import cn.shangyu.gdxzExpert.activity.NewsDetailActivity;
import cn.shangyu.gdxzExpert.utils.Url;
public class FullPortConfig extends BaseUIConfig {
private final String TAG = "LoginTAG";
private Boolean check= false;
private String yinsi1="登录即代表同意《肝胆相照隐私政策》和《肝胆相照用户服务协议》";
public FullPortConfig(Activity activity, UMVerifyHelper authHelper) {
super(activity, authHelper);
}
@Override
public void configAuthPage() {
mAuthHelper.setUIClickListener(new UMAuthUIControlClickListener() {
@Override
public void onClick(String code, Context context, String jsonString) {
Log.e(TAG, "jsonString "+jsonString);
try {
JSONObject jsonObj = new JSONObject(jsonString);
switch (code) {
//点击授权页默认样式的返回按钮
case UMResultCode.CODE_ERROR_USER_CANCEL:
Log.e(TAG, "点击了授权页默认返回按钮");
mAuthHelper.quitLoginPage();
mActivity.finish();
break;
//点击授权页默认样式的切换其他登录方式 会关闭授权页
//如果不希望关闭授权页那就setSwitchAccHidden(true)隐藏默认的 通过自定义view添加自己的
case UMResultCode.CODE_ERROR_USER_SWITCH:
Log.e(TAG, "点击了授权页默认切换其他登录方式");
break;
//点击一键登录按钮会发出此回调
//当协议栏没有勾选时 点击按钮会有默认toast 如果不需要或者希望自定义内容 setLogBtnToastHidden(true)隐藏默认Toast
//通过此回调自己设置toast
case UMResultCode.CODE_ERROR_USER_LOGIN_BTN:
if (!jsonObj.getBoolean("isChecked")) {
// LayoutInflater inflater = LayoutInflater.from(mActivity);
//// View layout = inflater.inflate(R.layout.dialog_new_notitle,(ViewGroup) mActivity.findViewById(android.R.id.content));
// View layout = inflater.inflate(R.layout.dialog_new_notitle,(ViewGroup) ((ViewGroup) mActivity
// .findViewById(android.R.id.content)).getChildAt(0));
// RelativeLayout re=layout.findViewById(R.id.re);
// re.setBackgroundColor(Color.parseColor("#80000000"));
// Button btn_sure = (Button) layout.findViewById(R.id.btn_sure);
// Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel);
// TextView tv_tishi=layout.findViewById(R.id.tv_tishi);
// SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi1);
// ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
// ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
// spannableBuilder.setSpan(colorSpan1, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
// spannableBuilder.setSpan(colorSpan, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ClickableSpan clickableSpanOne = new ClickableSpan() {
// @Override
// public void onClick(View view) {
// Intent intent = new Intent(mActivity,
// NewsDetailActivity.class);
// intent.putExtra("url", Url.getyyzc);
// intent.putExtra("title", "《肝胆相照隐私政策》");
// mActivity.startActivity(intent);
// }
// @Override
// public void updateDrawState(TextPaint ds) {
// //点击事件去掉下划线
// ds.setUnderlineText(false);
// }
//
// };
// ClickableSpan clickableSpanOne1 = new ClickableSpan() {
// @Override
// public void onClick(View view) {
// Intent intent = new Intent(mActivity,
// NewsDetailActivity.class);
// intent.putExtra("url", Url.getzcxy);
// intent.putExtra("title", "《肝胆相照用户服务协议》");
// mActivity.startActivity(intent);
// }
// @Override
// public void updateDrawState(TextPaint ds) {
// //点击事件去掉下划线
// ds.setUnderlineText(false);
// }
//
// };
// spannableBuilder.setSpan(clickableSpanOne, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// spannableBuilder.setSpan(clickableSpanOne1, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// tv_tishi.setMovementMethod(LinkMovementMethod.getInstance());
// tv_tishi.setText(spannableBuilder);
// tv_tishi.setGravity(Gravity.LEFT);
//
// btn_cancel.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// // TODO Auto-generated method stub
// ((ViewGroup)v.getRootView()).removeView(re);
//
// }
// });
// btn_sure.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
// ((LoginNewActivity) mActivity).wechatLogin();
// }
// });
// Toast.makeText(mContext, R.string.custom_toast, Toast.LENGTH_SHORT).show();
}
break;
//checkbox状态改变触发此回调
case UMResultCode.CODE_ERROR_USER_CHECKBOX:
check=jsonObj.getBoolean("isChecked");
// Log.e(TAG, "checkbox状态变为" + jsonObj.getBoolean("isChecked"));
break;
//点击协议栏触发此回调
case UMResultCode.CODE_ERROR_USER_PROTOCOL_CONTROL:
// Log.e(TAG, "点击协议," + "name: " + jsonObj.getString("name") + ", url: " + jsonObj.getString("url"));
break;
default:
break;
}
} catch (JSONException e) {
}
}
});
mAuthHelper.removeAuthRegisterXmlConfig();
mAuthHelper.removeAuthRegisterViewConfig();
//添加自定义切换其他登录方式
mAuthHelper.addAuthRegistViewConfig("switch_msg", new UMAuthRegisterViewConfig.Builder()
.setView(initSwitchView(287,"短信验证码登录",false))
.setRootViewId(UMAuthRegisterViewConfig.RootViewId.ROOT_VIEW_ID_BODY)
.setCustomInterface(new UMCustomInterface() {
@Override
public void onClick(Context context) {
// Toast.makeText(mContext, "切换到短信登录方式", Toast.LENGTH_SHORT).show();
// Intent pIntent = new Intent(mActivity, LoginNewActivity.class);
// mActivity.startActivityForResult(pIntent, 1002);
mAuthHelper.quitLoginPage();
}
}).build());
mAuthHelper.addAuthRegisterXmlConfig(new UMAuthRegisterXmlConfig.Builder()
.setLayout(R.layout.custom_login, new UMAbstractPnsViewDelegate() {
@Override
public void onViewCreated(View view) {
// inflater.inflate(R.layout.dialog_new_notitle, (ViewGroup) view.getRootView());
findViewById(R.id.im_wechat).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Log.e(TAG, "点击了we");
if(!check)
{
if(mActivity instanceof LoginNewActivity)
{
LayoutInflater inflater = LayoutInflater.from(mActivity);
View layout = inflater.inflate(R.layout.dialog_new_notitle,(ViewGroup) v.getRootView());
RelativeLayout re=layout.findViewById(R.id.re);
re.setBackgroundColor(Color.parseColor("#80000000"));
Button btn_sure = (Button) layout.findViewById(R.id.btn_sure);
Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel);
TextView tv_tishi=layout.findViewById(R.id.tv_tishi);
SpannableStringBuilder spannableBuilder = new SpannableStringBuilder(yinsi1);
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#8B2316"));
ForegroundColorSpan colorSpan1 = new ForegroundColorSpan(Color.parseColor("#8B2316"));
spannableBuilder.setSpan(colorSpan1, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE );
spannableBuilder.setSpan(colorSpan, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ClickableSpan clickableSpanOne = new ClickableSpan() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mActivity,
NewsDetailActivity.class);
intent.putExtra("url", Url.getyyzc);
intent.putExtra("title", "《肝胆相照隐私政策》");
mActivity.startActivity(intent);
}
@Override
public void updateDrawState(TextPaint ds) {
//点击事件去掉下划线
ds.setUnderlineText(false);
}
};
ClickableSpan clickableSpanOne1 = new ClickableSpan() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mActivity,
NewsDetailActivity.class);
intent.putExtra("url", Url.getzcxy);
intent.putExtra("title", "《肝胆相照用户服务协议》");
mActivity.startActivity(intent);
}
@Override
public void updateDrawState(TextPaint ds) {
//点击事件去掉下划线
ds.setUnderlineText(false);
}
};
spannableBuilder.setSpan(clickableSpanOne, 7, 17, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableBuilder.setSpan(clickableSpanOne1, 18, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_tishi.setMovementMethod(LinkMovementMethod.getInstance());
tv_tishi.setText(spannableBuilder);
tv_tishi.setGravity(Gravity.LEFT);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
((ViewGroup)v.getRootView()).removeView(re);
}
});
btn_sure.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((LoginNewActivity) mActivity).wechatLogin();
}
});
// ((LoginNewActivity) mActivity).show_yinsi(true);
}
// Toast.makeText(mContext, R.string.custom_toast, Toast.LENGTH_SHORT).show();
}
else
{
// mAuthHelper.quitLoginPage();
if(mActivity instanceof LoginNewActivity)
{
((LoginNewActivity) mActivity).wechatLogin();
}
}
}
});
// ImageView pImageView = (ImageView) findViewById(R.id.iv_background);
// Glide.with(mContext).load(R.drawable.test).diskCacheStrategy(DiskCacheStrategy.RESOURCE).into(pImageView);
//
// findViewById(R.id.tv_switch).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Toast.makeText(mContext, "切换到短信登录方式", Toast.LENGTH_SHORT).show();
// Intent pIntent = new Intent(mActivity, MessageActivity.class);
// mActivity.startActivityForResult(pIntent, 1002);
// mAuthHelper.quitLoginPage();
// }
// });
}
})
.build());
int authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
if (Build.VERSION.SDK_INT == 26) {
authPageOrientation = ActivityInfo.SCREEN_ORIENTATION_BEHIND;
}
// Resources resources =mContext.getResources();
mAuthHelper.setAuthUIConfig(new UMAuthUIConfig.Builder()
//loding
.setPrivacyAlertIsNeedShow(true)
.setPrivacyAlertIsNeedAutoLogin(true)
.setTapPrivacyAlertMaskCloseAlert(false)
.setPrivacyAlertAlignment(Gravity.CENTER)
.setPrivacyAlertBackgroundColor(Color.WHITE)
.setPrivacyAlertMaskAlpha(0.3f)
.setPrivacyAlertWidth(300)
.setPrivacyAlertHeight(250)
.setPrivacyAlertCornerRadiusArray(new int[]{10, 10, 10, 10})
.setPrivacyAlertTitleTextSize(17)
.setPrivacyAlertTitleColor(Color.BLACK)
.setPrivacyAlertContentTextSize(15)
.setPrivacyAlertContentColor(Color.parseColor("#8D2316"))
.setPrivacyAlertContentBaseColor(Color.parseColor("#666666"))
.setPrivacyAlertContentHorizontalMargin(40)
.setPrivacyAlertContentVerticalMargin(20)
.setPrivacyAlertBtnTextColor(Color.WHITE)
.setPrivacyAlertBtnWidth(90)
.setPrivacyAlertBtnHeight(44)
.setPrivacyAlertBtnTextSize(15)
.setPrivacyAlertBtnBackgroundImgDrawable(mContext.getResources().getDrawable(R.drawable.selector_btn))
.setPrivacyAlertEntryAnimation("in_activity")
.setPrivacyAlertExitAnimation("out_activity")
.setLoadingImgDrawable(mContext.getResources().getDrawable(R.drawable.refresh_anim))
.setLoadingBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.icon_custom_toast_bg))
//隐私政策
.setAppPrivacyOne("《肝胆相照隐私政策》", Url.getyyzc)
.setAppPrivacyTwo("《肝胆相照用户服务协议》", Url.getzcxy)
.setPrivacyTextSize(12)
.setPrivacyOffsetY_B(15)
.setPrivacyEnd("并使用本机号码登录并注册")
.setAppPrivacyColor(Color.parseColor("#666666"),Color.parseColor("#8D2316"))
.setUncheckedImgPath("login_new_unselect")
.setCheckedImgPath("login_new_select")
.setPrivacyMargin(15)
.setProtocolGravity(Gravity.LEFT)
.setProtocolLayoutGravity(Gravity.LEFT)
//协议网页
.setWebViewStatusBarColor(Color.parseColor("#FFEFEFEF"))
.setWebNavColor(Color.parseColor("#FFEFEFEF"))
.setWebNavTextColor(Color.parseColor("#8D2316"))
.setWebNavTextSize(20)
.setWebSupportedJavascript(true)
//隐藏默认切换其他登录方式
.setSwitchAccHidden(true)
//隐藏默认Toast
.setLogBtnToastHidden(true)
//沉浸式状态栏
.setStatusBarColor(Color.parseColor("#FFEFEFEF"))
.setStatusBarHidden(false)
.setStatusBarUIFlag(View.SYSTEM_UI_FLAG_LOW_PROFILE)
.setLightColor(true)
//导航栏
.setNavColor(Color.parseColor("#FFEFEFEF"))
.setNavText("登录")
.setNavTextColor(Color.parseColor("#8D2316"))
.setNavTextSize(20)
.setNavReturnImgPath("top_back")
.setNavReturnHidden(true)
.setNavReturnImgWidth(40)
.setNavReturnImgHeight(40)
.setNavReturnScaleType(ImageView.ScaleType.CENTER)
//logo
.setLogoImgDrawable(mContext.getResources().getDrawable(R.drawable.icon_login_logo))
.setLogoHidden(false)
.setLogoHeight(68)
.setLogoWidth(68)
.setLogoOffsetY(48)
.setSloganText("专家端")
.setSloganTextSize(16)
.setSloganTextColor(Color.parseColor("#8D2316"))
.setSloganOffsetY(126)
//号码
.setNumberColor(Color.parseColor("#000000"))
.setNumberSize(17)
.setNumFieldOffsetY(160)
//登录
.setLogBtnText("本机号码一键登录")
.setLogBtnTextColor(Color.parseColor("#FFFFFF"))
.setLogBtnTextSize(17)
.setLogBtnMarginLeftAndRight(20)
.setLogBtnBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.selector_btn))
.setLogBtnHeight(39)
.setLogBtnOffsetY(238)
// //短信验证码登录
// .setSwitchAccHidden(false)
// .setSwitchAccText("短信验证码登录")
// .setSwitchAccTextColor(Color.parseColor("#8D2316"))
// .setSwitchAccTextSize(14)
//图片或者xml的传参方式为不包含后缀名的全称 需要文件需要放在drawable或drawable-xxx目录下 in_activity.xml, mytel_app_launcher.png
.setAuthPageActIn("in_activity", "out_activity")
.setAuthPageActOut("in_activity", "out_activity")
.setVendorPrivacyPrefix("《")
.setVendorPrivacySuffix("》")
// .setPageBackgroundPath("page_background_color")
// .setLogoImgPath("mytel_app_launcher")
//一键登录按钮三种状态背景示例login_btn_bg.xml
// .setLogBtnBackgroundPath("login_btn_bg")
.setScreenOrientation(authPageOrientation)
.create());
}
}
@@ -0,0 +1,316 @@
package cn.shangyu.gdxzExpert.umeng;
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
import static cn.shangyu.gdxzExpert.umeng.PushHelper.readMessage;
import static cn.shangyu.gdxzExpert.utils.CommonUtil.BigModule;
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_CLASS_QUALITY_DETAILS;
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_COURSEWARE_DETAILS;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.NimIntent;
import com.netease.nimlib.sdk.mixpush.MixPushService;
import com.netease.nimlib.sdk.msg.MessageBuilder;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.umeng.analytics.MobclickAgent;
import com.umeng.message.UmengNotifyClickActivity;
import org.android.agoo.common.AgooConstants;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Map;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.activity.AccumulatePointsActivity;
import cn.shangyu.gdxzExpert.activity.BillDetailsActivity;
import cn.shangyu.gdxzExpert.activity.BookshelfListActivity2;
import cn.shangyu.gdxzExpert.activity.FaPiaoActivity;
import cn.shangyu.gdxzExpert.activity.GanDanHouseDetialActivity;
import cn.shangyu.gdxzExpert.activity.MyCoursewareActivity;
import cn.shangyu.gdxzExpert.activity.MyFlowerActivity;
import cn.shangyu.gdxzExpert.activity.MyFuliCardActivity;
import cn.shangyu.gdxzExpert.activity.WebActivity;
import cn.shangyu.gdxzExpert.big.activity.BigPointsMallActivity;
import cn.shangyu.gdxzExpert.netease.mixpush.DemoMixPushMessageHandler;
import cn.shangyu.gdxzExpert.pointsmall.PointsMallActivity;
import cn.shangyu.gdxzExpert.polyvplayer.CourseDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.splash.WelcomeUI;
import cn.shangyu.gdxzExpert.utils.GsonTools;
import cn.shangyu.gdxzExpert.utils.StringUtil;
import cn.shangyu.gdxzExpert.utils.Url;
/**
* 厂商通道配置托管启动的Activity
* 如点击小米、华为、OPPO、vivo等系统通道的通知消息,启动的Activity类
*/
public class MfrMessageActivity extends UmengNotifyClickActivity {
private static final String TAG = "MfrMessageActivity";
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.mfr_message_layout);
// onIntent();
}
// 处理收到的Intent
private void onIntent() {
LogUtil.i(TAG, "onIntent...");
LogUtil.i("G2", "onIntent...");
// 已经登录过了,处理过来的请求
Intent intent = getIntent();
if (intent != null) {
if(intent.getExtras()!=null)
{
Log.d(TAG, "intent.getExtras(): " + intent.getExtras().toString());
}
if (intent.hasExtra(NimIntent.EXTRA_NOTIFY_CONTENT)) {
parseNotifyIntent(intent);
return;
} else if (NIMClient.getService(MixPushService.class).isFCMIntent(intent)) {
parseFCMNotifyIntent(NIMClient.getService(MixPushService.class).parseFCMPayload(intent));
}
}
}
private void parseFCMNotifyIntent(String payloadString) {
Map<String, String> payload = JSON.parseObject(payloadString, Map.class);
String sessionId = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_ID);
String type = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_TYPE);
if (sessionId != null && type != null) {
int typeValue = Integer.valueOf(type);
IMMessage message = MessageBuilder.createEmptyMessage(sessionId, SessionTypeEnum.typeOfValue(typeValue), 0);
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, message));
} else {
// showMainActivity(null);
}
}
private void parseNotifyIntent(Intent intent) {
ArrayList<IMMessage> messages = (ArrayList<IMMessage>) intent.getSerializableExtra(NimIntent.EXTRA_NOTIFY_CONTENT);
if (messages == null || messages.size() > 1) {
// showMainActivity(null);
} else {
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, messages.get(0)));
}
}
@Override
public void onMessage(Intent intent) {
if(intent==null)
return;
Bundle bundle = intent.getExtras();
if (bundle != null) {
Log.d(TAG, "bundle: " + bundle);
}
else
{
return;
}
super.onMessage(intent);
final String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
try {
JSONObject jsonObject = new JSONObject(body);
PushBean pushBean= GsonTools.fromGsonToBean(body,PushBean.class);
if(pushBean!=null&&pushBean.getExtra()!=null&& !StringUtil.isEmpty(pushBean.getExtra().getMessage_id()))
{
readMessage(pushBean.getExtra().getMessage_id());
}
if(pushBean!=null&&pushBean.getExtra()!=null&&pushBean.getExtra().getType()!=null)
{
Intent intent3=new Intent();
switch (pushBean.getExtra().getType())
{
case "1":
intent3.setClass(getContext(),PushNewsDetailActivity.class);
intent3.putExtra("title", "新闻详情");
intent3.putExtra("newsuuid", pushBean.getExtra().getUuid());
intent3.putExtra("flag", 3);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"3"://肝胆视频
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
intent4.putExtra("startNow", false);
intent4.putExtra("isVlmsOnline", false);
intent4.putExtra("uuid", pushBean.getExtra().getUuid());
intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent4);
finish();
break;
case"4"://直播
intent3.setType("zhibo");
intent3.setClass(getContext(),PushZhiBoActivity.class);
intent3.putExtra("id", pushBean.getExtra().getId());
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"5"://肝胆课件
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_COURSEWARE_DETAILS);
intent3.setClass(getContext(),PushCourseUrlDetailActivity.class);
intent3.putExtra("uuid", pushBean.getExtra().getUuid());
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"6"://精品课
case"7":
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_CLASS_QUALITY_DETAILS);
intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"9"://积分商城
if(BigModule())
{
intent3.setClass(getContext(), BigPointsMallActivity.class);
}
else
{
intent3.setClass(getContext(), PointsMallActivity.class);
}
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"10"://指南
intent3.setClass(getContext(), BookshelfListActivity2.class);
intent3.putExtra("typeUuid", pushBean.getExtra().getUuid());
intent3.putExtra("title", pushBean.getExtra().getName());
intent3.putExtra("loadUrl", Url.getGuideList);
intent3.putExtra("type", "0");
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"11"://普通url
intent3.setClass(getContext(), WebActivity.class);
intent3.putExtra("url",pushBean.getExtra().getUrl());
intent3.putExtra("title","推送消息");
intent3.putExtra("need_share","0");
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"15"://精品课评论
// intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
// intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
// intent3.putExtra("pinglun","yes");
// intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// getContext().startActivity(intent3);
// finish();
// break;
case"16"://一问多答
case"17"://病例讨论
intent3.setClass(getContext(), NewSystemMessageActivity.class);
intent3.putExtra("module",3);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"18"://送花
intent3.setClass(getContext(), MyFlowerActivity.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"19"://课件收益
intent.setClass(getContext(), MyCoursewareActivity.class);
intent.putExtra("changeMyCoolect",1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"21"://提现
intent3.setClass(getContext(), BillDetailsActivity.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"20"://发票
intent3.setClass(getContext(), FaPiaoActivity.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"28"://课件分享
case"30"://精品课优质评价
case"31"://学完返现
case"32"://福利课堂
case"33"://阅读福利
case"34"://观看福利
case"36"://特别奖励
intent3.setClass(getContext(), AccumulatePointsActivity.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case"35"://福利卡
intent3.setClass(getContext(), MyFuliCardActivity.class);
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent3);
finish();
break;
case "40"://互动圈
intent.setClass(getContext(), GanDanHouseDetialActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("uuid",pushBean.getExtra().getUuid());
getContext().startActivity(intent);
break;
default:
intent3.setClass(MfrMessageActivity.this, WelcomeUI.class);
startActivity(intent3);
finish();
break;
}
}
else if(jsonObject.optJSONObject("extra")!=null&&!(jsonObject.getJSONObject("extra").isNull("url")))
{
Intent intent2=new Intent(getContext(), WebActivity.class);
intent2.putExtra("url",jsonObject.getJSONObject("extra").getString("url"));
intent2.putExtra("title","推送消息");
intent2.putExtra("need_share","0");
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent2);
finish();
}
else
{
Intent intent1 = new Intent();
intent1.setClass(MfrMessageActivity.this, WelcomeUI.class);
startActivity(intent1);
finish();
}
} catch (JSONException e) {
e.printStackTrace();
}
// Log.d(TAG, "body: " + body);
// if (!TextUtils.isEmpty(body)) {
// runOnUiThread(new Runnable() {
// @Override
// public void run() {
// ((TextView) findViewById(R.id.tv)).setText(body);
// }
// });
// }
}
}
@@ -0,0 +1,624 @@
package cn.shangyu.gdxzExpert.umeng;
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
import static cn.shangyu.gdxzExpert.umeng.PushHelper.readMessage;
import static cn.shangyu.gdxzExpert.utils.CommonUtil.BigModule;
import static cn.shangyu.gdxzExpert.utils.Url.appMesageRead;
import static cn.shangyu.gdxzExpert.utils.Url.unReadList;
import android.app.AlertDialog;
import android.content.Intent;
import android.graphics.Color;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.activity.AccumulatePointsActivity;
import cn.shangyu.gdxzExpert.activity.BillDetailsActivity;
import cn.shangyu.gdxzExpert.activity.BookshelfListActivity2;
import cn.shangyu.gdxzExpert.activity.CaseCussionDetailActivity;
import cn.shangyu.gdxzExpert.activity.FaPiaoActivity;
import cn.shangyu.gdxzExpert.activity.GanDanHouseDetialActivity;
import cn.shangyu.gdxzExpert.activity.MyCoursewareActivity;
import cn.shangyu.gdxzExpert.activity.MyFlowerActivity;
import cn.shangyu.gdxzExpert.activity.MyFuliCardActivity;
import cn.shangyu.gdxzExpert.activity.WebActivity;
import cn.shangyu.gdxzExpert.base.BaseActivity;
import cn.shangyu.gdxzExpert.bean.MessageBean;
import cn.shangyu.gdxzExpert.bean.MessageNumBean;
import cn.shangyu.gdxzExpert.big.activity.BigPointsMallActivity;
import cn.shangyu.gdxzExpert.big.activity.NormNewPatientActivity;
import cn.shangyu.gdxzExpert.fragment.FuMessageFragment;
import cn.shangyu.gdxzExpert.fragment.HuiMessageFragment;
import cn.shangyu.gdxzExpert.fragment.OrderMessageFragment;
import cn.shangyu.gdxzExpert.fragment.SuiMessageFragment;
import cn.shangyu.gdxzExpert.http.OnCallBackFromNet;
import cn.shangyu.gdxzExpert.pointsmall.PointsMallActivity;
import cn.shangyu.gdxzExpert.polyvplayer.CourseDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.utils.GsonTools;
import cn.shangyu.gdxzExpert.utils.StringUtil;
import cn.shangyu.gdxzExpert.utils.ToastUtil;
import cn.shangyu.gdxzExpert.utils.Url;
import cn.shangyu.gdxzExpert.widget.LoadingPage;
import me.majiajie.pagerbottomtabstrip.NavigationController;
import me.majiajie.pagerbottomtabstrip.OldPageNavigationView;
import me.majiajie.pagerbottomtabstrip.item.BaseTabItem;
import me.majiajie.pagerbottomtabstrip.item.NormalItemView;
import me.majiajie.pagerbottomtabstrip.listener.SimpleTabItemSelectedListener;
public class NewSystemMessageActivity extends BaseActivity implements OnCallBackFromNet {
private OldPageNavigationView tab;
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_new_system_message);
// }
public static final String fragmentTag1 = "fragment1";
public static final String fragmentTag2 = "fragment2";
public static final String fragmentTag3 = "fragment3";
public static final String fragmentTag4 = "fragment4";
private Fragment currentFragment;
private FragmentManager manager;
private FuMessageFragment fuMessageFragment;
private OrderMessageFragment orderMessageFragment;
private SuiMessageFragment suiMessageFragment;
private HuiMessageFragment huiMessageFragment;
NavigationController navigationController;
private int num0=0,num1=0,num2=0,num3=0;
public Boolean needrequest=false;//是否需要重新请求
public int unreadnum=0;
@Override
public void setTitle() {
top_title.setText("消息");
top_right.setImageResource(R.drawable.clear_message);
top_right.setVisibility(View.VISIBLE);
top_right.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clearMessage();
}
});
}
private void clearMessage()
{
LayoutInflater inflater = LayoutInflater.from(this);
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.dialog_new, null);
AlertDialog dialog3 = new AlertDialog.Builder(
NewSystemMessageActivity.this,AlertDialog.THEME_HOLO_LIGHT).create();
Button btn_sure = (Button) layout.findViewById(R.id.btn_sure);
Button btn_cancel = (Button) layout.findViewById(R.id.btn_cancel);
RelativeLayout r_b =layout.findViewById(R.id.r_b);
TextView tv_tishi=layout.findViewById(R.id.tv_tishi);
if(unreadnum>0)
{
}
else
{
r_b.setVisibility(View.GONE);
btn_sure.setText("确定");
tv_tishi.setText("您没有可清除的未读消息");
// btn_cancel.setVisibility(View.GONE);
// btn_sure.setWidth(dip2px(105));
}
dialog3.show();
Window window =dialog3.getWindow();
// window.setGravity(Gravity.CENTER);
WindowManager.LayoutParams layoutParams = window.getAttributes();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(layoutParams);
dialog3.getWindow().setContentView(layout);
dialog3.setCanceledOnTouchOutside(false);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog3.dismiss();
}
});
btn_sure.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(unreadnum>0){
needrequest=true;
showLoadingProgress();
clearMsg("");
needreportSimple("clear_message");
}
dialog3.dismiss();
}
});
}
@Override
public View onCreateSuccessedView() {
View view = View.inflate(ct, R.layout.activity_new_system_message, null);
tab= view.findViewById(R.id.tab);
//注意这里调用了custom()方法
navigationController = tab.custom()
.addItem(newItem(R.drawable.fu_message,R.drawable.fu_message,"福利"))
.addItem(newItem(R.drawable.ding_message,R.drawable.ding_message,"订单"))
.addItem(newItem(R.drawable.sui_message,R.drawable.sui_message,"随访"))
.addItem(newItem(R.drawable.hui_message,R.drawable.hui_message,"回复我的"))
.build();
navigationController.addSimpleTabItemSelectedListener(new SimpleTabItemSelectedListener() {
@Override
public void onSelected(int index, int old) {
// 选中时触发
switch (index)
{
case 0:
showFragment(fuMessageFragment);
break;
case 1:
showFragment(orderMessageFragment);
break;
case 2:
showFragment(suiMessageFragment);
break;
case 3:
showFragment(huiMessageFragment);
break;
}
}
});
if(!StringUtil.isEmpty(getIntent().getStringExtra("message_id")))
{
readMessage(getIntent().getStringExtra("message_id"));
}
// showLoadingProgress();
initMessage();
initFragment();
if(getIntent().getIntExtra("module",0)==0)
{
showFragment(fuMessageFragment);
}
else
{
navigationController.setSelect(getIntent().getIntExtra("module",0));
}
// showFragment(fuMessageFragment);
return view;
}
public void initMessage()
{
Map<String,String> map=new HashMap<>();
sendJsonPostParamtoNetSignMD5(unReadList,map,101,this);
}
private void clearMsg(String id)
{
Map<String,String> map=new HashMap<>();
map.put("id",id);
sendJsonPostParamtoNetSignMD5(appMesageRead,map,102,this);
}
/**
71 * 展示Fragment
72 */
private void showFragment(Fragment fragment) {
if (currentFragment != fragment) {
FragmentTransaction transaction = manager.beginTransaction();
if(currentFragment!=null)
{
transaction.hide(currentFragment);
}
currentFragment = fragment;
if (!fragment.isAdded()) {
transaction.add(R.id.frame_container, fragment).show(fragment).commit();
} else {
transaction.show(fragment).commit();
}
}
}
private void initFragment()
{
manager = getSupportFragmentManager();
//实例化碎片对象
fuMessageFragment = new FuMessageFragment();
orderMessageFragment = new OrderMessageFragment();
suiMessageFragment = new SuiMessageFragment();
huiMessageFragment=new HuiMessageFragment();
}
//创建一个Item
private BaseTabItem newItem(int drawable, int checkedDrawable, String text){
NormalItemView normalItemView = new NormalItemView(this);
normalItemView.initialize(drawable,checkedDrawable,text);
normalItemView.setTextDefaultColor(Color.parseColor("#ff666666"));
normalItemView.setTextCheckedColor(Color.parseColor("#ff8B2316"));
// normalItemView.setMessageNumber(1);
// normalItemView.setHasMessage(true);
return normalItemView;
}
@Override
public LoadingPage.ResultState onLoad() {
return LoadingPage.ResultState.STATE_SUCCESSED;
}
@Override
protected void processClick(View v) {
}
@Override
public void onCallbackFromThread(String resultJson) {
}
public void reInitMessage()
{
initMessage();
// if(fuMessageFragment.isAdded())
// {
// fuMessageFragment. initMessage("1",fuMessageFragment .page+"");
// }
// if(orderMessageFragment.isAdded())
// {
// orderMessageFragment. initMessage("2",orderMessageFragment.page+"");
// }
// if(suiMessageFragment.isAdded())
// {
// suiMessageFragment. initMessage("3",suiMessageFragment.page+"");
// }
// if(huiMessageFragment.isAdded())
// {
// huiMessageFragment. initMessage("4",huiMessageFragment.page+"");
// }
if(currentFragment instanceof FuMessageFragment)
{
((FuMessageFragment) currentFragment). initMessage("1",((FuMessageFragment) currentFragment).page+"");
}
else if(currentFragment instanceof OrderMessageFragment)
{
((OrderMessageFragment) currentFragment). initMessage("2",((OrderMessageFragment) currentFragment).page+"");
}
else if(currentFragment instanceof SuiMessageFragment)
{
((SuiMessageFragment) currentFragment). initMessage("3",((SuiMessageFragment) currentFragment).page+"");
}
else if(currentFragment instanceof HuiMessageFragment)
{
((HuiMessageFragment) currentFragment). initMessage("4",((HuiMessageFragment) currentFragment).page+"");
}
}
MessageNumBean messageNumBean;
@Override
public void onCallBackFromThread(String resultJson, int resultCode) {
switch (resultCode)
{
case 102:
dismissLoadingProgress();
try {
JSONObject jsonObject=new JSONObject(resultJson);
if("200".equals(jsonObject.optString("code")))
{
if(needrequest)
{
needrequest=false;
reInitMessage();
}
}
else
{
ToastUtil.showMessage(jsonObject.optString("message"));
}
} catch (JSONException e) {
e.printStackTrace();
}
break;
case 101:
// dismissLoadingProgress();
messageNumBean= GsonTools.fromGsonToBean(resultJson,MessageNumBean.class);
if("200".equals(messageNumBean.getCode()))
{
if(messageNumBean.getData()!=null)
{
// setUnread(0,111+"");
setUnread(0,messageNumBean.getData().getModule_Welfare());
setUnread(1,messageNumBean.getData().getModule_Order());
setUnread(2,messageNumBean.getData().getModule_Relation());
setUnread(3,messageNumBean.getData().getModule_Comment());
}
}
break;
}
}
public void setUnread(int index,String num)
{
unreadnum=0;
if(!StringUtil.isEmpty(num)&&Integer.valueOf(num)>0)
{
navigationController.setMessageNumber(index,Integer.valueOf(num));
navigationController.setHasMessage(index,true);
switch (index)
{
case 0:
num0=Integer.valueOf(num);
break;
case 1:
num1=Integer.valueOf(num);
break;
case 2:
num2=Integer.valueOf(num);
break;
case 3:
num3=Integer.valueOf(num);
break;
}
}
else
{
navigationController.setMessageNumber(index,0);
navigationController.setHasMessage(index,false);
switch (index)
{
case 0:
num0=0;
break;
case 1:
num1=0;
break;
case 2:
num2=0;
break;
case 3:
num3=0;
break;
}
}
unreadnum=num0+num1+num2+num3;
}
public void goActivity(String type, MessageBean.BeanData.DetailBean pushBean,int index)
{
switch (index)
{
case 0:
if(num0>0)
{
clearMsg(pushBean.getId());
num0--;
setUnread(index,num0+"");
}
break;
case 1:
if(num1>0)
{
clearMsg(pushBean.getId());
num1--;
setUnread(index,num1+"");
}
break;
case 2:
if(num2>0)
{
clearMsg(pushBean.getId());
num2--;
setUnread(index,num2+"");
}
break;
case 3:
if(num3>0)
{
clearMsg(pushBean.getId());
num3--;
setUnread(index,num3+"");
}
break;
}
Intent intent=new Intent();
Log.d("WXEntryActivity",type+" ");
switch (type)
{
case "1"://新闻
intent.setClass(getContext(),PushNewsDetailActivity.class);
intent.putExtra("title", "新闻详情");
intent.putExtra("newsuuid", pushBean.getExtra().getUuid());
intent.putExtra("flag", 3);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"3"://肝胆视频
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
intent4.putExtra("startNow", false);
intent4.putExtra("isVlmsOnline", false);
intent4.putExtra("uuid", pushBean.getExtra().getUuid());
intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent4);
break;
case"4"://直播
intent.setType("zhibo");
intent.setClass(getContext(),PushZhiBoActivity.class);
intent.putExtra("id", pushBean.getExtra().getId());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"5"://肝胆课件
intent.setClass(getContext(),PushCourseUrlDetailActivity.class);
intent.putExtra("uuid", pushBean.getExtra().getUuid());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"6"://精品课
case"7":
intent.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
intent.putExtra("excellentcourse_id", pushBean.getExtra().getId());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"9"://积分商城
if(BigModule())
{
intent.setClass(getContext(), BigPointsMallActivity.class);
}
else
{
intent.setClass(getContext(), PointsMallActivity.class);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"10"://指南
intent.setClass(getContext(), BookshelfListActivity2.class);
intent.putExtra("typeUuid", pushBean.getExtra().getUuid());
intent.putExtra("title", pushBean.getExtra().getName());
intent.putExtra("loadUrl", Url.getGuideList);
intent.putExtra("type", "0");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"11"://普通url
intent.setClass(getContext(), WebActivity.class);
intent.putExtra("url",pushBean.getExtra().getUrl());
intent.putExtra("title","推送消息");
intent.putExtra("need_share","0");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case "12"://申请随访
case "14":
intent.setClass(getContext(), NormNewPatientActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case "13"://解除随访
// intent.setClass(getContext(), NewSystemMessageActivity.class);
// intent.putExtra("module",2);
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// getContext().startActivity(intent);
break;
case"15"://精品课评论
intent.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
intent.putExtra("excellentcourse_id", pushBean.getExtra().getId());
intent.putExtra("pinglun","yes");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"16"://一问多答
intent.setClass(getContext(), NewSystemMessageActivity.class);
intent.putExtra("step1_uuid",pushBean.getExtra().getStep1_uuid());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"17"://病例讨论
intent.setClass(getContext(), CaseCussionDetailActivity.class);
intent.putExtra("uuid", pushBean.getExtra().getUuid());//传值病例的uuid
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"18"://送花
intent.setClass(getContext(), MyFlowerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"19"://课件收益
intent.setClass(getContext(), MyCoursewareActivity.class);
intent.putExtra("changeMyCoolect",1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"21"://提现
intent.setClass(getContext(), BillDetailsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"20"://发票
intent.setClass(getContext(), FaPiaoActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"28"://课件分享
case"30"://精品课优质评价
case"31"://学完返现
case"32"://福利课堂
case"33"://阅读福利
case"34"://观看福利
case"36"://特别奖励
intent.setClass(getContext(), AccumulatePointsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"35"://福利卡
intent.setClass(getContext(), MyFuliCardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case "40"://互动圈
intent.setClass(getContext(), GanDanHouseDetialActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("uuid",pushBean.getExtra().getUuid());
getContext().startActivity(intent);
break;
default:
break;
}
}
}
@@ -0,0 +1,130 @@
package cn.shangyu.gdxzExpert.umeng;
public class PushBean {
private String display_type;
private ExtraBean extra;
private BodyBean body;
private String msg_id;
public String getDisplay_type() {
return display_type;
}
public void setDisplay_type(String display_type) {
this.display_type = display_type;
}
public ExtraBean getExtra() {
return extra;
}
public void setExtra(ExtraBean extra) {
this.extra = extra;
}
public BodyBean getBody() {
return body;
}
public void setBody(BodyBean body) {
this.body = body;
}
public String getMsg_id() {
return msg_id;
}
public void setMsg_id(String msg_id) {
this.msg_id = msg_id;
}
public class ExtraBean
{
private String type;
private String id;
private String uuid;
private String name;
private String url;
private String step1_uuid;
private String message_id;
public String getMessage_id() {
return message_id;
}
public void setMessage_id(String message_id) {
this.message_id = message_id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getStep1_uuid() {
return step1_uuid;
}
public void setStep1_uuid(String step1_uuid) {
this.step1_uuid = step1_uuid;
}
}
public class BodyBean
{
private String title;
private String text;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
}
@@ -0,0 +1,65 @@
package cn.shangyu.gdxzExpert.umeng;
/**
* 常量类
*/
public class PushConstants {
/**
* 应用申请的Appkey
*/
// public static final String APP_KEY = "应用申请的Appkey";
// public static final String APP_KEY = "6216df0fbe56207ef152880d";
public static final String APP_KEY = "56caa908e0f55aeff4001cd0";
/**
* 应用申请的UmengMessageSecret
*/
// public static final String MESSAGE_SECRET = "应用申请的UmengMessageSecret";
public static final String MESSAGE_SECRET = "38088a7ef3b841e2db034b2f212a4a68";
// public static final String MESSAGE_SECRET = "2545ed6cd6d0d786680440272c1281bb";
/**
* 后台加密消息的密码(仅Demo用,请勿将此密码泄漏)
*/
// public static final String APP_MASTER_SECRET = "0res89pxjfisldc6byibmi7ctd3uxomu";
public static final String APP_MASTER_SECRET = "8yn9plhdj82c6ubljpieqzr2dlrp7eg6";
/**
* 渠道名称,修改为您App的发布渠道名称
*/
public static final String CHANNEL = "Umeng";
/**
* 小米后台APP对应的xiaomi id
*/
// public static final String MI_ID = "填写您在小米后台APP对应的xiaomi id";
public static final String MI_ID = "2882303761517470793";
/**
* 小米后台APP对应的xiaomi key
*/
// public static final String MI_KEY = "填写您在小米后台APP对应的xiaomi key";
public static final String MI_KEY = "5431747048793";
/**
* 魅族后台APP对应的xiaomi id
*/
// public static final String MEI_ZU_ID = "填写您在魅族后台APP对应的app id";
public static final String MEI_ZU_ID = "116090";
/**
* 魅族后台APP对应的xiaomi key
*/
// public static final String MEI_ZU_KEY = "填写您在魅族后台APP对应的app key";
public static final String MEI_ZU_KEY = "9413f9968d654df092afecf4d3782391";
/**
* OPPO后台APP对应的app key
*/
// public static final String OPPO_KEY = "填写您在OPPO后台APP对应的app key";
public static final String OPPO_KEY = "75D5Vqsg63wok0S0w4SKog0w8";
/**
* OPPO后台APP对应的app secret
*/
// public static final String OPPO_SECRET = "填写您在OPPO后台APP对应的app secret";
public static final String OPPO_SECRET = "416a4f5eF822ddcB73B627Cc310636D7";
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,378 @@
package cn.shangyu.gdxzExpert.umeng;
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
import static cn.shangyu.gdxzExpert.utils.CommonUtil.BigModule;
import static cn.shangyu.gdxzExpert.utils.HttpMD5SendInfoUtil.sendJsonPostParamNoResultMD5;
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_CLASS_QUALITY_DETAILS;
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_COURSEWARE_DETAILS;
import static cn.shangyu.gdxzExpert.utils.Url.appMesageRead;
import android.app.Application;
import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import androidx.annotation.Nullable;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.message.PushAgent;
import com.umeng.message.UmengMessageHandler;
import com.umeng.message.UmengNotificationClickHandler;
import com.umeng.message.api.UPushRegisterCallback;
import com.umeng.message.entity.UMessage;
import org.android.agoo.huawei.HuaWeiRegister;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
import cn.shangyu.gdxzExpert.activity.AccumulatePointsActivity;
import cn.shangyu.gdxzExpert.activity.BillDetailsActivity;
import cn.shangyu.gdxzExpert.activity.BookshelfListActivity2;
import cn.shangyu.gdxzExpert.activity.FaPiaoActivity;
import cn.shangyu.gdxzExpert.activity.GanDanHouseDetialActivity;
import cn.shangyu.gdxzExpert.activity.MyCoursewareActivity;
import cn.shangyu.gdxzExpert.activity.MyFlowerActivity;
import cn.shangyu.gdxzExpert.activity.MyFuliCardActivity;
import cn.shangyu.gdxzExpert.activity.WebActivity;
import cn.shangyu.gdxzExpert.big.activity.BigPointsMallActivity;
import cn.shangyu.gdxzExpert.big.activity.NormNewPatientActivity;
import cn.shangyu.gdxzExpert.pointsmall.PointsMallActivity;
import cn.shangyu.gdxzExpert.polyvplayer.CourseDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.utils.GsonTools;
import cn.shangyu.gdxzExpert.utils.StringUtil;
import cn.shangyu.gdxzExpert.utils.Url;
/**
* PushSDK集成帮助类
*/
public class PushHelper {
private static final String TAG = "PushHelper";
private static PushBean pushBean;
private static Intent intent;
/**
* 预初始化
*/
public static void preInit(Context context) {
//解决厂商通知点击时乱码等问题
PushAgent.setup(context, PushConstants.APP_KEY, PushConstants.MESSAGE_SECRET);
UMConfigure.preInit(context, PushConstants.APP_KEY, PushConstants.CHANNEL);
}
/**
* 初始化
*/
public static void init(final Context context) {
// 基础组件包提供的初始化函数,应用配置信息:http://message.umeng.com/list/apps
// 参数一:上下文context;
// 参数二:应用申请的Appkey;
// 参数三:发布渠道名称;
// 参数四:设备类型,UMConfigure.DEVICE_TYPE_PHONE:手机;UMConfigure.DEVICE_TYPE_BOX:盒子;默认为手机
// 参数五:Push推送业务的secret,填写Umeng Message Secret对应信息
// UMConfigure.init(context, PushConstants.APP_KEY, PushConstants.CHANNEL,
// UMConfigure.DEVICE_TYPE_PHONE, PushConstants.MESSAGE_SECRET);
//获取推送实例
PushAgent pushAgent = PushAgent.getInstance(context);
pushAgent.setNotificationChannelName("系统通知");
//TODO:需修改为您app/src/main/AndroidManifest.xml中package值
pushAgent.setResourcePackageName("cn.shangyu.gdxzExpert");
//推送设置
pushSetting(context);
//注册推送服务,每次调用register方法都会回调该接口
pushAgent.register(new UPushRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//注册成功会返回deviceToken deviceToken是推送消息的唯一标志
Log.d(TAG, "deviceToken --> " + deviceToken);
addUMToken(deviceToken);
// //获取deviceToken可通过接口:
// PushAgent.getInstance(context).getRegistrationId();
// //可设置别名,推送时使用别名推送
// String alias = "123456";
// String type = "aa";
// PushAgent.getInstance(context).setAlias(alias, type, new UPushAliasCallback() {
// @Override
// public void onMessage(boolean success, String message) {
// Log.i(TAG, "setAlias " + success + " msg:" + message);
// }
// });
}
@Override
public void onFailure(String errCode, String errDesc) {
Log.d(TAG, "register failure:--> " + "code:" + errCode + ",desc:" + errDesc);
}
});
registerDeviceChannel(context);
}
public static void addUMToken(String device_token) {
Map<String,String> map = new HashMap<>();
map.put("device_token",device_token);
sendJsonPostParamNoResultMD5(Url.addUMToken,map);
}
public static void readMessage(String id) {
Map<String,String> map = new HashMap<>();
map.put("id",id);
sendJsonPostParamNoResultMD5(appMesageRead,map);
}
/**
* 注册设备推送通道(小米、华为等设备的推送)
*/
private static void registerDeviceChannel(Context context) {
//小米通道,填写您在小米后台APP对应的xiaomi id和key
// MiPushRegistar.register(context, PushConstants.MI_ID, PushConstants.MI_KEY,false);
// //华为,注意华为通道的初始化参数在minifest中配置
HuaWeiRegister.register((Application) context.getApplicationContext());
// //魅族,填写您在魅族后台APP对应的app id和key
//// MeizuRegister.register(context, PushConstants.MEI_ZU_ID, PushConstants.MEI_ZU_KEY);
// //OPPO,填写您在OPPO后台APP对应的app key和secret
// OppoRegister.register(context, PushConstants.OPPO_KEY, PushConstants.OPPO_SECRET);
//vivo,注意vivo通道的初始化参数在minifest中配置
// VivoRegister.register(context);
}
//推送设置
private static void pushSetting(Context context) {
PushAgent pushAgent = PushAgent.getInstance(context);
//设置通知栏显示通知的最大个数(0~10),0:不限制个数
pushAgent.setDisplayNotificationNumber(0);
//推送消息处理
UmengMessageHandler msgHandler = new UmengMessageHandler() {
//处理通知栏消息
@Override
public void dealWithNotificationMessage(Context context, UMessage msg) {
super.dealWithNotificationMessage(context, msg);
Log.d(TAG, "notification receiver:" + msg.getRaw().toString());
}
//自定义通知样式,此方法可以修改通知样式等
@Override
public @Nullable Notification getNotification(Context context, UMessage msg) {
return super.getNotification(context, msg);
}
//处理透传消息
@Override
public void dealWithCustomMessage(Context context, UMessage msg) {
super.dealWithCustomMessage(context, msg);
Log.d(TAG, "custom receiver:" + msg.getRaw().toString());
}
};
pushAgent.setMessageHandler(msgHandler);
//推送消息点击处理
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
@Override
public void openActivity(Context context, UMessage msg) {
super.openActivity(context, msg);
Log.d(TAG, "click openActivity: " + msg.getRaw().toString());
}
@Override
public void launchApp(Context context, UMessage msg) {
super.launchApp(context, msg);
try {
JSONObject jsonObject = new JSONObject( msg.getRaw().toString());
Log.d(TAG, "click launchApp: " + msg.getRaw().toString());
pushBean= GsonTools.fromGsonToBean(msg.getRaw().toString(),PushBean.class);
if(pushBean!=null&&pushBean.getExtra()!=null&& !StringUtil.isEmpty(pushBean.getExtra().getMessage_id()))
{
readMessage(pushBean.getExtra().getMessage_id());
}
if(pushBean!=null&&pushBean.getExtra()!=null&&pushBean.getExtra().getType()!=null)
{
intent=new Intent();
switch (pushBean.getExtra().getType())
{
case "1"://新闻
intent.setClass(getContext(),PushNewsDetailActivity.class);
intent.putExtra("title", "新闻详情");
intent.putExtra("newsuuid", pushBean.getExtra().getUuid());
intent.putExtra("flag", 3);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"3"://肝胆视频
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
intent4.putExtra("startNow", false);
intent4.putExtra("isVlmsOnline", false);
intent4.putExtra("uuid", pushBean.getExtra().getUuid());
intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent4);
break;
case"4"://直播
intent.setType("zhibo");
intent.setClass(getContext(),PushZhiBoActivity.class);
intent.putExtra("id", pushBean.getExtra().getId());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"5"://肝胆课件
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_COURSEWARE_DETAILS);
intent.setClass(getContext(),PushCourseUrlDetailActivity.class);
intent.putExtra("uuid", pushBean.getExtra().getUuid());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"6"://精品课
case"7":
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_CLASS_QUALITY_DETAILS);
intent.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
intent.putExtra("excellentcourse_id", pushBean.getExtra().getId());
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"9"://积分商城
if(BigModule())
{
intent.setClass(getContext(), BigPointsMallActivity.class);
}
else
{
intent.setClass(getContext(), PointsMallActivity.class);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"10"://指南
intent.setClass(getContext(), BookshelfListActivity2.class);
intent.putExtra("typeUuid", pushBean.getExtra().getUuid());
intent.putExtra("title", pushBean.getExtra().getName());
intent.putExtra("loadUrl", Url.getGuideList);
intent.putExtra("type", "0");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"11"://普通url
intent.setClass(getContext(), WebActivity.class);
intent.putExtra("url",pushBean.getExtra().getUrl());
intent.putExtra("title","推送消息");
intent.putExtra("need_share","0");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case "14":
intent.setClass(context, NormNewPatientActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"15"://精品课评论
// intent.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
// intent.putExtra("excellentcourse_id", pushBean.getExtra().getId());
// intent.putExtra("pinglun","yes");
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// getContext().startActivity(intent);
// break;
case"16"://一问多答
case"17"://病例讨论
intent.setClass(getContext(), NewSystemMessageActivity.class);
intent.putExtra("module",3);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"18"://送花
intent.setClass(getContext(), MyFlowerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"19"://课件收益
intent.setClass(getContext(), MyCoursewareActivity.class);
intent.putExtra("changeMyCoolect",1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"21"://提现
intent.setClass(getContext(), BillDetailsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"20"://发票
intent.setClass(getContext(), FaPiaoActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"28"://课件分享
case"30"://精品课优质评价
case"31"://学完返现
case"32"://福利课堂
case"33"://阅读福利
case"34"://观看福利
case"36"://特别奖励
intent.setClass(getContext(), AccumulatePointsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case"35"://福利卡
intent.setClass(getContext(), MyFuliCardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent);
break;
case "40"://互动圈
intent.setClass(getContext(), GanDanHouseDetialActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("uuid",pushBean.getExtra().getUuid());
getContext().startActivity(intent);
break;
default:
break;
}
}
else if(jsonObject.optJSONObject("extra")!=null&&!(jsonObject.getJSONObject("extra").isNull("url")))
{
Log.d(TAG, "click launchApp: " +jsonObject.getJSONObject("extra").getString("url"));
Intent intent2=new Intent(getContext(), WebActivity.class);
intent2.putExtra("url",jsonObject.getJSONObject("extra").getString("url"));
intent2.putExtra("title","推送消息");
intent2.putExtra("need_share","0");
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(intent2);
}
pushBean=null;
intent=null;
} catch (JSONException e) {
e.printStackTrace();
Log.d(TAG, "click launchApp: " + e.toString());
}
}
@Override
public void dismissNotification(Context context, UMessage msg) {
super.dismissNotification(context, msg);
Log.d(TAG, "click dismissNotification: " + msg.getRaw().toString());
}
};
pushAgent.setNotificationClickHandler(notificationClickHandler);
//自定义接收并处理消息
// pushAgent.setPushIntentServiceClass(MyCustomMessageService.class);
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,685 @@
package cn.shangyu.gdxzExpert.umeng;
import static cn.shangyu.gdxzExpert.utils.Url.zhibourl;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.google.gson.Gson;
import com.gyf.immersionbar.ImmersionBar;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.umeng.socialize.UMShareAPI;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import cn.shangyu.gdxzExpert.R;
import cn.shangyu.gdxzExpert.bean.TimestampBean;
import cn.shangyu.gdxzExpert.http.HttpHelper;
import cn.shangyu.gdxzExpert.utils.AESUtil;
import cn.shangyu.gdxzExpert.utils.CommonUtil;
import cn.shangyu.gdxzExpert.utils.Constant;
import cn.shangyu.gdxzExpert.utils.GsonTools;
import cn.shangyu.gdxzExpert.utils.LogUtil;
import cn.shangyu.gdxzExpert.utils.SharePrefUtil;
import cn.shangyu.gdxzExpert.utils.ShareUtils;
import cn.shangyu.gdxzExpert.utils.SignUtil;
import cn.shangyu.gdxzExpert.utils.StreamTool;
import cn.shangyu.gdxzExpert.utils.ToastUtil;
import cn.shangyu.gdxzExpert.utils.UIUtils;
import cn.shangyu.gdxzExpert.utils.UpdateVersionUtils;
import cn.shangyu.gdxzExpert.utils.Url;
import cn.shangyu.gdxzExpert.view.X5WebView;
public class PushZhiBoActivity extends AppCompatActivity implements OnClickListener {
private X5WebView webView;
private PushZhiBoActivity mActivity;
public View loadingView;
private String url;
private ImageView top_back;
private TextView mTitle;
private FrameLayout video_fullView;// 全屏时视频加载view
private View xCustomView;
private WebChromeClient.CustomViewCallback xCustomViewCallback;
private myWebChromeClient xwebchromeclient;
private View layout_top;
private ImageButton mIb_share;
private String summary;
private String imageUrl = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_zhi_bo);
Toolbar mToolbar=findViewById(R.id.toolbar);
ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
X5WebView.initHardwareAccelerate(this);
webView = this.findViewById(R.id.aaaaaa);
webView.setKeepScreenOn(true); //确保屏幕长亮
layout_top = this.findViewById(R.id.layout_top);
loadingView = this.findViewById(R.id.loading_view);
top_back = (ImageView) this.findViewById(R.id.top_back);
mTitle = (TextView) this.findViewById(R.id.top_title);
mIb_share = (ImageButton) this.findViewById(R.id.top_right);
video_fullView = (FrameLayout) this.findViewById(R.id.f_move);
video_fullView.setKeepScreenOn(true); //确保屏幕长亮
mIb_share.setVisibility(View.VISIBLE);
mIb_share.setImageResource(R.drawable.share_icon);
top_back.setOnClickListener(this);
mIb_share.setOnClickListener(this);
mActivity = this;
// url = getIntent().getStringExtra("url");
zhiboDetail(getIntent().getStringExtra("id"));
// if (!getIntent().getType().equals("zhibo"))
// {
// createhideWebVeiw();//解决WebView写入localstorage但首次加载取不到值的问题
// }
// else
// {
// /**
// * 这个方法等到请求了接口后调用
// *
// */
//// InitIntent();
// }
}
private void createhideWebVeiw() {
final WebView webView = new WebView(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);// 打开本地缓存提供JS调用,至关重要
// webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setDatabaseEnabled(true); // 如果需要 WebSQL(也部分废弃)
webView.getSettings().setAllowFileAccess(true); // 如需访问文件
webView.getSettings().setAllowContentAccess(true);
webView.loadUrl(url);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
String id = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.uuid, "123");
String avatar = Url.urlHtml+SharePrefUtil.getString(PushZhiBoActivity.this, Constant.photo,"https://doc.igandan.com/app/html/img/2016/20160714132557.png");
String name = null;
try {
String str = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.realName, "肝胆相照专家端");
name = Base64.encodeToString(str.getBytes("UTF-8"), Base64.DEFAULT);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String params = "{\"name\":\""+name+"\",\"id\":\""+id+"\",\"avatar\":\""+avatar+"\"}";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
params = params.toString().replaceAll("\\+", "=").replaceAll("\n", "");
LogUtil.i("params = "+params);
view.evaluateJavascript("window.localStorage.setItem('watchlive_current_user','" +params + "');", null);
} else {
view.loadUrl("javascript:(function({window.localStorage.setItem('watchlive_current_user','" + params.toString() + "')})()");
view.reload();
}
webView.destroy();
//正常加载网页
// InitIntent();
}
});
}
public class MyWebViewClient extends WebViewClient {
private ProgressDialog loadingBar;
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
loadingView.setVisibility(View.VISIBLE);
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // webview里面的链接还在同一个页面中加载
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
String id = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.uuid, "123");
String avatar = Url.urlHtml+SharePrefUtil.getString(PushZhiBoActivity.this, Constant.photo,"https://doc.igandan.com/app/html/img/2016/20160714132557.png");
String name = null;
try {
String str = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.realName, "肝胆相照专家端");
name = Base64.encodeToString(str.getBytes("UTF-8"), Base64.DEFAULT);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String params = "{\"name\":\""+name+"\",\"id\":\""+id+"\",\"avatar\":\""+avatar+"\"}";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.evaluateJavascript("window.localStorage.setItem('watchlive_current_user','" +params + "');", null);
} else {
view.loadUrl("javascript:(function({window.localStorage.setItem('watchlive_current_user','" + params.toString() + "')})()");
view.reload();
}
loadingView.setVisibility(View.GONE);
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// ToastUtil.showToast("加载失败,请检查网络");
loadingView.setVisibility(View.GONE);
LogUtil.i("onReceivedError", "onReceivedError" + failingUrl
+ errorCode + description);
view.loadUrl("file:///android_asset/error/error.html");
}
}
@SuppressLint("NewApi")
public void InitIntent() {
// summary = getIntent().getStringExtra("newsTitle");
// imageUrl = Url.urlHtml + getIntent().getStringExtra("summary");// 图的地址
if (getIntent().getType().equals("zhibo")) {
mTitle.setText("肝胆直播");
} else {
mTitle.setText("现代肝病学院");
}
if(CommonUtil.BigModule())
{
mTitle.setTextSize(23);
}
// url="http://www.baidu.com/";
// DataCleanManager.cleanWebCache(this);
// WebSettings setting = webView.getSettings();
// setting.setPluginState(PluginState.ON);
// setting.setUseWideViewPort(true);
// setting.setJavaScriptEnabled(true); // Support JavaScript
// setting.setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS打开新窗口
// // setting.setPluginsEnabled(true); //Support Plugins, for example just
// // like flash plugin.
// setting.setLoadWithOverviewMode(true);
// setting.setUseWideViewPort(true);
// setting.setDomStorageEnabled(true);
// setting.setSupportZoom(true); // Zoom Control on web (You don't need
// setting.setBuiltInZoomControls(true); // Enable Multitouch if
// supported
// by ROM
//新添加使用了localStorage存储
// webView.getSettings().setAppCacheMaxSize(1024*1024*8);
// String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
// webView.getSettings().setAppCachePath(appCachePath);
// webView.getSettings().setAllowFileAccess(true);
// webView.getSettings().setAppCacheEnabled(true);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true); // 如果需要 JS
webSettings.setDomStorageEnabled(true); // 启用 DOM 存储(LocalStorage 等)
webSettings.setDatabaseEnabled(true); // 如果需要 WebSQL(也部分废弃)
webSettings.setAllowFileAccess(true); // 如需访问文件
webSettings.setAllowContentAccess(true);
String userAgent = webView.getSettings().getUserAgentString();
String userAgents = userAgent + "gdxz-expert";
webView.getSettings().setUserAgentString(userAgents);
webView.setInitialScale(50);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(
WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
if (getIntent().getType().equals("zhibo"))
{
String id = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.uuid, "123");
String avatar = Url.urlHtml+SharePrefUtil.getString(PushZhiBoActivity.this, Constant.photo,"https://doc.igandan.com/app/html/img/2016/20160714132557.png");
String name = null;
try {
String str = SharePrefUtil.getString(PushZhiBoActivity.this, Constant.realName, "肝胆相照专家端");
name = Base64.encodeToString(str.getBytes("UTF-8"), Base64.DEFAULT);
name=name.replaceAll("\r|\n", "");
//name = str;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String temurl= null;
try {
temurl = zhibourl+"?id="+id+"&name="+name+"&avatar="+avatar+"&url="+url+"&sign="+ AESUtil.Encrypt(id+name+avatar+url,"deoep09_klodLdAo");
Log.d("gdxzzhibo","temurl ="+temurl);
} catch (Exception e) {
e.printStackTrace();
}
webView.loadUrl(temurl);
xwebchromeclient = new myWebChromeClient();
webView.setWebChromeClient(xwebchromeclient);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//webView.loadUrl("https://www.baidu.com");
}
else
{
webView.loadUrl(url);
xwebchromeclient = new myWebChromeClient();
webView.setWebChromeClient(xwebchromeclient);
webView.setWebViewClient(new MyWebViewClient());
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stubdes
switch (v.getId()) {
case R.id.top_back:
this.finish();
break;
case R.id.top_right:
share();
break;
default:
break;
}
}
/**
* 调用分享功能
*/
private void share() {
String shareTitle = summary;
String shareUrl = url;
String msgSinaContent = shareTitle + shareUrl;
// ShareUtils.shareMsg(ct, shareTitle, "分享给你一个好看的文章," + shareTitle +
// " 详情:" + shareUrl, null);
Bitmap bitmap = ImageLoader.getInstance().loadImageSync(imageUrl);
if (TextUtils.isEmpty(shareUrl)) {
shareUrl = "";
}
if (TextUtils.isEmpty(summary)) {
summary = "";
}
if (TextUtils.isEmpty(imageUrl)) {
imageUrl = "";
}
ShareUtils.shareUmeng(PushZhiBoActivity.this, "肝胆相照直播:" + shareTitle,
summary, msgSinaContent, imageUrl, shareUrl, bitmap);
// final UMImage shareImg;// 友盟分享的缩略图
// Bitmap file = null;
// try {
// file = Glide.with(BaseApplication.getInstance())
// .load(imageUrl).asBitmap()
// .into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();
// } catch (InterruptedException | ExecutionException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// if (StringUtil.isEmpty(imageUrl.replace(Url.urlHtml, ""))) {
// shareImg = new UMImage(ZhiBoActivity.this,
// "http://doc.igandan.com/app/img/expert_logo.png");
// } else {
//
// shareImg = new UMImage(ZhiBoActivity.this, file);
// }
// UMWeb web = new UMWeb(shareUrl);
// shareTitle = "肝胆想照直播:" + shareTitle;
// web.setTitle(shareTitle);// 标题
// web.setThumb(shareImg); // 缩略图
//
// web.setDescription(msgSinaContent);// 描述
// new ShareAction(ZhiBoActivity.this)
// .withMedia(web)
// .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,
// SHARE_MEDIA.SINA)
// .setCallback(
// new UMengShareHelper(ZhiBoActivity.this).shareListener)
// .open();
}
public class myWebChromeClient extends WebChromeClient {
private View xprogressvideo;
// 播放网络视频时全屏会被调用的方法
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
// Log.i("fangfa","已经进入了。。。。。。。。");
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
webView.setVisibility(View.GONE);
layout_top.setVisibility(View.GONE);
// 如果一个视图已经存在,那么立刻终止并新建一个
if (xCustomView != null) {
callback.onCustomViewHidden();
return;
}
xCustomView = view;
xCustomViewCallback = callback;
video_fullView.addView(view);
video_fullView.setVisibility(View.VISIBLE);
setFullScreen();
}
// 视频播放退出全屏会被调用的
@Override
public void onHideCustomView() {
layout_top.setVisibility(View.VISIBLE);
if (xCustomView == null)// 不是全屏播放状态
return;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
xCustomView.setVisibility(View.GONE);
video_fullView.removeView(xCustomView);
xCustomView = null;
video_fullView.setVisibility(View.GONE);
xCustomViewCallback.onCustomViewHidden();
webView.setVisibility(View.VISIBLE);
quitFullScreen();
}
// 视频加载时进程loading
@Override
public View getVideoLoadingProgressView() {
if (xprogressvideo == null) {
LayoutInflater inflater = LayoutInflater
.from(PushZhiBoActivity.this);
xprogressvideo = inflater.inflate(R.layout.loading_view, null);
}
return xprogressvideo;
}
}
/**
* 设置全屏
*/
private void setFullScreen() {
// 设置全屏的相关属性,获取当前的屏幕状态,然后设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 全屏下的状态码:1098974464
// 窗口下的状态吗:1098973440
}
/**
* 退出全屏
*/
private void quitFullScreen() {
// 声明当前屏幕状态的参数并获取
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
getWindow()
.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
/**
* 判断是否是全屏
*
* @return
*/
public boolean inCustomView() {
return (xCustomView != null);
}
/**
* 全屏时按返加键执行退出全屏方法
*/
public void hideCustomView() {
xwebchromeclient.onHideCustomView();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
protected void onResume() {
super.onResume();
webView.onResume();
// webView.resumeTimers();
try {
if (webView != null) {
webView.getClass().getMethod("onResume")
.invoke(webView, (Object[]) null);
}
} catch (Exception e) {
e.printStackTrace();
}
/**
* 设置为横屏
*/
if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
@Override
protected void onPause() {
super.onPause();
webView.onPause();
// webView.pauseTimers();
try {
if (webView != null) {
webView.getClass().getMethod("onPause")
.invoke(webView, (Object[]) null);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 主要是把webview所持用的资源销毁,
*/
@Override
protected void onDestroy() {
webView.setVisibility(View.GONE);
super.onDestroy();
video_fullView.removeAllViews();
webView.loadUrl("about:blank");
webView.stopLoading();
webView.setWebChromeClient(null);
webView.setWebViewClient(null);
webView.destroy();
UMShareAPI.get(this).release();
//释放资源
if (webView != null)
webView.destroy();
}
/**
* 判断是否是全屏,如果是就隐藏,否则就退出当前的页面
*
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (inCustomView()) {
// webViewDetails.loadUrl("about:blank");
hideCustomView();
return false;
} else {
webView.loadUrl("about:blank");
this.finish();
}
}
return false;
}
private void zhiboDetail(String id) {
// if(StringUtil.isEmpty(id))
// {
// id=getIntent().getData().getQueryParameter("id");
// }
Map<String,String> map = new HashMap<>();
map.put("id",id);
sendJsonPostParamNoResultMD5(Url.liveDetail,map,101);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/** 使用SSO授权必须添加如下代码 */
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg != null) {
// closeProgressDialog();
switch (msg.what){
case 101:
try {
JSONObject jsonObject=new JSONObject((String)msg.obj);
if("200".equals(jsonObject.getString("code")))
{
summary=jsonObject.getJSONObject("data").getString("title");
imageUrl = Url.urlHtml +jsonObject.getJSONObject("data").getString("liveimg");
url=jsonObject.getJSONObject("data").getString("liveurl");
InitIntent();
}
else
{
ToastUtil.showToast((String)msg.obj);
}
} catch (JSONException e) {
e.printStackTrace();
ToastUtil.showToast((String)msg.obj);
}
break;
case 0:
ToastUtil.showToast((String)msg.obj);
break;
}
}
};
};
public void sendJsonPostParamNoResultMD5(final String postUrl, final Map<String, String> param, final int callType) {
HttpHelper.loadData(HttpRequest.HttpMethod.GET, Url.getTimestamp,null, new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> info) {
String uuid = SharePrefUtil.getString(UIUtils.getContext(), Constant.uuid, "");
param.put("user_uuid", uuid);
TimestampBean bean = GsonTools.fromGsonToBean(info.result, TimestampBean.class);
param.put("timestamp", bean.getTimestamp());
param.put("client_type", "A");
param.put("version", UpdateVersionUtils.getVersionName());
new Thread() {
public void run() {
String encoding = "UTF-8";
Gson gson = new Gson();
String params = gson.toJson(param);
byte[] data;
try {
String sign = SignUtil.getSign(param);
LogUtil.i("params = "+params.toString());
data = params.getBytes(encoding);
URL url = new URL(postUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/json");
conn.setRequestProperty("sign",sign);
conn.setRequestProperty("Content-Length",String.valueOf(data.length));
conn.setConnectTimeout(5 * 1000);
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
int ssss=conn.getResponseCode() ;
if (ssss == 200) {
InputStream inStream = conn.getInputStream();
String result = new String(StreamTool.readInputStream(inStream), "UTF-8");
String string = new String(result);
LogUtil.i("result = "+result);
JSONObject jsonObject = new JSONObject(string);
String optString = jsonObject.optString("code");
String message = jsonObject.optString("message");
if ("200".equals(optString)||"106".equals(optString)||"1".equals(optString)) {
Message msg = Message.obtain();
msg.what = callType;
msg.obj = result;
mHandler.sendMessage(msg);
}else {
mHandler.sendEmptyMessage(0);
}
}else {
mHandler.sendEmptyMessage(0);
}
} catch (Exception e) {
LogUtil.e("提交失败,请重试 = "+e.getMessage());
mHandler.sendEmptyMessage(404);
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
}.start();
}
@Override
public void onFailure(HttpException arg0, String arg1) {
}
});
}
}
@@ -0,0 +1,64 @@
package cn.shangyu.gdxzExpert.umeng;
import android.util.Log;
import android.widget.Toast;
import com.umeng.umverify.UMResultCode;
import com.umeng.umverify.UMVerifyHelper;
import com.umeng.umverify.listener.UMTokenResultListener;
import com.umeng.umverify.model.UMTokenRet;
import cn.shangyu.gdxzExpert.utils.UIUtils;
public class UverifyHelp {
private static final String TAG = "UverifyHelp";
private static UMTokenResultListener mTokenResultListener;
private static UMVerifyHelper mPhoneNumberAuthHelper;
public static void sdkInit() {
mTokenResultListener = new UMTokenResultListener() {
@Override
public void onTokenSuccess(String s) {
UMTokenRet tokenRet = null;
try {
tokenRet = UMTokenRet.fromJson(s);
if (UMResultCode.CODE_START_AUTHPAGE_SUCCESS.equals(tokenRet.getCode())) {
Log.i("TAG", "唤起授权页成功:" + s);
}
if (UMResultCode.CODE_GET_TOKEN_SUCCESS.equals(tokenRet.getCode())) {
Log.i("TAG", "获取token成功:" + s);
// getResultWithToken(tokenRet.getToken());
// mUIConfig.release();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onTokenFailed(String s) {
Log.e(TAG, "获取token失败:" + s);
UMTokenRet tokenRet = null;
mPhoneNumberAuthHelper.quitLoginPage();
try {
tokenRet = UMTokenRet.fromJson(s);
if (UMResultCode.CODE_ERROR_USER_CANCEL.equals(tokenRet.getCode())) {
//模拟的是必须登录 否则直接退出app的场景
// finish();
} else {
Toast.makeText(UIUtils.getContext(), "一键登录失败切换到其他登录方式", Toast.LENGTH_SHORT).show();
// Intent pIntent = new Intent(OneKeyLoginActivity.this, MessageActivity.class);
// startActivityForResult(pIntent, 1002);
}
} catch (Exception e) {
e.printStackTrace();
}
// mUIConfig.release();
}
};
mPhoneNumberAuthHelper = UMVerifyHelper.getInstance(UIUtils.getContext(), mTokenResultListener);
mPhoneNumberAuthHelper.setAuthSDKInfo("请开发者自行添加");
}
}
@@ -0,0 +1,199 @@
package cn.shangyu.gdxzExpert.umeng;
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
import static cn.shangyu.gdxzExpert.utils.Url.weurl;
import static cn.shangyu.gdxzExpert.wxapi.WXEntryActivity.isExsitMianActivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import cn.shangyu.gdxzExpert.activity.CourseUrlDetailActivity;
import cn.shangyu.gdxzExpert.activity.GDEventDetailActivity;
import cn.shangyu.gdxzExpert.activity.GDEventDetailTopActivity;
import cn.shangyu.gdxzExpert.activity.LoginNewActivity;
import cn.shangyu.gdxzExpert.activity.MainActivity;
import cn.shangyu.gdxzExpert.activity.NewsDetailActivity;
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
import cn.shangyu.gdxzExpert.utils.UIUtils;
import cn.shangyu.gdxzExpert.utils.Url;
public class WebH5Activity extends Activity {
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(getIntent()!=null&&getIntent().getData()!=null&&getIntent().getData().getQueryParameter("types")!=null)
{
// ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// activityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME);
if (UIUtils.isLogined()) {
if(!isExsitMianActivity(getContext(), MainActivity.class))
{
// 打开登录
Intent intent = new Intent();
intent.setClass(this, MainActivity.class);
startActivity(intent);
}
intent=new Intent();
switch (getIntent().getData().getQueryParameter("types"))
{
case "1"://肝胆视频
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
intent4.putExtra("startNow", false);
intent4.putExtra("isVlmsOnline", false);
intent4.putExtra("uuid", getIntent().getData().getQueryParameter("uuid"));
startActivity(intent4);
break;
case "2"://肝胆课件
intent.setClass(this, CourseUrlDetailActivity.class);
intent.putExtra("url", Url.weurl.substring(0, Url.weurl.length() - 1)
+ getIntent().getData().getQueryParameter("path"));
intent.putExtra("title", getIntent().getData().getQueryParameter("title"));
intent.putExtra("uuid",getIntent().getData().getQueryParameter("uuid"));
// intent.putExtra("type", weBean.getType());
startActivity(intent);
break;
case "3"://肝胆新闻
intent.setClass(this, NewsDetailActivity.class);
intent.putExtra("url", Url.urlHtml + getIntent().getData().getQueryParameter("path"));
intent.putExtra("title", "新闻详情");
intent.putExtra("newsuuid",getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("newsagreenum", getIntent().getData().getQueryParameter("agreenum"));
intent.putExtra("newsreadnum", getIntent().getData().getQueryParameter("readnum"));
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("title"));
intent.putExtra("summary",getIntent().getData().getQueryParameter("summary"));
intent.putExtra("imageUrl", Url.urlHtml +getIntent().getData().getQueryParameter("headImg"));
intent.putExtra("flag", 3);
startActivity(intent);
break;
case "4"://科研项目
intent.setClass(this, NewsDetailActivity.class);
intent.putExtra("url", Url.urlHtml + getIntent().getData().getQueryParameter("path"));
intent.putExtra("title", "科研详情");
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("projectName"));
intent.putExtra("summary", getIntent().getData().getQueryParameter("content"));
intent.putExtra("imageUrl", Url.urlHtml +getIntent().getData().getQueryParameter("imgs"));
intent.putExtra("flag", 1);
startActivity(intent);
break;
case "5"://肝胆活动
intent.setClass(this, GDEventDetailTopActivity.class);
intent.putExtra("uuid",getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("url",Url.urlHtml +getIntent().getData().getQueryParameter("path"));
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("title"));
intent.putExtra("summary",getIntent().getData().getQueryParameter("content"));
intent.putExtra("imageUrl", Url.urlHtml
+ getIntent().getData().getQueryParameter("imgpath"));
intent.setType("event");
startActivity(intent);
break;
case "6"://病例荟萃
intent.setClass(this, NewsDetailActivity.class);
intent.putExtra("url",Url.urlHtml+getIntent().getData().getQueryParameter("path"));
intent.putExtra("title","病例详情");
intent.putExtra("collect",getIntent().getData().getQueryParameter("title"));
intent.putExtra("newsTitle",getIntent().getData().getQueryParameter("title"));
intent.putExtra("type", 7);
intent.putExtra("nfagreenum", getIntent().getData().getQueryParameter("agreeNum")+"");
intent.putExtra("nfreadnum", getIntent().getData().getQueryParameter("readNum")+"");
intent.putExtra("nfsuuuid",getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("npath", getIntent().getData().getQueryParameter("path"));
intent.putExtra("flag", 10);
startActivity(intent);
// startActivityForResult(intent, 113);
break;
case "11"://查房实录
intent.setClass(this, NewsDetailActivity.class);
intent.putExtra("url",Url.urlHtml+getIntent().getData().getQueryParameter("path"));
intent.putExtra("title","病例详情");
intent.putExtra("collect",getIntent().getData().getQueryParameter("title"));
intent.putExtra("newsTitle",getIntent().getData().getQueryParameter("title"));
intent.putExtra("nfagreenum", getIntent().getData().getQueryParameter("agreeNum")+"");
intent.putExtra("nfreadnum", getIntent().getData().getQueryParameter("readNum")+"");
intent.putExtra("nfsuuuid",getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("npath", getIntent().getData().getQueryParameter("path"));
intent.putExtra("flag", 6);
startActivity(intent);
break;
case "7"://肝胆会议
// intent.setClass(this, ZhiBoActivity.class);直播页面
// intent.putExtra("newsTitle",getIntent().getData().getQueryParameter("title"));
// intent.putExtra("url",getIntent().getData().getQueryParameter("liveurl"));
// intent.putExtra("summary",getIntent().getData().getQueryParameter("liveimg"));
// intent.setType("zhibo");
// startActivity(intent);
intent.setClass(this, GDEventDetailActivity.class);
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("title"));
intent.putExtra("url", weurl+getIntent().getData().getQueryParameter("path"));
intent.putExtra("summary", getIntent().getData().getQueryParameter("content"));
intent.setType("meeting");
startActivity(intent);
break;
case "8"://患教文库
intent.setClass(this, NewsDetailActivity.class);
intent.putExtra("url", Url.urlHtml + getIntent().getData().getQueryParameter("path"));
intent.putExtra("title", "患教详情");
intent.putExtra("kepuuuid", getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("kepuagreenum", getIntent().getData().getQueryParameter("agreenum"));
intent.putExtra("kepureadnum", getIntent().getData().getQueryParameter("readnum"));
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("topic"));
intent.putExtra("summary", getIntent().getData().getQueryParameter("summary"));
intent.putExtra("imageUrl", Url.urlHtml +getIntent().getData().getQueryParameter("imgPath"));
intent.putExtra("flag", 2);
startActivity(intent);
break;
case "9"://患教视频
Intent intent1 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
intent1.putExtra("startNow", false);
intent1.putExtra("isVlmsOnline", false);
intent1.putExtra("url",getIntent().getData().getQueryParameter("path"));
intent1.putExtra("uuid",getIntent().getData().getQueryParameter("uuid"));
intent1.putExtra("note", getIntent().getData().getQueryParameter("content"));
intent1.putExtra("title", getIntent().getData().getQueryParameter("title"));
intent1.putExtra("readnum", getIntent().getData().getQueryParameter("readnum"));
intent1.putExtra("imgpath", getIntent().getData().getQueryParameter("imgpath"));
intent1.putExtra("need_inside_share", "yes");
intent1.putExtra("public_name", getIntent().getData().getQueryParameter("public_name"));
startActivity(intent1);
break;
case "10"://临床招募
intent.setClass(this, GDEventDetailTopActivity.class);
intent.putExtra("uuid", getIntent().getData().getQueryParameter("uuid"));
intent.putExtra("url", Url.urlHtml +getIntent().getData().getQueryParameter("path"));
intent.putExtra("newsTitle", getIntent().getData().getQueryParameter("title"));
intent.putExtra("mobile", getIntent().getData().getQueryParameter("mobile"));
intent.putExtra("summary", getIntent().getData().getQueryParameter("content"));
intent.putExtra("imageUrl", Url.urlHtml
+ getIntent().getData().getQueryParameter("imgpath"));
intent.setType("linchaung");
startActivity(intent);
break;
}
} else {
// 打开登录
Intent intent = new Intent();
intent.setClass(this, LoginNewActivity.class);
startActivity(intent);
}
}
intent=null;
finish();
// Intent intent = new Intent(this, WebActivity.class);
// intent.putExtra("url",extInfo);
// intent.putExtras(getIntent());
// startActivity(intent);
// finish();
//Handle...
}
}