Ver Fonte

会员激活

詹子聪 há 5 anos atrás
pai
commit
f333cece70

+ 4 - 0
app/src/main/java/com/itant/shibei/manager/UserInfoManager.java

@@ -35,6 +35,10 @@ public class UserInfoManager {
             // 从本地拿
             mBeiUser = PreferenceManager.getInstance().getObject(PreferenceManager.KEY_USER, BeiUser.class);
         }
+        if (mBeiUser == null) {
+            // 从本地拿
+            mBeiUser = new BeiUser();
+        }
         return mBeiUser;
     }
 

+ 23 - 13
app/src/main/java/com/itant/shibei/net/RetrofitHelper.java

@@ -1,6 +1,7 @@
 package com.itant.shibei.net;
 
 import android.content.Context;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.itant.shibei.manager.UserInfoManager;
@@ -59,12 +60,14 @@ public class RetrofitHelper {
                 token = UserInfoManager.getInstance().getBeiUser().token;
                 email = UserInfoManager.getInstance().getBeiUser().email;
             }
-            Request request = chain.request()
-                    .newBuilder()
-                    .addHeader("token", token)
-                    .addHeader("email", email)
-                    .build();
-            return chain.proceed(request);
+
+            Request.Builder builder = chain.request().newBuilder();
+            if (!TextUtils.isEmpty(token)) {
+                builder.addHeader("token", token)
+                        .addHeader("email", email);
+            }
+
+            return chain.proceed(builder.build());
         }
     };
 
@@ -124,11 +127,7 @@ public class RetrofitHelper {
         }
     }
 
