Browse Source

login up

master
wangxiang 1 year ago
parent
commit
dc11485a22
  1. 122
      app/src/main/java/com/kanglai/push/ui/activity/LoginActivity.java
  2. 3
      app/src/main/java/com/kanglai/push/ui/vm/LoginViewModel.java

122
app/src/main/java/com/kanglai/push/ui/activity/LoginActivity.java

@ -1,7 +1,7 @@
package com.kanglai.push.ui.activity; package com.kanglai.push.ui.activity;
import android.Manifest; import android.Manifest;
import android.content.Context; import android.app.AlertDialog;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
@ -14,22 +14,16 @@ import android.widget.TextView;
import androidx.core.app.NotificationManagerCompat; import androidx.core.app.NotificationManagerCompat;
import com.blankj.utilcode.util.ObjectUtils; import com.blankj.utilcode.util.PermissionUtils;
import com.blankj.utilcode.util.StringUtils; import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.Utils; import com.dolphin.core.base.AppManager;
import com.dolphin.core.base.BaseActivity; import com.dolphin.core.base.BaseActivity;
import com.dolphin.core.constant.AppConstant; import com.dolphin.core.constant.AppConstant;
import com.dolphin.core.util.PermissionUtil; import com.dolphin.core.util.PermissionUtil;
import com.dolphin.core.util.ToastUtil;
import com.dolphin.umeng.UmengClient;
import com.dolphin.umeng.enums.PlatformEnum;
import com.google.gson.Gson;
import com.kanglai.push.BR; import com.kanglai.push.BR;
import com.kanglai.push.R; import com.kanglai.push.R;
import com.kanglai.push.databinding.ActivityLoginBinding; import com.kanglai.push.databinding.ActivityLoginBinding;
import com.kanglai.push.ui.vm.LoginViewModel; import com.kanglai.push.ui.vm.LoginViewModel;
import com.kanglai.push.ui.vm.PushTypeViewModel;
import com.kanglai.push.util.CountDownTimerUtils;
import com.kanglai.push.util.ViewFilterUtil; import com.kanglai.push.util.ViewFilterUtil;
import com.kongzue.dialogx.dialogs.MessageDialog; import com.kongzue.dialogx.dialogs.MessageDialog;
import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener; import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
@ -61,12 +55,10 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
public Button loginBtn; // 登录按钮 public Button loginBtn; // 登录按钮
/** 软件申请动态权限,必须设置不设置不让进软件 */ /** 软件申请动态权限,必须设置不设置不让进软件 */
private String[] needPermissions = { private final String[] needPermissions = {
Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE
}; };
@Override @Override
@ -87,73 +79,20 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
startActivity(TabBarActivity.class); startActivity(TabBarActivity.class);
finish(); finish();
} }
EditText input01 = findViewById(R.id.et_phone); EditText input01 = findViewById(R.id.et_phone);
EditText input02 = findViewById(R.id.et_captcha); EditText input02 = findViewById(R.id.et_captcha);
input01.setFilters(new InputFilter[]{ViewFilterUtil.getNoSpecialCharactersFilter()}); // 输入框去空格 input01.setFilters(new InputFilter[]{ViewFilterUtil.getNoSpecialCharactersFilter()});
input02.setFilters(new InputFilter[]{ViewFilterUtil.getNoSpecialCharactersFilter()}); input02.setFilters(new InputFilter[]{ViewFilterUtil.getNoSpecialCharactersFilter()});
input01.setFilters(new InputFilter[]{new InputFilter.LengthFilter(11)}); // 限制输入最大长度 input01.setFilters(new InputFilter[]{new InputFilter.LengthFilter(11)});
input02.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)}); input02.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)});
mTextView = findViewById(R.id.tv_sendCMS); mTextView = findViewById(R.id.tv_sendCMS);
loginBtn = findViewById(R.id.login_btn); loginBtn = findViewById(R.id.login_btn);
} }
/** 微信登录点击事件 -已废弃 */
public void wechatLoginClick(View view) {
if(!UmengClient.isAppInstalled(this, PlatformEnum.WECHAT)) {
ToastUtil.show("当前没有安装微信!");
return;
}
UmengClient.login(this, PlatformEnum.WECHAT, (platformEnum, data) -> {
if (ObjectUtils.isEmpty(data)) return;
ToastUtil.show(new Gson().toJson(data));
});
}
/** QQ登录点击事件 - 已废弃 */
public void qqLoginClick(View view) {
if(!UmengClient.isAppInstalled(this, PlatformEnum.QQ)) {
ToastUtil.show("当前没有安装QQ!");
return;
}
UmengClient.login(this, PlatformEnum.QQ, (platformEnum, data) -> {
if (ObjectUtils.isEmpty(data)) return;
ToastUtil.show(new Gson().toJson(data));
});
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (requestPermissionNeedCheck) checkPermissions(needPermissions); if (requestPermissionNeedCheck) checkPermissions(needPermissions);
if (!NotificationManagerCompat.from(getApplicationContext()).areNotificationsEnabled()) { // 通知栏权限检测
NoticeBoardDialog();
}
}
/** 通知栏权限申请提醒 同意进 | 取消则退出程序 */
private void NoticeBoardDialog() {
MessageDialog.show(getString(com.dolphin.core.R.string.app_name) + " 想要获取此设备的通知栏权限?", "", "前往设置", "取 消")
.setOkButton(new OnDialogButtonClickListener<MessageDialog>() {
@Override
public boolean onClick(MessageDialog dialog, View v) {
dialog.dismiss();
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());
startActivity(intent);
return true;
}
})
.setCancelButton(new OnDialogButtonClickListener<MessageDialog>() {
@Override
public boolean onClick(MessageDialog dialog, View v) {
Process.killProcess(Process.myPid()); // 不同意调用通知栏权限,退出app
return false;
}
})
.setCancelable(false) // 无法通过点击对话框之外的区域或按下返回按钮来快速关闭对话框
.show();
} }
/** 检查软件所需要的权限,没有则弹出软件权限申请框申请 */ /** 检查软件所需要的权限,没有则弹出软件权限申请框申请 */
@ -182,35 +121,22 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding, LoginViewM
requestPermissionNeedCheck = false; requestPermissionNeedCheck = false;
PermissionUtil.openApplicationSettings(this, "当前应用缺少必要权限。\n请点击设置-权限-打开所需权限!"); PermissionUtil.openApplicationSettings(this, "当前应用缺少必要权限。\n请点击设置-权限-打开所需权限!");
} }
} if (!NotificationManagerCompat.from(getApplicationContext()).areNotificationsEnabled()) {
// 申请勿扰权限方式要由用户自主权限 - 对于友盟消息推送送达率并无明显提升 new AlertDialog.Builder(this)
// NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); .setTitle("授权设备权限")
// if (!notificationManager.isNotificationPolicyAccessGranted()) { .setMessage(getString(com.dolphin.core.R.string.app_name) + " 想要获取此设备的通知权限?")
// DNDModePromiss(); .setNegativeButton("取消", (dialog, which) -> AppManager.getAppManager().finishAllActivity())
// } .setPositiveButton("前往设置", (dialog, which) -> {
}
private void DNDModePromiss() { // 勿扰模式弹窗提示
MessageDialog.show("允许”勿扰“权限", "是否允许"+getString(com.dolphin.core.R.string.app_name) + getResources().getString(R.string.privacy_DND), "前往设置", "取 消")
.setOkButton(new OnDialogButtonClickListener<MessageDialog>() {
@Override
public boolean onClick(MessageDialog dialog, View v) {
dialog.dismiss();
Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Utils.getApp().startActivity(intent);
return true;
}
})
.setCancelButton(new OnDialogButtonClickListener<MessageDialog>() {
@Override
public boolean onClick(MessageDialog dialog, View v) {
dialog.dismiss(); dialog.dismiss();
return false; Intent intent = new Intent();
} intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
}) intent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());
.setCancelable(false) // 无法通过点击对话框之外的区域或按下返回按钮来快速关闭对话框 startActivity(intent);
.show(); })
.setCancelable(false)
.show();
}
}
} }
@Override @Override

