diff --git a/.idea/misc.xml b/.idea/misc.xml index 75dac50..3963879 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 6261014..869d9d3 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,7 @@ + diff --git a/PushSDK/build/generated/mockable-android-19.v3.jar b/PushSDK/build/generated/mockable-android-19.v3.jar index 9c0a5ab..2b349ac 100644 Binary files a/PushSDK/build/generated/mockable-android-19.v3.jar and b/PushSDK/build/generated/mockable-android-19.v3.jar differ diff --git a/PushSDK/build/intermediates/incremental/mergeDebugAndroidTestResources/compile-file-map.properties b/PushSDK/build/intermediates/incremental/mergeDebugAndroidTestResources/compile-file-map.properties index b76529c..5995a4e 100644 --- a/PushSDK/build/intermediates/incremental/mergeDebugAndroidTestResources/compile-file-map.properties +++ b/PushSDK/build/intermediates/incremental/mergeDebugAndroidTestResources/compile-file-map.properties @@ -1,2 +1,2 @@ -#Fri Apr 19 17:12:56 CST 2019 +#Wed Sep 18 19:48:37 CST 2019 F\:\\ApplicationPatient\\PushSDK\\build\\intermediates\\bundles\\debug\\res\\layout\\upush_notification.xml=F\:\\ApplicationPatient\\PushSDK\\build\\intermediates\\res\\merged\\androidTest\\debug\\layout_upush_notification.xml.flat diff --git a/PushSDK/build/intermediates/incremental/packageDebugResources/compile-file-map.properties b/PushSDK/build/intermediates/incremental/packageDebugResources/compile-file-map.properties index 7a736b7..2a3d0e6 100644 --- a/PushSDK/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +++ b/PushSDK/build/intermediates/incremental/packageDebugResources/compile-file-map.properties @@ -1,2 +1,2 @@ -#Fri Apr 19 14:42:24 CST 2019 +#Wed Sep 18 12:46:41 CST 2019 F\:\\ApplicationPatient\\PushSDK\\res\\layout\\upush_notification.xml=F\:\\ApplicationPatient\\PushSDK\\build\\intermediates\\bundles\\debug\\res\\layout\\upush_notification.xml diff --git a/PushSDK/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties b/PushSDK/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties index 09c6281..aa997bb 100644 --- a/PushSDK/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties +++ b/PushSDK/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties @@ -1,2 +1,2 @@ -#Mon May 13 09:12:25 CST 2019 +#Wed Sep 18 14:09:11 CST 2019 F\:\\ApplicationPatient\\PushSDK\\res\\layout\\upush_notification.xml=F\:\\ApplicationPatient\\PushSDK\\build\\intermediates\\bundles\\release\\res\\layout\\upush_notification.xml diff --git a/PushSDK/build/outputs/aar/PushSDK-debug.aar b/PushSDK/build/outputs/aar/PushSDK-debug.aar index 7e6b34f..e30e97e 100644 Binary files a/PushSDK/build/outputs/aar/PushSDK-debug.aar and b/PushSDK/build/outputs/aar/PushSDK-debug.aar differ diff --git a/app/build.gradle b/app/build.gradle index 85b1c51..230238c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "cn.shangyu.gdxzPatient" minSdkVersion 19 targetSdkVersion 26 - versionCode 57 - versionName "3.3.1" + versionCode 58 + versionName "3.3.3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } @@ -85,5 +85,8 @@ dependencies { implementation files('libs/xUtils-2.6.14.jar') compile 'com.android.support:multidex:1.0.0' compile 'com.github.dfqin:grantor:2.1.0' - implementation files('libs/Yuntx_FullLib_v5.3.1r.jar') + implementation files('libs/YTX_Android_IM_SDK_v5.4.8r.jar') + compile 'me.leolin:ShortcutBadger:1.1.13@aar' + implementation files('libs/HwPush_SDK_NOMAP_V2705.jar') + implementation files('libs/MiPush_SDK_Client_3_6_19.jar') } diff --git a/app/libs/HwPush_SDK_NOMAP_V2705.jar b/app/libs/HwPush_SDK_NOMAP_V2705.jar new file mode 100644 index 0000000..2df380c Binary files /dev/null and b/app/libs/HwPush_SDK_NOMAP_V2705.jar differ diff --git a/app/libs/MiPush_SDK_Client_3_6_19.jar b/app/libs/MiPush_SDK_Client_3_6_19.jar new file mode 100644 index 0000000..b3449dd Binary files /dev/null and b/app/libs/MiPush_SDK_Client_3_6_19.jar differ diff --git a/app/libs/YTX_Android_IM_SDK_v5.4.8r.jar b/app/libs/YTX_Android_IM_SDK_v5.4.8r.jar new file mode 100644 index 0000000..b0bb5d0 Binary files /dev/null and b/app/libs/YTX_Android_IM_SDK_v5.4.8r.jar differ diff --git a/app/libs/Yuntx_FullLib_v5.3.1r.jar b/app/libs/Yuntx_FullLib_v5.3.1r.jar deleted file mode 100644 index 4ed913f..0000000 Binary files a/app/libs/Yuntx_FullLib_v5.3.1r.jar and /dev/null differ diff --git a/app/libs/armeabi-v7a/libmsc.so b/app/libs/armeabi-v7a/libmsc.so index c7b7fea..6e63fcf 100644 Binary files a/app/libs/armeabi-v7a/libmsc.so and b/app/libs/armeabi-v7a/libmsc.so differ diff --git a/app/libs/armeabi-v7a/libserphone.so b/app/libs/armeabi-v7a/libserphone.so index 8788eea..89a636c 100644 Binary files a/app/libs/armeabi-v7a/libserphone.so and b/app/libs/armeabi-v7a/libserphone.so differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0219467..8b3c12a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="58" + android:versionName="3.3.3" > - - + + + + + + + @@ -109,28 +115,19 @@ android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar" > - - - - + + + + + + + + + + + + + @@ -793,39 +790,6 @@ android:value="true" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> android:screenOrientation="portrait" /> - - - + + + + + + + + - - - + + + android:windowSoftInputMode="adjustResize|stateHidden" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> @@ -1291,79 +1222,13 @@ android:value="true" /> - 微信支付 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - 支付宝 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:exported="false" android:screenOrientation="behind" > - 银联支付 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1458,38 +1289,6 @@ android:value="true" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> @@ -1658,56 +1358,270 @@ android:value="true" /> 3、如果应用未处于运行状态并且不想被唤醒应用运行则采用状态栏通知处理(SDK直接提醒,不会通知应用),比如调用 ECDevice#logout(ECDevice.NotifyMode, ECDevice.OnLogoutListener)退出接口传入后台接收消息才会有提醒 + --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - --> + android:name=".ecdemo.ui.xiaomi.DemoMessageReceiver" + android:exported="true"> + + + + + + + + + + + + - - - - - - - + + + + + + - + + \ No newline at end of file diff --git a/app/src/main/assets/share_video.jpg b/app/src/main/assets/share_video.jpg new file mode 100644 index 0000000..1af3e04 Binary files /dev/null and b/app/src/main/assets/share_video.jpg differ diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AccumulatePointsActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AccumulatePointsActivity.java index 8991faa..af1944a 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AccumulatePointsActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AccumulatePointsActivity.java @@ -104,7 +104,7 @@ public class AccumulatePointsActivity extends BaseActivity implements OnCallBack iv_5 = (ImageView) view.findViewById(R.id.iv_5); iv_6 = (ImageView) view.findViewById(R.id.iv_6); iv_7 = (ImageView) view.findViewById(R.id.iv_7); - + if (Constant.isSignIn) { bt_signIn.setBackgroundResource(R.drawable.signin_true); } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AddExpertActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AddExpertActivity.java index 9e01dc0..2e3a642 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AddExpertActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AddExpertActivity.java @@ -17,6 +17,8 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; + import cn.shangyu.gdxzPatient.R; import cn.shangyu.gdxzPatient.ecdemo.common.utils.ToastUtil; import cn.shangyu.gdxzPatient.ecdemo.ui.SDKCoreHelper; @@ -26,6 +28,7 @@ import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.CustomToast; import cn.shangyu.gdxzPatient.utils.LogUtils; import cn.shangyu.gdxzPatient.utils.SharePrefUtil; +import cn.shangyu.gdxzPatient.utils.StringUtil; import cn.shangyu.gdxzPatient.utils.UIUtils; import cn.shangyu.gdxzPatient.utils.Url; import cn.shangyu.gdxzPatient.widget.CustomProgressDialog; @@ -47,9 +50,9 @@ public class AddExpertActivity extends BaseActivity implements OnClickListener { private CheckBox cb_select1;// 第一个CheckBox private CheckBox cb_select2;// 第二个CheckBox private CheckBox cb_select3;// 第三个CheckBox - private TextView tv_name1;// 第一个名字控件 - private TextView tv_name2;// 第二个名字控件 - private TextView tv_name4;// + private EditText et_name1;// 第一个名字控件 + private EditText et_name2;// 第二个名字控件 + private EditText et_name3;// private TextView tv_time2;// 第二个时间控件 private Button bt_submit;// 提交那妞 private CustomProgressDialog pd;// 进度框 @@ -97,10 +100,10 @@ public class AddExpertActivity extends BaseActivity implements OnClickListener { cb_select2 = (CheckBox) view.findViewById(R.id.cb_select2);// 第二个CheckBox cb_select3 = (CheckBox) view.findViewById(R.id.cb_select3);// 第三个CheckBox - tv_name1 = (TextView) view.findViewById(R.id.tv_name1);// 第一个名字控件 + et_name1 = (EditText) view.findViewById(R.id.et_name1);// 第一个名字控件 - tv_name2 = (TextView) view.findViewById(R.id.tv_name2);// 第二个名字控件 - tv_name4 = (TextView) view.findViewById(R.id.tv_name4); + et_name2 = (EditText) view.findViewById(R.id.et_name2);// 第二个名字控件 + et_name3 = (EditText) view.findViewById(R.id.et_name3); String mMyName = SharePrefUtil.getString(AddExpertActivity.this, Constant.REALNAME, ""); if (TextUtils.isEmpty(SharePrefUtil.getString(AddExpertActivity.this, @@ -109,25 +112,25 @@ public class AddExpertActivity extends BaseActivity implements OnClickListener { exit(); } - if (mMyName.length() <= 4) { - tv_name1.setText("您好!\n我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在线上和您沟通过,请您同意我作为您的随访患者。"); - tv_name2.setText("我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在"); - tv_name4.setText("我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在"); - } else { - tv_name1.setText("您好!\n我是" + mMyName.subSequence(0, 4) - + "...,在线上和您沟通过,请您同意我作为您的随访患者。"); - tv_name2.setText("我是" + mMyName.subSequence(0, 4) + "...,在"); - tv_name4.setText("我是" + mMyName.subSequence(0, 4) + "...,在"); - } - content = "您好!\n我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在线上和您沟通过,请您同意我作为您的随访患者。"; +// if (mMyName.length() <= 4) { +// tv_name1.setText("您好!\n我是" +// + SharePrefUtil.getString(AddExpertActivity.this, +// Constant.REALNAME, "") + ",在线上和您沟通过,请您同意我作为您的随访患者。"); +// tv_name2.setText("我是" +// + SharePrefUtil.getString(AddExpertActivity.this, +// Constant.REALNAME, "") + ",在"); +// tv_name4.setText("我是" +// + SharePrefUtil.getString(AddExpertActivity.this, +// Constant.REALNAME, "") + ",在"); +// } else { +// tv_name1.setText("您好!\n我是" + mMyName.subSequence(0, 4) +// + "...,在线上和您沟通过,请您同意我作为您的随访患者。"); +// tv_name2.setText("我是" + mMyName.subSequence(0, 4) + "...,在"); +// tv_name4.setText("我是" + mMyName.subSequence(0, 4) + "...,在"); +// } +// content = "您好!\n我是" +// + SharePrefUtil.getString(AddExpertActivity.this, +// Constant.REALNAME, "") + ",在线上和您沟通过,请您同意我作为您的随访患者。"; // tv_name2.setText("我是"+SharePrefUtil.getString(AddExpertActivity.this, // Constant.REALNAME, "")+",在"); // tv_name3 = (TextView)view.findViewById(R.id.tv_name3);//第三个名字控件 @@ -230,23 +233,43 @@ public class AddExpertActivity extends BaseActivity implements OnClickListener { * method */ void submitAdd() { - patientUuid = SharePrefUtil.getString(AddExpertActivity.this, "uuid", - ""); + patientUuid = SharePrefUtil.getString(AddExpertActivity.this, "uuid",""); if ("1".equals(selected)) { // content= tv_name1.getText().toString()+"请您同意我作为您的随访患者。"; - content = tv_name1.getText().toString(); + String name1 = et_name1.getText().toString().trim(); + if (StringUtil.isEmpty(name1)){ + ToastUtil.showMessage("请输入真实姓名"); + return; + }else { + content = "我是"+ name1+ ",在线上和您沟通过,请您同意我作为您的随访患者。"; + } } else if ("2".equals(selected)) { - content = "您好!\n" - + "我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在" - + et_address4.getText().toString() + "看过您的门诊,请同意我作为您的随访患者。"; + String name1 = et_name2.getText().toString().trim(); + String address4 = et_address4.getText().toString().trim(); + if (StringUtil.isEmpty(name1)){ + ToastUtil.showMessage("请输入真实姓名"); + return; + }else if (StringUtil.isEmpty(address4)){ + ToastUtil.showMessage("请输入就诊的医院"); + return; + + }else { + content = "我是"+ name1 + ",在"+ address4+ "看过您的门诊,请同意我作为您的随访患者。"; + } + } else if ("3".equals(selected)) { - content = "您好!\n" - + "我是" - + SharePrefUtil.getString(AddExpertActivity.this, - Constant.REALNAME, "") + ",在" - + et_address5.getText().toString() + "住过院,请同意我作为您的随访患者。"; + String name1 = et_name3.getText().toString().trim(); + String address4 = et_address5.getText().toString().trim(); + if (StringUtil.isEmpty(name1)){ + ToastUtil.showMessage("请输入真实姓名"); + return; + }else if (StringUtil.isEmpty(address4)){ + ToastUtil.showMessage("请输入就诊的医院"); + return; + + }else { + content = "我是"+ name1 + ",在"+ address4+ "医院住过院,请同意我作为您的随访患者。"; + } } pd = new CustomProgressDialog(AddExpertActivity.this, "请稍候"); pd.show(); @@ -334,6 +357,6 @@ public class AddExpertActivity extends BaseActivity implements OnClickListener { } }; private String patientUuid; - private String selected; + private String selected = "1"; } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreChoosePatientActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreChoosePatientActivity.java index f17da3c..ae59c84 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreChoosePatientActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreChoosePatientActivity.java @@ -61,6 +61,7 @@ public class AskAMoreChoosePatientActivity extends BaseActivity implements View. private String disease_uuid; private String go_hospital; private CustomProgressDialog pd; + private String birthday; @Override public void setTitle() { @@ -97,9 +98,14 @@ public class AskAMoreChoosePatientActivity extends BaseActivity implements View. } private void getInfoAllList() { - pd.show(); - Map map = new HashMap<>(); - sendJsonPostParamtoNetSignMD5(Url.addInterrogationStep1Info,map,ADDINTERROGATIONSTEP1INFO,this); + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd.show(); + Map map = new HashMap<>(); + sendJsonPostParamtoNetSignMD5(Url.addInterrogationStep1Info,map,ADDINTERROGATIONSTEP1INFO,this); + } else { + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } + } private void initView(View view) { @@ -130,9 +136,12 @@ public class AskAMoreChoosePatientActivity extends BaseActivity implements View. public void onOptionsSelect(int options1, int option2, int options3) { // 返回的分别是三个级别的选中位置 - String name = drugName.get(options1); - disease_uuid = fromJson.getDiseaseList().get(options1).getUuid(); - tv_drugtype.setText(name); + if (drugName!=null&&drugName.size()>0){ + String name = drugName.get(options1); + disease_uuid = fromJson.getDiseaseList().get(options1).getUuid(); + tv_drugtype.setText(name); + } + } }); } @@ -157,6 +166,8 @@ public class AskAMoreChoosePatientActivity extends BaseActivity implements View. return; }else { family_uuid = fromJson.getFamilyList().get(options1).getUuid(); + + birthday = fromJson.getFamilyList().get(options1).getBirthday(); if (name.length()>7){ tv_person.setText( name.substring(0,3)+"..."+name.substring(name.length()-1,name.length())); }else { @@ -220,6 +231,7 @@ public class AskAMoreChoosePatientActivity extends BaseActivity implements View. intent.putExtra("family_uuid",family_uuid); intent.putExtra("disease_uuid",disease_uuid); intent.putExtra("go_hospital",go_hospital); + intent.putExtra("birthday",birthday); startActivity(intent); }else { Intent intent = new Intent().setClass(AskAMoreChoosePatientActivity.this,PersonInfoActivity.class); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreIllnessActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreIllnessActivity.java index 092df53..2001ccf 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreIllnessActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/AskAMoreIllnessActivity.java @@ -162,41 +162,45 @@ public class AskAMoreIllnessActivity extends BaseActivity implements View.OnClic finish(); break; case R.id.bt_next: - pd.show(); - String s = et_question.getText().toString(); - if (StringUtil.isEmpty(s)||s.length()<10){ - ToastUtil.showMessage("病情描述至少10个字"); - pd.dismiss(); - return; - } - String s2 = et_question2.getText().toString(); - if (StringUtil.isEmpty(s2)||s2.length()<5){ - ToastUtil.showMessage("咨询问题至少5个字"); - pd.dismiss(); - return; - } - bt_next.setFocusable(false); - bt_next.setEnabled(false); - Map map = new HashMap<>(); - map.put("step1_uuid",step1_uuid); - map.put("disease_describe",s); - map.put("your_question",s2); - LogUtil.i("step1_uuid = "+step1_uuid); - List parameters = new ArrayList(); - for (int i = 0; i < mBitmaps.size(); i++) { - int num = i + 1; - if (!mBitmaps.get(i).isAdd()) { - BasicNameValuePair value = new BasicNameValuePair("img"+ num, Base64Util.BitmaptoBase64(mBitmaps.get(i).getBitmap())); - parameters.add(value); + + String s = et_question.getText().toString(); + if (StringUtil.isEmpty(s)||s.length()<10){ + ToastUtil.showMessage("病情描述至少10个字"); + return; } + String s2 = et_question2.getText().toString(); + if (StringUtil.isEmpty(s2)||s2.length()<5){ + ToastUtil.showMessage("咨询问题至少5个字"); + return; + } + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd.show(); + bt_next.setFocusable(false); + bt_next.setEnabled(false); + Map map = new HashMap<>(); + map.put("step1_uuid",step1_uuid); + map.put("disease_describe",s); + map.put("your_question",s2); + LogUtil.i("step1_uuid = "+step1_uuid); +// List parameters = new ArrayList(); +// for (int i = 0; i < mBitmaps.size(); i++) { +// int num = i + 1; +// if (!mBitmaps.get(i).isAdd()) { +// BasicNameValuePair value = new BasicNameValuePair("img"+ num, Base64Util.BitmaptoBase64(mBitmaps.get(i).getBitmap())); +// parameters.add(value); +// } +// } +// Map map1=new HashMap(); +// for (int i=0;i(); list_state.add("无明显肝纤维化"); list_state.add("肝纤维化"); @@ -241,7 +248,26 @@ public class AskAMoreInfoActivity extends BaseActivity implements View.OnClickLi int options3) { // 返回的分别是三个级别的选中位置 String name = list_long.get(options1); - tv_timelong.setText(name); + if (options1>0){ + String substring = name.split("年")[0]; + int drunlong = Integer.parseInt(substring); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = null; + try { + date = sdf.parse(birthday); + int age = DateGetAge.getAge(date); + if (drunlong>age){ + ToastUtil.showMessage("请选择正确的患病时长"); + }else { + tv_timelong.setText(name); + } + } catch (Exception e) { + e.printStackTrace(); + } + }else { + tv_timelong.setText(name); + } + } }); } @@ -346,27 +372,36 @@ public class AskAMoreInfoActivity extends BaseActivity implements View.OnClickLi } if (StringUtil.isEmpty(other_disease)){ -// ToastUtil.showMessage("请选择是否合并其他慢性疾病"); + ToastUtil.showMessage("请选择是否合并其他慢性疾病"); other_disease = ""; + return; } - Map map = new HashMap<>(); - map.put("family_uuid",family_uuid); - map.put("disease_uuid",disease_uuid); - map.put("go_hospital",go_hospital); - map.put("disease_date",disease_date); - map.put("liver_status",liver_status); - map.put("boolean_medication",boolean_medication); - map.put("medication_info",medication_info); - map.put("other_disease",other_disease); - sendJsonPostParamtoNetSignMD5(Url.addInterrogationStep1,map,ADDINTERROGATIONSTEP1,this); - LogUtil.i("family_uuid = "+family_uuid); - LogUtil.i("disease_uuid = "+disease_uuid); - LogUtil.i("go_hospital = "+go_hospital); - LogUtil.i("disease_date = "+disease_date); - LogUtil.i("liver_status = "+liver_status); - LogUtil.i("boolean_medication = "+boolean_medication); - LogUtil.i("medication_info = "+medication_info); - LogUtil.i("other_disease = "+other_disease); + + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd = new CustomProgressDialog(AskAMoreInfoActivity.this, "请稍候"); + pd.show(); + Map map = new HashMap<>(); + map.put("family_uuid",family_uuid); + map.put("disease_uuid",disease_uuid); + map.put("go_hospital",go_hospital); + map.put("disease_date",disease_date); + map.put("liver_status",liver_status); + map.put("boolean_medication",boolean_medication); + map.put("medication_info",medication_info); + map.put("other_disease",other_disease); + sendJsonPostParamtoNetSignMD5(Url.addInterrogationStep1,map,ADDINTERROGATIONSTEP1,this); + } else { + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } + +// LogUtil.i("family_uuid = "+family_uuid); +// LogUtil.i("disease_uuid = "+disease_uuid); +// LogUtil.i("go_hospital = "+go_hospital); +// LogUtil.i("disease_date = "+disease_date); +// LogUtil.i("liver_status = "+liver_status); +// LogUtil.i("boolean_medication = "+boolean_medication); +// LogUtil.i("medication_info = "+medication_info); +// LogUtil.i("other_disease = "+other_disease); break; } } @@ -375,7 +410,7 @@ public class AskAMoreInfoActivity extends BaseActivity implements View.OnClickLi if (cb.isChecked()==true){ if (StringUtil.isEmpty(otherDrug.toString())) { otherDrug.append(cb.getText().toString()); - }else { + }else if (!otherDrug.toString().contains(cb.getText().toString())){ otherDrug.append(","+cb.getText().toString()); } } @@ -441,6 +476,7 @@ public class AskAMoreInfoActivity extends BaseActivity implements View.OnClickLi LogUtil.i("ADDINTERROGATIONSTEP1 = "+resultJson); other_disease = ""; otherDrug.delete(0,otherDrug.length()); + pd.dismiss(); switch (resultCode){ case ADDINTERROGATIONSTEP1: try { @@ -456,8 +492,8 @@ public class AskAMoreInfoActivity extends BaseActivity implements View.OnClickLi } catch (JSONException e) { e.printStackTrace(); } - break; + } } } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/BaseActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/BaseActivity.java index 12b4aa9..17806f9 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/BaseActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/BaseActivity.java @@ -5,6 +5,7 @@ import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.locks.ReentrantLock; @@ -32,6 +33,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import cn.shangyu.gdxzPatient.R; import cn.shangyu.gdxzPatient.application.AppManager; +import cn.shangyu.gdxzPatient.bean.AddBitmaps; import cn.shangyu.gdxzPatient.bean.TimestampBean; import cn.shangyu.gdxzPatient.ecdemo.common.utils.LogUtil; import cn.shangyu.gdxzPatient.ecdemo.common.utils.ToastUtil; @@ -39,6 +41,7 @@ import cn.shangyu.gdxzPatient.ecdemo.ui.SDKCoreHelper; import cn.shangyu.gdxzPatient.http.HttpHelper; import cn.shangyu.gdxzPatient.http.HttpHelper.HttpResult; import cn.shangyu.gdxzPatient.http.OnCallBackFromNet; +import cn.shangyu.gdxzPatient.utils.Base64Util; import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.GsonTools; import cn.shangyu.gdxzPatient.utils.LogUtils; @@ -468,6 +471,8 @@ public abstract class BaseActivity extends FragmentActivity { } } } catch (Exception e) { + + mHandler.sendEmptyMessage(010); ToastUtil.showMessage("提交失败,请重试"); // TODO Auto-generated catch block e.printStackTrace(); @@ -481,7 +486,7 @@ public abstract class BaseActivity extends FragmentActivity { } public void sendJsonPostParamtoNetSignMD5Object(final String postUrl, - final Map param, final int callType,final OnCallBackFromNet callBack) { + final Map param, final List mBitmaps, final int callType, final OnCallBackFromNet callBack) { param.put("user_uuid", SharePrefUtil.getString(BaseActivity.this, "uuid", "")); param.put("client_type", "A"); param.put("version",UpdateVersionUtils.getVersionName() ); @@ -494,6 +499,7 @@ public abstract class BaseActivity extends FragmentActivity { public void run() { // TODO Auto-generated method stub lock.lock(); + try { httpResult = HttpHelper.post(Url.getTimestamp, null); if (httpResult != null) { @@ -502,7 +508,20 @@ public abstract class BaseActivity extends FragmentActivity { TimestampBean bean = GsonTools.fromGsonToBean(result1, TimestampBean.class); param.put("timestamp", bean.getTimestamp()); LogUtils.e("timestamp = "+ bean.getTimestamp()); - + List parameters = new ArrayList(); + for (int i = 0; i < mBitmaps.size(); i++) { + int num = i + 1; + if (!mBitmaps.get(i).isAdd()) { + BasicNameValuePair value = new BasicNameValuePair("img"+ num, Base64Util.BitmaptoBase64(mBitmaps.get(i).getBitmap())); + parameters.add(value); + } + } + Map map1=new HashMap(); + for (int i=0;i= Build.VERSION_CODES.O) { + //8.0手机以上 + if (((NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE)).getImportance() == NotificationManager.IMPORTANCE_NONE) { + + + return false; + } + } + + String CHECK_OP_NO_THROW = "checkOpNoThrow"; + String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION"; + + AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); + ApplicationInfo appInfo = context.getApplicationInfo(); + String pkg = context.getApplicationContext().getPackageName(); + int uid = appInfo.uid; + + Class appOpsClass = null; + + try { + appOpsClass = Class.forName(AppOpsManager.class.getName()); + Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, + String.class); + Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION); + + int value = (Integer) opPostNotificationValue.get(Integer.class); + return ((Integer) checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg) == AppOpsManager.MODE_ALLOWED); + + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + private void toSetting() { + goToNotificationSetting(MainActivity.this); + + } + /** + * 打开允许通知的设置页 + */ + private void goToNotificationSetting(Context context) { + Intent intent = new Intent(); + if (Build.VERSION.SDK_INT >= 26) { + // android 8.0引导 + gotoChannelSetting("随访消息",MainActivity.this); +// intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS); +// //这种方案适用于 API 26, 即8.0(含8.0)以上可以用 +// intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); +// intent.putExtra(Settings.EXTRA_CHANNEL_ID, context.getApplicationInfo().uid); +// //这种方案适用于 API21——25,即 5.0——7.1 之间的版本可以使用 +// intent.putExtra("app_package", context.getPackageName()); +// intent.putExtra("app_uid", context.getApplicationInfo().uid); +// + } else if (Build.VERSION.SDK_INT >= 21) { + // android 5.0-7.0 + intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS"); + intent.putExtra("app_package", context.getPackageName()); + intent.putExtra("app_uid", context.getApplicationInfo().uid); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } else { + // 其他 + intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); + intent.setData(Uri.fromParts("package", context.getPackageName(), null)); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + + } + /* + * 跳转到渠道设置页 + */ + public void gotoChannelSetting(@NonNull String channelId, @NonNull Context context) { + Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + intent.putExtra(Settings.EXTRA_CHANNEL_ID, channelId); + context.startActivity(intent); } public static Intent serviceIntent; @@ -553,7 +683,7 @@ public class MainActivity extends BaseActivity implements try { List parameters = new ArrayList(); BasicNameValuePair value01 = new BasicNameValuePair( - "currVer", versionCode); + "currVer", "1"); BasicNameValuePair value02 = new BasicNameValuePair( "appType", "2"); parameters.add(value01); @@ -657,8 +787,10 @@ public class MainActivity extends BaseActivity implements if (!TextUtils.isEmpty(getAutoRegistAccount())) { SDKCoreHelper.init(this); } + } + } /** @@ -1384,6 +1516,14 @@ public class MainActivity extends BaseActivity implements // 检测离线消息 checkOffineMessage(); mInitActionFlag = true; + String brand = android.os.Build.BRAND; + if ("Xiaomi".equals(brand)){ + //小米推送服务 + ECDevice.reportDeviceToken(Constant.regID); + }else { + //华为推送服务 + ECDevice.reportDeviceToken(Constant.token); + } } } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java index 92730b2..503d53b 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/PersonInfoActivity.java @@ -46,6 +46,7 @@ import android.provider.DocumentsContract; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.text.TextUtils; +import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -96,7 +97,11 @@ import com.github.dfqin.grantor.PermissionsUtil; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; +import com.yuntongxun.ecsdk.ECDevice; +import com.yuntongxun.ecsdk.ECError; import com.yuntongxun.ecsdk.ECInitParams; +import com.yuntongxun.ecsdk.PersonInfo; +import com.yuntongxun.ecsdk.SdkErrorCode; /** v3.3.0个人资料 @@ -517,7 +522,7 @@ public class PersonInfoActivity extends BaseActivity implements height = SharePrefUtil.getInt(ctx, Constant.HEIGHT, 0);//身高 weight = SharePrefUtil.getInt(ctx, Constant.WEIGHT, 0);//体重 whether_pregnant = SharePrefUtil.getInt(ctx, Constant.WHETHER_PREGNANT, 0);//是否怀孕 - whether_hbv = SharePrefUtil.getInt(ctx, Constant.WHETHER_HBV, 3);//乙肝或肝癌家族史 + whether_hbv = SharePrefUtil.getInt(ctx, Constant.WHETHER_HBV, 3);//肝硬化或肝癌家族史 expected_date_of_childbirth = SharePrefUtil.getString(ctx, Constant.EXPECTED_DATE_OF_CHILDBIRTH, "");//预产期 if (height==0){ tv_height.setText("请输入身高"); @@ -1860,6 +1865,37 @@ if (data!=null){ pd = new CustomProgressDialog(this, "请稍后"); pd.show(); + + //设置个人信息,包括昵称、生日、性别,推送消息的时候使用 + PersonInfo personInfo =new PersonInfo(); + // 设置昵称 + personInfo.setNickName(et_name.getText().toString()); + + ECDevice.setPersonInfo(personInfo, new ECDevice.OnSetPersonInfoListener() { + @Override + public void onSetPersonInfoComplete(ECError e, int version) { + if (SdkErrorCode.REQUEST_SUCCESS == e.errorCode) { + // 个人信息设置成功,version最新的个人信息版本号 + // 更新个人信息到本地数据库,通知UI刷新 + String uuid = SharePrefUtil.getString(ctx, Constant.UUID, ""); + ECDevice.getPersonInfo(uuid, new ECDevice.OnGetPersonInfoListener() { + @Override + public void onGetPersonInfoComplete(ECError e, PersonInfo p){ + if(SdkErrorCode.REQUEST_SUCCESS == e.errorCode) { + // 个人信息获取成功 + // 更新个人信息到本地数据库,通知UI刷新 + p.getNickName(); + Log.e("ECSDK_Demo", "p.getNickName() = " + p.getNickName()); + return ; + } +// + }}); + return; + } + + }}); + + new Thread() { public void run() { try { @@ -1904,7 +1940,7 @@ if (data!=null){ BasicNameValuePair value013 = new BasicNameValuePair( "expected_date_of_childbirth", expected_date_of_childbirth);//预产期 BasicNameValuePair value014 = new BasicNameValuePair( - "whether_hbv", whether_hbv+"");// 乙肝或肝癌家族史 + "whether_hbv", whether_hbv+"");// 肝硬化或肝癌家族史 BasicNameValuePair value015; if ("请输入身高".equals(tv_height.getText().toString().trim())){ value015 = new BasicNameValuePair( diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/ProblemComplementActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/ProblemComplementActivity.java index 88bcd55..bd87710 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/ProblemComplementActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/ProblemComplementActivity.java @@ -164,33 +164,38 @@ public class ProblemComplementActivity extends BaseActivity implements View.OnCl if (pd==null){ pd = new CustomProgressDialog(ProblemComplementActivity.this, "请稍候"); } - pd.show(); String s = et_describe.getText().toString(); if (StringUtil.isEmpty(s)||s.length()<5){ ToastUtil.showMessage("输入至少5个字"); - pd.dismiss(); return; } - - Map map = new HashMap<>(); - map.put("step1_uuid",step1_uuid); - map.put("disease_describe",s); - LogUtils.e("disease_describe = "+s); - List parameters = new ArrayList(); - for (int i = 0; i < mBitmaps.size(); i++) { - int num = i + 1; - if (!mBitmaps.get(i).isAdd()) { - BasicNameValuePair value = new BasicNameValuePair("img"+ num, Base64Util.BitmaptoBase64(mBitmaps.get(i).getBitmap())); - parameters.add(value); - } + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd.show(); + bt_next.setFocusable(false); + bt_next.setEnabled(false); + Map map = new HashMap<>(); + map.put("step1_uuid",step1_uuid); + map.put("disease_describe",s); + LogUtils.e("disease_describe = "+s); +// List parameters = new ArrayList(); +// for (int i = 0; i < mBitmaps.size(); i++) { +// int num = i + 1; +// if (!mBitmaps.get(i).isAdd()) { +// BasicNameValuePair value = new BasicNameValuePair("img"+ num, Base64Util.BitmaptoBase64(mBitmaps.get(i).getBitmap())); +// parameters.add(value); +// } +// } +// Map map1=new HashMap(); +// for (int i=0;i parameters = new ArrayList(); BasicNameValuePair value01 = new BasicNameValuePair( - "currVer", mVersionCode); + "currVer", "1"); BasicNameValuePair value02 = new BasicNameValuePair( "appType", "2"); parameters.add(value01); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoDetialActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoDetialActivity.java index c43d3df..4e62fe3 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoDetialActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoDetialActivity.java @@ -17,6 +17,7 @@ import com.umeng.socialize.bean.SHARE_MEDIA; //import com.umeng.socialize.controller.UMServiceFactory; //import com.umeng.socialize.controller.UMSocialService; import com.umeng.socialize.media.UMImage; +import com.umeng.socialize.media.UMMin; import com.umeng.socialize.media.UMWeb; //import com.umeng.socialize.sso.SinaSsoHandler; //import com.umeng.socialize.sso.UMSsoHandler; @@ -37,6 +38,7 @@ import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.ImageOptions; import cn.shangyu.gdxzPatient.utils.LogUtils; import cn.shangyu.gdxzPatient.utils.SharePrefUtil; +import cn.shangyu.gdxzPatient.utils.StringUtil; import cn.shangyu.gdxzPatient.utils.UIUtils; import cn.shangyu.gdxzPatient.utils.UMengShareHelper; import cn.shangyu.gdxzPatient.utils.Url; @@ -199,6 +201,7 @@ public class VideoDetialActivity extends Activity implements OnClickListener { } }; }; + private String content;//用于小程序分享 // 收藏 private void goCollection() { @@ -330,9 +333,11 @@ public class VideoDetialActivity extends Activity implements OnClickListener { videoTitle = getIntent().getStringExtra("title"); readnum = getIntent().getStringExtra("readnum"); imagePath = getIntent().getStringExtra("imgpath"); + content = getIntent().getStringExtra("content"); LogUtils.e("imgpath = "+imagePath); LogUtils.e("readnum = "+readnum); LogUtils.e("title = "+videoTitle); + LogUtils.e("content = "+content); mThumbnail = ImageLoader.getInstance().loadImageSync( Url.imgUrl + imagePath); public_name = getIntent().getStringExtra("public_name"); @@ -867,34 +872,42 @@ public class VideoDetialActivity extends Activity implements OnClickListener { shareImg = new UMImage(VideoDetialActivity.this, "http://doc.igandan.com/app/html/img/2016/20160714132557.png"); } - UMWeb web = new UMWeb(shareUrl); - web.setTitle(shareTitle);// 标题 - web.setThumb(shareImg); // 缩略图 - web.setDescription(shareContent);// 描述 - new ShareAction(VideoDetialActivity.this) - .withMedia(web) - .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, - SHARE_MEDIA.SINA) - .setCallback( - new UMengShareHelper(VideoDetialActivity.this).shareListener) - .open(); - -// UMMin umMin = new UMMin(shareUrl); -// //兼容低版本的网页链接 -// umMin.setThumb(shareImg); -// // 小程序消息封面图片 -// umMin.setTitle(shareTitle); -// // 小程序消息title -// umMin.setDescription(shareContent); -// // 小程序消息描述 -// umMin.setPath("pages/gandanVideoDetailApp/gandanVideoDetailApp"); -// //小程序页面路径 -// umMin.setUserName("gh_11f9423d9de3"); -// // 小程序原始id,在微信平台查询 -// new ShareAction(VideoDetialActivity.this) -// .withMedia(umMin) -// .setPlatform(SHARE_MEDIA.WEIXIN) -// .setCallback(new UMengShareHelper(VideoDetialActivity.this).shareListener).share(); + if (StringUtil.isEmpty(content)){ + UMWeb web = new UMWeb(shareUrl); + web.setTitle(shareTitle);// 标题 + web.setThumb(shareImg); // 缩略图 + web.setDescription(shareContent);// 描述 + new ShareAction(VideoDetialActivity.this) + .withMedia(web) + .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, + SHARE_MEDIA.SINA) + .setCallback( + new UMengShareHelper(VideoDetialActivity.this).shareListener) + .open(); + }else { + mThumbnail = ImageLoader.getInstance().loadImageSync("assets://share_video.jpg"); + shareImg = new UMImage(VideoDetialActivity.this, mThumbnail); + UMMin umMin = new UMMin(shareUrl); + //兼容低版本的网页链接 + umMin.setThumb(shareImg); + // 小程序消息封面图片 + umMin.setTitle(shareTitle); + // 小程序消息title + umMin.setDescription(shareContent); + + // 小程序消息描述 +// umMin.setPath("pages/gandanVideoDetailApp/gandanVideoDetailApp?contentID="+content); + umMin.setPath("pages/gandanVideoDetailApp/gandanVideoDetailApp?contentID="+content+"¬eIN="+summery+"&titleName="+shareTitle); + //小程序页面路径 + umMin.setUserName("gh_11f9423d9de3"); + // 小程序原始id,在微信平台查询 + new ShareAction(VideoDetialActivity.this) + .withMedia(umMin) + .setPlatform(SHARE_MEDIA.WEIXIN) + .setCallback(new UMengShareHelper(VideoDetialActivity.this).shareListener).share(); + } + + } ForegroundColorSpan redSpan, greySpan; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoMoreActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoMoreActivity.java index 9d2b832..8797010 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoMoreActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/activity/VideoMoreActivity.java @@ -88,6 +88,8 @@ public class VideoMoreActivity extends BaseActivity implements OnClickListener,O intent.putExtra("public_name", list1.get(arg2) .getPublic_name()); int nowNum = list1.get(arg2).getReadnum(); + intent.putExtra("content", list1.get(arg2) + .getContent()); int nums = nowNum + 1; list1.get(arg2).setReadnum(nums); BaseApplication.videoMap.put(list1.get(arg2).getUuid(), diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/adapter/VideoAdapter.java b/app/src/main/java/cn/shangyu/gdxzPatient/adapter/VideoAdapter.java index 7224b38..92f7916 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/adapter/VideoAdapter.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/adapter/VideoAdapter.java @@ -108,7 +108,8 @@ public class VideoAdapter extends BaseAdapter { datas.get(Num).video.get(position).getPublic_name()); intent.putExtra("note", datas.get(Num).video.get(position) .getNote()); - + intent.putExtra("content", datas.get(Num).video.get(position) + .getContent()); String nowNum = datas.get(Num).video.get(position).getReadnum(); int nums = Integer.parseInt(nowNum) + 1; BaseApplication.videoMap.put(datas.get(Num).video.get(position) diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java b/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java index 559e762..e3bec1c 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/application/BaseApplication.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Map; import android.app.Activity; +import android.app.ActivityManager; import android.app.Application; import android.content.Context; import android.content.pm.ApplicationInfo; @@ -21,6 +22,7 @@ import cn.shangyu.gdxzPatient.ecdemo.common.CCPAppManager; import cn.shangyu.gdxzPatient.ecdemo.common.utils.ECPreferenceSettings; import cn.shangyu.gdxzPatient.ecdemo.common.utils.ECPreferences; import cn.shangyu.gdxzPatient.ecdemo.common.utils.FileAccessor; +import cn.shangyu.gdxzPatient.ecdemo.ui.huawei.PustDemoActivity; import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.CrashHandler; import cn.shangyu.gdxzPatient.utils.DataCleanManager; @@ -34,6 +36,7 @@ import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.location.LocationClientOption.LocationMode; +import com.huawei.android.pushagent.api.PushManager; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechUtility; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache; @@ -47,6 +50,7 @@ import com.umeng.message.IUmengRegisterCallback; import com.umeng.message.PushAgent; import com.umeng.socialize.PlatformConfig; import com.umeng.socialize.UMShareAPI; +import com.xiaomi.mipush.sdk.MiPushClient; /** * BaseApplication.java @@ -88,7 +92,9 @@ public class BaseApplication extends Application { public static boolean refreshMyGanDanHouse = false;// 发布一个肝胆话题之后刷新话题跟我的话题两个fragment public static boolean refreshTopicGanDanHouse = false;// 发布一个肝胆话题之后刷新topicActivityt public static boolean refreshExpertDetial = false;// 刷新专家详情的鲜花数量 - + private PustDemoActivity mPustTestActivity = null; + public static final String APP_ID = "2882303761517470792";//小米 + public static final String APP_KEY = "5241747057792"; // 友盟分享6.4.5配置三方平台的appkey { @@ -137,6 +143,12 @@ public class BaseApplication extends Application { } return instance; } + public void setMainActivity(PustDemoActivity activity) { + mPustTestActivity = activity; + } + public PustDemoActivity getMainActivity() { + return mPustTestActivity; + } public static void addActivity(Activity a) { activityList.add(a); @@ -153,7 +165,9 @@ public class BaseApplication extends Application { // activityList.clear(); } - + public static void reInitPush(Context ctx) { + MiPushClient.registerPush(ctx.getApplicationContext(), APP_ID, APP_KEY); + } @Override public void onCreate() { super.onCreate(); @@ -171,7 +185,17 @@ public class BaseApplication extends Application { CCPAppManager.setContext(instance); FileAccessor.initFileAccess(); setChattingContactId(); - + /*** + * 华为推送 + * */ +// HMSAgent.init(this); + PushManager.requestToken(getContext());//应该在初始化之后上传 + /** + * 小米推送 + * */ + if (shouldInit()) { + MiPushClient.registerPush(this, APP_ID, APP_KEY); + } // 友盟6.4.5分享初始化sdk // Config.DEBUG = true; UMShareAPI.get(this); @@ -394,7 +418,18 @@ public class BaseApplication extends Application { .build();// 开始构建 ImageLoader.getInstance().init(config); } - + private boolean shouldInit(){ + ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)); + List processInfos = am.getRunningAppProcesses(); + String mainProcessName = getPackageName(); + int myPid = android.os.Process.myPid(); + for (ActivityManager.RunningAppProcessInfo info : processInfos) { + if (info.pid == myPid && mainProcessName.equals(info.processName)) { + return true; + } + } + return false; + } /** * 实现实位回调监听 */ diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoBean.java b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoBean.java index 49626db..de711b6 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoBean.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoBean.java @@ -77,6 +77,15 @@ public class VideoBean extends BaseBean { private String name; private String path; private String note; + private String content; + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } public String getNote() { return note; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoMoreBean.java b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoMoreBean.java index e3c46de..49497b1 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoMoreBean.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoMoreBean.java @@ -56,7 +56,15 @@ public class VideoMoreBean extends BaseBean{ private int status; private String name; private String path; + private String content; + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } public String getImgpath() { return imgpath; } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoSelectBean.java b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoSelectBean.java index 1dd6781..ed023be 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoSelectBean.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/bean/VideoSelectBean.java @@ -85,6 +85,7 @@ public class VideoSelectBean extends BaseBean{ * note : sd * name : we * path : html/video/6f2a4efe71034bcb90ad7af22fd3490c.html + * content:\n
\n */ private String type_uuid; @@ -98,6 +99,15 @@ public class VideoSelectBean extends BaseBean{ private String note; private String name; private String path; + private String content; + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } public String getType_uuid() { return type_uuid; diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/utils/ECNotificationManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/utils/ECNotificationManager.java index edb8112..f964a29 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/utils/ECNotificationManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/common/utils/ECNotificationManager.java @@ -22,6 +22,8 @@ import android.content.Context; import android.content.Intent; import android.content.res.AssetFileDescriptor; import android.media.MediaPlayer; +import android.net.Uri; +import android.os.Bundle; import android.os.Looper; import android.text.TextUtils; import cn.shangyu.gdxzPatient.R; @@ -30,10 +32,13 @@ import cn.shangyu.gdxzPatient.activity.MyFriendActivity; import cn.shangyu.gdxzPatient.ecdemo.common.CCPAppManager; import cn.shangyu.gdxzPatient.ecdemo.storage.ConversationSqlManager; import cn.shangyu.gdxzPatient.ecdemo.storage.GroupNoticeSqlManager; +import cn.shangyu.gdxzPatient.ecdemo.storage.IMessageSqlManager; import cn.shangyu.gdxzPatient.ecdemo.ui.voip.ECVoIPBaseActivity; +import cn.shangyu.gdxzPatient.utils.BadgeCountUtils; import cn.shangyu.gdxzPatient.utils.Constant; import cn.shangyu.gdxzPatient.utils.LogUtils; import cn.shangyu.gdxzPatient.utils.NotificationUtils; +import cn.shangyu.gdxzPatient.utils.UIUtils; import cn.shangyu.gdxzPatient.utils.Utility; import com.yuntongxun.ecsdk.ECMessage; @@ -170,8 +175,10 @@ public class ECNotificationManager { defaults = Notification.DEFAULT_ALL; shake = false; } + + count = ConversationSqlManager.qureySessionUnreadCountByFlag("1"); NotificationUtils notificationUtils = new NotificationUtils(context,defaults,pendingIntent); - notificationUtils.sendNotification(contentTitle, contentText); + notificationUtils.sendNotification(contentTitle, contentText,count); // Notification notification = NotificationUtil.buildNotification(context, // R.drawable.logo, defaults, shake, contentTitle, contentTitle, @@ -183,9 +190,54 @@ public class ECNotificationManager { // ((NotificationManager) mContext // .getSystemService(Context.NOTIFICATION_SERVICE)).notify( // NOTIFY_ID_PUSHCONTENT, notification); + String brand = android.os.Build.BRAND; + LogUtil.i("brand = "+brand); + if ("Xiaomi".equals(brand)){ + //小米不需要原生角标 + }else { + try { + OnUpdateMsgUnreadCounts(); + }catch (Exception e){ + } + + } + } + /** + * 统计未读消息数 OnUpdateMsgUnreadCounts + * + * void + */ + private static int count; + public static void OnUpdateMsgUnreadCounts() { +// int unreadCount = IMessageSqlManager.qureyAllSessionUnreadCount(); +// int notifyUnreadCount = IMessageSqlManager.getUnNotifyUnreadCount(); +// count = unreadCount; +// if (unreadCount >= notifyUnreadCount) { +// count = unreadCount - notifyUnreadCount; +// } + + //原生角标 + BadgeCountUtils.setBadgeCount(UIUtils.getContext(),count); + //华为角标 + setBadgeNum(count,UIUtils.getContext()); + } + /** + * 设置角标 + */ + public static void setBadgeNum(int num, Context context) { + try { + Bundle bunlde = new Bundle(); + bunlde.putString("package", "cn.shangyu.gdxzPatient"); + bunlde.putString("class", "cn.shangyu.gdxzPatient.activity.MainActivity"); + bunlde.putInt("badgenumber", num); + context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bunlde); + } catch (Exception e) { + e.printStackTrace(); + } + } /** * * @param contex @@ -342,8 +394,8 @@ public class ECNotificationManager { /** * 后台呈现音视频呼叫Notification * - * @param callType - * 呼叫类型 + * @param + * */ // public static void showCallingNotification( // ECVoIPCallManager.CallType callType) { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/AbstractSQLManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/AbstractSQLManager.java index b1cd7db..1763887 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/AbstractSQLManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/AbstractSQLManager.java @@ -590,6 +590,12 @@ public abstract class AbstractSQLManager { public class IThreadColumn extends BaseColumn { + + +// // 消息类型 +// public static final String SEND_TYPE = "send_type"; + + // 会话id public static final String THREAD_ID = "sessionId"; // 会话人名称 @@ -630,6 +636,7 @@ public abstract class AbstractSQLManager { public class IMessageColumn extends BaseColumn { + // 消息ID public static final String MESSAGE_ID = "msgid"; // 消息类型 @@ -662,6 +669,9 @@ public abstract class AbstractSQLManager { // 备注 public static final String REMARK = "remark"; + + + } /** diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ConversationSqlManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ConversationSqlManager.java index 305398e..37fe4b1 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ConversationSqlManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ConversationSqlManager.java @@ -61,10 +61,10 @@ public class ConversationSqlManager extends AbstractSQLManager { " LEFT JOIN contacts ON im_thread.sessionId = contacts.contact_id \n" + " LEFT JOIN groups2 ON im_thread.sessionId = groups2.groupid order by dateTime desc;"; return getInstance().sqliteDB().rawQuery(sql, null); - } catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } - return null; + return null; } /** @@ -82,12 +82,12 @@ public class ConversationSqlManager extends AbstractSQLManager { " LEFT JOIN contacts ON im_thread.sessionId = contacts.contact_id \n" + " LEFT JOIN groups2 ON im_thread.sessionId = groups2.groupid where flag = '1' ;";//order by dateTime desc return getInstance().sqliteDB().rawQuery(sql, null); - } catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } - return null; + return null; } - + /**gaotengfei @@ -250,7 +250,7 @@ public class ConversationSqlManager extends AbstractSQLManager { * * @param msg * @return - * + * */ public static long insertSessionRecord(ECMessage msg) { if (msg == null || TextUtils.isEmpty(msg.getSessionId())){ @@ -280,14 +280,14 @@ public class ConversationSqlManager extends AbstractSQLManager { } /** - * + * * @author Administrator * @date 2015-12-3 下午1:18:17 * * 功能说明:把该条会话的未读数置为0 * * method @param sessionId - */ + */ public static void updateUnderCountToZero(String sessionId) { long ownThreadId = ConversationSqlManager.querySessionIdForBySessionId(sessionId); ContentValues values = new ContentValues(); @@ -299,7 +299,7 @@ public class ConversationSqlManager extends AbstractSQLManager { } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); - } + } } } @@ -311,14 +311,14 @@ public class ConversationSqlManager extends AbstractSQLManager { return true; } } - + /** * 添加一个人为我的专家/公益咨询,flag标记为不一样 *gaotengfei *flag=1专家,=2为公益资讯 - * @param msg + * @param * @return - * + * */ public static void insertConverByExpert(PatientUsers patient) { @@ -328,7 +328,7 @@ public class ConversationSqlManager extends AbstractSQLManager { long ownThreadId = ConversationSqlManager.querySessionIdForBySessionId(patient.sessionId); ContentValues values = new ContentValues(); if( ownThreadId == 0){ - LogUtils.v("插入数据库===="); + LogUtils.v("插入数据库===="); try { values.put(IThreadColumn.THREAD_ID, patient.sessionId); values.put(IThreadColumn.THREAD_USERNAME, patient.userNames); @@ -367,10 +367,10 @@ public class ConversationSqlManager extends AbstractSQLManager { values = null; } } - } + } } /** - * + * * @author gaofei * @date 2015-9-29 上午10:41:33 * @@ -383,7 +383,7 @@ public class ConversationSqlManager extends AbstractSQLManager { //入股删除的话又重新插入,则聊天记录会清空。 if(list.size() == 0 || ConversationSqlManager.getAllConversationCursor().getCount() > list.size()){ //数据库中的条目数大于服务器返回的条目数,说明有漏删的数据 - // LogUtils.v("把数据标记全部置为2"); + // LogUtils.v("把数据标记全部置为2"); try { String sql="update im_thread set flag='2'"; getInstance().sqliteDB().execSQL(sql); @@ -392,12 +392,12 @@ public class ConversationSqlManager extends AbstractSQLManager { e.printStackTrace(); } } - for (int i = 0; i < list.size(); i++) { + for (int i = 0; i < list.size(); i++) { long ownThreadId = ConversationSqlManager.querySessionIdForBySessionId(list.get(i).sessionId); ContentValues values = new ContentValues(); LogUtils.v("ownThreadId=="+ownThreadId); if( ownThreadId == 0){ - LogUtils.v("插入数据库===="+list.get(i).type); + LogUtils.v("插入数据库===="+list.get(i).type); try { values.put(IThreadColumn.THREAD_ID, list.get(i).sessionId); values.put(IThreadColumn.THREAD_USERNAME, list.get(i).userNames); @@ -452,7 +452,7 @@ public class ConversationSqlManager extends AbstractSQLManager { * method @return */ public static String qureyUnreadCountBySessionId(String sessionId) { - try { + try { Cursor cursor = getInstance().sqliteDB().query(DatabaseHelper.TABLES_NAME_IM_SESSION, new String[]{IThreadColumn.UNREAD_COUNT}, "sessionId=?", new String[]{String.valueOf(sessionId)},null , null, null, null); if (cursor != null && cursor.getCount() > 0) { @@ -467,7 +467,7 @@ public class ConversationSqlManager extends AbstractSQLManager { e.printStackTrace(); return "0"; } - return "0"; + return "0"; } /** * 根据session查未读消息数 @@ -480,7 +480,7 @@ public class ConversationSqlManager extends AbstractSQLManager { * method @return */ public static String qureyUnreadCountBySessionId(String sessionId,String flag) { - try { + try { Cursor cursor = getInstance().sqliteDB().query(DatabaseHelper.TABLES_NAME_IM_SESSION, new String[]{IThreadColumn.UNREAD_COUNT}, "sessionId=? and flag=? ", new String[]{String.valueOf(sessionId),String.valueOf(flag)},null , null, null, null); if (cursor != null && cursor.getCount() > 0) { @@ -495,10 +495,10 @@ public class ConversationSqlManager extends AbstractSQLManager { e.printStackTrace(); return "0"; } - return "0"; + return "0"; } /** - * + * * @author Administrator * @date 2015-12-10 下午3:02:58 * diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/IMessageSqlManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/IMessageSqlManager.java index 51c45c6..18cbad3 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/IMessageSqlManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/IMessageSqlManager.java @@ -47,7 +47,7 @@ import com.yuntongxun.ecsdk.im.ECVoiceMessageBody; /** * 消息数据库管理 - * + * * @author Jorstin Chan@容联•云通讯 * @date 2014-12-11 * @version 4.0 @@ -110,7 +110,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 更新消息到本地数据库 - * + * * @param message * 消息 * @param boxType @@ -219,7 +219,7 @@ public class IMessageSqlManager extends AbstractSQLManager { } /** - * + * * @return */ public static int getMaxVersion() { @@ -260,7 +260,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 更新消息的状态 - * + * * @param msgId * @param sendStatu * @return @@ -271,7 +271,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 更新文件的下载状态 - * + * * @param msg * @return */ @@ -309,7 +309,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 设置Im消息发送状态 - * + * * @param msgId * 消息ID * @param sendStatu @@ -317,7 +317,7 @@ public class IMessageSqlManager extends AbstractSQLManager { * @return */ public static int setIMessageSendStatus(String msgId, int sendStatu, - int duration) { + int duration) { int row = 0; ContentValues values = new ContentValues(); try { @@ -344,7 +344,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 根据不同的消息类型将数据保存到数据库 - * + * * @param message * @param values */ @@ -399,13 +399,13 @@ public class IMessageSqlManager extends AbstractSQLManager { } /** - * + * * @param threadId * @param lastTime * @return */ public static ArrayList queryIMessageListAfter(long threadId, - String lastTime) { + String lastTime) { ArrayList al = null; Cursor cursor = null; StringBuffer sb = new StringBuffer(); @@ -472,7 +472,7 @@ public class IMessageSqlManager extends AbstractSQLManager { * cursor * .getString(cursor.getColumnIndexOrThrow(IMessageColumn * .FILE_PATH)); - * + * * if (msgType == ECMessage.Type.VOICE.ordinal()) { int * duration = * cursor.getInt(cursor.getColumnIndexOrThrow( @@ -653,7 +653,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 删除会话 - * + * * @param contactId */ @SuppressWarnings("static-access") @@ -681,13 +681,13 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * IM分页查询 - * + * * @param num * @param lastTime * @return */ public static ArrayList queryIMessageList(long threadId, - int num, String lastTime) { + int num, String lastTime) { ArrayList al = null; Cursor cursor = null; StringBuffer sb = new StringBuffer(); @@ -736,13 +736,13 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * IM分页查询 - * + * * @param num * @param version * @return */ public static ArrayList queryIMessageVersionList(long threadId, - int num, String version) { + int num, String version) { ArrayList al = null; Cursor cursor = null; StringBuffer sb = new StringBuffer(); @@ -791,7 +791,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 组装消息 - * + * * @param cursor * @return */ @@ -1030,7 +1030,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 返回消息的类型,发送、接收、草稿 - * + * * @param type * 消息类型 * @return @@ -1047,7 +1047,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 根据会话ID查询会话消息的数据量 - * + * * @param threadId * 当前会话ID * @return 会话总数 @@ -1081,7 +1081,7 @@ public class IMessageSqlManager extends AbstractSQLManager { } /** - * + * * @param rowIds * @return */ @@ -1117,7 +1117,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 分页加载查询数据 - * + * * @param threadId * @param limit * @return @@ -1136,7 +1136,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 查询会话所有的图片 - * + * * @param session * @return */ @@ -1159,7 +1159,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 查询所有未读数 - * + * * @return */ public static int qureyAllSessionUnreadCount() { @@ -1214,7 +1214,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 通过联系着查找会话ID - * + * * @param contactId * @return */ @@ -1247,7 +1247,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 消息重发 - * + * * @param rowid * @param detail * @return @@ -1285,7 +1285,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 查询某一会话所有信息条数 - * + * * @return */ public static int qureyIMCountForSession(long threadId) { @@ -1316,7 +1316,7 @@ public class IMessageSqlManager extends AbstractSQLManager { /** * 查询下载失败的图片消息 - * + * * @return */ public static List getDowndFailMsg() { @@ -1414,7 +1414,7 @@ public class IMessageSqlManager extends AbstractSQLManager { } /** - * + * * @param 删除本地图片 */ public static void deleteLocalFileAfterFire(String msgId) { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ImgInfoSqlManager.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ImgInfoSqlManager.java index dce0f6b..e93ab2b 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ImgInfoSqlManager.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/storage/ImgInfoSqlManager.java @@ -273,11 +273,7 @@ public class ImgInfoSqlManager extends AbstractSQLManager { } imgInfo.setThumbImgPath(thumbName); } - /*if(body.getRemoteUrl().contains("_thumbnail")) { - imgInfo.setBigImgPath(body.getRemoteUrl().replace("_thumbnail", "")); - } else { - imgInfo.setBigImgPath(null); - }*/ + imgInfo.isGif = body.getRemoteUrl().endsWith(".gif"); imgInfo.setMsglocalid(msg.getMsgId()); imgInfo.setCreatetime((int)DateUtil.getCurrentTime()); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java index 1512814..bcb71ab 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ChattingFragment.java @@ -93,15 +93,16 @@ import cn.shangyu.gdxzPatient.ecdemo.ui.contact.ECContacts; import cn.shangyu.gdxzPatient.ecdemo.ui.group.GroupInfoActivity; import cn.shangyu.gdxzPatient.ecdemo.ui.plugin.FileExplorerActivity; import cn.shangyu.gdxzPatient.greenrobot.event.EventBus; +import cn.shangyu.gdxzPatient.utils.BadgeCountUtils; import cn.shangyu.gdxzPatient.utils.EvenBusEvent; import cn.shangyu.gdxzPatient.utils.LogUtils; +import cn.shangyu.gdxzPatient.utils.UIUtils; import com.github.dfqin.grantor.PermissionListener; import com.github.dfqin.grantor.PermissionsUtil; import com.yuntongxun.ecsdk.ECChatManager; import com.yuntongxun.ecsdk.ECError; import com.yuntongxun.ecsdk.ECMessage; -import com.yuntongxun.ecsdk.ECVoIPCallManager.CallType; import com.yuntongxun.ecsdk.SdkErrorCode; import com.yuntongxun.ecsdk.im.ECFileMessageBody; import com.yuntongxun.ecsdk.im.ECGroup; @@ -205,6 +206,7 @@ public class ChattingFragment extends CCPFragment implements /** 在线客服 */ private boolean mCustomerService = false; private OnChattingAttachListener mAttachListener; + private boolean flag = true;//判断是否在当前页面 @Override protected int getLayoutId() { @@ -693,6 +695,7 @@ public class ChattingFragment extends CCPFragment implements if (mCustomerService) { CustomerServiceHelper.addCustomerServiceListener(this); } + flag = true; // 将所有的未读消息设置为已读 setChattingSessionRead(); mChattingAdapter.onResume(); @@ -1310,7 +1313,10 @@ public class ChattingFragment extends CCPFragment implements if (!isViewMode) mListView.setSelection(mListView.getCount() - 1); - setChattingSessionRead(); + LogUtil.i("更新所有的未读消息"); + if (flag){ + setChattingSessionRead(); + } } /** @@ -1318,8 +1324,41 @@ public class ChattingFragment extends CCPFragment implements */ private void setChattingSessionRead() { ConversationSqlManager.setChattingSessionRead(mThread); - } + int unreadCount = IMessageSqlManager.qureyAllSessionUnreadCount(); + int notifyUnreadCount = IMessageSqlManager.getUnNotifyUnreadCount(); + int count = unreadCount; + if (unreadCount >= notifyUnreadCount) { + count = unreadCount - notifyUnreadCount; + } + int i = ConversationSqlManager.qureySessionUnreadCountByFlag("1"); + //原生角标 + BadgeCountUtils.setBadgeCount(UIUtils.getContext(),i); + //华为角标 + setBadgeNum(i,UIUtils.getContext()); + + LogUtil.i("unreadCount1 = "+unreadCount+",notifyUnreadCount1 = "+notifyUnreadCount+",qureySessionUnreadCountByFlag1 = "+i); + } + @Override + public void onStop() { + super.onStop(); + flag = false; + LogUtil.i("flag = "+flag); + } + /** + * 设置角标 + */ + public static void setBadgeNum(int num, Context context) { + try { + Bundle bunlde = new Bundle(); + bunlde.putString("package", "cn.shangyu.gdxzPatient"); + bunlde.putString("class", "cn.shangyu.gdxzPatient.activity.MainActivity"); + bunlde.putInt("badgenumber", num); + context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bunlde); + } catch (Exception e) { + e.printStackTrace(); + } + } /** * 给予客户端震动提示 */ @@ -1496,12 +1535,8 @@ public class ChattingFragment extends CCPFragment implements } private void handleSelectImageIntent() { - // Intent i = new Intent(Intent.ACTION_PICK, - // MediaStore.Images.Media.EXTERNAL_CONTENT_URI); - // startActivityForResult(i, REQUEST_CODE_LOAD_IMAGE); Intent intent = new Intent(getChattingActivity(), PhotoSelectActivity.class); - // intent.putExtra("photonum", "-1"); intent.putExtra("type", "chat"); startActivityForResult(intent, REQUEST_CODE_LOAD_IMAGE); } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/IMChattingHelper.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/IMChattingHelper.java index 4bfcbff..d4af13f 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/IMChattingHelper.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/IMChattingHelper.java @@ -128,12 +128,12 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 发送ECMessage 消息 - * + * * @param msg */ - - + + public static long sendECMessage(ECMessage msg) { getInstance().checkChatManager(); // 获取一个聊天管理器 @@ -171,7 +171,7 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 消息重发 - * + * * @param msg * @return */ @@ -249,7 +249,7 @@ public class IMChattingHelper implements OnChatReceiveListener, new ECChatManager.OnGetPersonInfoListener() { @Override public void onGetPersonInfoComplete(ECError e, - PersonInfo p) { + PersonInfo p) { if (e.errorCode == SdkErrorCode.REQUEST_SUCCESS && p != null) { clientUser.setpVersion(p.getVersion()); @@ -380,12 +380,12 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 处理接收消息 - * + * * @param msg * @param showNotice */ private synchronized void postReceiveMessage(ECMessage msg, - boolean showNotice) { + boolean showNotice) { // 接收到的IM消息,根据IM消息类型做不同的处理 // IM消息类型:ECMessage.Type @@ -404,13 +404,25 @@ public class IMChattingHelper implements OnChatReceiveListener, .getAbsolutePath()); } else if (msg.getType() == Type.IMAGE) { ECImageMessageBody imageBody = (ECImageMessageBody) body; - thumbnail = !TextUtils.isEmpty(imageBody - .getThumbnailFileUrl()); - imageBody.setLocalUrl(new File(FileAccessor - .getImagePathName(), DemoUtils - .md5(thumbnail ? imageBody.getThumbnailFileUrl() - : imageBody.getRemoteUrl()) - + "." + fileExt).getAbsolutePath()); + thumbnail = !TextUtils.isEmpty(imageBody.getThumbnailFileUrl()); + String remoteUrl = imageBody.getRemoteUrl();//大图 + String thumbnailFileUrl = imageBody.getThumbnailFileUrl();//缩略图 + LogUtil.i("getRemoteUrl = "+imageBody.getRemoteUrl()); + LogUtil.i("getThumbnailFileUrl = "+imageBody.getThumbnailFileUrl()); + if (remoteUrl.contains(":0")){ + //http://:0/56032/8a48b5514fba2f87014fca72dec021e4/2019-09-24/18-17/1569320233439725917.jpg + //http://dcsvip1imapp.cloopen.net:8888/56032/8a48b5514fba2f87014fca72dec021e4/2019-09-24/18-17/1569320233439725917.jpg + String replace = remoteUrl.replace(":0", "dcsvip1imapp.cloopen.net:8888"); + String replace1 = thumbnailFileUrl.replace(":0", "dcsvip1imapp.cloopen.net:8888"); + LogUtil.i("replace ="+replace); + LogUtil.i("replace1 ="+replace1); + imageBody.setRemoteUrl(replace); + imageBody.setThumbnailFileUrl(replace1); + } + imageBody.setLocalUrl(new File(FileAccessor.getImagePathName(), DemoUtils.md5(thumbnail ? imageBody.getThumbnailFileUrl(): imageBody.getRemoteUrl())+ "." + fileExt).getAbsolutePath()); + LogUtil.i("getRemoteUrl修改后 = "+imageBody.getRemoteUrl()); + LogUtil.i("getThumbnailFileUrl修改后 = "+imageBody.getThumbnailFileUrl()); + LogUtil.i("getHDImageURL修改后 = "+imageBody.getHDImageURL()); } else { body.setLocalUrl(new File(FileAccessor.getFilePathName(), @@ -470,12 +482,12 @@ public class IMChattingHelper implements OnChatReceiveListener, } /** - * + * * @author Administrator * @date 2015-12-5 下午1:07:52 - * + * * 功能说明:根据专家id请求专家信息,暂时没用 - * + * * method */ // private static void requestData(final String expertUuid) { @@ -557,19 +569,19 @@ public class IMChattingHelper implements OnChatReceiveListener, + ConversationSqlManager.qureySessionUnreadCountByFlag("2")); LogUtils.e("推送未读消息数1==" + ConversationSqlManager - .qureyUnreadCountBySessionId(Constant.SENDER1)); + .qureyUnreadCountBySessionId(Constant.SENDER1)); LogUtils.e("推送未读消息数2==" + ConversationSqlManager - .qureyUnreadCountBySessionId(Constant.SENDER2)); + .qureyUnreadCountBySessionId(Constant.SENDER2)); LogUtils.e("推送未读消息数3==" + ConversationSqlManager - .qureyUnreadCountBySessionId(Constant.SENDER3)); + .qureyUnreadCountBySessionId(Constant.SENDER3)); LogUtils.e("推送未读消息数4==" + ConversationSqlManager - .qureyUnreadCountBySessionId(Constant.SENDER4)); + .qureyUnreadCountBySessionId(Constant.SENDER4)); LogUtils.e("推送未读消息数5==" + ConversationSqlManager - .qureyUnreadCountBySessionId(Constant.SENDER5)); + .qureyUnreadCountBySessionId(Constant.SENDER5)); LogUtils.e("离线消息==" + !isSyncOffline()); LogUtils.e("拓展字段:" + exture); if (!isSyncOffline()) { @@ -604,10 +616,10 @@ public class IMChattingHelper implements OnChatReceiveListener, || msg.getForm().equals("TNalkvtn7btb0UaQjaN") || msg.getForm().equals("Ezfuqp3JcqCP7YlMZxe") || msg.getForm().equals("ZDZXfl4uF1zqEFpEl1H") - // 08-02 15:09:31.410: E/LogUtils(10469): showNotification(ECMessage - // msg) msg.getForm():xlx60HdXXhYhqJTAJDA + // 08-02 15:09:31.410: E/LogUtils(10469): showNotification(ECMessage + // msg) msg.getForm():xlx60HdXXhYhqJTAJDA - ) { + ) { EventBus.getDefault().post(new EvenBusEvent("第二构造函数", "3")); LogUtils.e("系统消息通知>>>>>>>>>>>>>>"); @@ -702,7 +714,7 @@ public class IMChattingHelper implements OnChatReceiveListener, true); LogUtils.e("Constant.SYSTEMPOINT>>>" + SharePrefUtil.getBoolean(UIUtils.getContext(), - Constant.SYSTEMPOINT, true)); + Constant.SYSTEMPOINT, true)); if (mType.equals("23")) { EventBus.getDefault().post(new EvenBusEvent("第二构造函数", "5")); // 有好友申请了 } else { @@ -742,12 +754,12 @@ public class IMChattingHelper implements OnChatReceiveListener, } /** - * + * * @author Administrator * @date 2015-12-8 下午1:19:17 - * + * * 功能说明:系统消息通知 - * + * * method @param msg */ private static void showSystemNotify(ECMessage msg, boolean systemtoggle) { @@ -767,15 +779,15 @@ public class IMChattingHelper implements OnChatReceiveListener, if (!msgDomin.equals("null")) { String[] sourceStrArray = msgDomin.split(","); if (sourceStrArray.length>0){ - SharePrefUtil.saveString(UIUtils.getContext(),"re_article_type", sourceStrArray[0]); - } + SharePrefUtil.saveString(UIUtils.getContext(),"re_article_type", sourceStrArray[0]); + } if (sourceStrArray.length>1){ - SharePrefUtil.saveString(UIUtils.getContext(),"re_article_uuid", sourceStrArray[1]); - BaseApplication.ganDanHomeRead.add(sourceStrArray[1]); - } + SharePrefUtil.saveString(UIUtils.getContext(),"re_article_uuid", sourceStrArray[1]); + BaseApplication.ganDanHomeRead.add(sourceStrArray[1]); + } if (sourceStrArray.length>2){ - SharePrefUtil.saveString(UIUtils.getContext(),"re_msg_uuid", sourceStrArray[2]); - } + SharePrefUtil.saveString(UIUtils.getContext(),"re_msg_uuid", sourceStrArray[2]); + } } @@ -859,19 +871,19 @@ public class IMChattingHelper implements OnChatReceiveListener, messageInto = Constant.SENDER1; Systemtoggle(msg, systemtoggle); //7免费咨询 -》一问多答通知 - if ("7".equals(tuisongType)){ - LogUtil.i("step_uuidAll userDataResult = "+userDataResult); - String msg1 = json.getString("msgDomin"); - String[] split = msg1.split(","); - String string = SharePrefUtil.getString(UIUtils.getContext(), Constant.STEPUUID, ""); - if (StringUtil.isEmpty(string)){ - SharePrefUtil.saveString(UIUtils.getContext(),Constant.STEPUUID,split[1]); - }else if(!string.contains(split[1])){ - SharePrefUtil.saveString(UIUtils.getContext(),Constant.STEPUUID,string+","+split[1]); - } - SharePrefUtil.saveBoolean(UIUtils.getContext(),Constant.CONSULNEWTPOINT, true); - EventBus.getDefault().post(new EvenBusEvent("一问多答", "7")); - } + if ("7".equals(tuisongType)){ + LogUtil.i("step_uuidAll userDataResult = "+userDataResult); + String msg1 = json.getString("msgDomin"); + String[] split = msg1.split(","); + String string = SharePrefUtil.getString(UIUtils.getContext(), Constant.STEPUUID, ""); + if (StringUtil.isEmpty(string)){ + SharePrefUtil.saveString(UIUtils.getContext(),Constant.STEPUUID,split[1]); + }else if(!string.contains(split[1])){ + SharePrefUtil.saveString(UIUtils.getContext(),Constant.STEPUUID,string+","+split[1]); + } + SharePrefUtil.saveBoolean(UIUtils.getContext(),Constant.CONSULNEWTPOINT, true); + EventBus.getDefault().post(new EvenBusEvent("一问多答", "7")); + } } else if ("9".equals(tuisongType)) { LogUtils.v("群发消息"); @@ -943,7 +955,7 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 是否需要状态栏通知 - * + * * @param contactId */ public static boolean checkNeedNotification(String contactId) { @@ -1095,7 +1107,7 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 客服消息 - * + * * @param msg */ @Override @@ -1149,7 +1161,7 @@ public class IMChattingHelper implements OnChatReceiveListener, /** * 重试下载3次 - * + * * @param entry */ private void retryDownload(SyncMsgEntry entry) { @@ -1224,7 +1236,7 @@ public class IMChattingHelper implements OnChatReceiveListener, ECMessage msg; public SyncMsgEntry(boolean showNotice, boolean thumbnail, - ECMessage message) { + ECMessage message) { this.showNotice = showNotice; this.msg = message; this.thumbnail = thumbnail; @@ -1250,12 +1262,12 @@ public class IMChattingHelper implements OnChatReceiveListener, } } else if (msg.getNotifyType() == NotifyType.REVOKE) { ECMessageRevokeNotify revokeNotify = (ECMessageRevokeNotify) msg; - if(revokeNotify!=null){ - if(!revokeNotify.getRevoker().equalsIgnoreCase(CCPAppManager.getUserId())) - { - IMessageSqlManager.insertSysMessage("对方撤回了一条消息",revokeNotify.getSessionId()); - } - } + if(revokeNotify!=null){ + if(!revokeNotify.getRevoker().equalsIgnoreCase(CCPAppManager.getUserId())) + { + IMessageSqlManager.insertSysMessage("对方撤回了一条消息",revokeNotify.getSessionId()); + } + } IMessageSqlManager.delSingleMsg(revokeNotify.getMsgId()); if (mOnMessageReportCallback != null) { mOnMessageReportCallback.onMessageReport(null, null); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ImageGralleryPagerActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ImageGralleryPagerActivity.java index ffb4cd5..0d93d1c 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ImageGralleryPagerActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/ImageGralleryPagerActivity.java @@ -40,9 +40,6 @@ public class ImageGralleryPagerActivity extends ECSuperActivity implements public static final String EXTRA_IMAGE_INDEX = "image_index"; public static final String EXTRA_IMAGE_URLS = "image_urls"; - /** - * - */ private boolean mFullscreen = true; private HackyViewPager mPager; private int pagerPosition; @@ -107,7 +104,7 @@ public class ImageGralleryPagerActivity extends ECSuperActivity implements File file = null; // 由于不是聊天的图片查看无法下载保存 // if (viewImageInfo.getPicurl().contains(Url.imgUrl)) { - if (viewImageInfo.getPicurl().contains(Url.imgUrl)||viewImageInfo.getPicurl().contains(".jpg")) { + if (viewImageInfo.getPicurl().contains(Url.imgUrl)||viewImageInfo.getPicurl().contains(".jpg")||viewImageInfo.getPicurl().contains(".png")||viewImageInfo.getPicurl().contains(".gif")||viewImageInfo.getPicurl().contains(".jpeg")||viewImageInfo.getPicurl().contains(".tga")) { file = DiskCacheUtils.findInCache(viewImageInfo.getPicurl(),ImageLoader.getInstance().getDiskCache()); } else { file = new File(FileAccessor.getImagePathName(), viewImageInfo.getPicurl()); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/model/ImgInfo.java b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/model/ImgInfo.java index 955b83e..f1b6599 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/model/ImgInfo.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/ecdemo/ui/chatting/model/ImgInfo.java @@ -190,7 +190,13 @@ public class ImgInfo { values.put(ImgInfoSqlManager.ImgInfoColumn.TOTALLEN, totalLen); } // if(!TextUtils.isEmpty(bigImgPath)) { - if(!TextUtils.isEmpty(bigImgPath)&&bigImgPath.contains(".jpg")) { + if(!TextUtils.isEmpty(bigImgPath)&&bigImgPath.contains(".jpg")) {//判断接收到图片但为正常显示, + values.put(ImgInfoSqlManager.ImgInfoColumn.BIG_IMGPATH, bigImgPath); + }else if (!TextUtils.isEmpty(bigImgPath)&&bigImgPath.contains(".png")){ + values.put(ImgInfoSqlManager.ImgInfoColumn.BIG_IMGPATH, bigImgPath); + }else if (!TextUtils.isEmpty(bigImgPath)&&bigImgPath.contains(".gif")){ + values.put(ImgInfoSqlManager.ImgInfoColumn.BIG_IMGPATH, bigImgPath); + }else if (!TextUtils.isEmpty(bigImgPath)&&bigImgPath.contains(".jpeg")){ values.put(ImgInfoSqlManager.ImgInfoColumn.BIG_IMGPATH, bigImgPath); } if(!TextUtils.isEmpty(thumbImgPath)) { diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HepatopathyInfoFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HepatopathyInfoFragment.java index 33c4e1d..1d2e400 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HepatopathyInfoFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HepatopathyInfoFragment.java @@ -43,9 +43,9 @@ public class HepatopathyInfoFragment extends BaseFragment{ private void setData() { if (data.getGo_hospital()==0){ - tv_isgohospital.setText("无"); + tv_isgohospital.setText("否"); }else { - tv_isgohospital.setText("有"); + tv_isgohospital.setText("是"); } tv_long.setText(data.getDisease_date()); tv_state.setText(data.getLiver_status()); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HomeFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HomeFragment.java index a73019f..d9c5835 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HomeFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/HomeFragment.java @@ -502,8 +502,7 @@ public class HomeFragment extends BaseFragment implements OnClickListener, // 我的专家红点 public void setCount() { - if (iv_red_point != null - && ConversationSqlManager.qureySessionUnreadCountByFlag("1") != 0) { + if (iv_red_point != null&& ConversationSqlManager.qureySessionUnreadCountByFlag("1") != 0) { iv_red_point.setVisibility(View.VISIBLE); } else { @@ -1138,7 +1137,6 @@ public class HomeFragment extends BaseFragment implements OnClickListener, private void GetTopViewNet() { Map param = new HashMap<>(); - sendJsonPostParamtoNetSignMD5(Url.newsRollIndexNew, param, 11, this); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/OneToOneFragment.java b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/OneToOneFragment.java index 5efef01..15d0324 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/fragment/OneToOneFragment.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/fragment/OneToOneFragment.java @@ -127,7 +127,6 @@ public class OneToOneFragment extends BaseFragment implements PullToRefreshBase } public void refreshNet() { - sort = "1"; page = 1; requestData(); } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/BuyIntegerActivty.java b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/BuyIntegerActivty.java index 26d5de1..deed1d7 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/BuyIntegerActivty.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/BuyIntegerActivty.java @@ -96,26 +96,31 @@ public class BuyIntegerActivty extends BaseActivity implements View.OnClickListe private void getPointUnitPrice() { if (pd == null) { - pd = new CustomProgressDialog(BuyIntegerActivty.this, "创建订单中"); + pd = new CustomProgressDialog(BuyIntegerActivty.this, "请稍候"); } - pd.show(); - new Thread(){ - @Override - public void run() { - super.run(); - HttpHelper.HttpResult httpResult = HttpHelper.post( - Url.getPointUnitPrice, null);// 请求网络 - String result = httpResult.getString();// str为服务器返回的json串 - LogUtils.e("result = "+result); - try { - JSONObject jsonObject = new JSONObject(result); - pointUnitPrice = jsonObject.getString("PointUnitPrice"); - handler.sendEmptyMessage(1); - } catch (JSONException e) { - e.printStackTrace(); + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd.show(); + new Thread(){ + @Override + public void run() { + super.run(); + HttpHelper.HttpResult httpResult = HttpHelper.post( + Url.getPointUnitPrice, null);// 请求网络 + String result = httpResult.getString();// str为服务器返回的json串 + LogUtils.e("result = "+result); + try { + JSONObject jsonObject = new JSONObject(result); + pointUnitPrice = jsonObject.getString("PointUnitPrice"); + handler.sendEmptyMessage(1); + } catch (JSONException e) { + e.printStackTrace(); + } } - } - }.start(); + }.start(); + } else { + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } + } private void initOnListenr() { @@ -212,31 +217,55 @@ public class BuyIntegerActivty extends BaseActivity implements View.OnClickListe } break; case R.id.tv_buy: - if (!"0元".equals(tv_needpoint.getText().toString())){ - buildAlert1 = ECAlertDialog.buildAlert(BuyIntegerActivty.this, - "您确定是否购买?", "否", "是", - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) {// 取消 - // TODO Auto-generated method stub - - buildAlert1.dismiss(); - - } - }, new DialogInterface.OnClickListener() {// 确定 - @Override - public void onClick(DialogInterface dialog, int which) { - // TODO Auto-generated method stub - buildAlert1.dismiss(); - sendFlower(); + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + if (!"0元".equals(tv_needpoint.getText().toString())){ + buildAlert1 = ECAlertDialog.buildAlert(BuyIntegerActivty.this, + "您确定是否购买?", "否", "是", + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) {// 取消 + // TODO Auto-generated method stub + + buildAlert1.dismiss(); + + } + }, new DialogInterface.OnClickListener() {// 确定 + @Override + public void onClick(DialogInterface dialog, int which) { + // TODO Auto-generated method stub + buildAlert1.dismiss(); + sendFlower(); + } + }); + buildAlert1.setTitle("温馨提示"); + buildAlert1.setCanceledOnTouchOutside(false); + + buildAlert1.show(); + }else{ + new Thread(){ + @Override + public void run() { + super.run(); + HttpHelper.HttpResult httpResult = HttpHelper.post( + Url.getPointUnitPrice, null);// 请求网络 + String result = httpResult.getString();// str为服务器返回的json串 + LogUtils.e("result = "+result); + try { + JSONObject jsonObject = new JSONObject(result); + pointUnitPrice = jsonObject.getString("PointUnitPrice"); + handler.sendEmptyMessage(1); + } catch (JSONException e) { + e.printStackTrace(); } - }); - buildAlert1.setTitle("温馨提示"); - buildAlert1.setCanceledOnTouchOutside(false); + } + }.start(); + ToastUtil.showMessage("请选择您要购买的积分"); + } + + } else { + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } - buildAlert1.show(); - }else - ToastUtil.showMessage("请选择您要购买的积分"); break; case R.id.ll_500: chengeChoose(500); diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/IntegralTicketActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/IntegralTicketActivity.java index d4ba517..e5ebeff 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/IntegralTicketActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/IntegralTicketActivity.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import cn.shangyu.gdxzPatient.R; +import cn.shangyu.gdxzPatient.activity.AskAMoreInfoActivity; import cn.shangyu.gdxzPatient.activity.BaseActivity; import cn.shangyu.gdxzPatient.bean.PointTicketlistBean; import cn.shangyu.gdxzPatient.ecdemo.common.utils.DateUtil; @@ -87,11 +88,16 @@ public class IntegralTicketActivity extends BaseActivity implements RadioGroup.O } private void getPointTicketlist() { - pd.show(); - Map map = new HashMap<>(); - map.put("page",page+""); - map.put("status",status+""); - sendJsonPostParamtoNetSignMD5(Url.pointTicketlist,map,POINTTICKETLIST,this); + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + pd.show(); + Map map = new HashMap<>(); + map.put("page",page+""); + map.put("status",status+""); + sendJsonPostParamtoNetSignMD5(Url.pointTicketlist,map,POINTTICKETLIST,this); + } else { + pd.dismiss(); + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } } @Override diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/PointsMallActivity.java b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/PointsMallActivity.java index fb91e21..a62d085 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/PointsMallActivity.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/pointsmall/PointsMallActivity.java @@ -165,9 +165,15 @@ public class PointsMallActivity extends BaseActivity implements OnClickListener, private void getData() { // TODO Auto-generated method stub - Map param = new HashMap<>(); - param.put("page",startPage +""); - sendJsonPostParamtoNetSignMD5(Url.goodsList, param, 1, this); + if (UIUtils.isNetWorkConnected(UIUtils.getContext())) { + Map param = new HashMap<>(); + param.put("page",startPage +""); + sendJsonPostParamtoNetSignMD5(Url.goodsList, param, 1, this); + } else { + pd.dismiss(); + ToastUtil.showMessage("当前网络链接不可用..请检查网络.."); + } + } @Override diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeCountUtils.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeCountUtils.java new file mode 100644 index 0000000..b1d3341 --- /dev/null +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeCountUtils.java @@ -0,0 +1,24 @@ +package cn.shangyu.gdxzPatient.utils; + +import android.content.Context; + +import me.leolin.shortcutbadger.ShortcutBadger; + + +/** + * Created by 周旭 on 2017/4/12. + * 第三方库设置APP logo角标数量的工具类(机型适配比较好) + */ + +public class BadgeCountUtils { + + //设置APP logo的角标 + public static void setBadgeCount(Context context, int badgeCount) { + ShortcutBadger.applyCount(context, badgeCount); //for 1.1.4+ + } + + //移除角标 + public static void removeBadge(Context context) { + ShortcutBadger.removeCount(context); //for 1.1.4+ + } +} diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeUtils.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeUtils.java new file mode 100644 index 0000000..f53dd47 --- /dev/null +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/BadgeUtils.java @@ -0,0 +1,38 @@ +package cn.shangyu.gdxzPatient.utils; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; + +/** + * Created by 周旭 on 2017/4/12. + * Android原生方式设置角标 + */ + +public class BadgeUtils { + private static final String INTENT_ACTION = "android.intent.action.BADGE_COUNT_UPDATE"; + private static final String INTENT_EXTRA_BADGE_COUNT = "badge_count"; + private static final String INTENT_EXTRA_PACKAGENAME = "badge_count_package_name"; + private static final String INTENT_EXTRA_ACTIVITY_NAME = "badge_count_class_name"; + + //设置角标 + public static void setBadgeCount(Context context, int badgeCount) { + Intent intent = new Intent(INTENT_ACTION); + intent.putExtra(INTENT_EXTRA_BADGE_COUNT, badgeCount); + intent.putExtra(INTENT_EXTRA_PACKAGENAME, getComponentName(context).getPackageName()); + intent.putExtra(INTENT_EXTRA_ACTIVITY_NAME, getComponentName(context).getClassName()); + context.sendBroadcast(intent); + } + + //清除角标 + public static void removeBadge(Context context){ + setBadgeCount(context,0); + } + + //获取ComponentName + private static ComponentName getComponentName(Context context) { + return context.getApplicationContext().getPackageManager() + .getLaunchIntentForPackage(context.getApplicationContext().getPackageName()) + .getComponent(); + } +} diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Constant.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Constant.java index 2d6d7a1..4edf312 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Constant.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Constant.java @@ -59,7 +59,7 @@ public class Constant { public static final String MEDICALHISTORY = "medicalHistory";// 既往史 0没有病史 public static final String WHETHER_PREGNANT = "whether_pregnant";// 是否怀孕 public static final String EXPECTED_DATE_OF_CHILDBIRTH = "expected_date_of_childbirth";// 预产期 - public static final String WHETHER_HBV = "whether_hbv";// 乙肝或肝癌家族史 + public static final String WHETHER_HBV = "whether_hbv";// 肝硬化或肝癌家族史 public static final String HEIGHT = "height";// 身高 public static final String WEIGHT = "weight";// 体重 // 1有病史 @@ -132,5 +132,23 @@ public class Constant { public static boolean isSignIn;//签到 public static String wendaguize = "http://doc.igandan.com/app/integral/interrogation.html";//问答规则 - + /** + * 聊天类型,患者 + */ + public static String typePatient = "Patient";// 聊天类型,患者 + /** + * 聊天类型,公益咨询 + */ + public static String typeConsult = "Consult";// 聊天类型,公益咨询 + /** + * 聊天类型,即是患者也是公益咨询 + */ + public static String typePatientConsult = "PatientConsult";// 聊天类型,公益咨询 + /** + * 聊天类型,朋友圈里 + */ + public static String typeVip = "Vip";// 聊天类型,朋友圈里 + public static String isNotification = "isNotification";//是否打开通知栏 + public static String regID;//小米推送服务返回regid作为容联的 + public static String token;//华为推送服务返回作为容联的 } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/NotificationUtils.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/NotificationUtils.java index 6badbfb..0830fca 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/utils/NotificationUtils.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/NotificationUtils.java @@ -11,7 +11,12 @@ import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v4.app.NotificationCompat; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + import cn.shangyu.gdxzPatient.R; +import cn.shangyu.gdxzPatient.ecdemo.storage.ConversationSqlManager; +import cn.shangyu.gdxzPatient.ecdemo.storage.IMessageSqlManager; /** @@ -64,15 +69,33 @@ public class NotificationUtils extends ContextWrapper { .setSmallIcon(R.drawable.ic_launcher) .setContentIntent(pendingIntent); } - public void sendNotification(String title, String content){ + public void sendNotification(String title, String content,int count){ id = title; name = title; if (Build.VERSION.SDK_INT>=26){ createNotificationChannel(); Notification notification = getChannelNotification(title, content).build(); + notification.flags |= notification.FLAG_AUTO_CANCEL; + try { + Field field = notification.getClass().getDeclaredField("extraNotification"); + Object extraNotification = field.get(notification); + Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class); + method.invoke(extraNotification,count); + } catch (Exception e) { + e.printStackTrace(); + } getManager().notify(35,notification); }else{ Notification notification = getNotification_25(title, content).build(); + notification.flags |= notification.FLAG_AUTO_CANCEL; + try { + Field field = notification.getClass().getDeclaredField("extraNotification"); + Object extraNotification = field.get(notification); + Method method = extraNotification.getClass().getDeclaredMethod("setMessageCount", int.class); + method.invoke(extraNotification,count); + } catch (Exception e) { + e.printStackTrace(); + } getManager().notify(35,notification); } } diff --git a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java index 9f097fc..8c9c23e 100644 --- a/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java +++ b/app/src/main/java/cn/shangyu/gdxzPatient/utils/Url.java @@ -23,12 +23,11 @@ public class Url { public static String upLoadUrl = "http://app.igandan.com/app/upload/"; public static String zcxy = "http://app.igandan.com/patient_zcxy.jsp"; public static String urlVer = "http://app.igandan.com/app/"; - public static String urlH5 = "http://wx.igandan.com/"; - public static String urlmyLan = "https://app.igandan.com/app/patientAPI/";//迈兰、 - public static String urlping = "https://app.igandan.com/app/pingPatient/";//ping + public static String urlH5 = "http://wx.igandan.com/"; + public static String urlmyLan = "https://app.igandan.com/app/patientAPI/";//迈兰、 + public static String urlping = "https://app.igandan.com/app/pingPatient/";//ping // --------------------------------------------------------------------------------------------------------- - //肝胆相照测试 // public static String urlVer = "https://tapp.igandan.org/app/";// // public static String url = "https://tapp.igandan.org/app/patient/";// @@ -41,7 +40,6 @@ public class Url { // public static String urlping = "https://tapp.igandan.org/app/pingPatient/";//ping // public static String imgUrl = "http://192.168.100.99:8080/Mgdxz/"; - // public static String urlVer = "http://192.168.100.99:8080/Mgdxz/app/"; // public static String url = // "http://192.168.100.99:8080/Mgdxz/app/patient/"; diff --git a/app/src/main/res/drawable-hdpi/gettoken.png b/app/src/main/res/drawable-hdpi/gettoken.png new file mode 100644 index 0000000..214cd2e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/gettoken.png differ diff --git a/app/src/main/res/drawable-hdpi/upload.png b/app/src/main/res/drawable-hdpi/upload.png new file mode 100644 index 0000000..717c5cb Binary files /dev/null and b/app/src/main/res/drawable-hdpi/upload.png differ diff --git a/app/src/main/res/layout/activity_addexpert.xml b/app/src/main/res/layout/activity_addexpert.xml index 753a80e..d0635fb 100644 --- a/app/src/main/res/layout/activity_addexpert.xml +++ b/app/src/main/res/layout/activity_addexpert.xml @@ -23,7 +23,7 @@ android:lineSpacingExtra="5dp" android:paddingLeft="25dp" android:paddingRight="15dp" - android:text="添加医生为我的随访专家,获得医生同意后,可与医生零距离互动。" + android:text="此申请信息仅您和您的主治医生可见,请您务必填写真实信息,方便医生快速审核。添加医生为我的随访专家,获得医生同意后,可与医生零距离互动。" android:textColor="#a4aaaa" android:textSize="@dimen/textsize" /> @@ -72,22 +72,69 @@ android:orientation="vertical" > - + + + + + + + + + + + + + + android:text="请您同意我作为您的随访患者。" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + + + + + + + + + + + + + + + /> @@ -249,10 +318,32 @@ android:id="@+id/tv_name4" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="我是赵丽,在" + android:text="我是" android:textColor="#323232" android:textSize="@dimen/textsize" /> + + + + + + /> - + + + + + diff --git a/app/src/main/res/layout/activity_familycontactinfo.xml b/app/src/main/res/layout/activity_familycontactinfo.xml index 81d4f74..c7fbda7 100644 --- a/app/src/main/res/layout/activity_familycontactinfo.xml +++ b/app/src/main/res/layout/activity_familycontactinfo.xml @@ -380,7 +380,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:gravity="center_vertical" - android:text="乙肝或肝癌家族史" + android:text="肝硬化或肝癌家族史" android:textColor="@color/tv_bg" android:textSize="@dimen/textsize" /> diff --git a/app/src/main/res/layout/activity_personinfo.xml b/app/src/main/res/layout/activity_personinfo.xml index 0bbda08..19a2fce 100644 --- a/app/src/main/res/layout/activity_personinfo.xml +++ b/app/src/main/res/layout/activity_personinfo.xml @@ -572,7 +572,7 @@ android:layout_marginLeft="15dp" android:layout_centerVertical="true" android:gravity="center_vertical" - android:text="乙肝或肝癌家族史" + android:text="肝硬化或肝癌家族史" android:textColor="@color/black" android:textSize="@dimen/textsize" /> diff --git a/app/src/main/res/layout/activity_personinfo1.xml b/app/src/main/res/layout/activity_personinfo1.xml index 5cf7b47..16b7cf4 100644 --- a/app/src/main/res/layout/activity_personinfo1.xml +++ b/app/src/main/res/layout/activity_personinfo1.xml @@ -350,7 +350,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" - android:text="" + android:text="10" android:textColor="@color/c999999" android:textSize="@dimen/textsizea" /> @@ -713,7 +713,7 @@ android:layout_marginLeft="20dp" android:layout_centerVertical="true" android:gravity="center_vertical" - android:text="乙肝或肝癌家族史" + android:text="肝硬化或肝癌家族史" android:textColor="@color/tv_bg" android:textSize="@dimen/textsize" /> diff --git a/app/src/main/res/layout/dialog_notification.xml b/app/src/main/res/layout/dialog_notification.xml new file mode 100644 index 0000000..401e00d --- /dev/null +++ b/app/src/main/res/layout/dialog_notification.xml @@ -0,0 +1,86 @@ + + + + + + + + + +