去除java文件中开头的无效的导包,将方法中传递的匿名对象使用lambda表达式来替换

master
呗 呗 3 years ago
parent cf2d645377
commit 9b6ed96642

@ -22,10 +22,6 @@ public class LaunchActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launch);
// //去除当前活动标题栏
// Objects.requireNonNull(getSupportActionBar()).hide();
mClipLeftLoadingImageView = findViewById(R.id.iv_login_loading);
mClipLeftLoadingImageView.setImageLevel(0);
@ -37,13 +33,10 @@ public class LaunchActivity extends AppCompatActivity {
//延时加载
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(LaunchActivity.this, IdChooseActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
handler.postDelayed(() -> {
Intent intent = new Intent(LaunchActivity.this, IdChooseActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}, 1000);//3秒后执行Runnable中的run方法
}

@ -7,7 +7,6 @@ import android.os.Looper;
import android.os.Message;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
@ -69,25 +68,19 @@ public class IdChooseActivity extends AppCompatActivity {
*/
public void setOnclickListener(){
// 选择学生端登录
stuLoginCho.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intentIdCho = new Intent(IdChooseActivity.this, LoginActivity.class);
bundle.putInt(ModelFieldConstants.ROLE_ID, 0);
intentIdCho.putExtras(bundle);
startActivity(intentIdCho);
}
stuLoginCho.setOnClickListener(v -> {
intentIdCho = new Intent(IdChooseActivity.this, LoginActivity.class);
bundle.putInt(ModelFieldConstants.ROLE_ID, 0);
intentIdCho.putExtras(bundle);
startActivity(intentIdCho);
});
// 选择教师端登录
teaLoginCho.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intentIdCho = new Intent(IdChooseActivity.this, LoginActivity.class);
bundle.putInt(ModelFieldConstants.ROLE_ID, 1);
intentIdCho.putExtras(bundle);
startActivity(intentIdCho);
}
teaLoginCho.setOnClickListener(v -> {
intentIdCho = new Intent(IdChooseActivity.this, LoginActivity.class);
bundle.putInt(ModelFieldConstants.ROLE_ID, 1);
intentIdCho.putExtras(bundle);
startActivity(intentIdCho);
});
}
@ -126,9 +119,6 @@ public class IdChooseActivity extends AppCompatActivity {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
//退出程序代码
// finish(); //结束程序
// System.exit(0); //退出程序
}
}
}

