| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package com.ht.gate;
- import androidx.annotation.NonNull;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.constraintlayout.widget.ConstraintLayout;
- import android.annotation.SuppressLint;
- import android.content.Intent;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.ht.gate.domain.Room;
- import java.io.IOException;
- import butterknife.BindView;
- import butterknife.ButterKnife;
- import butterknife.OnClick;
- import es.dmoral.toasty.Toasty;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- public class LoginActivity extends AppCompatActivity {
- @BindView(R.id.parent_layout)
- ConstraintLayout parentLayout;
- @BindView(R.id.keyboard_view)
- CustomKeyboardView keyboardView;
- @BindView(R.id.et)
- EditText et;
- @BindView(R.id.unlock_view)
- UnlockView unlockView;
- private boolean capitalize;
- private KeyboardUtil keyboardUtil;
- @SuppressLint("ClickableViewAccessibility")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- ButterKnife.bind(this);
- unlockView.setUnlockListener(() -> {
- unlockView.setVisibility(View.GONE);
- et.setVisibility(View.VISIBLE);
- keyboardView.show();
- });
- et.setOnTouchListener((v, event) -> {
- if (event.getAction() == MotionEvent.ACTION_UP) {
- if (keyboardView.getVisibility() == View.GONE) {
- keyboardView.show();
- }
- }
- return true;
- });
- keyboardView.setKeyboardActionListener(new CustomKeyboardView.OnKeyboardActionListener() {
- @Override
- public void onPress(int primaryCode) {
- }
- @Override
- public void onRelease(int primaryCode) {
- }
- @Override
- public void onKey(int primaryCode, int[] keyCodes) {
- Log.d("onKey", primaryCode + "");
- Editable editable = et.getText();
- int start = et.getSelectionStart();
- switch (primaryCode) {
- case CustomKeyboardView.KEYCODE_SHIFT:
- capitalize = !capitalize;
- break;
- case CustomKeyboardView.KEYCODE_CANCEL:
- keyboardView.hide();
- et.setVisibility(View.GONE);
- unlockView.setVisibility(View.VISIBLE);
- break;
- case CustomKeyboardView.KEYCODE_DONE:
- if (TextUtils.isEmpty(et.getText())) {
- Toasty.info(LoginActivity.this, "请输入空间ID").show();
- break;
- }
- RetrofitManager.getInstance().getRetrofit().create(ApiService.class)
- .bindDevice(et.getText().toString()).enqueue(new Callback<Room>() {
- @Override
- public void onResponse(@NonNull Call<Room> call, @NonNull Response<Room> response) {
- if (response.code() == 200) {
- if (response.body().getRoomNo() == null) {
- Toasty.error(LoginActivity.this, "无设备信息").show();
- return;
- }
- getSharedPreferences(SettingsActivity.PREF_NAME_SETTINGS, MODE_PRIVATE)
- .edit()
- .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 {
- try {
- Toasty.error(LoginActivity.this, response.errorBody().string()).show();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- @Override
- public void onFailure(@NonNull Call<Room> call, @NonNull Throwable t) {
- Toasty.info(LoginActivity.this, "登录失败,请稍后再试").show();
- }
- });
- break;
- case CustomKeyboardView.KEYCODE_DELETE:
- if (editable != null && editable.length() > 0) {
- if (start > 0) {
- editable.delete(start - 1, start);
- }
- }
- break;
- default:
- String str = Character.toString((char) primaryCode);
- editable.insert(start, capitalize ? str.toUpperCase() : str.toLowerCase());
- break;
- }
- }
- @Override
- public void onText(CharSequence text) {
- }
- });
- }
- @Override
- protected void onResume() {
- super.onResume();
- View decorView = getWindow().getDecorView();
- int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_FULLSCREEN
- | View.SYSTEM_UI_FLAG_IMMERSIVE;
- decorView.setSystemUiVisibility(uiOptions);
- }
- @OnClick(R.id.btn_settings)
- void onClickSettings() {
- startActivity(new Intent(this, SettingsActivity.class));
- }
- }
|