Prechádzať zdrojové kódy

根据token获取信息

詹子聪 5 rokov pred
rodič
commit
4ef9a8be60

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -32,7 +32,7 @@
             android:theme="@style/TextInputStyle"/>
 
         <activity
-            android:name=".ui.WelcomeActivity"
+            android:name=".ui.welcome.WelcomeActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:screenOrientation="portrait"
             android:theme="@style/AppTheme.Welcome">

+ 4 - 0
app/src/main/java/com/itant/shibei/base/ApiService.java

@@ -39,6 +39,10 @@ public interface ApiService {
     @POST("/eden/api/loginOrRegister")
     Observable<BaseResponse<BeiUser>> loginOrRegister(@Query("email") String email, @Query("password") String password);
 
+    /**邮箱+加密的密码 登录*/
+    @POST("/eden/api/login/token")
+    Observable<BaseResponse<BeiUser>> loginByToken();
+
     /**忘记密码*/
     @POST("/eden/api/password")
     Observable<BaseResponse<BeiUser>> resetPassword(@Body Map<String, Object> body);

+ 3 - 1
app/src/main/java/com/itant/shibei/manager/UserInfoManager.java

@@ -1,5 +1,7 @@
 package com.itant.shibei.manager;
 
+import android.text.TextUtils;
+
 import com.itant.shibei.bean.BeiUser;
 
 /**
@@ -49,7 +51,7 @@ public class UserInfoManager {
     }
 
     public boolean isLogin() {
-        return getBeiUser() != null;
+        return getBeiUser() != null && !TextUtils.isEmpty(getBeiUser().email) && !TextUtils.isEmpty(getBeiUser().token);
     }
 
     public void setLogin(boolean login) {

+ 0 - 42
app/src/main/java/com/itant/shibei/ui/WelcomeActivity.java

@@ -1,42 +0,0 @@
-package com.itant.shibei.ui;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-
-import com.itant.shibei.R;
-import com.itant.shibei.base.BaseBeiActivity;
-import com.itant.shibei.manager.UserInfoManager;
-import com.itant.shibei.ui.mine.login.LoginActivity;
-
-/**
- * Copyright (C), 2019-2020, Miekir
- *
- * @author Miekir
- * @date 2020/9/2 11:56
- * Description:
- */
-public class WelcomeActivity extends BaseBeiActivity {
-    @Override
-    public int getLayoutID() {
-        return R.layout.activity_welcome;
-    }
-
-    @Override
-    public void initViews(Bundle savedInstanceState) {
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                // todo 从服务器获取信息
-                if (UserInfoManager.getInstance().isLogin()) {
-                    startActivity(new Intent(WelcomeActivity.this, TabActivity.class));
-                } else {
-                    startActivity(new Intent(WelcomeActivity.this, LoginActivity.class));
-                }
-                finish();
-            }
-        }, 2000);
-
-
-    }
-}

+ 0 - 5
app/src/main/java/com/itant/shibei/ui/home/about/AboutFragment.java

@@ -47,7 +47,6 @@ public class AboutFragment extends BaseMVPFragment implements View.OnClickListen
         rootView.findViewById(R.id.tv_feedback).setOnClickListener(this);
         rootView.findViewById(R.id.tv_update).setOnClickListener(this);
         rootView.findViewById(R.id.tv_more).setOnClickListener(this);
-        rootView.findViewById(R.id.tv_protocol).setOnClickListener(this);
         rootView.findViewById(R.id.tv_active).setOnClickListener(this);
     }
 
@@ -105,10 +104,6 @@ public class AboutFragment extends BaseMVPFragment implements View.OnClickListen
                 SystemTool.copyText(getActivity(), "http://jianjie.life");
                 ToastTool.showShort("已拷贝主页链接");
                 break;
-
-            case R.id.tv_protocol:
-
-                break;
             default:
                 break;
         }