@ -80,21 +80,18 @@ public class LoginActivity extends AppCompatActivity {
/**
*
*/
@SuppressLint("ResourceAsColor")
private void setOnclickListener(){
LoginUtil.userLogin(LoginActivity.this, btLogin, etAccount, etPwd, cbRememberPwd );
//用户注册
lgRegister.setOnClickListener(new View.OnClickListener() {
@SuppressLint("ResourceAsColor")
@Override
public void onClick(View v) {
lgRegister.setTextColor(R.color.crimson);
lgRegister.getPaint().setUnderlineText(true);
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
lgRegister.setOnClickListener(v -> {
lgRegister.setTextColor(R.color.crimson);
lgRegister.getPaint().setUnderlineText(true);
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
intent.putExtras(bundle);
startActivity(intent);
});
}
@ -122,7 +119,7 @@ public class LoginActivity extends AppCompatActivity {
String account = spFile.getString(accountKey, null);
String password = spFile.getString(passwordKey, null);
Boolean rememberPassword = spFile.getBoolean(rememberPasswordKey, false);
boolean rememberPassword = spFile.getBoolean(rememberPasswordKey, false);
if(account != null && !TextUtils.isEmpty(account)){
etAccount.setText(account);
etAccount.setSelection(account.length());

@ -5,7 +5,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.View;
import android.widget.ImageButton;
@ -27,7 +26,6 @@ import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.model.LatLng;
@ -41,7 +39,6 @@ import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.example.stlink.R;
import com.example.stlink.configs.adapter.LocationPoiAdapter;
import com.example.stlink.configs.onRecyclerViewItemClickListener;
import com.example.stlink.fragments.StuHomeFragment;
import com.example.stlink.model.constants.ModelFieldConstants;
import com.example.stlink.utils.MyLocationListener;
@ -106,6 +103,7 @@ public class MapActivity extends AppCompatActivity {
/**
*
*/
@SuppressLint("NotifyDataSetChanged")
private void initView(){
//获取布局相关控件
mMapView = findViewById(R.id.b_map_view);
@ -116,40 +114,33 @@ public class MapActivity extends AppCompatActivity {
mRecyclerView= findViewById(R.id.rv_msg);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
locationPoiHandler = new Handler(new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == 1){
adapter=new LocationPoiAdapter(MapActivity.this,mList);
mRecyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
adapter.setOnItemClickListener(recyclerViewItemClickListener);
}
return false;
locationPoiHandler = new Handler(msg -> {
if(msg.arg1 == 1){
adapter=new LocationPoiAdapter(MapActivity.this,mList);
mRecyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
adapter.setOnItemClickListener(recyclerViewItemClickListener);
}
return false;
});
myLocationListenerHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
nowLocation = myLocationListener.getLocation();
if(msg.arg1 == 200 && nowLocation != null){
LatLng point = new LatLng(nowLocation.getLatitude(), nowLocation.getLongitude());
System.out.println("reverseGeocoding: start!!!!!!!!!!!!");
//单次定位结束,销毁定位
System.out.println("mBaiduMap:closing................");
mLocationClient.stop();
//关闭定位图层
myLocationListenerHandler = new Handler(msg -> {
nowLocation = myLocationListener.getLocation();
if(msg.arg1 == 200 && nowLocation != null){
LatLng point = new LatLng(nowLocation.getLatitude(), nowLocation.getLongitude());
System.out.println("reverseGeocoding: start!!!!!!!!!!!!");
//单次定位结束,销毁定位
System.out.println("mBaiduMap:closing................");
mLocationClient.stop();
//关闭定位图层
// mBaiduMap.setMyLocationEnabled(false);
//开始地理反编码
reverseGeocoding(point);
}else{
System.out.println("mLocationClient : " + mLocationClient.toString());
System.out.println("nowLocation : " + nowLocation);
}
return false;
//开始地理反编码
reverseGeocoding(point);
}else{
System.out.println("mLocationClient : " + mLocationClient.toString());
System.out.println("nowLocation : " + nowLocation);
}
return false;
});
// 得到地图
@ -248,19 +239,16 @@ public class MapActivity extends AppCompatActivity {
*/
private void setOtherListener(){
//重定位
ivRelocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击重定位按钮,启动定位
System.out.println("mBaiduMap:starting................");
mLocationClient.start();
//开启定位图层
ivRelocation.setOnClickListener(v -> {
//点击重定位按钮,启动定位
System.out.println("mBaiduMap:starting................");
mLocationClient.start();
//开启定位图层
// mBaiduMap.setMyLocationEnabled(true);
// BDLocation nowLocation = myLocationListener.getLocation();
// LatLng ll = new LatLng(nowLocation.getLatitude(), nowLocation.getLongitude());
// MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll);
// mBaiduMap.animateMapStatus(msu);
}
});
abBtReturn.setOnClickListener(new View.OnClickListener() {
@Override
@ -269,40 +257,33 @@ public class MapActivity extends AppCompatActivity {
}
});
//保存
abBtSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nowLocation = myLocationListener.getLocation();
String ll = "(" + nowLocation.getLatitude() + "," + nowLocation.getLongitude() + ")";
Intent intent = new Intent();
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.LOCATION, ll);
intent.putExtras(bundle);
setResult(100,intent);
finish();
}
abBtSave.setOnClickListener(v -> {
nowLocation = myLocationListener.getLocation();
String ll = "(" + nowLocation.getLatitude() + "," + nowLocation.getLongitude() + ")";
Intent intent = new Intent();
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.LOCATION, ll);
intent.putExtras(bundle);
setResult(100,intent);
finish();
});
recyclerViewItemClickListener = new onRecyclerViewItemClickListener() {
@Override
public void onItemClick(RecyclerView parent, View view, int position) {
PoiInfo poiInfo = mList.get(position);
//添加"Yes"按钮
//添加取消
AlertDialog alertDialog2 = new AlertDialog.Builder(MapActivity.this)
.setMessage("签到地点【" + poiInfo.name + "】")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent();
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.LOCATION, poiInfo.name);
intent.putExtras(bundle);
setResult(100,intent);
finish();
}
.setPositiveButton("确定", (dialogInterface, i) -> {
Intent intent = new Intent();
Bundle bundle = getIntent().getExtras();
bundle.putString(ModelFieldConstants.LOCATION, poiInfo.name);
intent.putExtras(bundle);
setResult(100,intent);
finish();
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
.setNegativeButton("取消", (dialogInterface, i) -> {
})
.create();
alertDialog2.show();

@ -14,9 +14,5 @@ public class ScanQRCodeActivity extends AppCompatActivity {
setContentView(R.layout.activity_scan_code);
}
private void initView(){
}
}

@ -1,7 +1,6 @@
package com.example.stlink.activitys.fragmentChild.activityStuClassList;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
@ -57,6 +56,7 @@ public class CourseSignIn extends AppCompatActivity {
private TextInputEditText etCodeInput;
private static List<CourseSign> courseHasSignedList;
@SuppressLint("StaticFieldLeak")
private static StuCourseSignedAdapter adapter;
private Handler signHandler;
@ -121,90 +121,69 @@ public class CourseSignIn extends AppCompatActivity {
}
private void setClickListener(){
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
//点击签到后的事件
btSign.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@SuppressLint("InflateParams")
View view = LayoutInflater.from(CourseSignIn.this).inflate(R.layout.dialog_input, null);
AlertDialog.Builder builder = new AlertDialog.Builder(CourseSignIn.this)
.setMessage("请输入签到口令")
.setView(view)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@Override
public void onClick(DialogInterface dialogInterface, int i) {
etCodeInput = view.findViewById(R.id.et_code_input);
Editable etSignCode = etCodeInput.getText();
if(etSignCode == null){
Toast.makeText(CourseSignIn.this, "口令为空", Toast.LENGTH_SHORT).show();
}else{
signCodeStr = etSignCode.toString();
int signCode;
StuSignRequest stuSignRequest = new StuSignRequest();
stuSignRequest.setUserSignId(courseSignId);
stuSignRequest.setUserId(bundle.getLong(ModelFieldConstants.ID));
try{
signCode = Integer.parseInt(signCodeStr);
stuSignRequest.setSignCode(signCode);
signHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == -1){
String errorMsg = (String) msg.obj;
Toast.makeText(CourseSignIn.this, errorMsg, Toast.LENGTH_SHORT).show();
}else if(msg.arg1 == 1){
Toast.makeText(CourseSignIn.this, "签到成功", Toast.LENGTH_SHORT).show();
tvSignRecord.setVisibility(View.VISIBLE);
getSignedHandler = new Handler(new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == 1){
adapter.notifyDataSetChanged();
}
return false;
}
});
getHasSignedList();
}
return false;
btSign.setOnClickListener(v -> {
@SuppressLint("InflateParams")
View view = LayoutInflater.from(CourseSignIn.this).inflate(R.layout.dialog_input, null);
//添加取消
//添加"Yes"按钮
@SuppressLint("NotifyDataSetChanged")
AlertDialog.Builder builder = new AlertDialog.Builder(CourseSignIn.this)
.setMessage("请输入签到口令")
.setView(view)
.setPositiveButton("确定", (dialogInterface, i) -> {
etCodeInput = view.findViewById(R.id.et_code_input);
Editable etSignCode = etCodeInput.getText();
if(etSignCode == null){
Toast.makeText(CourseSignIn.this, "口令为空", Toast.LENGTH_SHORT).show();
}else{
signCodeStr = etSignCode.toString();
int signCode;
StuSignRequest stuSignRequest = new StuSignRequest();
stuSignRequest.setUserSignId(courseSignId);
stuSignRequest.setUserId(bundle.getLong(ModelFieldConstants.ID));
try{
signCode = Integer.parseInt(signCodeStr);
stuSignRequest.setSignCode(signCode);
signHandler = new Handler(msg -> {
if(msg.arg1 == -1){
String errorMsg = (String) msg.obj;
Toast.makeText(CourseSignIn.this, errorMsg, Toast.LENGTH_SHORT).show();
}else if(msg.arg1 == 1){
Toast.makeText(CourseSignIn.this, "签到成功", Toast.LENGTH_SHORT).show();
tvSignRecord.setVisibility(View.VISIBLE);
getSignedHandler = new Handler(msg1 -> {
if(msg1.arg1 == 1){
adapter.notifyDataSetChanged();
}
return false;
});
signIn(stuSignRequest);
}catch ( NumberFormatException numberFormatException){
Toast.makeText(CourseSignIn.this, "口令输入错误", Toast.LENGTH_SHORT).show();
getHasSignedList();
}
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
})
.setNeutralButton("扫码", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 创建IntentIntegrator对象
IntentIntegrator intentIntegrator = new IntentIntegrator(CourseSignIn.this)
.setBeepEnabled(true) //扫描提示音
.setPrompt("这是个扫码签到界面")
//.setCaptureActivity(MyCaptureActivity.class) //修改扫码活动
.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)// 扫码的类型,可选:一维码,二维码,一/二维码
.setTimeout(10000);//15秒未扫描则将自动关闭扫码界面
// 开始扫描
intentIntegrator.initiateScan();
return false;
});
signIn(stuSignRequest);
}catch ( NumberFormatException numberFormatException){
Toast.makeText(CourseSignIn.this, "口令输入错误", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog2 = builder.create();
alertDialog2.show();
}
}
})
.setNegativeButton("取消", (dialogInterface, i) -> {
})
.setNeutralButton("扫码", (dialog, which) -> {
// 创建IntentIntegrator对象
IntentIntegrator intentIntegrator = new IntentIntegrator(CourseSignIn.this)
.setBeepEnabled(true) //扫描提示音
.setPrompt("这是个扫码签到界面")
//.setCaptureActivity(MyCaptureActivity.class) //修改扫码活动
.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)// 扫码的类型,可选:一维码,二维码,一/二维码
.setTimeout(10000);//15秒未扫描则将自动关闭扫码界面
// 开始扫描
intentIntegrator.initiateScan();
});
AlertDialog alertDialog2 = builder.create();
alertDialog2.show();
});
}
@ -212,46 +191,43 @@ public class CourseSignIn extends AppCompatActivity {
*
*/
private void getHasSignedList(){
new Thread(new Runnable() {
@Override
public void run() {
bundle = getIntent().getExtras();
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + bundle.getLong(ModelFieldConstants.ID) + "&" +
ModelFieldConstants.COURSE_SIGN_STATUS + "=" + 1 + "&" +
"current=1&size=10";
String url = UrlConstants.STUDENT_SIGN_LIST + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
if(baseResponse.getData() != null){
System.out.println("StuClassListFragment:courseDataBaseResponse.getData() = " + baseResponse.getData() + "...............");
new Thread(() -> {
bundle = getIntent().getExtras();
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + bundle.getLong(ModelFieldConstants.ID) + "&" +
ModelFieldConstants.COURSE_SIGN_STATUS + "=" + 1 + "&" +
"current=1&size=10";
String url = UrlConstants.STUDENT_SIGN_LIST + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
if(baseResponse.getData() != null){
System.out.println("StuClassListFragment:courseDataBaseResponse.getData() = " + baseResponse.getData() + "...............");
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDataMap = null;
if(obj instanceof LinkedTreeMap){
courseDataMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到CourseData类中
//array:学生获取所选课程签到列表返回实体
String jsonString = gson.toJson(courseDataMap);
CourseData<CourseSign> courseData = gson.fromJson(jsonString, new TypeToken<CourseData<CourseSign>>() {}.getType());
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDataMap = null;
if(obj instanceof LinkedTreeMap){
courseDataMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到CourseData类中
//array:学生获取所选课程签到列表返回实体
String jsonString = gson.toJson(courseDataMap);
CourseData<CourseSign> courseData = gson.fromJson(jsonString, new TypeToken<CourseData<CourseSign>>() {}.getType());
if(courseData.getRecords().size() != 0){
courseHasSignedList.addAll(courseData.getRecords());
System.out.println("Here.............................");
Message message = new Message();
message.arg1 = 1;
getSignedHandler.sendMessage(message);
}
if(courseData.getRecords().size() != 0){
courseHasSignedList.addAll(courseData.getRecords());
System.out.println("Here.............................");
Message message = new Message();
message.arg1 = 1;
getSignedHandler.sendMessage(message);
}
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) { }
}.getConnect(url);
}
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) { }
}.getConnect(url);
}).start();
}
@ -306,15 +282,11 @@ public class CourseSignIn extends AppCompatActivity {
}else if(msg.arg1 == 1){
Toast.makeText(CourseSignIn.this, "签到成功", Toast.LENGTH_SHORT).show();
tvSignRecord.setVisibility(View.VISIBLE);
getSignedHandler = new Handler(new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == 1){
adapter.notifyDataSetChanged();
}
return false;
getSignedHandler = new Handler(msg1 -> {
if(msg1.arg1 == 1){
adapter.notifyDataSetChanged();
}
return false;
});
getHasSignedList();
}

@ -39,7 +39,7 @@ public class AllCourses extends AppCompatActivity {
private List<Course> coursesData;
private StuAddCourseAdapter adapter;
private ImageView abIvTitle;
private static SwipeRefreshLayout srlMyRefresh;
private SwipeRefreshLayout srlMyRefresh;
private static Bundle bundle;
private static Handler handler;

@ -13,7 +13,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.example.stlink.R;
import com.example.stlink.fragments.CourseClassListFragment;
@ -125,13 +124,7 @@ public class CourseDetail extends AppCompatActivity {
*
*/
private void setListener(){
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
}
private void initPager(){
@ -146,46 +139,43 @@ public class CourseDetail extends AppCompatActivity {
}
private void getCourseDetail(){
new Thread(new Runnable() {
@Override
public void run() {
long courseId = bundle.getLong(ModelFieldConstants.COURSE_ID);
long userId = bundle.getLong(ModelFieldConstants.USER_ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.COURSE_DETAIL + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDetailMap = null;
if(obj instanceof LinkedTreeMap){
courseDetailMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到User类中
String jsonString = gson.toJson(courseDetailMap);
CourseDetailData courseDetail = gson.fromJson(jsonString, new TypeToken<CourseDetailData>() {}.getType());
System.out.println("courseDetail = " + courseDetail + "..................");
Message message = new Message();
message.obj = courseDetail;
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
message.arg1 = baseResponse.getCode();
handler .sendMessage(message);
new Thread(() -> {
long courseId = bundle.getLong(ModelFieldConstants.COURSE_ID);
long userId = bundle.getLong(ModelFieldConstants.USER_ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.COURSE_DETAIL + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDetailMap = null;
if(obj instanceof LinkedTreeMap){
courseDetailMap = (LinkedTreeMap<String, String>) obj;
}
}.getConnect(url);
}
//将LinkedTreeMap中字段映射到User类中
String jsonString = gson.toJson(courseDetailMap);
CourseDetailData courseDetail = gson.fromJson(jsonString, new TypeToken<CourseDetailData>() {}.getType());
System.out.println("courseDetail = " + courseDetail + "..................");
Message message = new Message();
message.obj = courseDetail;
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
message.arg1 = baseResponse.getCode();
handler .sendMessage(message);
}
}.getConnect(url);
}).start();
}
}

@ -3,9 +3,6 @@ package com.example.stlink.activitys.fragmentChild.activityTeaHome;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.PixelFormat;
@ -20,19 +17,14 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;
import androidx.fragment.app.Fragment;
import com.example.stlink.BuildConfig;
import com.example.stlink.R;
import com.example.stlink.activitys.fragmentChild.activityStuClassList.CourseSignIn;
import com.example.stlink.fragments.DidNotSignListFragment;
import com.example.stlink.fragments.LeaveListFragment;
import com.example.stlink.fragments.SignListFragment;
@ -49,10 +41,8 @@ import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.internal.LinkedTreeMap;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class CheckCourseSign extends AppCompatActivity {

@ -1,14 +1,11 @@
package com.example.stlink.activitys.fragmentChild.activityTeaHome;
import android.annotation.SuppressLint;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;

@ -6,7 +6,6 @@ import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@ -19,9 +18,7 @@ import android.widget.Toast;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatButton;
import androidx.core.content.ContextCompat;
@ -41,8 +38,6 @@ import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Objects;
public class CreateSign extends AppCompatActivity {
@ -207,24 +202,21 @@ public class CreateSign extends AppCompatActivity {
etStartTime.setText(startTime);
hasChooseStartTime = true;
});
endTimePicker.addOnPositiveButtonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int endHour = endTimePicker.getHour();
int endMin = endTimePicker.getMinute();
String endTime = currYear + "-" +
currMonth + "-" +
currDay + " " +
endHour + ":" +
endMin + ":" + "00";
try {
endTimeStamp = Long.parseLong(CommonUtils.dateToStamp(endTime, "yyyy-MM-dd HH:mm:ss"));
} catch (ParseException e) {
e.printStackTrace();
}
etEndTime.setText(endTime);
hasChooseEndTime = true;
endTimePicker.addOnPositiveButtonClickListener(v -> {
int endHour = endTimePicker.getHour();
int endMin = endTimePicker.getMinute();
String endTime = currYear + "-" +
currMonth + "-" +
currDay + " " +
endHour + ":" +
endMin + ":" + "00";
try {
endTimeStamp = Long.parseLong(CommonUtils.dateToStamp(endTime, "yyyy-MM-dd HH:mm:ss"));
} catch (ParseException e) {
e.printStackTrace();
}
etEndTime.setText(endTime);
hasChooseEndTime = true;
});
//课程开始时间
etStartTime.setOnClickListener(v -> {

@ -9,7 +9,6 @@ import android.os.Looper;
import android.os.Message;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@ -81,7 +80,9 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if(tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
case ModelFieldConstants.COLLEGE_NAME : {
@ -92,7 +93,9 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if(tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
case ModelFieldConstants.REAL_NAME : {
@ -103,7 +106,9 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if(tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
case ModelFieldConstants.ID_NUMBER : {
@ -118,7 +123,9 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if(tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
case ModelFieldConstants.GENDER : {
@ -138,36 +145,24 @@ public class ModifyUserInfo extends AppCompatActivity {
tiNewMsg.setKeyListener(null);
tiNewMsg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("choose gender............");
String[] singleItems = {"男", "女"};
int checkedItem = "男".equals(tiNewMsg.getText().toString()) ? 0 : 1;
MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(ModifyUserInfo.this)
.setTitle("请选择性别")
.setNeutralButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tiNewMsg.setText(singleItems[bundle.getInt("checkedItem")]);
}
})
.setSingleChoiceItems(singleItems, checkedItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
bundle.putInt("checkedItem", which);
}
});
materialAlertDialogBuilder.show();
tiNewMsg.setOnClickListener(v -> {
System.out.println("choose gender............");
String[] singleItems = {"男", "女"};
int checkedItem = 0;
if(tiNewMsg.getText() != null){
checkedItem = "男".equals(tiNewMsg.getText().toString()) ? 0 : 1;
}
MaterialAlertDialogBuilder materialAlertDialogBuilder = new MaterialAlertDialogBuilder(ModifyUserInfo.this)
.setTitle("请选择性别")
.setNeutralButton(getString(R.string.cancel), (dialog, which) -> {
})
.setPositiveButton(getString(R.string.ok), (dialog, which) ->
tiNewMsg.setText(singleItems[bundle.getInt("checkedItem")]))
.setSingleChoiceItems(singleItems, checkedItem, (dialog, which) ->
bundle.putInt("checkedItem", which));
materialAlertDialogBuilder.show();
});
break;
}
@ -179,7 +174,9 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if (tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
case ModelFieldConstants.PHONE : {
@ -190,11 +187,14 @@ public class ModifyUserInfo extends AppCompatActivity {
}else{
tiNewMsg.setText("");
}
tiNewMsg.setSelection(tiNewMsg.getText().length());
if(tiNewMsg.getText() != null){
tiNewMsg.setSelection(tiNewMsg.getText().length());
}
break;
}
default:{
tiNewMsg.setText("error.....");
String errorText = "error.....";
tiNewMsg.setText(errorText);
}
}
}
@ -204,12 +204,7 @@ public class ModifyUserInfo extends AppCompatActivity {
*/
private void setListener(){
//返回上一个活动,也就是个人信息部分
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
tiNewMsg.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@ -224,12 +219,7 @@ public class ModifyUserInfo extends AppCompatActivity {
abBtSave.setBackgroundResource(R.drawable.selector_bottom_modify_info_save_2);
abBtSave.setTextColor(Color.WHITE);
//为按钮添加点击事件
abBtSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog();
}
});
abBtSave.setOnClickListener(v -> dialog());
}
@Override
@ -244,6 +234,7 @@ public class ModifyUserInfo extends AppCompatActivity {
*/
private void dialog(){
//添加取消
AlertDialog alertDialog2 = new AlertDialog.Builder(this)
.setMessage("请确认是否进行" + abTvTitle.getText())
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@ -259,10 +250,7 @@ public class ModifyUserInfo extends AppCompatActivity {
};
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
.setNegativeButton("取消", (dialogInterface, i) -> {
})
.create();
alertDialog2.show();
@ -272,57 +260,23 @@ public class ModifyUserInfo extends AppCompatActivity {
*
*/
private void modifyInfo(){
new Thread(new Runnable() {
@Override
public void run() {
JSONObject jsonObject = new JSONObject();
boolean isLegalInput = false;
try {
jsonObject.put(ModelFieldConstants.ID, (Long) bundle.get(ModelFieldConstants.ID));
} catch (JSONException e) {
e.printStackTrace();
}
//根据上一个活动传递过来的选择字段,来选择对应的传输方法
String modifyField = (String) bundle.get(ModelFieldConstants.TO_BE_MODIFY);
switch (modifyField){
case ModelFieldConstants.ID_NUMBER:
case ModelFieldConstants.IN_SCHOOL_TIME:{
try {
Long msg = Long.parseLong(Objects.requireNonNull(tiNewMsg.getText()).toString());
jsonObject.put(modifyField, msg);
bundle.putLong(modifyField, msg);
isLegalInput = true;
}catch (NumberFormatException e){
e.printStackTrace();
Message msg = new Message();
msg.obj = "输入非法.";
handler.sendMessage(msg);
}catch (JSONException e) {
e.printStackTrace();
}
break;
}
case ModelFieldConstants.GENDER:{
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
if("男".equals(msg) || "女".equals(msg)){
Boolean msgBoolean = "男".equals(msg);
jsonObject.put(modifyField, msgBoolean);
bundle.putBoolean(modifyField, msgBoolean);
isLegalInput = true;
}
} catch (JSONException e) {
e.printStackTrace();
}
break;
}
case ModelFieldConstants.PHONE: {
new Thread(() -> {
JSONObject jsonObject = new JSONObject();
boolean isLegalInput = false;
try {
jsonObject.put(ModelFieldConstants.ID, (Long) bundle.get(ModelFieldConstants.ID));
} catch (JSONException e) {
e.printStackTrace();
}
//根据上一个活动传递过来的选择字段,来选择对应的传输方法
String modifyField = (String) bundle.get(ModelFieldConstants.TO_BE_MODIFY);
switch (modifyField){
case ModelFieldConstants.ID_NUMBER:
case ModelFieldConstants.IN_SCHOOL_TIME:{
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
//判断输入电话号码是否能解析为long型能解析的话说明输入没有非法字符
Long msgLong = Long.parseLong(msg);
Long msg = Long.parseLong(Objects.requireNonNull(tiNewMsg.getText()).toString());
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
bundle.putLong(modifyField, msg);
isLegalInput = true;
}catch (NumberFormatException e){
e.printStackTrace();
@ -330,72 +284,103 @@ public class ModifyUserInfo extends AppCompatActivity {
msg.obj = "输入非法.";
handler.sendMessage(msg);
}catch (JSONException e) {
e.printStackTrace();
e.printStackTrace();
}
break;
}
case ModelFieldConstants.GENDER:{
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
if("男".equals(msg) || "女".equals(msg)){
Boolean msgBoolean = "男".equals(msg);
jsonObject.put(modifyField, msgBoolean);
bundle.putBoolean(modifyField, msgBoolean);
isLegalInput = true;
}
break;
} catch (JSONException e) {
e.printStackTrace();
}
case ModelFieldConstants.EMAIL:{
Message message = new Message();
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
String[] msgStr = msg.split("@");
//必须得包含@符号
if(msgStr.length == 2){
//邮箱的两部分必定是长度大于0的
if(msgStr[0].length() > 0 && msgStr[1].length() > 0){
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
isLegalInput = true;
}else{
message.obj = "输入非法.";
handler.sendMessage(message);
}
break;
}
case ModelFieldConstants.PHONE: {
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
//判断输入电话号码是否能解析为long型能解析的话说明输入没有非法字符
// Long msgLong = Long.parseLong(msg);
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
isLegalInput = true;
}catch (NumberFormatException e){
e.printStackTrace();
Message msg = new Message();
msg.obj = "输入非法.";
handler.sendMessage(msg);
}catch (JSONException e) {
e.printStackTrace();
}
break;
}
case ModelFieldConstants.EMAIL:{
Message message = new Message();
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
String[] msgStr = msg.split("@");
//必须得包含@符号
if(msgStr.length == 2){
//邮箱的两部分必定是长度大于0的
if(msgStr[0].length() > 0 && msgStr[1].length() > 0){
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
isLegalInput = true;
}else{
message.obj = "输入非法.";
handler.sendMessage(message);
}
} catch (NumberFormatException e){
e.printStackTrace();
}else{
message.obj = "输入非法.";
handler.sendMessage(message);
}catch (JSONException e) {
e.printStackTrace();
}
break;
} catch (NumberFormatException e){
e.printStackTrace();
message.obj = "输入非法.";
handler.sendMessage(message);
}catch (JSONException e) {
e.printStackTrace();
}
default:{
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
isLegalInput = true;
} catch (JSONException e) {
e.printStackTrace();
}
break;
}
default:{
try {
String msg = Objects.requireNonNull(tiNewMsg.getText()).toString();
jsonObject.put(modifyField, msg);
bundle.putString(modifyField, msg);
isLegalInput = true;
} catch (JSONException e) {
e.printStackTrace();
}
}
System.out.println( "jsonObject : " + jsonObject.toString() + "..............................");
String json = jsonObject.toString();
String url = UrlConstants.USER_UPDATE;
}
System.out.println( "jsonObject : " + jsonObject + "..............................");
String json = jsonObject.toString();
String url = UrlConstants.USER_UPDATE;
if(isLegalInput){
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Intent intent = new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("修改失败.......................");
handler.sendMessage(message);
}
}.postConnect(url, json);
}
if(isLegalInput){
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Intent intent = new Intent();
intent.putExtras(bundle);
setResult(RESULT_OK,intent);
finish();
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("修改失败.......................");
handler.sendMessage(message);
}
}.postConnect(url, json);
}
}).start();
}

@ -33,11 +33,6 @@ public class UserInfoRecord extends AppCompatActivity {
private void setClickListener(){
//返回上一个活动,也就是个人信息部分
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
}
}

@ -2,7 +2,6 @@ package com.example.stlink.activitys.fragmentChild.activityUserInfo;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
@ -38,30 +37,16 @@ public class UserInfoSetting extends AppCompatActivity {
}
private void setClickListener(){
btExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// finish();//这个只是从方法栈中移除了当前活动
// System.exit(0); //同上
CommonUtils.exitApp(UserInfoSetting.this);
}
});
btLoginOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(UserInfoSetting.this, IdChooseActivity.class);
//退出登录后,禁止再退回来
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
btExit.setOnClickListener(v ->
CommonUtils.exitApp(UserInfoSetting.this));
btLoginOut.setOnClickListener(v -> {
Intent intent = new Intent(UserInfoSetting.this, IdChooseActivity.class);
//退出登录后,禁止再退回来
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
});
//返回上一个活动,也就是个人信息部分
abIvTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
abIvTitle.setOnClickListener(v -> finish());
}
}

@ -81,6 +81,7 @@ public class LocationPoiAdapter extends RecyclerView.Adapter<LocationPoiAdapter.
tvBuildingDescription = itemView.findViewById(R.id.tv_building_description);
}
@NonNull
@Override
public String toString() {
return "ViewHolder{" +

@ -119,6 +119,7 @@ public class StuAddCourseAdapter extends RecyclerView.Adapter<StuAddCourseAdapte
holder.ivRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//添加取消
AlertDialog alertDialog2 = new AlertDialog.Builder(mContext)
.setMessage("确认加入课程")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@ -141,10 +142,7 @@ public class StuAddCourseAdapter extends RecyclerView.Adapter<StuAddCourseAdapte
};
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) { }
})
.setNegativeButton("取消", (dialogInterface, i) -> { })
.create();
alertDialog2.show();
}
@ -155,35 +153,32 @@ public class StuAddCourseAdapter extends RecyclerView.Adapter<StuAddCourseAdapte
*
*/
private void deleteCourse(int position){
new Thread(new Runnable() {
@Override
public void run() {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.STUDENT_SELECT + "?" + urlParam;
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "添加成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("添加失败.......................");
message.obj = "添加失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.postConnect(url, "");
}
new Thread(() -> {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.STUDENT_SELECT + "?" + urlParam;
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "添加成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("添加失败.......................");
message.obj = "添加失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.postConnect(url, "");
}).start();
}
}

@ -46,9 +46,8 @@ public class StuCourseSignedAdapter extends RecyclerView.Adapter<StuCourseSigned
View view = LayoutInflater.from(mContext)
.inflate(resourceId, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
return new ViewHolder(view);
}
@Override

@ -112,13 +112,14 @@ public class StuDeleteCourseAdapter extends RecyclerView.Adapter<StuDeleteCourse
/**
* 线线
* @param holder
* @param position
* @param holder
* @param position Item
*/
public void setDeleteClickListener(ViewHolder holder, int position){
holder.ivRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//添加取消
AlertDialog alertDialog2 = new AlertDialog.Builder(mContext)
.setMessage("确认退出课程")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@ -137,10 +138,7 @@ public class StuDeleteCourseAdapter extends RecyclerView.Adapter<StuDeleteCourse
};
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
.setNegativeButton("取消", (dialogInterface, i) -> {
})
.create();
alertDialog2.show();
@ -152,35 +150,32 @@ public class StuDeleteCourseAdapter extends RecyclerView.Adapter<StuDeleteCourse
*
*/
private void deleteCourse(int position){
new Thread(new Runnable() {
@Override
public void run() {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
Long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.STUDENT_DROP + "?" + urlParam;
new DeleteUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "退出成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("退出失败.......................");
message.obj = "退出失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.deleteConnect(url);
}
new Thread(() -> {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.STUDENT_DROP + "?" + urlParam;
new DeleteUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "退出成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("退出失败.......................");
message.obj = "退出失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.deleteConnect(url);
}).start();
}
}

@ -113,13 +113,14 @@ public class TeaDeleteCourseAdapter extends RecyclerView.Adapter<TeaDeleteCourse
/**
* 线线
* @param holder
* @param position
* @param holder
* @param position item
*/
public void setDeleteClickListener(ViewHolder holder, int position){
holder.ivRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//添加取消
AlertDialog alertDialog2 = new AlertDialog.Builder(mContext)
.setMessage("确认删除课程")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
@ -142,10 +143,7 @@ public class TeaDeleteCourseAdapter extends RecyclerView.Adapter<TeaDeleteCourse
};
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
.setNegativeButton("取消", (dialogInterface, i) -> {
})
.create();
alertDialog2.show();
@ -157,35 +155,32 @@ public class TeaDeleteCourseAdapter extends RecyclerView.Adapter<TeaDeleteCourse
*
*/
private void deleteCourse(int position){
new Thread(new Runnable() {
@Override
public void run() {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
Long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.TEACHER_COURSE + "?" + urlParam;
new DeleteUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "删除成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("删除失败.......................");
message.obj = "删除失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.deleteConnect(url);
}
new Thread(() -> {
AppCompatActivity appCompatActivity = (AppCompatActivity) mContext;
Bundle bundle = appCompatActivity.getIntent().getExtras();
Long courseId = mCourseData.get(position).getmCourseId();
long userId = bundle.getLong(ModelFieldConstants.ID);
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + userId;
String url = UrlConstants.TEACHER_COURSE + "?" + urlParam;
new DeleteUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "删除成功";
message.arg1 = 200;
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
System.out.println("删除失败.......................");
message.obj = "删除失败";
message.arg1 = 400;
handler.sendMessage(message);
}
}.deleteConnect(url);
}).start();
}
}

@ -45,11 +45,11 @@ public class NestedScrollableHost extends FrameLayout {
return (ViewPager2) var2;
}
private final View getChild() {
private View getChild() {
return this.getChildCount() > 0 ? this.getChildAt(0) : null;
}
private final boolean canChildScroll(int orientation, float delta) {
private boolean canChildScroll(int orientation, float delta) {
boolean var5 = false;
int direction = -((int) Math.signum(delta));
View var10000;
@ -57,11 +57,11 @@ public class NestedScrollableHost extends FrameLayout {
switch (orientation) {
case 0:
var10000 = this.getChild();
var6 = var10000 != null ? var10000.canScrollHorizontally(direction) : false;
var6 = var10000 != null && var10000.canScrollHorizontally(direction);
break;
case 1:
var10000 = this.getChild();
var6 = var10000 != null ? var10000.canScrollVertically(direction) : false;
var6 = var10000 != null && var10000.canScrollVertically(direction);
break;
default:
// throw (Throwable)(new IllegalArgumentException());
@ -76,7 +76,7 @@ public class NestedScrollableHost extends FrameLayout {
return super.onInterceptTouchEvent(e);
}
private final void handleInterceptTouchEvent(MotionEvent e) {
private void handleInterceptTouchEvent(MotionEvent e) {
ViewPager2 var10000 = this.getParentViewPager();
if (var10000 != null) {
int orientation = var10000.getOrientation();
@ -96,11 +96,7 @@ public class NestedScrollableHost extends FrameLayout {
if (scaledDx > (float) this.touchSlop || scaledDy > (float) this.touchSlop) {
if (isVpHorizontal == scaledDy > scaledDx) {
this.getParent().requestDisallowInterceptTouchEvent(false);
} else if (this.canChildScroll(orientation, isVpHorizontal ? dx : dy)) {
this.getParent().requestDisallowInterceptTouchEvent(true);
} else {
this.getParent().requestDisallowInterceptTouchEvent(false);
}
} else this.getParent().requestDisallowInterceptTouchEvent(this.canChildScroll(orientation, isVpHorizontal ? dx : dy));
}
}

@ -55,23 +55,14 @@ public class CourseSelectedStuFragment extends Fragment {
}
private void setClickListener(){
stu1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stu1.setOnClickListener(v -> {
}
});
stu2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stu2.setOnClickListener(v -> {
}
});
stu3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stu3.setOnClickListener(v -> {
}
});
}

@ -141,12 +141,9 @@ public class CrsFinishedListFragment extends Fragment {
@Override
public void onItemLongClick(RecyclerView parent, View view, int position) { }
});
srlMyRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshData();
srlMyRefresh.setRefreshing(false);
}
srlMyRefresh.setOnRefreshListener(() -> {
refreshData();
srlMyRefresh.setRefreshing(false);
});
}

@ -143,12 +143,9 @@ public class CrsUnfinishedListFragment extends Fragment {
@Override
public void onItemLongClick(RecyclerView parent, View view, int position) { }
});
srlMyRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshData();
srlMyRefresh.setRefreshing(false);
}
srlMyRefresh.setOnRefreshListener(() -> {
refreshData();
srlMyRefresh.setRefreshing(false);
});
}

@ -9,11 +9,9 @@ import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Size;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -32,7 +30,6 @@ import com.example.stlink.model.response.BaseResponse;
import com.example.stlink.model.response.data.CourseData;
import com.example.stlink.utils.httpUtils.GetUrlParamHttpUtils;
import com.google.android.material.badge.BadgeDrawable;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.internal.LinkedTreeMap;
@ -88,6 +85,7 @@ public class StuClassListFragment extends Fragment {
@SuppressLint("NotifyDataSetChanged")
public static void refreshData(){
courseIdList = new ArrayList<>();
courseSigns = new ArrayList<>();
@ -105,19 +103,15 @@ public class StuClassListFragment extends Fragment {
getStuSelectedCourseList();
//只有在获取当前学生所选课程的所有id之后才能遍历
handler = new Handler(new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == 100){
getToBeSignList();
setListener();
}else if(msg.arg1 == 200){
adapter.notifyDataSetChanged();
System.out.println("StuClassListFragment:courseSigns = " + courseSigns.toString());
}
return false;
handler = new Handler(msg -> {
if(msg.arg1 == 100){
getToBeSignList();
setListener();
}else if(msg.arg1 == 200){
adapter.notifyDataSetChanged();
System.out.println("StuClassListFragment:courseSigns = " + courseSigns.toString());
}
return false;
});
}
@ -142,12 +136,9 @@ public class StuClassListFragment extends Fragment {
}
});
srlMyRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshData();
srlMyRefresh.setRefreshing(false);
}
srlMyRefresh.setOnRefreshListener(() -> {
refreshData();
srlMyRefresh.setRefreshing(false);
});
}
@ -197,52 +188,49 @@ public class StuClassListFragment extends Fragment {
*
*/
private static void getToBeSignList(){
new Thread(new Runnable() {
@Override
public void run() {
for(Long courseId : courseIdList){
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + bundle.getLong(ModelFieldConstants.ID) + "&" +
ModelFieldConstants.COURSE_SIGN_STATUS + "=" + 0;
String url = UrlConstants.STUDENT_SIGN_LIST + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
if(baseResponse.getData() != null){
System.out.println("StuClassListFragment:courseDataBaseResponse.getData() = " + baseResponse.getData() + "...............");
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDataMap = null;
if(obj instanceof LinkedTreeMap){
courseDataMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到CourseData类中
//array:学生获取所选课程签到列表返回实体
String jsonString = gson.toJson(courseDataMap);
CourseData<CourseSign> courseData = gson.fromJson(jsonString, new TypeToken<CourseData<CourseSign>>() {}.getType());
for(CourseSign courseSign : courseData.getRecords()){
courseSign.setCourseId(courseId);
}
int total = courseData.getTotal();
//设置角标
mBadge.setVisible(true);
mBadge.setNumber(total);
System.out.println("StuClassListFragment:size = " + mBadge.getNumber() + ".....................");
System.out.println(mBadge.isVisible());
if(courseData.getRecords().size() != 0){
courseSigns.addAll(courseData.getRecords());
Message message = new Message();
message.arg1 = 200;
handler.sendMessage(message);
}
new Thread(() -> {
for(Long courseId : courseIdList){
String urlParam = ModelFieldConstants.COURSE_ID + "=" + courseId + "&" +
ModelFieldConstants.USER_ID + "=" + bundle.getLong(ModelFieldConstants.ID) + "&" +
ModelFieldConstants.COURSE_SIGN_STATUS + "=" + 0;
String url = UrlConstants.STUDENT_SIGN_LIST + "?" + urlParam;
new GetUrlParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
if(baseResponse.getData() != null){
System.out.println("StuClassListFragment:courseDataBaseResponse.getData() = " + baseResponse.getData() + "...............");
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> courseDataMap = null;
if(obj instanceof LinkedTreeMap){
courseDataMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到CourseData类中
//array:学生获取所选课程签到列表返回实体
String jsonString = gson.toJson(courseDataMap);
CourseData<CourseSign> courseData = gson.fromJson(jsonString, new TypeToken<CourseData<CourseSign>>() {}.getType());
for(CourseSign courseSign : courseData.getRecords()){
courseSign.setCourseId(courseId);
}
int total = courseData.getTotal();
//设置角标
mBadge.setVisible(true);
mBadge.setNumber(total);
System.out.println("StuClassListFragment:size = " + mBadge.getNumber() + ".....................");
System.out.println(mBadge.isVisible());
if(courseData.getRecords().size() != 0){
courseSigns.addAll(courseData.getRecords());
Message message = new Message();
message.arg1 = 200;
handler.sendMessage(message);
}
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) { }
}.getConnect(url);
}
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) { }
}.getConnect(url);
}
}).start();
}

@ -10,7 +10,6 @@ import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@ -95,13 +94,10 @@ public class StuHomeFragment extends Fragment {
FloatDragPopupWindow floatDragPopupWindow = new FloatDragPopupWindow.Builder(mAppCompatActivity)
.setContentView(faButton)
.setPosition(0, 600)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, AllCourses.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
mAppCompatActivity.startActivity(intent);
}
.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, AllCourses.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
mAppCompatActivity.startActivity(intent);
})
.build();
// 显示 FloatDragPopupWindow
@ -118,31 +114,19 @@ public class StuHomeFragment extends Fragment {
*/
private static void setListener(View view){
//口令输入 TODO
codeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
codeButton.setOnClickListener(v -> {
}
});
//文本输入 TODO
wordButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wordButton.setOnClickListener(v -> {
}
});
faButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
faButton.setOnClickListener(v -> {
}
});
srlMyRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshData();
srlMyRefresh.setRefreshing(false);
}
srlMyRefresh.setOnRefreshListener(() -> {
refreshData();
srlMyRefresh.setRefreshing(false);
});
}

@ -95,15 +95,12 @@ public class TeaCourseListFragment extends Fragment {
*/
private void setClickListener(){
//点击刷新页面
ftBtRefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = viewPager2.getCurrentItem();
if (position == 0){
CrsUnfinishedListFragment.refreshData();
}else{
CrsFinishedListFragment.refreshData();
}
ftBtRefresh.setOnClickListener(v -> {
int position = viewPager2.getCurrentItem();
if (position == 0){
CrsUnfinishedListFragment.refreshData();
}else{
CrsFinishedListFragment.refreshData();
}
});
}

@ -1,6 +1,5 @@
package com.example.stlink.fragments;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
@ -92,52 +91,37 @@ public class TeaHomeFragment extends Fragment{
*/
private void setClickListener(){
//查看签到
btCodeCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bundle = mAppCompatActivity.getIntent().getExtras();
String nowSignCourseName = bundle.getString(ModelFieldConstants.NOW_SIGN_COURSE_NAME);
if(nowSignCourseName != null){
System.out.println("nowSignCourseName = " + nowSignCourseName + "......................");
Intent intent = new Intent(mAppCompatActivity, CheckCourseSign.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
startActivity(intent);
}else{
Intent intent = new Intent(mAppCompatActivity, ChooseCourse.class);
bundle.putInt(ModelFieldConstants.COURSE_CHOOSE_SELECT, 1);
intent.putExtras(bundle);
startActivity(intent);
}
btCodeCheck.setOnClickListener(v -> {
bundle = mAppCompatActivity.getIntent().getExtras();
String nowSignCourseName = bundle.getString(ModelFieldConstants.NOW_SIGN_COURSE_NAME);
if(nowSignCourseName != null){
System.out.println("nowSignCourseName = " + nowSignCourseName + "......................");
Intent intent = new Intent(mAppCompatActivity, CheckCourseSign.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
startActivity(intent);
}else{
Intent intent = new Intent(mAppCompatActivity, ChooseCourse.class);
bundle.putInt(ModelFieldConstants.COURSE_CHOOSE_SELECT, 1);
intent.putExtras(bundle);
startActivity(intent);
}
});
//创建签到
btWordCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, CreateSign.class);
bundle = mAppCompatActivity.getIntent().getExtras();
bundle.putInt(ModelFieldConstants.COURSE_CHOOSE_SELECT, 0);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
}
btWordCheck.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, CreateSign.class);
bundle = mAppCompatActivity.getIntent().getExtras();
bundle.putInt(ModelFieldConstants.COURSE_CHOOSE_SELECT, 0);
intent.putExtras(bundle);
intentActivityResultLauncher.launch(intent);
});
//创建班级
btCreateClass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, CreateCourse.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
}
btCreateClass.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, CreateCourse.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
});
//管理班级
btManageClass.setOnClickListener(new View.OnClickListener() {
@SuppressLint("ResourceType")
@Override
public void onClick(View v) {
vp2.setCurrentItem(1);
}
});
btManageClass.setOnClickListener(v -> vp2.setCurrentItem(1));
}
}

@ -70,7 +70,7 @@ public class UserInfoFragment extends Fragment {
/**
* UserInfoFragment
* @param str
* @param str
* @return UserInfoFragment
*/
public static UserInfoFragment newInstance(String str, AppCompatActivity appCompatActivity){
@ -122,7 +122,7 @@ public class UserInfoFragment extends Fragment {
Glide.with(mAppCompatActivity)
.load(avatar)
//添加圆角
.apply(new RequestOptions().bitmapTransform(new RoundedCorners(10)))
.apply(RequestOptions.bitmapTransform(new RoundedCorners(10)))
.into(ivHeadImg);
}
if(userName != null){
@ -136,55 +136,37 @@ public class UserInfoFragment extends Fragment {
public static void initOnClickListener(){
btSetting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, UserInfoSetting.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
}
btSetting.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, UserInfoSetting.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
});
//关于
btAbout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, UserInfoAbout.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
}
btAbout.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, UserInfoAbout.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
});
//分享
btShare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shareHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
if(msg.arg1 == 1){
Intent shareIntent = (Intent) msg.obj;
intentActivityResultLauncher.launch(Intent.createChooser(shareIntent, "分享apk"));
}
return false;
}
});
shareApk();
}
btShare.setOnClickListener(v -> {
shareHandler = new Handler(msg -> {
if(msg.arg1 == 1){
Intent shareIntent = (Intent) msg.obj;
intentActivityResultLauncher.launch(Intent.createChooser(shareIntent, "分享apk"));
}
return false;
});
shareApk();
});
btRecord.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, UserInfoRecord.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
}
btRecord.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, UserInfoRecord.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
});
clBaseInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mAppCompatActivity, UserInfoDetail.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
}
clBaseInfo.setOnClickListener(v -> {
Intent intent = new Intent(mAppCompatActivity, UserInfoDetail.class);
intent.putExtras(mAppCompatActivity.getIntent().getExtras());
intentActivityResultLauncher.launch(intent);
});
}
@ -198,15 +180,8 @@ public class UserInfoFragment extends Fragment {
File apkFile = new File(applicationInfo.sourceDir);
Intent shareIntent = new Intent();
// 设置该意图对象作为活动发送
shareIntent.setAction(Intent.ACTION_SEND);
// // 比如发送文本形式的数据内容
// // 指定发送的内容
// shareIntent.putExtra(Intent.EXTRA_TEXT, "S.T.Link......");
// // 指定发送内容的类型
// shareIntent.setType("text/plain");
//
// intentActivityResultLauncher.launch(Intent.createChooser(shareIntent, "分享"));
shareIntent.setType("*/*");
// 给目标应用一个临时的读授权如果要写权限则是FLAG_GRANT_WRITE_URI_PERMISSION
shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

@ -2,6 +2,8 @@ package com.example.stlink.model.domain;
import android.content.Intent;
import androidx.annotation.NonNull;
import java.util.Date;
public class User {
@ -160,6 +162,7 @@ public class User {
this.userName = userName;
}
@NonNull
@Override
public String toString() {
return "User{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.request;
import androidx.annotation.NonNull;
import com.example.stlink.model.constants.UrlConstants;
public class AllCourseRequest {
@ -24,6 +26,7 @@ public class AllCourseRequest {
this.size = size;
}
@NonNull
@Override
public String toString() {
String retValue;

@ -1,6 +1,6 @@
package com.example.stlink.model.request;
import com.google.gson.internal.bind.util.ISO8601Utils;
import androidx.annotation.NonNull;
public class CourseCreateRequest {
@ -124,6 +124,7 @@ public class CourseCreateRequest {
this.userName = userName;
}
@NonNull
@Override
public String toString() {
return "CourseCreateRequest{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.request;
import androidx.annotation.NonNull;
import java.io.Serializable;
/**
@ -111,6 +113,7 @@ public class CourseCreateSignRequest implements Serializable {
this.userId = userId;
}
@NonNull
@Override
public String toString() {
return "CourseCreateSignRequest{" +

@ -1,6 +1,6 @@
package com.example.stlink.model.request;
import android.content.Intent;
import androidx.annotation.NonNull;
public class StuSignRequest {
@ -43,6 +43,7 @@ public class StuSignRequest {
this.userSignId = userSignId;
}
@NonNull
@Override
public String toString() {
return "StuSignRequest{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.request;
import androidx.annotation.NonNull;
public class UserModifyRequest {
/**
@ -133,6 +135,7 @@ public class UserModifyRequest {
this.userName = userName;
}
@NonNull
@Override
public String toString() {
return "UserModifyRequest{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.request;
import androidx.annotation.NonNull;
public class UserRegisterRequest {
/**
@ -41,6 +43,7 @@ public class UserRegisterRequest {
this.userName = userName;
}
@NonNull
@Override
public String toString() {
return "UserRegisterRequest{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.response;
import androidx.annotation.NonNull;
public class BaseResponse <T> {
private int code;
@ -34,6 +36,7 @@ public class BaseResponse <T> {
this.data = data;
}
@NonNull
@Override
public String toString() {
return "BaseResponse{" +

@ -1,8 +1,7 @@
package com.example.stlink.model.response.data;
import com.example.stlink.model.domain.Course;
import androidx.annotation.NonNull;
import java.util.Arrays;
import java.util.List;
public class CourseData <T> {
@ -47,6 +46,7 @@ public class CourseData <T> {
this.total = total;
}
@NonNull
@Override
public String toString() {
return "CourseData{" +

@ -1,6 +1,6 @@
package com.example.stlink.model.response.data;
import com.google.gson.annotations.SerializedName;
import androidx.annotation.NonNull;
import java.io.Serializable;
@ -151,6 +151,7 @@ public class CourseDetailData implements Serializable {
this.userName = userName;
}
@NonNull
@Override
public String toString() {
return "CourseDetailData{" +

@ -1,5 +1,7 @@
package com.example.stlink.model.response.data;
import androidx.annotation.NonNull;
public class CourseSignMsg {
/**
@ -41,6 +43,7 @@ public class CourseSignMsg {
this.courseNum = courseNum;
}
@NonNull
@Override
public String toString() {
return "CourseSignMsg{" +

@ -16,7 +16,6 @@ import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
@ -241,7 +240,7 @@ public class CommonUtils {
//需要加八个格林威治时间
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
//如果它本来就是long类型的,则不用写这一步
long lt = new Long(s);
long lt = Long.parseLong(s);
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;

@ -2,7 +2,6 @@ package com.example.stlink.utils;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;

@ -2,7 +2,6 @@ package com.example.stlink.utils;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.media.Image;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;

@ -48,18 +48,10 @@ public class CheckCourseSignUtil {
*/
public void initPage(List<Fragment> list){
// 设置点击触发
tvSignList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(0);
}
});
tvCourseSignLeave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(2);
}
});
tvSignList.setOnClickListener(v ->
viewPager2.setCurrentItem(0));
tvCourseSignLeave.setOnClickListener(v ->
viewPager2.setCurrentItem(2));
// 注册页面改变的回调函数
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { // 声明页面切换后的回调函数
@Override

@ -1,6 +1,5 @@
package com.example.stlink.utils.activityUtil;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
@ -45,24 +44,12 @@ public class CourseDetailUtil {
*/
public void initPage(List<Fragment> list){
// 设置点击触发
tvCourseIntro.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(0);
}
});
tvCourseClassList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(1);
}
});
tvCourseSelectedStu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(2);
}
});
tvCourseIntro.setOnClickListener(v ->
viewPager2.setCurrentItem(0));
tvCourseClassList.setOnClickListener(v ->
viewPager2.setCurrentItem(1));
tvCourseSelectedStu.setOnClickListener(v ->
viewPager2.setCurrentItem(2));
// 注册页面改变的回调函数
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { // 声明页面切换后的回调函数
@Override

@ -15,27 +15,24 @@ public class CreateCourseUtil {
public static void createCourse(AppCompatActivity appCompatActivity, CourseCreateRequest courseCreateRequest, Handler handler, @Nullable String url) {
new Thread(new Runnable() {
@Override
public void run() {
//fastJson将对象转换为JSON字符串
String json = JSON.toJSONString(courseCreateRequest);
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "success";
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
}
}.postConnect(url, json);
}
new Thread(() -> {
//fastJson将对象转换为JSON字符串
String json = JSON.toJSONString(courseCreateRequest);
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = "success";
handler.sendMessage(message);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
}
}.postConnect(url, json);
}).start();
}

