diff --git a/app/build.gradle b/app/build.gradle index bda3af8..3472325 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,17 @@ def url = rootProject.ext.url android { + signingConfigs { + + config { + keyAlias 'alias' + keyPassword '123456' + storeFile file('key.jks') + storePassword '123456' + } + debug { + } + } compileSdk 32 defaultConfig { @@ -20,12 +31,28 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + android.applicationVariants.all { + variant -> + variant.outputs.all { + //在这里修改apk文件名 + outputFileName = "parent-${variant.name}-v${variant.versionName}.apk" + } + } buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.config } } + lintOptions { + checkReleaseBuilds false + abortOnError false + } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 @@ -38,5 +65,5 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - + implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.50' } \ No newline at end of file diff --git a/app/key.jks b/app/key.jks new file mode 100644 index 0000000000000000000000000000000000000000..39b53375565e6d1926606fd6f26080daf4c3a588 GIT binary patch literal 2646 zcma);X*d)N*T-k38JUR;SrP_iFU;5miN-R>ErYRdNpz1ajTS>1nz9Tj#ulML)*)N= zt!$a>d$cJbW$eZpPw(|USNHXNdY%vGoa_Al=bVrK>mVsGD-iGyk^c z4+H5GC<{!1&i}?UND8F*KO{&7m;y=tjgx*yJjaoLZ*jqZAUXwd{x{S?di~jea3dX% zn*X$1$kSl{D#@pWypRHunM+~ckW>7cowvEAKp1w1fQy6$#9ndF!!N+2cmY2KL3C9%$SaVvfB zz-^Fn7PneARqsbijHeb(5 zqsS}u(EU|%6GBanZ5mnsqN*_ z)03%{x<6YS7Y?JcV+I!7F--MKg!GWen61uV5v;6e;nAvl;bZL;J8-xV=e3qDc3*_r z&h_MRtyXO-Yr9#IcDuQt77fgD#&lspW}9pR%I&Kxg*J9-@Ak<-M4eZggpJ6wwf4zL z3`M_1@)4XaxR{qrWE7X6NFHjpSq{La>?s-{MwHsWHhVhp_z>rF`M9#z95VMVkzU%g zP5I=fjfflgQD8TX#un@7j^@qIh#h$)FusrS6V;$2Ppo!4x{UbddhOTRcO!Y)t(^W!GJlR@q^eOHsJa^2@)PO4b)f~88Zr|hW= z_8vCMlPV)*)TSi=AYr@K+Ez!~SwK>-Q1~+1@Jz84uU~x4bjl-G1M%hB_E!wbl3AW_ z|K^*{QpSKhTpv*Zf14F+FtJlxPCY&?fybu4H*p==KN^>i8v4DcuZi0(z%O+nl=UlV z`3Ls)Gw-&gXYS3H^#?J=7~DEd;&eEpEG*l!BF9jip2NTP=}Ymv-l^+oK+BF;_X@(+ z17UY(=$UtLDdcD_mkupJm=@63^PX`POyG&cef!#elU<6#zr!PepP@ni5TgrDhA*l_}HK`Dwlhs}nuGw!0$^GM%_jHklEHox}&0 zYGrjrRSLs~=cGdw&6)8X2oe`Hu}EkNZ7Qs0p=9N9RnrB4o%l;cbO55mu@q@_~o>o z%6tmy9y<1Dw(<6;yB*DnV<99wMK`87I8Op`vym}IXa^FFHn zGDJ;Y>mNbsB8C6hC6phO2<%uQMUl|&_)_viIzZLfIoxCN#yPyiZVAuPNAV!6d7e-$5j{di+m@=B}k-eA1 zhJ>^q!LvM3ktxeo#+k;<)#NSZSdqILy#WE+((v{mm?SWz61d%7FOJ>JYYMD-HYlgg z+%i%Ld~DrR(KL@|ME?vf_D@UXu=6+7-RrelKUB=&qTus6zNX?<-G;!4fnms~oK#F* zZ|&T=99>)VO`4r>Gt!m>WdRnxWcN=#%G9W~_@+-4`TMrRg>$dYLny)6nw;xLJPW!x zR^3kOU`U;cjYr8MM5^(%8#Cil(jFJA4_Avw81%#toT3Oh+_nfS7us+M9KF(Dt5u1F znAVpZR*!z+7W{+EnXEHwl3TqHsru$BFbNF`&yD7x9k5tESKx?Oh5mSq_}1Ny`|*ln zphoC~(Phm>0q)LRNLc$6%BC~+O&$7E=4Shkq>8)Qf-#noaeAs{W4A8bnK0{LVp>D( zA_r_6KS|{l4&cYM<~9{^Wv@1)kJecSQHxIF$DmC<(kzDck;tJLd@JOLFLq>)KJ5+q zU=h0&AT0i>;%4Iun!$#dgP_GhKF34#o#UmxS>{*p%NsLUdmKI`?`%fD>{>v|5+2jG z9z<#LWc#|Bp9ss1jyy9_8jkbr!5A~AQU)%Zwf7~=)qafb7gNnp)53}nc9Mnb{neJ% z*WQ92c7Bwu=k+rI9XN?vPB&dlAKA_tM^skQh~B4$8t!tLX`fGsXZv<3aqbStucmj5 zwq>sJv=LW4WJ4^~cedfgikKo?4-eO_)@wcXMX-q7fpKQHq`wG(1sf(Of`T{-IFeSi62hCu2=_N zJOPTt9S?cXtUPh2Kz;+n19tYto`znj`Q`fE9hQUI-t<5?UC?D#Wd?NqcrG_}#~(*V z4yBFHsl#BINOL3#$^GZo0s$caumoRDLoVlrYJrqiVE09Khz71e`H{ki$pX_?LGfwk g=T~6 @@ -22,50 +23,76 @@ + android:theme="@style/Theme.Parent"> + android:exported="true" + android:theme="@style/ThemeSplash"> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/hjx/parent/AccountActivity.java b/app/src/main/java/com/hjx/parent/AccountActivity.java index 975eef2..99ea915 100644 --- a/app/src/main/java/com/hjx/parent/AccountActivity.java +++ b/app/src/main/java/com/hjx/parent/AccountActivity.java @@ -1,13 +1,54 @@ package com.hjx.parent; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.NetworkRequest; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.provider.MediaStore; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; +import androidx.core.content.FileProvider; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.bottomsheet.BottomSheetDialog; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; +import com.prws.common.bean.ResponseResult; +import com.prws.common.net.NetWorks; +import com.prws.common.utils.LogUtil; +import com.prws.common.utils.ScreenUtils; import com.prws.common.utils.SharedPreferencesUtil; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; +import okhttp3.ResponseBody; + public class AccountActivity extends BaseActivity { + @Override protected int layoutResId() { return R.layout.activity_setac; @@ -23,12 +64,25 @@ public class AccountActivity extends BaseActivity { return null; } - + private static int CAMERA_REQUEST_CODE = 343; + private static int ALBUM_REQUEST_CODE = 456; + private static int CROP_REQUEST_CODE = 234; + private File tempFile; + private String path; TextView tv_6; + @BindView(R.id.iv_3) + ImageView iv_3; + @Override protected void initView() { tv_6 = findViewById(R.id.tv_6); String phone = (String) SharedPreferencesUtil.getData("phone", ""); + String photo = (String) SharedPreferencesUtil.getData("photo", ""); + if(!TextUtils.isEmpty(photo)){ + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(AccountActivity.this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(AccountActivity.this).load(photo).apply(options).into(iv_3); + } if (phone != null && phone.length() > 0) tv_6.setText(phone); } @@ -36,7 +90,6 @@ public class AccountActivity extends BaseActivity { @Override protected void initListener() { findViewById(R.id.iv_back).setOnClickListener(view -> onBackPressed()); - findViewById(R.id.tv_7).setOnClickListener(view -> startActivity(ChangePwdActivity.class)); } @@ -49,4 +102,235 @@ public class AccountActivity extends BaseActivity { public void onNetChanged(int netWorkState) { } + + private void uploadAvatar(File file) { + + NetWorks.uploadAvatar(file, new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseResult> responseBody) { + if (responseBody.getData() != null && responseBody.getCode() == 200) { + path = responseBody.getData().get("imageUrl"); + editUser(path); + } + } + + @Override + public void onError(Throwable e) { + e.toString(); + } + + @Override + public void onComplete() { + + } + }); + } + + public void editUser(String path) { + Map map = new HashMap(); + map.put("userId", SharedPreferencesUtil.getData("userId", "")); + map.put("photo", path); + + NetWorks.editUser(NetWorks.getMapRequestBody(map), new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String str = responseBody.string().toString(); + LogUtil.e(TAG, "----" + str); + JSONObject jo = new JSONObject(str); + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { + SharedPreferencesUtil.putData("photo", path); + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(AccountActivity.this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(AccountActivity.this).load(path).apply(options).into(iv_3); + Toast.makeText(AccountActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(AccountActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); + } + } catch (Exception e) { + e.printStackTrace(); + Toast.makeText(AccountActivity.this, "服务繁忙,请重试", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + public File saveImage(String name, Bitmap bmp) { + File appDir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath()); + if (!appDir.exists()) { + appDir.mkdir(); + } + String fileName = name + ".jpg"; + File file = new File(appDir, fileName); + try { + FileOutputStream fos = new FileOutputStream(file); + bmp.compress(Bitmap.CompressFormat.PNG, 100, fos); + fos.flush(); + fos.close(); + return file; + } catch (IOException e) { + Log.d("dsadsadsa", e.getLocalizedMessage()); + e.printStackTrace(); + } + return null; + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (requestCode == CAMERA_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + //用相机返回的照片去调用剪裁也需要对Uri进行处理 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Uri contentUri = FileProvider.getUriForFile(this, + this.getPackageName() + ".fileprovider", tempFile); + cropPhoto(contentUri); + } else { + cropPhoto(Uri.fromFile(tempFile)); + } + } + } else if (requestCode == ALBUM_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + Uri uri = intent.getData(); + cropPhoto(uri); + } + } else if (requestCode == CROP_REQUEST_CODE) { + if (intent == null) { + return; + } + Bundle bundle = intent.getExtras(); + if (bundle != null) { + //在这里获得了剪裁后的Bitmap对象,可以用于上传 + Bitmap image = bundle.getParcelable("data"); + //设置到ImageView上 + //也可以进行一些保存、压缩等操作后上传 + File file = saveImage("head_output", image); + uploadAvatar(file); + // Log.d("dsadsadsa",path); + } + } + } + + private void getPicFromCamera() { + //用于保存调用相机拍照后所生成的文件 + tempFile = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg"); + //跳转到调用系统相机 + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + //判断版本 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //如果在Android7.0以上,使用FileProvider获取Uri + intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + Uri contentUri = FileProvider.getUriForFile(this, + this.getPackageName() + ".fileprovider", tempFile); + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri); + } else { //否则使用Uri.fromFile(file)方法获取Uri + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile)); + } + startActivityForResult(intent, CAMERA_REQUEST_CODE); + } + + private void cropPhoto(Uri uri) { + Uri contentUri = Uri.fromFile(new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg")); + Intent intent = new Intent("com.android.camera.action.CROP"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + //Android 7.0需要临时添加读取Url的权限, 添加此属性是为了解决:调用裁剪框时候提示:图片无法加载或者加载图片失败或者无法加载此图片 + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + intent.setDataAndType(uri, "image/*"); + intent.putExtra("crop", "true");//发送裁剪信号,去掉也能进行裁剪 + intent.putExtra("scale", true);// 设置缩放 + intent.putExtra("scaleUpIfNeeded", true);// 去黑边 + intent.putExtra("aspectX", 1); + intent.putExtra("aspectY", 1); + //上述两个属性控制裁剪框的缩放比例。 + //当用户用手拉伸裁剪框时候,裁剪框会按照上述比例缩放。 + intent.putExtra("outputX", 300);//属性控制裁剪完毕,保存的图片的大小格式。 + intent.putExtra("outputY", 300);//你按照1:1的比例来裁剪的,如果最后成像是800*400,那么按照2:1的样式保存, + intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());//输出裁剪文件的格式 + intent.putExtra("return-data", true);//是否返回裁剪后图片的Bitmap + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri);//设置输出路径 + startActivityForResult(intent, CROP_REQUEST_CODE); + } + + /** + * 从相册获取图片 + */ + private void getPicFromAlbm() { + Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); + photoPickerIntent.setType("image/*"); + startActivityForResult(photoPickerIntent, ALBUM_REQUEST_CODE); + } + + @OnClick(R.id.iv_3) + public void showButtonDialog(View view) { + BottomSheetDialog dialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); + View bottomView = LayoutInflater.from(this).inflate(R.layout.bottom_sheet_layout, null); + dialog.setContentView(bottomView); + bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromCamera(); + } + }); + bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromAlbm(); + } + }); + bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + dialog.show(); + } + + @OnClick(R.id.logout) + public void logout(View view) { + AlertDialog.Builder builder = new AlertDialog.Builder(this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert); + builder.setTitle("温馨提示"); + builder.setMessage("是否退出登录?"); + builder.setCancelable(false); + builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + } + }); + builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + SharedPreferencesUtil.clear(AccountActivity.this); + dialogInterface.dismiss(); + setResult(1001); + finish(); + } + }); + builder.show(); + } + } \ No newline at end of file diff --git a/app/src/main/java/com/hjx/parent/AddStudentActivity.java b/app/src/main/java/com/hjx/parent/AddStudentActivity.java index b9df720..74f4231 100644 --- a/app/src/main/java/com/hjx/parent/AddStudentActivity.java +++ b/app/src/main/java/com/hjx/parent/AddStudentActivity.java @@ -1,22 +1,45 @@ package com.hjx.parent; +import android.content.Intent; +import android.graphics.Bitmap; import android.graphics.Color; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.provider.MediaStore; +import android.util.Log; +import android.view.LayoutInflater; import android.view.View; import android.widget.Button; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import androidx.core.content.FileProvider; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.bottomsheet.BottomSheetDialog; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; +import com.prws.common.bean.ResponseResult; import com.prws.common.net.NetWorks; import com.prws.common.utils.LogUtil; +import com.prws.common.utils.ScreenUtils; import com.prws.common.utils.SharedPreferencesUtil; import org.json.JSONObject; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.HashMap; import java.util.Map; +import butterknife.BindView; +import butterknife.OnClick; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import okhttp3.ResponseBody; @@ -43,6 +66,8 @@ public class AddStudentActivity extends BaseActivity { View view_5; Button btn_next; TextView tv_name, tv_sex, tv_nian, tv_shen; + @BindView(R.id.iv_avatar) + ImageView iv_avatar; @Override protected void initView() { @@ -54,8 +79,6 @@ public class AddStudentActivity extends BaseActivity { tv_sex = findViewById(R.id.tv_sex); tv_nian = findViewById(R.id.tv_nian); tv_shen = findViewById(R.id.tv_shen); - - btn_next = findViewById(R.id.btn_next); } @@ -63,13 +86,18 @@ public class AddStudentActivity extends BaseActivity { boolean isSex = false; boolean isNian = false; boolean isShen = false; + private static int CAMERA_REQUEST_CODE = 343; + private static int ALBUM_REQUEST_CODE = 456; + private static int CROP_REQUEST_CODE = 234; + private File tempFile; + private String path; @Override protected void onStart() { super.onStart(); String name = (String) SharedPreferencesUtil.getData("setName", ""); String sex = (String) SharedPreferencesUtil.getData("setSex", ""); - String nian = (String) SharedPreferencesUtil.getData("setNian", ""); + String nian = (String) SharedPreferencesUtil.getData("setNian", "") + SharedPreferencesUtil.getData("setXueq", ""); String shen = (String) SharedPreferencesUtil.getData("setShen", ""); if (name != null && name.length() > 0) { @@ -128,8 +156,10 @@ public class AddStudentActivity extends BaseActivity { SharedPreferencesUtil.putData("setNian", ""); SharedPreferencesUtil.putData("setShen", ""); SharedPreferencesUtil.putData("setXueq", ""); - + SharedPreferencesUtil.putData("grade", 0); } + + public void addStudent() { String name = (String) SharedPreferencesUtil.getData("setName", ""); String sex = (String) SharedPreferencesUtil.getData("setSex", ""); @@ -140,11 +170,13 @@ public class AddStudentActivity extends BaseActivity { Map map = new HashMap(); map.put("nickName", name); - map.put("gender", "1"); - map.put("gradeId", 1); + map.put("gender", "男".equals(sex) ? 0 : 1); + map.put("gradeId", SharedPreferencesUtil.getData("grade", 1)); map.put("parentIdentity", shen); map.put("term", xueq); - + if (path != null) { + map.put("photo", path); + } NetWorks.registerStudent(NetWorks.getMapRequestBody(map), new Observer() { @Override @@ -194,4 +226,167 @@ public class AddStudentActivity extends BaseActivity { public void onNetChanged(int netWorkState) { } + + @OnClick(R.id.iv_avatar) + public void showButtonDialog(View view) { + BottomSheetDialog dialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); + View bottomView = LayoutInflater.from(this).inflate(R.layout.bottom_sheet_layout, null); + dialog.setContentView(bottomView); + bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromCamera(); + } + }); + bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromAlbm(); + } + }); + bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + dialog.show(); + } + + private void cropPhoto(Uri uri) { + Uri contentUri = Uri.fromFile(new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg")); + Intent intent = new Intent("com.android.camera.action.CROP"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + //Android 7.0需要临时添加读取Url的权限, 添加此属性是为了解决:调用裁剪框时候提示:图片无法加载或者加载图片失败或者无法加载此图片 + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + intent.setDataAndType(uri, "image/*"); + intent.putExtra("crop", "true");//发送裁剪信号,去掉也能进行裁剪 + intent.putExtra("scale", true);// 设置缩放 + intent.putExtra("scaleUpIfNeeded", true);// 去黑边 + intent.putExtra("aspectX", 1); + intent.putExtra("aspectY", 1); + //上述两个属性控制裁剪框的缩放比例。 + //当用户用手拉伸裁剪框时候,裁剪框会按照上述比例缩放。 + intent.putExtra("outputX", 300);//属性控制裁剪完毕,保存的图片的大小格式。 + intent.putExtra("outputY", 300);//你按照1:1的比例来裁剪的,如果最后成像是800*400,那么按照2:1的样式保存, + intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());//输出裁剪文件的格式 + intent.putExtra("return-data", true);//是否返回裁剪后图片的Bitmap + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri);//设置输出路径 + startActivityForResult(intent, CROP_REQUEST_CODE); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (requestCode == CAMERA_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + //用相机返回的照片去调用剪裁也需要对Uri进行处理 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Uri contentUri = FileProvider.getUriForFile(AddStudentActivity.this, + this.getPackageName() + ".fileprovider", tempFile); + cropPhoto(contentUri); + } else { + cropPhoto(Uri.fromFile(tempFile)); + } + } + } else if (requestCode == ALBUM_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + Uri uri = intent.getData(); + cropPhoto(uri); + } + } else if (requestCode == CROP_REQUEST_CODE) { + if (intent == null) { + return; + } + Bundle bundle = intent.getExtras(); + if (bundle != null) { + //在这里获得了剪裁后的Bitmap对象,可以用于上传 + Bitmap image = bundle.getParcelable("data"); + //设置到ImageView上 + //也可以进行一些保存、压缩等操作后上传 + File file = saveImage("head_output", image); + uploadAvatar(file); + // Log.d("dsadsadsa",path); + } + } + } + + private void uploadAvatar(File file) { + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(this).load(file).apply(options).into(iv_avatar); + NetWorks.uploadAvatar(file, new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseResult> responseBody) { + if (responseBody.getData() != null && responseBody.getCode() == 200) { + path = responseBody.getData().get("imageUrl"); + } + } + + @Override + public void onError(Throwable e) { + e.toString(); + } + + @Override + public void onComplete() { + + } + }); + } + + public File saveImage(String name, Bitmap bmp) { + File appDir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath()); + if (!appDir.exists()) { + appDir.mkdir(); + } + String fileName = name + ".jpg"; + File file = new File(appDir, fileName); + try { + FileOutputStream fos = new FileOutputStream(file); + bmp.compress(Bitmap.CompressFormat.PNG, 100, fos); + fos.flush(); + fos.close(); + return file; + } catch (IOException e) { + Log.d("dsadsadsa", e.getLocalizedMessage()); + e.printStackTrace(); + } + return null; + } + + private void getPicFromCamera() { + //用于保存调用相机拍照后所生成的文件 + tempFile = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg"); + //跳转到调用系统相机 + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + //判断版本 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //如果在Android7.0以上,使用FileProvider获取Uri + intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + Uri contentUri = FileProvider.getUriForFile(AddStudentActivity.this, + this.getPackageName() + ".fileprovider", tempFile); + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri); + } else { //否则使用Uri.fromFile(file)方法获取Uri + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile)); + } + startActivityForResult(intent, CAMERA_REQUEST_CODE); + } + + /** + * 从相册获取图片 + */ + private void getPicFromAlbm() { + Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); + photoPickerIntent.setType("image/*"); + startActivityForResult(photoPickerIntent, ALBUM_REQUEST_CODE); + } + } diff --git a/app/src/main/java/com/hjx/parent/ChangePwdActivity.java b/app/src/main/java/com/hjx/parent/ChangePwdActivity.java index 3e9a9da..15bc864 100644 --- a/app/src/main/java/com/hjx/parent/ChangePwdActivity.java +++ b/app/src/main/java/com/hjx/parent/ChangePwdActivity.java @@ -15,11 +15,16 @@ import org.json.JSONObject; import java.util.HashMap; import java.util.Map; +import butterknife.BindView; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import okhttp3.ResponseBody; public class ChangePwdActivity extends BaseActivity { + @BindView(R.id.et_old_password) + EditText et_old_password; + @BindView(R.id.et_pwd_2) + EditText et_pwd_2; @Override protected int layoutResId() { @@ -37,39 +42,40 @@ public class ChangePwdActivity extends BaseActivity { } - EditText et_pwd; + @Override protected void initView() { - - et_pwd = findViewById(R.id.et_pwd); } @Override protected void initListener() { findViewById(R.id.iv_back).setOnClickListener(view -> onBackPressed()); - findViewById(R.id.btn_next).setOnClickListener(view -> { String pwd = et_pwd.getText().toString().trim(); - if (pwd == null || pwd.length() == 0){ - Toast.makeText(this,"密码不能为空",Toast.LENGTH_SHORT).show(); + if (pwd == null || pwd.length() == 0) { + Toast.makeText(this, "密码不能为空", Toast.LENGTH_SHORT).show(); + return; + } + if (pwd.length() < 6 || pwd.length() > 16) { + Toast.makeText(this, "密码必须为6-16位,数字或字母", Toast.LENGTH_SHORT).show(); + return; + } + if (!pwd.equals(et_pwd_2.getText().toString())) { + Toast.makeText(this, "两次密码输入不一致", Toast.LENGTH_SHORT).show(); return; } - changePwd(pwd); - }); - } - public void changePwd(String pwd){ + public void changePwd(String pwd) { String userId = (String) SharedPreferencesUtil.getData("userId", ""); Map map = new HashMap(); - map.put("userId",userId); - map.put("password",pwd); - - + map.put("userId", userId); + map.put("password", pwd); + map.put("oldPassword", et_old_password.getText().toString()); NetWorks.changePassword(NetWorks.getMapRequestBody(map), new Observer() { @Override public void onSubscribe(Disposable d) { @@ -83,19 +89,19 @@ public class ChangePwdActivity extends BaseActivity { String str = responseBody.string().toString(); - LogUtil.e(TAG,"----"+str); + LogUtil.e(TAG, "----" + str); JSONObject jo = new JSONObject(str); - boolean isSucceed = jo.getBoolean("success"); - if (isSucceed){ + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { Toast.makeText(ChangePwdActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); finish(); - }else { + } else { Toast.makeText(ChangePwdActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); - Toast.makeText(ChangePwdActivity.this,"服务繁忙,请重试",Toast.LENGTH_SHORT).show(); + Toast.makeText(ChangePwdActivity.this, "服务繁忙,请重试", Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/java/com/hjx/parent/ChooseActivity.java b/app/src/main/java/com/hjx/parent/ChooseActivity.java new file mode 100644 index 0000000..1d1b7d5 --- /dev/null +++ b/app/src/main/java/com/hjx/parent/ChooseActivity.java @@ -0,0 +1,200 @@ +package com.hjx.parent; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.google.gson.Gson; +import com.hjx.parent.bean.StudentBean; +import com.prws.common.base.BaseActivity; +import com.prws.common.base.BasePresenter; +import com.prws.common.net.NetWorks; +import com.prws.common.utils.LogUtil; +import com.prws.common.utils.ScreenUtils; +import com.prws.common.utils.SharedPreferencesUtil; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.ArrayList; + +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; +import okhttp3.ResponseBody; + +public class ChooseActivity extends BaseActivity { + @BindView(R.id.recycle) + RecyclerView recycle; + private int select = 0; + + @Override + protected int layoutResId() { + return R.layout.choose_activity; + } + + @Override + public Object getContract() { + return null; + } + + @Override + public BasePresenter getPresenter() { + return null; + } + + @Override + protected void initView() { + + } + + @Override + protected void initListener() { + + } + + @Override + protected void initData() { + + } + + @Override + public void onNetChanged(int netWorkState) { + + } + + @Override + protected void onResume() { + super.onResume(); + loadChildList(); + } + + ArrayList alist = new ArrayList<>(); + + public void loadChildList() { + NetWorks.listChildren(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + + String str = responseBody.string().toString(); + + + LogUtil.e("TAG", "----" + str); + JSONObject jo = new JSONObject(str); + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { + JSONArray jarr = jo.getJSONArray("data"); + alist.clear(); + for (int i = 0; i < jarr.length(); i++) { + JSONObject jo2 = jarr.getJSONObject(i); + Gson gson = new Gson(); + StudentBean sb = gson.fromJson(jo2.toString(), StudentBean.class); + alist.add(sb); + } + if (alist.size() > 0) { + loadList(); + } + + } else { + + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + public void loadList() { + StudentBean sb = new StudentBean(); + sb.setNickName("添加学生"); + alist.add(sb); + String student = (String) SharedPreferencesUtil.getData("student", ""); + try { + StudentBean studentBean = new Gson().fromJson(student, StudentBean.class); + for (int i = 0; i < alist.size(); i++) { + if (studentBean.getStuId().equals(alist.get(i).getStuId())) { + select = i; + break; + } + } + } catch (Exception e) { + + } + BaseQuickAdapter adapter = new BaseQuickAdapter(R.layout.item_child_choose, alist) { + @Override + protected void convert(@NonNull BaseViewHolder item, Object o) { + StudentBean studentBean = alist.get(item.getAdapterPosition()); + item.setText(R.id.tv_name, studentBean.getNickName()); + if (TextUtils.isEmpty(studentBean.getStuId())) { + item.setVisible(R.id.rl_add, true); + item.getConvertView().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startActivity(new Intent(ChooseActivity.this, AddStudentActivity.class)); + } + }); + } else { + item.setBackgroundRes(R.id.rl_child, select == item.getAdapterPosition() ? R.drawable.bg_solid_white_10_or : R.drawable.bg_solid_white_10); + item.setImageResource(R.id.iv_select, select == item.getAdapterPosition() ? R.mipmap.gx : R.mipmap.wsyq); + item.setVisible(R.id.rl_add, false); + if (TextUtils.isEmpty(studentBean.getPhoto())) { + item.setImageResource(R.id.iv_avatar, studentBean.getGender() == 0 ? R.mipmap.ic_avatar_male : R.mipmap.ic_avatar_female); + } else { + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(ChooseActivity.this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(ChooseActivity.this).load(studentBean.getPhoto()).apply(options).into((ImageView) item.getView(R.id.iv_avatar)); + } + item.setVisible(R.id.iv_vip, !"虚拟".equals(studentBean.getTeacherIdentity())); + item.getConvertView().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + select = item.getAdapterPosition(); + notifyDataSetChanged(); + } + }); + } + } + }; + recycle.setLayoutManager(new LinearLayoutManager(ChooseActivity.this, LinearLayoutManager.VERTICAL, false)); + recycle.setAdapter(adapter); + } + + @OnClick(R.id.tv_confirm) + public void confirm(View view) { + if (alist.size() > 0 && alist.size() - 1 >= select && alist.get(select) != null) { + StudentBean studentBean = alist.get(select); + Intent intent = new Intent(ChooseActivity.this, MainActivity.class); + SharedPreferencesUtil.putData("student", new Gson().toJson(studentBean)); + startActivity(intent); + finish(); + } + } +} diff --git a/app/src/main/java/com/hjx/parent/EditStudentActivity.java b/app/src/main/java/com/hjx/parent/EditStudentActivity.java new file mode 100644 index 0000000..b44f5ee --- /dev/null +++ b/app/src/main/java/com/hjx/parent/EditStudentActivity.java @@ -0,0 +1,384 @@ +package com.hjx.parent; + +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.provider.MediaStore; +import android.text.TextUtils; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.core.content.FileProvider; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.google.gson.Gson; +import com.hjx.parent.bean.StudentBean; +import com.prws.common.base.BaseActivity; +import com.prws.common.base.BasePresenter; +import com.prws.common.bean.ResponseResult; +import com.prws.common.net.NetWorks; +import com.prws.common.utils.LogUtil; +import com.prws.common.utils.ScreenUtils; +import com.prws.common.utils.SharedPreferencesUtil; + +import org.json.JSONObject; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; + +public class EditStudentActivity extends BaseActivity { + View view_2; + View view_3; + View view_4; + View view_5; + Button btn_next; + TextView tv_name, tv_sex, tv_nian, tv_shen; + @BindView(R.id.iv_avatar) + ImageView iv_avatar; + @BindView(R.id.tv_teacher) + TextView tv_teacher; + @BindView(R.id.iv_teacher) + ImageView iv_teacher; + private static int CAMERA_REQUEST_CODE = 343; + private static int ALBUM_REQUEST_CODE = 456; + private static int CROP_REQUEST_CODE = 234; + private File tempFile; + private String path; + StudentBean studentBean; + + @Override + protected int layoutResId() { + return R.layout.activity_edit_stu; + } + + @Override + public Object getContract() { + return null; + } + + @Override + public BasePresenter getPresenter() { + return null; + } + + @Override + protected void initView() { + view_2 = findViewById(R.id.view_2); + view_3 = findViewById(R.id.view_3); + view_4 = findViewById(R.id.view_4); + view_5 = findViewById(R.id.view_5); + tv_name = findViewById(R.id.tv_name); + tv_sex = findViewById(R.id.tv_sex); + tv_nian = findViewById(R.id.tv_nian); + tv_shen = findViewById(R.id.tv_shen); + btn_next = findViewById(R.id.btn_next); + } + + @Override + protected void onStart() { + super.onStart(); + String name = (String) SharedPreferencesUtil.getData("setName", ""); + String sex = (String) SharedPreferencesUtil.getData("setSex", ""); + String nian = (String) SharedPreferencesUtil.getData("setNian", ""); + String shen = (String) SharedPreferencesUtil.getData("setShen", ""); + String xueq = (String) SharedPreferencesUtil.getData("setXueq", ""); + btn_next.setTextColor(Color.WHITE); + btn_next.setBackground(getResources().getDrawable(R.drawable.bg_solid_btn)); + studentBean = new Gson().fromJson(getIntent().getStringExtra("student"), StudentBean.class); + if (name != null && name.length() > 0) { + studentBean.setNickName(name); + } + if (sex != null && sex.length() > 0) { + studentBean.setGender("男".equals(sex) ? 0 : 1); + } + if (nian != null && nian.length() > 0) { + studentBean.setGrade(nian); + studentBean.setGradeId((Integer) SharedPreferencesUtil.getData("grade", 1)); + } + if (xueq != null && xueq.length() > 0) { + studentBean.setTerm(xueq); + } + if (shen != null && shen.length() > 0) { + studentBean.setParentIdentity(shen); + } + tv_name.setText(studentBean.getNickName()); + tv_nian.setText(studentBean.getGrade() + studentBean.getTerm()); + tv_sex.setText(studentBean.getGender() == 0 ? "男" : "女"); + tv_shen.setText(studentBean.getParentIdentity()); + if (!TextUtils.isEmpty(studentBean.getPhoto())) { + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(this).load(studentBean.getPhoto()).apply(options).into(iv_avatar); + } else { + iv_avatar.setImageResource(studentBean.getGender() == 0 ? R.mipmap.ic_avatar_male : R.mipmap.ic_avatar_female); + } + if (!"虚拟".equals(studentBean.getTeacherIdentity())) { + tv_teacher.setText(studentBean.getTeacherName()); + if (!TextUtils.isEmpty(studentBean.getTeacherAvatar())) { + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(this, 25)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(this).load(studentBean.getTeacherAvatar()).apply(options).into(iv_teacher); + } else { + iv_teacher.setImageResource(studentBean.getSex() == 0 ? R.mipmap.ic_teacher_male : R.mipmap.ic_teacher_female); + } + } else { + iv_teacher.setVisibility(View.GONE); + } + + } + + @Override + protected void initListener() { + view_2.setOnClickListener(view -> startActivity(NickActivity.class)); + view_3.setOnClickListener(view -> startActivity(SexActivity.class)); + view_4.setOnClickListener(view -> startActivity(NianActivity.class)); + view_5.setOnClickListener(view -> startActivity(ShenActivity.class)); + findViewById(R.id.tv_cancel).setOnClickListener(view -> onBackPressed()); + btn_next.setOnClickListener(view -> { + editStudent(); + }); + } + + public void editStudent() { + Map map = new HashMap(); + map.put("nickName", studentBean.getNickName()); + map.put("gender", studentBean.getGender()); + map.put("gradeId", studentBean.getGradeId()); + map.put("parentIdentity", studentBean.getParentIdentity()); + map.put("term", studentBean.getTerm()); + map.put("stuId", studentBean.getStuId()); + NetWorks.editStudent(NetWorks.getMapRequestBody(map), new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseResult responseResult) { + try { + boolean isSucceed = responseResult.getSuccess(); + if (isSucceed) { + finish(); + } else { + Toast.makeText(EditStudentActivity.this, responseResult.getMsg(), Toast.LENGTH_SHORT).show(); + } + } catch (Exception e) { + + } + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + @Override + protected void initData() { + + } + + @Override + public void onNetChanged(int netWorkState) { + + } + + private void cropPhoto(Uri uri) { + Uri contentUri = Uri.fromFile(new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg")); + Intent intent = new Intent("com.android.camera.action.CROP"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + //Android 7.0需要临时添加读取Url的权限, 添加此属性是为了解决:调用裁剪框时候提示:图片无法加载或者加载图片失败或者无法加载此图片 + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + intent.setDataAndType(uri, "image/*"); + intent.putExtra("crop", "true");//发送裁剪信号,去掉也能进行裁剪 + intent.putExtra("scale", true);// 设置缩放 + intent.putExtra("scaleUpIfNeeded", true);// 去黑边 + intent.putExtra("aspectX", 1); + intent.putExtra("aspectY", 1); + //上述两个属性控制裁剪框的缩放比例。 + //当用户用手拉伸裁剪框时候,裁剪框会按照上述比例缩放。 + intent.putExtra("outputX", 300);//属性控制裁剪完毕,保存的图片的大小格式。 + intent.putExtra("outputY", 300);//你按照1:1的比例来裁剪的,如果最后成像是800*400,那么按照2:1的样式保存, + intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());//输出裁剪文件的格式 + intent.putExtra("return-data", true);//是否返回裁剪后图片的Bitmap + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri);//设置输出路径 + startActivityForResult(intent, CROP_REQUEST_CODE); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + if (requestCode == CAMERA_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + //用相机返回的照片去调用剪裁也需要对Uri进行处理 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Uri contentUri = FileProvider.getUriForFile(this, + this.getPackageName() + ".fileprovider", tempFile); + cropPhoto(contentUri); + } else { + cropPhoto(Uri.fromFile(tempFile)); + } + } + } else if (requestCode == ALBUM_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + Uri uri = intent.getData(); + cropPhoto(uri); + } + } else if (requestCode == CROP_REQUEST_CODE) { + if (intent == null) { + return; + } + Bundle bundle = intent.getExtras(); + if (bundle != null) { + //在这里获得了剪裁后的Bitmap对象,可以用于上传 + Bitmap image = bundle.getParcelable("data"); + //设置到ImageView上 + //也可以进行一些保存、压缩等操作后上传 + File file = saveImage("head_output", image); + uploadAvatar(file); + // Log.d("dsadsadsa",path); + } + } + } + + private void uploadAvatar(File file) { + NetWorks.uploadStudentAvatar(file, studentBean.getStuId(), new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseResult> responseBody) { + if (responseBody.getData() != null && responseBody.getCode() == 200) { + String filePath = responseBody.getData().get("imageUrl"); + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(EditStudentActivity.this, 45)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(EditStudentActivity.this).load(filePath).apply(options).into(iv_avatar); + } + } + + @Override + public void onError(Throwable e) { + e.toString(); + } + + @Override + public void onComplete() { + + } + }); + } + + public File saveImage(String name, Bitmap bmp) { + File appDir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath()); + if (!appDir.exists()) { + appDir.mkdir(); + } + String fileName = name + ".jpg"; + File file = new File(appDir, fileName); + try { + FileOutputStream fos = new FileOutputStream(file); + bmp.compress(Bitmap.CompressFormat.PNG, 100, fos); + fos.flush(); + fos.close(); + return file; + } catch (IOException e) { + Log.d("dsadsadsa", e.getLocalizedMessage()); + e.printStackTrace(); + } + return null; + } + + private void getPicFromCamera() { + //用于保存调用相机拍照后所生成的文件 + tempFile = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), System.currentTimeMillis() + ".jpg"); + //跳转到调用系统相机 + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + //判断版本 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //如果在Android7.0以上,使用FileProvider获取Uri + intent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + Uri contentUri = FileProvider.getUriForFile(this, + this.getPackageName() + ".fileprovider", tempFile); + intent.putExtra(MediaStore.EXTRA_OUTPUT, contentUri); + } else { //否则使用Uri.fromFile(file)方法获取Uri + intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile)); + } + startActivityForResult(intent, CAMERA_REQUEST_CODE); + } + + /** + * 从相册获取图片 + */ + private void getPicFromAlbm() { + Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); + photoPickerIntent.setType("image/*"); + startActivityForResult(photoPickerIntent, ALBUM_REQUEST_CODE); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + SharedPreferencesUtil.putData("setName", ""); + SharedPreferencesUtil.putData("setSex", ""); + SharedPreferencesUtil.putData("setNian", ""); + SharedPreferencesUtil.putData("setShen", ""); + SharedPreferencesUtil.putData("setXueq", ""); + SharedPreferencesUtil.putData("grade", 0); + } + + @OnClick(R.id.iv_avatar) + public void showButtonDialog(View view) { + BottomSheetDialog dialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); + View bottomView = LayoutInflater.from(this).inflate(R.layout.bottom_sheet_layout, null); + dialog.setContentView(bottomView); + bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromCamera(); + } + }); + bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + getPicFromAlbm(); + } + }); + bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + dialog.show(); + } +} diff --git a/app/src/main/java/com/hjx/parent/LoginActivity.java b/app/src/main/java/com/hjx/parent/LoginActivity.java index 5bfc715..7b74204 100644 --- a/app/src/main/java/com/hjx/parent/LoginActivity.java +++ b/app/src/main/java/com/hjx/parent/LoginActivity.java @@ -1,8 +1,10 @@ package com.hjx.parent; +import android.content.Intent; import android.os.Bundle; import android.telephony.PhoneNumberUtils; import android.text.InputType; +import android.text.TextUtils; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; @@ -45,7 +47,6 @@ public class LoginActivity extends BaseActivity { TextView tv_ys; - @Override protected int layoutResId() { return R.layout.activity_login; @@ -75,20 +76,19 @@ public class LoginActivity extends BaseActivity { tv_ys = findViewById(R.id.tv_6); - String role = (String) SharedPreferencesUtil.getData("role",""); + String student = (String) SharedPreferencesUtil.getData("student", ""); - if (role != null && role.length()> 0){ - LogUtil.e(TAG,"role 不是空----"); - startActivity(MainActivity.class); + if (!TextUtils.isEmpty(student)) { + LogUtil.e(TAG, "role 不是空----"); + Intent intent = new Intent(this, MainActivity.class); + startActivity(intent); finish(); return; - }else { - LogUtil.e(TAG,"role 是空----"); + } else { + LogUtil.e(TAG, "role 是空----"); } - - } @Override @@ -97,16 +97,13 @@ public class LoginActivity extends BaseActivity { et_phone.setText(""); }); iv_show.setOnClickListener(view -> { - - if (iv_show.getBackground().getConstantState().equals(getDrawable(R.mipmap.xs).getConstantState())){ + if (iv_show.getBackground().getConstantState().equals(getDrawable(R.mipmap.xs).getConstantState())) { iv_show.setBackgroundResource(R.mipmap.yc); et_pwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); - }else { + } else { iv_show.setBackgroundResource(R.mipmap.xs); et_pwd.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); } - - }); @@ -114,22 +111,22 @@ public class LoginActivity extends BaseActivity { String phone = et_phone.getText().toString().trim(); String pwd = et_pwd.getText().toString().trim(); - if (phone.isEmpty() || pwd.isEmpty() || phone.length() == 0 || pwd.length() == 0){ - Toast.makeText(this,"手机号以及密码不能为空",Toast.LENGTH_SHORT).show(); + if (phone.isEmpty() || pwd.isEmpty() || phone.length() == 0 || pwd.length() == 0) { + Toast.makeText(this, "手机号以及密码不能为空", Toast.LENGTH_SHORT).show(); return; } - if (!PhoneNumberUtils.isGlobalPhoneNumber(et_phone.getText().toString())){ - Toast.makeText(this,"请输入正确的手机号码",Toast.LENGTH_SHORT).show(); + if (!PhoneNumberUtils.isGlobalPhoneNumber(et_phone.getText().toString())) { + Toast.makeText(this, "请输入正确的手机号码", Toast.LENGTH_SHORT).show(); return; } - if (!cb_1.isChecked()){ - Toast.makeText(this,"请勾选协议",Toast.LENGTH_SHORT).show(); + if (!cb_1.isChecked()) { + Toast.makeText(this, "请勾选协议", Toast.LENGTH_SHORT).show(); return; } - login(phone,pwd); + login(phone, pwd); }); @@ -146,11 +143,11 @@ public class LoginActivity extends BaseActivity { }); } - public void login(final String phone ,String pwd){ + public void login(final String phone, String pwd) { Map map = new HashMap(); - map.put("username",phone); - map.put("password",pwd); + map.put("username", phone); + map.put("password", pwd); NetWorks.login(NetWorks.getMapRequestBody(map), new Observer() { @@ -162,30 +159,27 @@ public class LoginActivity extends BaseActivity { @Override public void onNext(ResponseBody responseBody) { try { - String str = responseBody.string().toString(); - - - LogUtil.e(TAG,"----"+str); + LogUtil.e(TAG, "----" + str); JSONObject jo = new JSONObject(str); - boolean isSucceed = jo.getBoolean("success"); - if (isSucceed){ - JSONObject jo2 = jo.getJSONObject("data"); - SharedPreferencesUtil.putData("phone",phone); - SharedPreferencesUtil.putData("role",jo2.getString("role")); - SharedPreferencesUtil.putData("userId",jo2.getString("userId")); - SharedPreferencesUtil.putData("token",jo2.getString("token")); - - startActivity(MainActivity.class); - - }else { - Toast.makeText(LoginActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); - } - }catch (Exception e){ + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { + JSONObject jo2 = jo.getJSONObject("data"); + SharedPreferencesUtil.putData("phone", phone); + SharedPreferencesUtil.putData("role", jo2.getString("role")); + SharedPreferencesUtil.putData("userId", jo2.getString("userId")); + SharedPreferencesUtil.putData("token", jo2.getString("token")); + JSONObject user = new JSONObject(jo2.getString("user")); + SharedPreferencesUtil.putData("photo", user.getString("photo")); + startActivity(ChooseActivity.class); + finish(); + } else { + Toast.makeText(LoginActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); + } + } catch (Exception e) { e.printStackTrace(); - Toast.makeText(LoginActivity.this,"服务繁忙,请重试",Toast.LENGTH_SHORT).show(); + Toast.makeText(LoginActivity.this, "服务繁忙,请重试", Toast.LENGTH_SHORT).show(); } - } @Override diff --git a/app/src/main/java/com/hjx/parent/MainActivity.java b/app/src/main/java/com/hjx/parent/MainActivity.java index c3aac8c..1250f3c 100644 --- a/app/src/main/java/com/hjx/parent/MainActivity.java +++ b/app/src/main/java/com/hjx/parent/MainActivity.java @@ -31,72 +31,55 @@ public class MainActivity extends BaseActivity { } - - HomeFragment homeFragment; MeFragment meFragment; ConstraintLayout cl_home; ConstraintLayout cl_me; - ImageView iv_3,iv_4; - TextView tv_1,tv_4; + ImageView iv_3, iv_4; + TextView tv_1, tv_4; @Override protected void initView() { - showFragment(getHomeFragment(),R.id.rl_content); + showFragment(getHomeFragment(), R.id.rl_content); cl_home = findViewById(R.id.cl_home); cl_me = findViewById(R.id.cl_me); iv_3 = findViewById(R.id.iv_3); iv_4 = findViewById(R.id.iv_4); tv_1 = findViewById(R.id.tv_1); tv_4 = findViewById(R.id.tv_4); - - iv_3.setBackgroundResource(R.mipmap.hoss); tv_1.setTextColor(Color.parseColor("#FE5E09")); - - - } - public HomeFragment getHomeFragment(){ + public HomeFragment getHomeFragment() { if (homeFragment == null) homeFragment = new HomeFragment(); return homeFragment; } - public MeFragment getMeFragment(){ + public MeFragment getMeFragment() { if (meFragment == null) meFragment = new MeFragment(); return meFragment; } - @Override protected void initListener() { cl_home.setOnClickListener(view -> { - showFragment(getHomeFragment(),R.id.rl_content); + showFragment(getHomeFragment(), R.id.rl_content); iv_3.setBackgroundResource(R.mipmap.hoss); tv_1.setTextColor(Color.parseColor("#FE5E09")); - - iv_4.setBackgroundResource(R.mipmap.wmus); tv_4.setTextColor(Color.parseColor("#333333")); - - }); cl_me.setOnClickListener(view -> { - showFragment(getMeFragment(),R.id.rl_content); - + showFragment(getMeFragment(), R.id.rl_content); iv_3.setBackgroundResource(R.mipmap.hous); tv_1.setTextColor(Color.parseColor("#333333")); - - iv_4.setBackgroundResource(R.mipmap.wmss); tv_4.setTextColor(Color.parseColor("#FE5E09")); - - }); } diff --git a/app/src/main/java/com/hjx/parent/NianActivity.java b/app/src/main/java/com/hjx/parent/NianActivity.java index b61996d..7ab376d 100644 --- a/app/src/main/java/com/hjx/parent/NianActivity.java +++ b/app/src/main/java/com/hjx/parent/NianActivity.java @@ -1,11 +1,29 @@ package com.hjx.parent; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.view.View; import android.widget.TextView; +import android.widget.Toast; +import com.google.gson.Gson; +import com.prws.common.bean.GradeAndSubject; import com.prws.common.base.BaseActivity; import com.prws.common.base.BasePresenter; +import com.prws.common.bean.ResponseResult; +import com.prws.common.net.NetWorks; import com.prws.common.utils.SharedPreferencesUtil; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; +import okhttp3.ResponseBody; + public class NianActivity extends BaseActivity { @Override protected int layoutResId() { @@ -22,21 +40,81 @@ public class NianActivity extends BaseActivity { return null; } + @BindView(R.id.tv_nian) TextView tv_nian; + @BindView(R.id.tv_xq) TextView tv_xq; + private int gradeId; @Override protected void initView() { - tv_nian = findViewById(R.id.tv_nian); - tv_xq = findViewById(R.id.tv_xq); findViewById(R.id.tv_cancel).setOnClickListener(view -> onBackPressed()); findViewById(R.id.tv_ok).setOnClickListener(view -> { SharedPreferencesUtil.putData("setNian", tv_nian.getText()); SharedPreferencesUtil.putData("setXueq", tv_xq.getText()); + SharedPreferencesUtil.putData("grade", gradeId); finish(); }); + } + + @OnClick(R.id.view_3) + public void changeTerm(View view) { + String[] strings = {"上学期", "下学期"}; + AlertDialog.Builder builder = new AlertDialog.Builder(NianActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert); + builder.setTitle("请选择学期"); + builder.setSingleChoiceItems(strings, 0, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + tv_xq.setText(strings[i]); + dialogInterface.dismiss(); + } + }); + builder.setCancelable(false); + builder.show(); + } + @OnClick(R.id.view_2) + public void getGradeAndSubject(View view) { + NetWorks.listGradeAndSubject(new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + } + + @Override + public void onNext(ResponseResult> listResponseResult) { + if (listResponseResult != null && listResponseResult.getCode() == 200) { + List list = listResponseResult.getData(); + List stringList = new ArrayList<>(); + for (GradeAndSubject gradeAndSubject : list) { + stringList.add(gradeAndSubject.getGrade().getGrade()); + } + String[] strings = stringList.toArray(new String[stringList.size()]); + AlertDialog.Builder builder = new AlertDialog.Builder(NianActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog_Alert); + builder.setTitle("请选择年级"); + builder.setSingleChoiceItems(strings, 0, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + tv_nian.setText(list.get(i).getGrade().getGrade()); + gradeId = list.get(i).getGrade().getId(); + dialogInterface.dismiss(); + } + }); + builder.setCancelable(false); + builder.show(); + } + } + + @Override + public void onError(Throwable e) { + e.toString(); + } + + @Override + public void onComplete() { + + } + }); } @Override diff --git a/app/src/main/java/com/hjx/parent/QRActivity.java b/app/src/main/java/com/hjx/parent/QRActivity.java index a2c4361..44d9ae7 100644 --- a/app/src/main/java/com/hjx/parent/QRActivity.java +++ b/app/src/main/java/com/hjx/parent/QRActivity.java @@ -47,7 +47,7 @@ public class QRActivity extends BaseActivity { captureFragment.setAnalyzeCallback(new CodeUtils.AnalyzeCallback() { @Override public void onAnalyzeSuccess(Bitmap mBitmap, String result) { - LogUtil.e(TAG,"result----:"+result); + LogUtil.e(TAG, "result----:" + result); loginAnd(result); @@ -65,7 +65,7 @@ public class QRActivity extends BaseActivity { } - public void loginAnd(String str){ + public void loginAnd(String str) { NetWorks.scanAndLogin(str, new Observer() { @Override public void onSubscribe(Disposable d) { @@ -77,25 +77,20 @@ public class QRActivity extends BaseActivity { try { String str = responseBody.string().toString(); - LogUtil.e(TAG,"----"+str); + LogUtil.e(TAG, "----" + str); JSONObject jo = new JSONObject(str); - boolean isSucceed = jo.getBoolean("success"); - if (isSucceed){ + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { startActivity(MainActivity.class); finish(); - }else { + } else { Toast.makeText(QRActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); - Toast.makeText(QRActivity.this,"服务繁忙,请重试",Toast.LENGTH_SHORT).show(); + Toast.makeText(QRActivity.this, "服务繁忙,请重试", Toast.LENGTH_SHORT).show(); startActivity(MainActivity.class); } - - - - - } @Override diff --git a/app/src/main/java/com/hjx/parent/RegisterActivity.java b/app/src/main/java/com/hjx/parent/RegisterActivity.java index b00a006..e6b68dc 100644 --- a/app/src/main/java/com/hjx/parent/RegisterActivity.java +++ b/app/src/main/java/com/hjx/parent/RegisterActivity.java @@ -28,6 +28,8 @@ import com.prws.common.utils.SharedPreferencesUtil; import com.uuzuche.lib_zxing.activity.CaptureActivity; import com.uuzuche.lib_zxing.activity.CodeUtils; +import org.json.JSONObject; + import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -192,12 +194,10 @@ public class RegisterActivity extends BaseActivity { } if (registerBean.getData().getUserName() != null && registerBean.getData().getUserName().length() > 0) { - SharedPreferencesUtil.putData("phone",phone); - SharedPreferencesUtil.putData("role",registerBean.getData().getUserName()); - SharedPreferencesUtil.putData("userId",registerBean.getData().getUserName()); - - //进入扫码界面 - goQRView(); + SharedPreferencesUtil.putData("phone", phone); + SharedPreferencesUtil.putData("role", registerBean.getData().getUserName()); + SharedPreferencesUtil.putData("userId", registerBean.getData().getUserName()); + login(phone, pwd); } @@ -216,6 +216,53 @@ public class RegisterActivity extends BaseActivity { }); } + public void login(final String phone, String pwd) { + Map map = new HashMap(); + map.put("username", phone); + map.put("password", pwd); + + NetWorks.login(NetWorks.getMapRequestBody(map), new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String str = responseBody.string().toString(); + LogUtil.e(TAG, "----" + str); + JSONObject jo = new JSONObject(str); + boolean isSucceed = jo.getBoolean("success"); + if (isSucceed) { + JSONObject jo2 = jo.getJSONObject("data"); + SharedPreferencesUtil.putData("phone", phone); + SharedPreferencesUtil.putData("role", jo2.getString("role")); + SharedPreferencesUtil.putData("userId", jo2.getString("userId")); + SharedPreferencesUtil.putData("token", jo2.getString("token")); + startActivity(ChooseActivity.class); + } else { + Toast.makeText(RegisterActivity.this, jo.getString("msg"), Toast.LENGTH_SHORT).show(); + } + } catch (Exception e) { + e.printStackTrace(); + Toast.makeText(RegisterActivity.this, "服务繁忙,请重试", Toast.LENGTH_SHORT).show(); + } + + } + + @Override + public void onError(Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + public void goQRView() { if (!XXPermissions.isGranted(this, Permission.CAMERA)) { @@ -256,7 +303,6 @@ public class RegisterActivity extends BaseActivity { } - @Override protected void initData() { diff --git a/app/src/main/java/com/hjx/parent/bean/StudentBean.java b/app/src/main/java/com/hjx/parent/bean/StudentBean.java index 62ad040..8466d05 100644 --- a/app/src/main/java/com/hjx/parent/bean/StudentBean.java +++ b/app/src/main/java/com/hjx/parent/bean/StudentBean.java @@ -18,6 +18,11 @@ public class StudentBean { String parentIdentity; String teacherName; int teacherId; + String teacherAvatar; + String grade; + String teacherIdentity; + int sex; + @Override public String toString() { @@ -38,9 +43,45 @@ public class StudentBean { ", parentIdentity='" + parentIdentity + '\'' + ", teacherName='" + teacherName + '\'' + ", teacherId=" + teacherId + + ", teacherAvatar=" + teacherAvatar + + ", grade=" + grade + + ", teacherIdentity=" + teacherIdentity + + ", sex=" + sex + '}'; } + public void setSex(int sex) { + this.sex = sex; + } + + public int getSex() { + return sex; + } + + public void setTeacherIdentity(String teacherIdentity) { + this.teacherIdentity = teacherIdentity; + } + + public String getTeacherIdentity() { + return teacherIdentity; + } + + public void setTeacherAvatar(String teacherAvatar) { + this.teacherAvatar = teacherAvatar; + } + + public void setGrade(String grade) { + this.grade = grade; + } + + public String getTeacherAvatar() { + return teacherAvatar; + } + + public String getGrade() { + return grade; + } + public String getStuId() { return stuId; } diff --git a/app/src/main/java/com/hjx/parent/fragment/HomeFragment.java b/app/src/main/java/com/hjx/parent/fragment/HomeFragment.java index 44bb604..b87dbc5 100644 --- a/app/src/main/java/com/hjx/parent/fragment/HomeFragment.java +++ b/app/src/main/java/com/hjx/parent/fragment/HomeFragment.java @@ -2,23 +2,51 @@ package com.hjx.parent.fragment; import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; - +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestOptions; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.google.gson.Gson; import com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; +import com.hjx.parent.ChooseActivity; +import com.hjx.parent.QRActivity; import com.hjx.parent.R; +import com.hjx.parent.bean.StudentBean; import com.prws.common.base.BaseFragment; +import com.prws.common.bean.ResponseResult; +import com.prws.common.bean.ScheduleBean; +import com.prws.common.bean.Video; +import com.prws.common.net.NetWorks; +import com.prws.common.utils.ScreenUtils; import com.prws.common.utils.SharedPreferencesUtil; import com.uuzuche.lib_zxing.activity.CaptureActivity; import com.uuzuche.lib_zxing.activity.CodeUtils; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.List; +import butterknife.BindView; +import butterknife.OnClick; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; + public class HomeFragment extends BaseFragment { @Override protected int getLayoutRes() { @@ -27,27 +55,36 @@ public class HomeFragment extends BaseFragment { ImageView iv_sapmiao; TextView tv_name; + StudentBean studentBean; + ImageView iv_2; + @BindView(R.id.recycle) + RecyclerView recyclerView; + @BindView(R.id.tv_empty) + TextView tv_empty; + @BindView(R.id.iv_empty) + ImageView iv_empty; + @Override protected void initDatas() { super.initDatas(); + iv_2 = mRootView.findViewById(R.id.iv_2); iv_sapmiao = mRootView.findViewById(R.id.iv_sapmiao); tv_name = mRootView.findViewById(R.id.tv_name); iv_sapmiao.setOnClickListener(view -> { - - if (!XXPermissions.isGranted(getActivity(), Permission.CAMERA)){ + if (!XXPermissions.isGranted(getActivity(), Permission.CAMERA)) { XXPermissions.with(getActivity()) // 申请多个权限 .permission(Permission.CAMERA) .request(new OnPermissionCallback() { @Override public void onGranted(List permissions, boolean all) { - if (all){ + if (all) { //开启扫码界面 startQRView(); - }else { - Toast.makeText(getActivity(),"需要相机权限",Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(getActivity(), "需要相机权限", Toast.LENGTH_SHORT).show(); } } @@ -56,38 +93,68 @@ public class HomeFragment extends BaseFragment { XXPermissions.startPermissionActivity(getActivity(), permissions); } }); + } else { + startQRView(); + } + }); + } - - }else { - startQRView(); + @Override + public void onResume() { + super.onResume(); + String student = (String) SharedPreferencesUtil.getData("student", ""); + try { + studentBean = new Gson().fromJson(student, StudentBean.class); + tv_name.setText(studentBean.getNickName()); + if (TextUtils.isEmpty(studentBean.getPhoto())) { + iv_2.setImageResource(studentBean.getGender() == 0 ? R.mipmap.ic_avatar_male : R.mipmap.ic_avatar_female); + } else { + RoundedCorners roundedCorners = new RoundedCorners(ScreenUtils.dpToPx(getContext(), 20)); + RequestOptions options = RequestOptions.bitmapTransform(roundedCorners); + Glide.with(getActivity()).load(studentBean.getPhoto()).apply(options).into(iv_2); } + getWeekPlan(studentBean.getStuId()); + } catch (Exception e) { + } + } - }); + public void getWeekPlan(String id) { + NetWorks.getWeekPlan(id, new Observer>() { + @Override + public void onSubscribe(Disposable d) { - String role = (String) SharedPreferencesUtil.getData("role",""); - String userId = (String) SharedPreferencesUtil.getData("userId",""); - String token = (String) SharedPreferencesUtil.getData("token",""); - String phone = (String) SharedPreferencesUtil.getData("phone",""); - if (role != null && role.length() > 0) - tv_name.setText(role); + } - } + @Override + public void onNext(ResponseResult result) { + if (result != null && result.getCode() == 200) { + showWeekPlan(result.getData().getList()); + } + } - public void startQRView(){ + @Override + public void onError(Throwable e) { + } - startActivityForResult(new Intent(getActivity(), CaptureActivity.class),101); + @Override + public void onComplete() { + } + }); + } + public void startQRView() { + startActivityForResult(new Intent(getActivity(), QRActivity.class), 101); } @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (requestCode == 101){ + if (requestCode == 101) { if (null != data) { Bundle bundle = data.getExtras(); if (bundle == null) { @@ -101,7 +168,72 @@ public class HomeFragment extends BaseFragment { } } } + } + + @OnClick({R.id.iv_2, R.id.tv_name}) + public void choose(View view) { + Intent intent = new Intent(getActivity(), ChooseActivity.class); + startActivity(intent); + } + + @OnClick(R.id.iv_1) + public void exit(View view) { + getActivity().finish(); + } + + private void showWeekPlan(List