drew преди 6 години
родител
ревизия
56edbadb43

+ 1 - 1
app/src/main/assets/mockData/Room.json

@@ -7,7 +7,7 @@
     "branchDeptName": "分公司名称",
     "remark": "会议室描述",
     "deviceCode": "电子屏设备号",
-    "devicePassword": "电子屏设备管理密码",
+    "devicePassword": "1234",
     "capacity": "12",
     "provideService": "可提供的服务",
     "roomBizNum": "A03"

+ 1 - 0
app/src/main/java/com/ht/gate/LoginActivity.java

@@ -101,6 +101,7 @@ public class LoginActivity extends AppCompatActivity {
                                             .putString(Constants.PREF_ROOM_INFO, response.body().toBase64())
                                             .apply();
                                     MyApplication.roomInfo = response.body();
+                                    MyApplication.setPassword(LoginActivity.this, response.body().getDevicePassword());
                                     startActivity(new Intent(LoginActivity.this, MainActivity.class));
                                     finish();
                                 } else {

+ 33 - 29
app/src/main/java/com/ht/gate/MainActivity.java

@@ -88,7 +88,7 @@ public class MainActivity extends AppCompatActivity {
                 @Override
                 public void onConfirm(PasswordDialog dialog, String password) {
                     dialog.dismiss();
-                    if (MyApplication.password != null && MyApplication.password.equals(password)) {
+                    if (MyApplication.getPassword() != null && MyApplication.getPassword().equals(password)) {
                         if (mDoorBinder != null) {
                             mDoorBinder.getService().openDoor();
                         }
@@ -136,40 +136,44 @@ public class MainActivity extends AppCompatActivity {
             rlMeetings.setVisibility(View.VISIBLE);
         }
         adapter.notifyDataSetChanged();
-        List<Meeting> meetings = new ArrayList<>();
+        boolean b = false;
         for (RoomMeetings todayMeeting : MyApplication.todayMeetings) {
-            meetings.addAll(todayMeeting.getMeetings());
-        }
-        for (Meeting meeting : meetings) {
-            try {
-                Date start = Utils.parseDateTime(meeting.getBeginTimeStr());
-                Date end = Utils.parseDateTime(meeting.getEndTimeStr());
-                Date date = new Date();
-                if ((date.equals(start) || date.after(start)) && (date.equals(end) || date.before(end))) {
-                    RetrofitManager.getInstance().getRetrofit().create(ApiService.class)
-                            .getEmpInfo(meeting.getCreateUser().getUserId()).enqueue(new Callback<EmpInfo>() {
-                        @Override
-                        public void onResponse(@NonNull Call<EmpInfo> call, @NonNull Response<EmpInfo> response) {
-                            if (response.code() == 200) {
-                                WelcomeActivity.start(MainActivity.this, meeting, response.body());
-                            } else {
-                                try {
-                                    Toasty.error(MainActivity.this, response.errorBody().string()).show();
-                                } catch (IOException e) {
-                                    e.printStackTrace();
+            for (Meeting meeting : todayMeeting.getMeetings()) {
+                try {
+                    Date start = Utils.parseDateTime(meeting.getBeginTimeStr());
+                    Date end = Utils.parseDateTime(meeting.getEndTimeStr());
+                    Date date = new Date();
+                    if ((date.equals(start) || date.after(start)) && (date.equals(end) || date.before(end))) {
+                        MyApplication.setPassword(MainActivity.this, todayMeeting.getRoom().getDevicePassword());
+                        RetrofitManager.getInstance().getRetrofit().create(ApiService.class)
+                                .getEmpInfo(meeting.getCreateUser().getUserId()).enqueue(new Callback<EmpInfo>() {
+                            @Override
+                            public void onResponse(@NonNull Call<EmpInfo> call, @NonNull Response<EmpInfo> response) {
+                                if (response.code() == 200) {
+                                    WelcomeActivity.start(MainActivity.this, meeting, response.body());
+                                } else {
+                                    try {
+                                        Toasty.error(MainActivity.this, response.errorBody().string()).show();
+                                    } catch (IOException e) {
+                                        e.printStackTrace();
+                                    }
                                 }
                             }
-                        }
 
-                        @Override
-                        public void onFailure(@NonNull Call<EmpInfo> call, @NonNull Throwable t) {
-                            Toasty.error(MainActivity.this, "设备绑定失败,请稍后再试").show();
-                        }
-                    });
+                            @Override
+                            public void onFailure(@NonNull Call<EmpInfo> call, @NonNull Throwable t) {
+                                Toasty.error(MainActivity.this, "设备绑定失败,请稍后再试").show();
+                            }
+                        });
+                        b = true;
+                        break;
+                    }
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                if (b) {
                     break;
                 }
-            } catch (ParseException e) {
-                e.printStackTrace();
             }
         }
     }

+ 5 - 1
app/src/main/java/com/ht/gate/MyApplication.java

@@ -36,7 +36,7 @@ public class MyApplication extends Application {
 
     public static List<RoomMeetings> todayMeetings;
     public static Room roomInfo;
-    public static String password;
+    private static String password;
 
     private SharedPreferences sharedPreferences;
 
@@ -46,6 +46,10 @@ public class MyApplication extends Application {
         sharedPreferences.edit().putString(Constants.PREF_PASSWORD, password).apply();
     }
 
+    public static String getPassword() {
+        return password;
+    }
+
     @Override
     public void onCreate() {
         super.onCreate();

+ 5 - 44
app/src/main/java/com/ht/gate/SettingsActivity.java

@@ -100,50 +100,11 @@ public class SettingsActivity extends AppCompatActivity {
 
     @OnClick(R.id.btn_change_space_id)
     void changeSpaceId() {
-        new PromptBuilder(this)
-                .setTitle("输入空间ID")
-                .setValue(tvSpaceId.getText().toString())
-                .setInputType(InputType.TYPE_CLASS_TEXT)
-                .setPositiveButton("确定")
-                .setNegativeButton("取消")
-                .setPromptListener(new PromptBuilder.PromptListener() {
-                    @Override
-                    public void onCancel(DialogInterface dialog) {
-                        dialog.dismiss();
-                    }
-
-                    @Override
-                    public void onConfirm(DialogInterface dialog, String value) {
-                        dialog.dismiss();
-                        ProgressDialog progressDialog = new ProgressDialog(SettingsActivity.this);
-                        progressDialog.show();
-                        RetrofitManager.getInstance().getRetrofit().create(ApiService.class).bindDevice(value).enqueue(new Callback<Room>() {
-                            @Override
-                            public void onResponse(Call<Room> call, Response<Room> response) {
-                                progressDialog.dismiss();
-                                if (response.code() == 200) {
-                                    Room room = response.body();
-                                    sharedPreferences.edit().putString(Constants.PREF_ROOM_INFO, room.toBase64()).apply();
-                                    tvTitle.setText(room.getRoomName() + room.getRoomBizNum());
-                                    tvSpaceId.setText(room.getRoomNo());
-                                } else {
-                                    try {
-                                        Toasty.error(SettingsActivity.this, response.errorBody().string()).show();
-                                    } catch (IOException e) {
-                                        e.printStackTrace();
-                                    }
-                                }
-                            }
-
-                            @Override
-                            public void onFailure(Call<Room> call, Throwable t) {
-                                progressDialog.dismiss();
-                                Toasty.error(SettingsActivity.this, "设备绑定失败,请稍后再试").show();
-                            }
-                        });
-                    }
-                })
-                .show();
+        Intent intent = new Intent(this, LoginActivity.class);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        startActivity(intent);
+        finish();
     }
 
     @OnClick(R.id.btn_change_address)

+ 26 - 3
app/src/main/java/com/ht/gate/WelcomeActivity.java

@@ -1,6 +1,7 @@
 package com.ht.gate;
 
 import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.ContextCompat;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -42,6 +43,7 @@ import java.util.TimerTask;
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
+import es.dmoral.toasty.Toasty;
 
 @SuppressLint("SetTextI18n")
 public class WelcomeActivity extends AppCompatActivity {
@@ -110,11 +112,32 @@ public class WelcomeActivity extends AppCompatActivity {
         ButterKnife.bind(this);
         meeting = (Meeting) getIntent().getSerializableExtra("meeting");
         empInfo = (EmpInfo) getIntent().getSerializableExtra("empInfo");
+
         unlockView.setUnlockListener(() -> {
-            if (mDoorBinder != null) {
-                mDoorBinder.getService().openDoor();
-            }
+            PasswordDialog passwordDialog = new PasswordDialog(WelcomeActivity.this);
+            passwordDialog.setListener(new PasswordDialog.DialogListener() {
+                @Override
+                public void onCancel(PasswordDialog dialog) {
+                    dialog.dismiss();
+                }
+
+                @Override
+                public void onConfirm(PasswordDialog dialog, String password) {
+                    dialog.dismiss();
+                    if (MyApplication.getPassword() != null && MyApplication.getPassword().equals(password)) {
+                        if (mDoorBinder != null) {
+                            mDoorBinder.getService().openDoor();
+                        }
+                    } else {
+                        Toasty.normal(WelcomeActivity.this, "密码错误", ContextCompat.getDrawable(WelcomeActivity.this, R.mipmap.toast_icon_warn_fill))
+                                .show();
+                    }
+                }
+            });
+            passwordDialog.show();
         });
+
+
         bindService(new Intent(this, DoorService.class), connection, BIND_AUTO_CREATE);
         adapter = new MeetingAdapter(this);
         rvMeetings.setLayoutManager(new LinearLayoutManager(this));