@ -117,49 +117,46 @@ public class LoginUtil {
*
*/
private void loginRequest(){
new Thread(new Runnable() {
@Override
public void run() {
// 密码要进行MD5加密
String url = UrlConstants.USER_LOGIN + "?password=" + CommonUtils.MD5(pwd) + "&username=" + userName;
new Thread(() -> {
// 密码要进行MD5加密
String url = UrlConstants.USER_LOGIN + "?password=" + CommonUtils.MD5(pwd) + "&username=" + userName;
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> userMap = null;
if(obj instanceof LinkedTreeMap){
userMap = (LinkedTreeMap<String, String>) obj;
}
//将LinkedTreeMap中字段映射到User类中
User user = new User();
String jsonString = gson.toJson(userMap);
user = gson.fromJson(jsonString, User.class);
System.out.println("user = " + user + "..................");
//身份校验
if(roleId.equals(user.getRoleId())){
Intent intent = new Intent(loginActivity, MainActivity.class);
bundle = loginActivity.getIntent().getExtras();
LOGIN_UTIL.saveUser(user);
intent.putExtras(bundle);
loginActivity.startActivity(intent);
}else{
Message message = new Message();
message.obj = "登录失败";
handler.sendMessage(message);
}
//解析数据
Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();
Object obj = baseResponse.getData();
LinkedTreeMap<String, String> userMap = null;
if(obj instanceof LinkedTreeMap){
userMap = (LinkedTreeMap<String, String>) obj;
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
//将LinkedTreeMap中字段映射到User类中
User user = new User();
String jsonString = gson.toJson(userMap);
user = gson.fromJson(jsonString, User.class);
System.out.println("user = " + user + "..................");
//身份校验
if(roleId.equals(user.getRoleId())){
Intent intent = new Intent(loginActivity, MainActivity.class);
bundle = loginActivity.getIntent().getExtras();
LOGIN_UTIL.saveUser(user);
intent.putExtras(bundle);
loginActivity.startActivity(intent);
}else{
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
message.obj = "登录失败";
handler.sendMessage(message);
}
}.postConnect(url, "");
}
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
}
}.postConnect(url, "");
}).start();
}

@ -144,9 +144,6 @@ public class MainActivityUtil {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
appCompatActivity.startActivity(intent);
//退出程序代码
// finish(); //结束程序
// System.exit(0); //退出程序
}
}

