作者 朱振飞

bugly

... ... @@ -125,5 +125,5 @@ dependencies {
implementation 'org.jetbrains:annotations:15.0'
implementation 'com.ycjiang:imgepreviewlibrary:1.1.3'
implementation 'org.jetbrains:annotations:15.0'
implementation 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0
}
... ...
... ... @@ -28,6 +28,9 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<!--bugly-->
<uses-permission android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions" />
<application
android:name=".base.MyApplication"
... ...
... ... @@ -11,7 +11,7 @@ public class Config {
public static String Type = "";
public static String Token = "";
public static String ClassId;
public static int id;
public static int id;//孩子的id
public static int Student_id;
public static String UserId = "";
public static String UserName = "";
... ...
... ... @@ -8,6 +8,7 @@ import com.bumptech.glide.Glide;
import com.guoxiaoxing.phoenix.core.listener.ImageLoader;
import com.guoxiaoxing.phoenix.picker.Phoenix;
import com.kongzue.dialog.util.DialogSettings;
import com.tencent.bugly.crashreport.CrashReport;
import cn.jpush.android.api.JPushInterface;
... ... @@ -19,6 +20,8 @@ public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
application = this;
//初始化bugly
CrashReport.initCrashReport(getApplicationContext(), "21d3932c42", false);
//初始化极光sdk
JPushInterface.setDebugMode(true);//正式版的时候设置false,关闭调试
JPushInterface.init(this);
... ...
... ... @@ -12,6 +12,7 @@ import android.view.ViewGroup;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.tencent.bugly.crashreport.CrashReport;
import com.yinhebairong.clasmanage.Config;
import com.yinhebairong.clasmanage.R;
import com.yinhebairong.clasmanage.base.BaseActivity;
... ... @@ -62,7 +63,7 @@ public class MainActivity extends BaseActivity {
Config.ClassId = (String) SharedPreferenceUtil.get(this, M.ClassId, "");
Config.IDENTITY = (int) SharedPreferenceUtil.get(this, M.IDENTITY, Config.IDENTITY);
Config.StudentPhoto = (String) SharedPreferenceUtil.get(this, M.STUDENTPHOTO, "");
CrashReport.setUserId(Config.UserName + Config.UserId);//给bugly设置uid,让bugly知道是谁崩溃的
Log.e("11Config.IDENTITY===", "===" + Config.IDENTITY);
if (Config.IDENTITY == 0) {//老师
listfrag.add(new HomeFragment()); // 教师端首页
... ...
... ... @@ -12,8 +12,10 @@ import android.widget.Toast;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.kongzue.dialog.v3.WaitDialog;
import com.yinhebairong.clasmanage.Config;
import com.yinhebairong.clasmanage.R;
import com.yinhebairong.clasmanage.adapter.jxtadapter.Jxt_Class_Adapter;
import com.yinhebairong.clasmanage.adapter.jxtadapter.Jxt_StudentAdapter;
import com.yinhebairong.clasmanage.adapter.jxtadapter.Jxt_TeacherAdapter;
import com.yinhebairong.clasmanage.base.BaseActivity;
... ... @@ -21,6 +23,8 @@ import com.yinhebairong.clasmanage.base.instant.Layout;
import com.yinhebairong.clasmanage.base.instant.TopNavigationBar;
import com.yinhebairong.clasmanage.base.instant.slideslip.SlideLip;
import com.yinhebairong.clasmanage.entity.getClassPersonListEntity;
import com.yinhebairong.clasmanage.m.M;
import com.yinhebairong.clasmanage.ui.jxt.fragment.Jl.JsjlActivity;
import com.yinhebairong.clasmanage.view.DebugLog;
import java.util.ArrayList;
... ... @@ -52,7 +56,6 @@ public class Jsbj_Activity extends BaseActivity {
@Override
protected void initData() {
DebugLog.e("sssssssssssssswwws");
includeBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
... ... @@ -71,6 +74,7 @@ public class Jsbj_Activity extends BaseActivity {
bjList.setLayoutManager(new LinearLayoutManager(this));
bjList.setFocusable(false);
if (getIntent().getSerializableExtra("AllDate") == null) {
WaitDialog.show(Jsbj_Activity.this, "请稍候...");
Api().getClassPersonList(Config.Token)
.subscribeOn(Schedulers.io())
//需要在主线程更新UI
... ... @@ -83,53 +87,59 @@ public class Jsbj_Activity extends BaseActivity {
@Override
public void onNext(getClassPersonListEntity getClassListEntity) {
Jsbj_Activity.this.getClassListEntity = getClassListEntity;
jxt_class_adapter = new Jxt_Class_Adapter(R.layout.item_jxt_class_selsct, getClassListEntity.getData());
bjList.setAdapter(jxt_class_adapter);
jxt_class_adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
List<getClassPersonListEntity.DataBean> data = jxt_class_adapter.getData();
if (data.get(position).isChecked()) {
data.get(position).setChecked(false);
for (int i = 0; i < data.get(position).getStudent().size(); i++) {
data.get(position).getStudent().get(i).setChecked(false);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(false);
}
} else {
data.get(position).setChecked(true);
for (int i = 0; i < data.get(position).getStudent().size(); i++) {
data.get(position).getStudent().get(i).setChecked(true);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(true);
WaitDialog.dismiss();
if (getClassListEntity.getCode() == M.success) {
if (null == getClassListEntity.getData() || getClassListEntity.getData().size() == 0) {
return;
}
Jsbj_Activity.this.getClassListEntity = getClassListEntity;
jxt_class_adapter = new Jxt_Class_Adapter(R.layout.item_jxt_class_selsct, getClassListEntity.getData());
bjList.setAdapter(jxt_class_adapter);
jxt_class_adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
List<getClassPersonListEntity.DataBean> data = jxt_class_adapter.getData();
if (data.get(position).isChecked()) {
data.get(position).setChecked(false);
for (int i = 0; i < data.get(position).getStudent().size(); i++) {
data.get(position).getStudent().get(i).setChecked(false);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(false);
}
} else {
data.get(position).setChecked(true);
for (int i = 0; i < data.get(position).getStudent().size(); i++) {
data.get(position).getStudent().get(i).setChecked(true);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(true);
}
}
jxt_class_adapter.notifyDataSetChanged();
}
jxt_class_adapter.notifyDataSetChanged();
}
});
jxt_class_adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
DebugLog.e("wc===1");
List<getClassPersonListEntity.DataBean> data = jxt_class_adapter.getData();
});
jxt_class_adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
DebugLog.e("wc===1");
List<getClassPersonListEntity.DataBean> data = jxt_class_adapter.getData();
if (data.get(position).isShow()) {
data.get(position).setShow(false);
} else {
data.get(position).setShow(true);
if (data.get(position).isShow()) {
data.get(position).setShow(false);
} else {
data.get(position).setShow(true);
}
jxt_class_adapter.notifyDataSetChanged();
}
jxt_class_adapter.notifyDataSetChanged();
}
});
});
}
}
@Override
public void onError(Throwable e) {
WaitDialog.dismiss();
}
@Override
... ...
... ... @@ -13,6 +13,7 @@ import android.widget.Toast;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.kongzue.dialog.v3.WaitDialog;
import com.yinhebairong.clasmanage.Config;
import com.yinhebairong.clasmanage.R;
import com.yinhebairong.clasmanage.adapter.jxtadapter.HdbjAdatper;
... ... @@ -21,6 +22,8 @@ import com.yinhebairong.clasmanage.adapter.jxtadapter.Jxt_jl_StudentAdapter;
import com.yinhebairong.clasmanage.base.BaseActivity;
import com.yinhebairong.clasmanage.base.instant.Layout;
import com.yinhebairong.clasmanage.entity.getClassListEntity;
import com.yinhebairong.clasmanage.m.M;
import com.yinhebairong.clasmanage.ui.jxt.activity.HD.Fbhd_Activity;
import com.yinhebairong.clasmanage.view.DebugLog;
import java.util.ArrayList;
... ... @@ -53,7 +56,8 @@ public class JsjlActivity extends BaseActivity {
List<getClassListEntity.DataBean> list = new ArrayList<>();
@Override
protected void initData() {DebugLog.e("ssssssssssss");
protected void initData() {
DebugLog.e("ssssssssssss");
includeBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
... ... @@ -76,6 +80,7 @@ public class JsjlActivity extends BaseActivity {
jlList.setAdapter(jsjl_adapter);
if (getIntent().getSerializableExtra("AllDate") == null) {
WaitDialog.show(JsjlActivity.this, "请稍候...");
Api().getClassList(Config.Token)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
... ... @@ -88,51 +93,56 @@ public class JsjlActivity extends BaseActivity {
@Override
public void onNext(getClassListEntity getClassListEntity) {
// JsjlActivity.this.getClassListEntity = getClassListEntity;
list.addAll(getClassListEntity.getData());
jsjl_adapter.notifyDataSetChanged();
jsjl_adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
List<com.yinhebairong.clasmanage.entity.getClassListEntity.DataBean> data = jsjl_adapter.getData();
if (data.get(position).isChecked()) {
data.get(position).setChecked(false);
for (int i = 0; i < data.get(position).getParent().size(); i++) {
data.get(position).getParent().get(i).setChecked(false);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(false);
}
} else {
data.get(position).setChecked(true);
for (int i = 0; i < data.get(position).getParent().size(); i++) {
data.get(position).getParent().get(i).setChecked(true);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(true);
}
}
adapter.notifyDataSetChanged();
WaitDialog.dismiss();
if (getClassListEntity.getCode() == M.success) {
if (null == getClassListEntity.getData() || getClassListEntity.getData().size() == 0) {
return;
}
});
jsjl_adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
List<com.yinhebairong.clasmanage.entity.getClassListEntity.DataBean> data = jsjl_adapter.getData();
if (data.get(position).isShow()) {
data.get(position).setShow(false);
} else {
data.get(position).setShow(true);
list.addAll(getClassListEntity.getData());
jsjl_adapter.notifyDataSetChanged();
jsjl_adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
List<com.yinhebairong.clasmanage.entity.getClassListEntity.DataBean> data = jsjl_adapter.getData();
if (data.get(position).isChecked()) {
data.get(position).setChecked(false);
for (int i = 0; i < data.get(position).getParent().size(); i++) {
data.get(position).getParent().get(i).setChecked(false);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(false);
}
} else {
data.get(position).setChecked(true);
for (int i = 0; i < data.get(position).getParent().size(); i++) {
data.get(position).getParent().get(i).setChecked(true);
}
for (int i = 0; i < data.get(position).getTeacher().size(); i++) {
data.get(position).getTeacher().get(i).setChecked(true);
}
}
adapter.notifyDataSetChanged();
}
adapter.notifyDataSetChanged();
});
jsjl_adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
List<com.yinhebairong.clasmanage.entity.getClassListEntity.DataBean> data = jsjl_adapter.getData();
if (data.get(position).isShow()) {
data.get(position).setShow(false);
} else {
data.get(position).setShow(true);
}
adapter.notifyDataSetChanged();
}
});
}
});
}
}
@Override
public void onError(Throwable e) {
WaitDialog.dismiss();
}
@Override
... ... @@ -244,7 +254,7 @@ public class JsjlActivity extends BaseActivity {
}
class Jsjl_Adapter extends BaseQuickAdapter<getClassListEntity.DataBean, BaseViewHolder> {
// private Jxt_jl_StudentAdapter class_adapter;
// private Jxt_jl_StudentAdapter class_adapter;
// private Jxt_Jl_TeacherAdapter jxt_teacherAdapter;
private int x = 0;
private int y = 0;
... ...
... ... @@ -170,6 +170,8 @@ public class LoginActivity extends BaseActivity {
M.toast(activity, "登录成功");
Config.Token = entity.getData().getToken();
Config.Type = entity.getData().getUser().getType();
Config.UserName=entity.getData().getUser().getName();
Config.UserId=entity.getData().getUser().getId();
Gson gson = new Gson();
String UserJson = gson.toJson(entity);
Log.i("json", "onNext: "+UserJson);
... ...
/**
* Automatically generated file. DO NOT MODIFY
*/
package cn.bingoogolapple.qrcode.core.test;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "cn.bingoogolapple.qrcode.core.test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
... ...
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.bingoogolapple.qrcode.core.test" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="28" />
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:functionalTest="false"
android:handleProfiling="false"
android:label="Tests for cn.bingoogolapple.qrcode.core.test"
android:targetPackage="cn.bingoogolapple.qrcode.core.test" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<application android:debuggable="true" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
\ No newline at end of file
... ...
[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"qrcodecore-debug-androidTest.apk","fullName":"debugAndroidTest","baseName":"debug-androidTest"},"path":"AndroidManifest.xml","properties":{}}]
\ No newline at end of file
... ...
/**
* Automatically generated file. DO NOT MODIFY
*/
package cn.bingoogolapple.qrcode.zxing.test;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "cn.bingoogolapple.qrcode.zxing.test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
... ...
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.bingoogolapple.qrcode.zxing.test" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="28" />
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:functionalTest="false"
android:handleProfiling="false"
android:label="Tests for cn.bingoogolapple.qrcode.zxing.test"
android:targetPackage="cn.bingoogolapple.qrcode.zxing.test" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<application android:debuggable="true" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
\ No newline at end of file
... ...
[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"zxing-debug-androidTest.apk","fullName":"debugAndroidTest","baseName":"debug-androidTest"},"path":"AndroidManifest.xml","properties":{}}]
\ No newline at end of file
... ...