+ 1 - 1
app/src/main/java/com/itant/shibei/ui/home/goods/GoodsAdapter.java

@@ -55,7 +55,7 @@ public class GoodsAdapter extends BaseQuickAdapter<GoodsBean, BaseViewHolder> {
         holder.setText(R.id.tv_see_num, String.format(GoodsDetailActivity.FORMATTER_SEE_NUM, StringTool.getNumberString(goodsBean.seeNum)));
 
         holder.setOnClickListener(R.id.cv_goods, v -> {
-            if (UserInfoManager.getInstance().getBeiUser().isVip) {
+            if (!UserInfoManager.getInstance().getBeiUser().isVip) {
                 ToastTool.showShort("请先激活会员");
                 if (mContext instanceof TabActivity) {
                     ((TabActivity) mContext).setCurrentPage(2);

+ 62 - 0
app/src/main/java/com/itant/shibei/ui/welcome/WelcomeActivity.java

@@ -0,0 +1,62 @@
+package com.itant.shibei.ui.welcome;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+
+import com.itant.shibei.R;
+import com.itant.shibei.base.BaseBeiActivity;
+import com.itant.shibei.bean.BeiUser;
+import com.itant.shibei.manager.UserInfoManager;
+import com.itant.shibei.ui.TabActivity;
+import com.itant.shibei.ui.mine.login.ILoginView;
+import com.itant.shibei.ui.mine.login.LoginActivity;
+import com.miekir.common.utils.ToastTool;
+import com.miekir.mvp.presenter.InjectPresenter;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/9/2 11:56
+ * Description:
+ */
+public class WelcomeActivity extends BaseBeiActivity implements ILoginView {
+
+    @InjectPresenter
+    WelcomePresenter presenter;
+
+    @Override
+    public int getLayoutID() {
+        return R.layout.activity_welcome;
+    }
+
+    @Override
+    public void initViews(Bundle savedInstanceState) {
+
+    }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (UserInfoManager.getInstance().isLogin()) {
+            presenter.submitLogin();
+        } else {
+            startActivity(new Intent(WelcomeActivity.this, LoginActivity.class));
+            finish();
+        }
+    }
+
+    @Override
+    public void onLoginResult(BeiUser user, String message) {
+        if (user != null) {
+            UserInfoManager.getInstance().setBeiUser(user);
+            startActivity(new Intent(WelcomeActivity.this, TabActivity.class));
+        } else {
+            ToastTool.showShort(message);
+            startActivity(new Intent(WelcomeActivity.this, LoginActivity.class));
+        }
+        finish();
+    }
+}

+ 44 - 0
app/src/main/java/com/itant/shibei/ui/welcome/WelcomePresenter.java

@@ -0,0 +1,44 @@
+package com.itant.shibei.ui.welcome;
+
+import android.text.TextUtils;
+
+import com.itant.shibei.base.ApiService;
+import com.itant.shibei.bean.BeiUser;
+import com.itant.shibei.net.RetrofitHelper;
+import com.itant.shibei.ui.mine.login.ILoginView;
+import com.miekir.mvp.presenter.BasePresenter;
+import com.miekir.network.core.base.BaseObserver;
+
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * @author Miekir
+ * @date 2020/7/9 20:54
+ * Description: 商品的相关数据接口处理
+ */
+public class WelcomePresenter extends BasePresenter<ILoginView> {
+
+    public void submitLogin() {
+        RetrofitHelper.getInstance()
+                .getRequestApi(ApiService.class)
+                .loginByToken()
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new BaseObserver<BeiUser>() {
+                    @Override
+                    public void onSuccess(BeiUser result) {
+                        if (getView() != null) {
+                            getView().onLoginResult(result, null);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(Throwable e, String errMsg) {
+                        if (getView() != null) {
+                            getView().onLoginResult(null, TextUtils.isEmpty(errMsg) ? "获取用户信息失败" : errMsg);
+                        }
+                    }
+                });
+    }
+}