@ -101,37 +101,34 @@ public class RegisterUtil {
*/
private void registerRequest(){
new Thread(new Runnable() {
@Override
public void run() {
UserRegisterRequest requestObj = new UserRegisterRequest();
//fastJson将对象转换为JSON字符串
requestObj.setUserName(userName);
//即将云端发送的密码要经过MD5加密也就是异或运算和MD5的双重加密
requestObj.setPassword(CommonUtils.MD5(pwd));
requestObj.setRoleId( (Integer) registerActivity.getIntent().getExtras().get(ModelFieldConstants.ROLE_ID));
System.out.println( "requestObj : " + requestObj.toString() + "..............................");
String json = JSON.toJSONString(requestObj);
String url = UrlConstants.USER_REGISTER;
new Thread(() -> {
UserRegisterRequest requestObj = new UserRegisterRequest();
//fastJson将对象转换为JSON字符串
requestObj.setUserName(userName);
//即将云端发送的密码要经过MD5加密也就是异或运算和MD5的双重加密
requestObj.setPassword(CommonUtils.MD5(pwd));
requestObj.setRoleId( (Integer) registerActivity.getIntent().getExtras().get(ModelFieldConstants.ROLE_ID));
System.out.println( "requestObj : " + requestObj + "..............................");
String json = JSON.toJSONString(requestObj);
String url = UrlConstants.USER_REGISTER;
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
//保存在本地的密码只是进行了简单的异或运算
CommonUtils.localSave(registerActivity, userName, pwdFirst, true);
Intent intent = new Intent(registerActivity, LoginActivity.class);
//将bundle中的数据再次传入新的intent中
intent.putExtras(registerActivity.getIntent().getExtras());
registerActivity.startActivity(intent);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
}
}.postConnect(url, json);
}
new PostBodyParamHttpUtils() {
@Override
public void nextMethod(BaseResponse<Object> baseResponse) {
//保存在本地的密码只是进行了简单的异或运算
CommonUtils.localSave(registerActivity, userName, pwdFirst, true);
Intent intent = new Intent(registerActivity, LoginActivity.class);
//将bundle中的数据再次传入新的intent中
intent.putExtras(registerActivity.getIntent().getExtras());
registerActivity.startActivity(intent);
}
@Override
public void failedMethod(BaseResponse<Object> baseResponse) {
Message message = new Message();
message.obj = baseResponse.getMsg();
handler .sendMessage(message);
}
}.postConnect(url, json);
}).start();
}
}

