From a3ddbb08150da8a5dcf300ce9e6230f624801d4b Mon Sep 17 00:00:00 2001 From: linminjie <1004644107@qq.com> Date: Fri, 9 Jun 2023 09:29:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=BA=E5=88=B6=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../unionmedtv/activity/HospitalActivity.java | 2 +- .../com/unionmed/unionmedtv/base/BaseActivity.java | 27 ++++ .../com/unionmed/unionmedtv/dialog/TipDialog.java | 15 +- .../unionmedtv/login/activity/LoginActivity.java | 5 +- .../activity/fragment/LoginPhoneFragment.java | 6 +- .../unionmedtv/network/RequestHandler.java | 25 ++- .../com/unionmed/unionmedtv/utils/Constants.java | 1 + app/src/main/res/layout/activity_hospital.xml | 3 + app/src/main/res/layout/fragment_account_login.xml | 144 +++++++++-------- app/src/main/res/layout/fragment_phone_login.xml | 180 +++++++++++---------- 10 files changed, 239 insertions(+), 169 deletions(-) diff --git a/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java b/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java index d703afc..edff429 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java @@ -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); } diff --git a/app/src/main/java/com/unionmed/unionmedtv/base/BaseActivity.java b/app/src/main/java/com/unionmed/unionmedtv/base/BaseActivity.java index 6f00b28..fa77417 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/base/BaseActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/base/BaseActivity.java @@ -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() { + @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(); + } + }); } } diff --git a/app/src/main/java/com/unionmed/unionmedtv/dialog/TipDialog.java b/app/src/main/java/com/unionmed/unionmedtv/dialog/TipDialog.java index 6329924..d7a3ec9 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/dialog/TipDialog.java +++ b/app/src/main/java/com/unionmed/unionmedtv/dialog/TipDialog.java @@ -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) { diff --git a/app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java b/app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java index f1842b8..f137ff7 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java @@ -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); diff --git a/app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java b/app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java index 636a3ca..3974f3f 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java +++ b/app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java @@ -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>() { @Override public void onSucceed(HttpData personInfoBeanHttpData) { diff --git a/app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java b/app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java index 6b95f7b..784a347 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java +++ b/app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java @@ -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; } } diff --git a/app/src/main/java/com/unionmed/unionmedtv/utils/Constants.java b/app/src/main/java/com/unionmed/unionmedtv/utils/Constants.java index 1e9fcb3..8981b79 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/utils/Constants.java +++ b/app/src/main/java/com/unionmed/unionmedtv/utils/Constants.java @@ -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"; } diff --git a/app/src/main/res/layout/activity_hospital.xml b/app/src/main/res/layout/activity_hospital.xml index 9982120..d3e9b30 100644 --- a/app/src/main/res/layout/activity_hospital.xml +++ b/app/src/main/res/layout/activity_hospital.xml @@ -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"> - - + android:layout_height="match_parent"> - + + - - + + + + + + + + - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_phone_login.xml b/app/src/main/res/layout/fragment_phone_login.xml index 8d97917..148d01f 100644 --- a/app/src/main/res/layout/fragment_phone_login.xml +++ b/app/src/main/res/layout/fragment_phone_login.xml @@ -1,121 +1,125 @@ - - + android:layout_height="match_parent"> - - - - + + android:layout_below="@+id/tv_title" + android:layout_marginLeft="150dp" + android:layout_marginTop="85dp" + android:orientation="vertical"> + + + + + + + + + + + + + + - - - - - - - - - - \ No newline at end of file + + \ No newline at end of file