-    /**
-     *
-     * @return 默认的请求设置
-     */
-    public OkHttpClient getDefaultOkHttpClient() {
+    public OkHttpClient getDefaultOkHttpClient(boolean needLogin) {
         HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
             @Override
             public void log(String message) {
@@ -137,8 +136,11 @@ public class RetrofitHelper {
         });
         interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
 
-        return new OkHttpClient.Builder()
-                .addInterceptor(mHeaderInterceptor)
+        OkHttpClient.Builder builder = new OkHttpClient.Builder();
+        if (needLogin) {
+            builder.addInterceptor(mHeaderInterceptor);
+        }
+        return  builder
                 //.addInterceptor(interceptor)
                 //.sslSocketFactory(getSSLContext(context))
                 .addInterceptor(new ChuckInterceptor(mContext))
@@ -149,6 +151,14 @@ public class RetrofitHelper {
                 .build();
     }
 
+    /**
+     *
+     * @return 默认的请求设置
+     */
+    public OkHttpClient getDefaultOkHttpClient() {
+        return getDefaultOkHttpClient(true);
+    }
+
     /**
      *
      * @return 请求接口

+ 6 - 1
app/src/main/java/com/itant/shibei/ui/TabActivity.java

@@ -44,6 +44,8 @@ public class TabActivity extends BaseBeiActivity implements View.OnClickListener
     @InjectPresenter
     UpgradePresenter upgradePresenter;
 
+    private SlidingTabLayout stl_home;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -72,7 +74,7 @@ public class TabActivity extends BaseBeiActivity implements View.OnClickListener
         vp_main.setOffscreenPageLimit(titles.length);
         //vp_home.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 
-        SlidingTabLayout stl_home = findViewById(R.id.stl_home);
+        stl_home = findViewById(R.id.stl_home);
         stl_home.setViewPager(vp_main, titles);
         // 默认选中返利商品列表
         stl_home.setCurrentTab(0);
@@ -109,6 +111,9 @@ public class TabActivity extends BaseBeiActivity implements View.OnClickListener
         abl_main.addOnOffsetChangedListener(listener);
     }
 
+    public void setCurrentPage(int index) {
+        stl_home.setCurrentTab(index, true);
+    }
 
     @Override
     public void onClick(View v) {

+ 1 - 6
app/src/main/java/com/itant/shibei/ui/home/about/AboutFragment.java

@@ -55,14 +55,9 @@ public class AboutFragment extends BaseMVPFragment implements View.OnClickListen
     public void setUserVisibleHint(boolean isVisibleToUser) {
         super.setUserVisibleHint(isVisibleToUser);
         // 判断是否已激活
-        if (!UserInfoManager.getInstance().isLogin()) {
-            if (ll_about == null) {
-                return;
-            }
-            ll_about.setVisibility(View.GONE);
+        if (ll_about == null) {
             return;
         }
-        ll_about.setVisibility(View.VISIBLE);
 
         boolean isActive = UserInfoManager.getInstance().getBeiUser().isVip;
         String title = String.format(TITLE_FORMAT, SystemTool.getVersionName(getActivity()), isActive ? "(已激活)" : "(未激活)");

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

@@ -20,6 +20,7 @@ import com.chad.library.adapter.base.BaseViewHolder;
 import com.itant.shibei.R;
 import com.itant.shibei.base.ItemLongClickListener;
 import com.itant.shibei.manager.UserInfoManager;
+import com.itant.shibei.ui.TabActivity;
 import com.itant.shibei.ui.home.goods.play.VideoPlayActivity;
 import com.makeramen.roundedimageview.RoundedImageView;
 import com.miekir.common.utils.ToastTool;
@@ -47,15 +48,22 @@ public class GoodsAdapter extends BaseQuickAdapter<GoodsBean, BaseViewHolder> {
     protected void convert(@NonNull BaseViewHolder holder, GoodsBean goodsBean) {
         holder.setText(R.id.tv_title, goodsBean.title);
 
-
-
         holder.setOnClickListener(R.id.cv_goods, v -> {
+            if (!UserInfoManager.getInstance().getBeiUser().isVip) {
+                ToastTool.showShort("请先激活会员");
+                if (mContext instanceof TabActivity) {
+                    ((TabActivity) mContext).setCurrentPage(2);
+                }
+                return;
+            }
+
             if (!goodsBean.enable) {
                 ToastTool.showShort("敬请期待");
                 return;
             }
+
             // todo 跳到详情界面
-            //ActivityTool.openUrl((Activity) mContext, goodsBean.goodsUrl);
+
         });
 
         // 解决图片错乱

+ 4 - 0
app/src/main/java/com/itant/shibei/ui/home/goods/GoodsFragment.java

@@ -118,6 +118,10 @@ public class GoodsFragment extends BaseMVPFragment implements IGoodsView, ITopAc
                 .setNeutralButton("取消", (dialog, which) -> {
                     dialog.dismiss();
                 })
+                .setPositiveButton("禁用", (DialogInterface dialog, int which) -> {
+                    dialog.dismiss();
+                    // todo 禁用
+                })
                 .setNegativeButton("删除", (DialogInterface dialog, int which) -> {
                     dialog.dismiss();
                     showDeleteDialog(position);

+ 14 - 45
app/src/main/java/com/itant/shibei/ui/mine/login/LoginActivity.java

@@ -1,12 +1,11 @@
 package com.itant.shibei.ui.mine.login;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuItem;
 import android.view.View;
 
-import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import com.google.android.material.textfield.TextInputEditText;
 import com.itant.shibei.R;
@@ -14,6 +13,7 @@ import com.itant.shibei.base.BaseBeiActivity;
 import com.itant.shibei.bean.BeiUser;
 import com.itant.shibei.manager.UserInfoManager;
 import com.itant.shibei.tool.StringTool;
+import com.itant.shibei.ui.TabActivity;
 import com.miekir.common.utils.ToastTool;
 import com.miekir.common.utils.ViewTool;
 import com.miekir.mvp.presenter.InjectPresenter;
@@ -30,6 +30,15 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
     @InjectPresenter
     LoginPresenter presenter;
 
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (UserInfoManager.getInstance().isLogin()) {
+            startActivity(new Intent(this, TabActivity.class));
+            finish();
+        }
+    }
+
     @Override
     public int getLayoutID() {
         return R.layout.activity_login;
@@ -37,57 +46,17 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
 
     @Override
     public void initViews(Bundle savedInstanceState) {
-        setTitle("使用账号密码登录", false);
+        setTitle("伊甸园登录", false);
         et_email = findViewById(R.id.et_email);
         et_password = findViewById(R.id.et_password);
         ViewTool.setOnClickListener(this, this, new int[]{R.id.btn_login, R.id.tv_forget});
     }
 
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.menu_done, menu);
-        MenuItem item = menu.findItem(R.id.action_done);
-        item.setTitle("  忘记密码  ");
-        return super.onCreateOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.action_done:
-                // 注册
-                ToastTool.showShort("请联系管理员");
-                /*Intent registerIntent = new Intent(this, RegisterActivity.class);
-                RxActivityResult.on(this).startIntent(registerIntent)
-                        .filter(result -> result.resultCode() == RESULT_OK)
-                        .doOnNext(result -> {
-                            // 注册成功之后关闭登录界面
-                            ToastTool.showShort("注册成功");
-                            //startActivity(new Intent(LoginActivity.this, MineActivity.class));
-                            finish();
-                        })
-                        .subscribe();*/
-                break;
-            default:
-                break;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.tv_forget:
                 // 忘记密码
-                /*Intent forgetIntent = new Intent(this, ForgetActivity.class);
-                RxActivityResult.on(this).startIntent(forgetIntent)
-                        .filter(result -> result.resultCode() == RESULT_OK)
-                        .doOnNext(result -> {
-                            // 找回密码成功之后关闭登录界面
-                            //startActivity(new Intent(LoginActivity.this, MineActivity.class));
-                            finish();
-                        })
-                        .subscribe();*/
                 break;
 
             case R.id.btn_login:
@@ -121,7 +90,7 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
         if (user != null) {
             UserInfoManager.getInstance().setBeiUser(user);
             ToastTool.showShort("登录成功");
-            //startActivity(new Intent(this, MineActivity.class));
+            startActivity(new Intent(this, TabActivity.class));
             finish();
         } else {
             ToastTool.showShort(message);

Diff do ficheiro suprimidas por serem muito extensas
+ 1 - 9
app/src/main/res/layout/fragment_about.xml