@ -44,19 +44,11 @@ public class TeaClassListUtil {
*/
public void initPage(List<Fragment> list){
// 设置点击触发
tvUnfinishedCourse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(0);
}
});
tvUnfinishedCourse.setOnClickListener(v ->
viewPager2.setCurrentItem(0));
System.out.println(tvUnfinishedCourse.hasOnClickListeners());
tvFinishedCourse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager2.setCurrentItem(1);
}
});
tvFinishedCourse.setOnClickListener(v ->
viewPager2.setCurrentItem(1));
// 注册页面改变的回调函数
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { // 声明页面切换后的回调函数
@Override

@ -59,17 +59,21 @@ public abstract class DeleteUrlParamHttpUtils {
* @param e
*/
@Override
public void onFailure(Call call, IOException e) {
public void onFailure(@NonNull Call call, IOException e) {
//Log.e(TAG, "Failed to connect server!!!");
e.printStackTrace();
}
@Override
public void onResponse(@NonNull Call call, Response response) throws IOException {
final String body = response.body().string();
String body = null;
if(response.body() != null){
body = response.body().string();
}
Gson gson = new Gson();
Type jsonType = new TypeToken<BaseResponse<Object>>() {}.getType();
BaseResponse<Object> baseResponse = gson.fromJson(body, jsonType);
assert baseResponse != null;
int code = baseResponse.getCode();
//页面请求成功
if(response.code() == 200){

@ -14,7 +14,6 @@ import java.lang.reflect.Type;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Credentials;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@ -60,13 +59,14 @@ public abstract class GetUrlParamHttpUtils {
* @param e
*/
@Override
public void onFailure(Call call, IOException e) {
public void onFailure(@NonNull Call call, IOException e) {
//Log.e(TAG, "Failed to connect server!!!");
e.printStackTrace();
}
@Override
public void onResponse(@NonNull Call call, Response response) throws IOException {
assert response.body() != null;
final String body = response.body().string();
Gson gson = new Gson();
Type jsonType = new TypeToken<BaseResponse<Object>>() {}.getType();

@ -15,7 +15,6 @@ import java.lang.reflect.Type;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Credentials;
import okhttp3.Headers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@ -74,13 +73,14 @@ public abstract class PostBodyParamHttpUtils {
* @param e
*/
@Override
public void onFailure(Call call, IOException e) {
public void onFailure(@NonNull Call call, IOException e) {
//Log.e(TAG, "Failed to connect server!!!");
e.printStackTrace();
}
@Override
public void onResponse(@NonNull Call call, Response response) throws IOException {
assert response.body() != null;
final String body = response.body().string();
Gson gson = new Gson();
Type jsonType = new TypeToken<BaseResponse<Object>>() {}.getType();
@ -115,7 +115,7 @@ public abstract class PostBodyParamHttpUtils {
System.out.println("response:connect...error...................");
System.out.println("response:code = " + response.code());
System.out.println("response: " + response);
System.out.println("baseResponse: " + baseResponse.toString());
System.out.println("baseResponse: " + baseResponse);
}
}

@ -70,14 +70,14 @@ public abstract class PostFileHttpUtils {
* @param e
*/
@Override
public void onFailure(Call call, IOException e) {
public void onFailure(@NonNull Call call, IOException e) {
Log.e("TAGTAG", "onFailure图片上传失败" + e.getMessage());
e.printStackTrace();
}
@Override
public void onResponse(@NonNull Call call, Response response) throws IOException {
assert response.body() != null;
final String body = response.body().string();
Log.e("TAGTAG", "onResponse图片上传成功" + body);
Gson gson = new Gson();

Loading…
Cancel
Save