3
app/src/main/java/com/kanglai/push/ui/vm/LoginViewModel.java

@ -71,7 +71,7 @@ public class LoginViewModel extends BaseViewModel<LoginActivity> {
public ObservableField<String> captcha = new ObservableField(""); public ObservableField<String> captcha = new ObservableField("");
/** 隐私协议确认按钮 */ /** 隐私协议确认按钮 */
public ObservableField<Boolean> agreement = new ObservableField<>(false); public ObservableField<Boolean> agreement = new ObservableField<>(true);
/** 清空电话号码操作图标可见 */ /** 清空电话号码操作图标可见 */
public ObservableInt phoneCleanVisible = new ObservableInt(); public ObservableInt phoneCleanVisible = new ObservableInt();
@ -273,6 +273,7 @@ public class LoginViewModel extends BaseViewModel<LoginActivity> {
MMKV.defaultMMKV().putString(CacheConstant.LOGIN_PASSWORD, password.get()); MMKV.defaultMMKV().putString(CacheConstant.LOGIN_PASSWORD, password.get());
CacheDiskUtils.getInstance().put(CacheConstant.USER_INFO, user); CacheDiskUtils.getInstance().put(CacheConstant.USER_INFO, user);
startActivity(TabBarActivity.class); startActivity(TabBarActivity.class);
finish();
} }
} else ToastUtil.showBottomWarn(R.getMsg()); } else ToastUtil.showBottomWarn(R.getMsg());
} }

Loading…
Cancel
Save