强制退出登录

dev
李桢 1 year ago
parent 65e50ebfac
commit a3ddbb0815
  1. 2
      app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java
  2. 27
      app/src/main/java/com/unionmed/unionmedtv/base/BaseActivity.java
  3. 15
      app/src/main/java/com/unionmed/unionmedtv/dialog/TipDialog.java
  4. 5
      app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java
  5. 6
      app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java
  6. 25
      app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java
  7. 1
      app/src/main/java/com/unionmed/unionmedtv/utils/Constants.java
  8. 3
      app/src/main/res/layout/activity_hospital.xml
  9. 144
      app/src/main/res/layout/fragment_account_login.xml
  10. 180
      app/src/main/res/layout/fragment_phone_login.xml

@ -56,8 +56,8 @@ public class HospitalActivity extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
setContentView(R.layout.activity_hospital);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
initView();
loadData(1);
}

@ -5,6 +5,15 @@ import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import com.lxj.xpopup.XPopup;
import com.unionmed.unionmedtv.activity.HomeActivity;
import com.unionmed.unionmedtv.dialog.TipDialog;
import com.unionmed.unionmedtv.livedatas.LiveDataBus;
import com.unionmed.unionmedtv.login.activity.LoginActivity;
import com.unionmed.unionmedtv.utils.CacheUtil;
import com.unionmed.unionmedtv.utils.Constants;
public abstract class BaseActivity extends AppCompatActivity {
@Override
@ -12,5 +21,23 @@ public abstract class BaseActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
LiveDataBus.get().with(Constants.EXIT_LOGIN,String.class).observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
new XPopup.Builder(BaseActivity.this).isRequestFocus(true)
.asCustom(new TipDialog(BaseActivity.this, "当前账号在其他地方登录,请重新登录", false, new TipDialog.DialogClick() {
@Override
public void cancel() {
}
@Override
public void confirm() {
CacheUtil.setToken(null);
LoginActivity.StartActivity(BaseActivity.this);
}
})).show();
}
});
}
}

@ -15,11 +15,17 @@ public class TipDialog extends CenterPopupView {
private TextView tv_confirm;
private String title;
private DialogClick dialogClick;
public TipDialog(@NonNull Context context, String title, DialogClick dialogClick) {
private boolean isShowLeft=true;
public TipDialog(@NonNull Context context, String title,DialogClick dialogClick) {
super(context);
this.title = title;
this.dialogClick = dialogClick;
}
public TipDialog(@NonNull Context context, String title, boolean isShowLeft,DialogClick dialogClick) {
super(context);
this.title = title;
this.dialogClick = dialogClick;
this.isShowLeft=isShowLeft;
}
@Override
@ -32,6 +38,11 @@ public class TipDialog extends CenterPopupView {
super.onCreate();
tv_cancel = findViewById(R.id.tv_cancel);
tv_cancel.requestFocus();
if(isShowLeft){
tv_cancel.setVisibility(VISIBLE);
}else {
tv_cancel.setVisibility(GONE);
}
tv_cancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {

@ -57,7 +57,10 @@ public class LoginActivity extends FragmentActivity {
public static final int LOCATION_CODE = 301;
private LocationManager locationManager;
private String locationProvider = null;
public static void StartActivity(Context context){
Intent intent=new Intent(context,LoginActivity.class);
context.startActivity(intent);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

@ -183,7 +183,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
getAreaLogn(tokenBean.getIdentity_id(),
tokenBean.getMobile(),
tokenBean.getName(),
tokenBean.getToken());
tokenBean.getPreRegion().getPkey());
} else {
CacheUtil.setToken(null);
new XPopup.Builder(getActivity()).isRequestFocus(true)
@ -216,9 +216,9 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
});
}
public void getAreaLogn(String identity_id, String mobile, String name, String token) {
public void getAreaLogn(String identity_id, String mobile, String name, String pkey) {
EasyHttp.post(this)
.api(new AreaLoginApi(identity_id, mobile, name, token))
.api(new AreaLoginApi(identity_id, mobile, name, pkey))
.request(new OnHttpListener<HttpData<AreaLoginApi>>() {
@Override
public void onSucceed(HttpData<AreaLoginApi> personInfoBeanHttpData) {

@ -1,11 +1,13 @@
package com.unionmed.unionmedtv.network;
import android.app.Application;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.unionmed.unionmedtv.R;
import com.google.gson.JsonSyntaxException;
import com.hjq.gson.factory.GsonFactory;
@ -15,6 +17,12 @@ import com.hjq.http.exception.DataException;
import com.hjq.http.exception.NullBodyException;
import com.hjq.http.exception.ResponseException;
import com.hjq.http.request.HttpRequest;
import com.unionmed.unionmedtv.activity.HomeActivity;
import com.unionmed.unionmedtv.dialog.TipDialog;
import com.unionmed.unionmedtv.livedatas.LiveDataBus;
import com.unionmed.unionmedtv.login.activity.LoginActivity;
import com.unionmed.unionmedtv.utils.CacheUtil;
import com.unionmed.unionmedtv.utils.Constants;
import java.io.IOException;
import java.io.InputStream;
@ -36,8 +44,8 @@ public class RequestHandler implements IRequestHandler {
@NonNull
@Override
public Object requestSucceed(@NonNull HttpRequest<?> httpRequest,
@NonNull Response response, @NonNull Type type) throws Exception {
public Object requestSucceed(@NonNull HttpRequest<?> httpRequest,
@NonNull Response response, @NonNull Type type) throws Exception {
if (Response.class.equals(type)) {
return response;
@ -62,7 +70,7 @@ public class RequestHandler implements IRequestHandler {
}
// 如果是用数组接收,判断一下是不是用 byte[] 类型进行接收的
if(type instanceof GenericArrayType) {
if (type instanceof GenericArrayType) {
Type genericComponentType = ((GenericArrayType) type).getGenericComponentType();
if (byte.class.equals(genericComponentType)) {
return body.bytes();
@ -106,6 +114,15 @@ public class RequestHandler implements IRequestHandler {
if (model.isRequestSucceed()) {
// 代表执行成功
if (model.getData() instanceof ApiResponse) {
ApiResponse<?> model1 = (ApiResponse<?>) model.getData();
if (model1.getCode() == -1) {
LiveDataBus.get().with(Constants.EXIT_LOGIN).postValue("");
return result;
}
}
return result;
}
@ -123,7 +140,7 @@ public class RequestHandler implements IRequestHandler {
@NonNull
@Override
public Exception requestFail(@NonNull HttpRequest<?> httpRequest, @NonNull Exception e) {
public Exception requestFail(@NonNull HttpRequest<?> httpRequest, @NonNull Exception e) {
return null;
}
}

@ -27,5 +27,6 @@ public class Constants {
public static final int DEFAULT_ERROR_VALUE = -1;
public static final String CITY_SELECT = "city_select";
public static final String EXIT_LOGIN = "exit_login";
}

@ -5,6 +5,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/bg_hospital_detail"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<RelativeLayout
@ -47,6 +49,7 @@
android:layout_height="match_parent"
android:hint="请输入医院名称"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@null"
android:textColor="@color/white_e1e1e1"
android:textSize="21sp"

@ -1,84 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_title"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70dp"
android:gravity="center_horizontal"
android:text="康联健康账号登录"
android:textColor="#F1F1F1"
android:textSize="24sp" />
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/lly_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:layout_centerInParent="true"
android:layout_marginTop="85dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70dp"
android:gravity="center_horizontal"
android:text="康联健康账号登录"
android:textColor="#F1F1F1"
android:textSize="24sp" />
<LinearLayout
android:id="@+id/lly_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:layout_centerInParent="true"
android:layout_marginTop="85dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_phone"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入手机号码"
android:inputType="number"
android:paddingLeft="15dp"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:textSize="21sp" />
<EditText
android:id="@+id/edit_password"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入密码"
android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:paddingLeft="15dp"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:textSize="21sp" />
<EditText
android:id="@+id/edit_phone"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入手机号码"
android:inputType="number"
android:paddingLeft="15dp"
android:textColor="#ffffff"
android:textColorHint="#ffffff"
android:textSize="21sp" />
<EditText
android:id="@+id/edit_password"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:background="@drawable/edit_phone_select"
android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入密码"
android:paddingLeft="15dp"
android:textColor="#ffffff"
android:textColorHint="#ffffff"
android:textSize="21sp" />
<TextView
android:id="@+id/tv_login"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_marginTop="45dp"
android:background="@drawable/btn_select"
android:focusable="true"
android:gravity="center"
android:text="登录"
android:textColor="#fff1f1f1"
android:textSize="19sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_login"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/btn_select"
android:id="@+id/tv_scan_code_login"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_below="@+id/lly_input"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/account_password_select"
android:focusable="true"
android:gravity="center"
android:text="登录"
android:layout_marginTop="45dp"
android:textColor="#fff1f1f1"
android:text="扫码快捷登录"
android:textColor="@color/colorWhite"
android:textSize="19sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_scan_code_login"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_below="@+id/lly_input"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/account_password_select"
android:focusable="true"
android:gravity="center"
android:textColor="@color/colorWhite"
android:text="扫码快捷登录"
android:textSize="19sp" />
</RelativeLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>

@ -1,121 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_title"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70dp"
android:gravity="center_horizontal"
android:text="康联健康账号登录"
android:textColor="#F1F1F1"
android:textSize="24sp" />
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/lly_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_title"
android:layout_marginLeft="150dp"
android:layout_marginTop="85dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_phone"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入手机号码"
android:inputType="number"
android:paddingLeft="15dp"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:textSize="21sp" />
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="70dp"
android:gravity="center_horizontal"
android:text="康联健康账号登录"
android:textColor="#F1F1F1"
android:textSize="24sp" />
<LinearLayout
android:id="@+id/lly_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp">
android:layout_below="@+id/tv_title"
android:layout_marginLeft="150dp"
android:layout_marginTop="85dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_code"
android:layout_width="162dp"
android:id="@+id/edit_phone"
android:layout_width="290dp"
android:layout_height="50dp"
android:layout_marginRight="10dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入验证码"
android:hint="请输入手机号码"
android:inputType="number"
android:paddingLeft="15dp"
android:textColorHint="#ffffff"
android:textColor="#ffffff"
android:textColorHint="#ffffff"
android:textSize="21sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp">
<EditText
android:id="@+id/edit_code"
android:layout_width="162dp"
android:layout_height="50dp"
android:layout_marginRight="10dp"
android:background="@drawable/edit_phone_select"
android:focusable="true"
android:gravity="center_vertical"
android:hint="请输入验证码"
android:inputType="number"
android:paddingLeft="15dp"
android:textColor="#ffffff"
android:textColorHint="#ffffff"
android:textSize="21sp" />
<TextView
android:id="@+id/tv_getVerification"
android:layout_width="116dp"
android:layout_height="50dp"
android:background="@drawable/btn_code_select"
android:focusable="true"
android:gravity="center"
android:text="获取验证码"
android:textColor="#fff1f1f1"
android:textSize="19sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_getVerification"
android:layout_width="116dp"
android:id="@+id/tv_login"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/btn_code_select"
android:layout_marginTop="45dp"
android:background="@drawable/btn_select"
android:focusable="true"
android:gravity="center"
android:text="获取验证码"
android:text="登录"
android:textColor="#fff1f1f1"
android:textSize="19sp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_qrCode"
android:layout_width="206dp"
android:layout_height="206dp"
android:layout_alignTop="@+id/lly_input"
android:layout_marginLeft="214dp"
android:layout_toRightOf="@+id/lly_input"
android:src="@drawable/ic_unionmed_logo" />
<TextView
android:layout_width="206dp"
android:layout_height="wrap_content"
android:layout_below="@+id/iv_qrCode"
android:layout_alignLeft="@+id/iv_qrCode"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="扫描二维码登录"
android:textColor="#fff1f1f1"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_login"
android:layout_width="290dp"
android:layout_height="50dp"
android:background="@drawable/btn_select"
android:id="@+id/tv_account_login"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_below="@+id/lly_input"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/account_password_select"
android:focusable="true"
android:gravity="center"
android:text="登录"
android:layout_marginTop="45dp"
android:textColor="#fff1f1f1"
android:text="账号密码登录"
android:textColor="@color/lb_tv_white"
android:textSize="19sp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_qrCode"
android:layout_width="206dp"
android:layout_height="206dp"
android:layout_alignTop="@+id/lly_input"
android:layout_marginLeft="214dp"
android:layout_toRightOf="@+id/lly_input"
android:src="@drawable/ic_unionmed_logo" />
<TextView
android:layout_width="206dp"
android:layout_height="wrap_content"
android:layout_below="@+id/iv_qrCode"
android:layout_alignLeft="@+id/iv_qrCode"
android:layout_marginTop="15dp"
android:gravity="center_horizontal"
android:text="扫描二维码登录"
android:textColor="#fff1f1f1"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_account_login"
android:layout_width="150dp"
android:layout_height="36dp"
android:layout_below="@+id/lly_input"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:background="@drawable/account_password_select"
android:focusable="true"
android:gravity="center"
android:textColor="@color/lb_tv_white"
android:text="账号密码登录"
android:textSize="19sp" />
</RelativeLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
Loading…
Cancel
Save