詹子聪 5 lat temu
rodzic
commit
1c65db2f77

+ 1 - 1
app/src/main/java/com/miekir/eden/base/ApiService.java

@@ -102,7 +102,7 @@ public interface ApiService {
 
     /**设置是否VIP才能用API*/
     @POST("/eden/api/setApiConfig")
-    Observable<BaseResponse<String>> setApiConfig(@Query("booleanValue") boolean booleanValue, @Query("configType") int configType);
+    Observable<BaseResponse<String>> setApiConfig(@Query("configType") int configType, @Query("booleanValue") boolean booleanValue, @Query("newZFB") String newZFB);
 
     /**收藏或取消收藏*/
     @POST("/eden/api/favGoods")

+ 1 - 0
app/src/main/java/com/miekir/eden/bean/SystemBean.java

@@ -15,4 +15,5 @@ public class SystemBean {
      */
     public boolean isVipLimit;
     public boolean isWalking;
+    public String zfb;
 }

+ 1 - 1
app/src/main/java/com/miekir/eden/constant/ConstantString.java

@@ -17,5 +17,5 @@ public interface ConstantString {
     /**
      * 支付宝收款9.9元
      */
-    String UPGRAPE_ZFB = "https://qr.alipay.com/fkx18482hw01dsf3rauxk9b";
+    String UPGRADE_ZFB = "";
 }

+ 10 - 0
app/src/main/java/com/miekir/eden/manager/UserInfoManager.java

@@ -3,6 +3,7 @@ package com.miekir.eden.manager;
 import android.text.TextUtils;
 
 import com.miekir.eden.bean.BeiUser;
+import com.miekir.eden.bean.SystemBean;
 
 /**
  *
@@ -15,6 +16,7 @@ public class UserInfoManager {
     private static volatile UserInfoManager userInfoManager;
     private UserInfoManager() {}
     private BeiUser mBeiUser;
+    private SystemBean systemBean;
 
     private boolean isLogin;
 
@@ -57,4 +59,12 @@ public class UserInfoManager {
     public void setLogin(boolean login) {
         isLogin = login;
     }
+
+    public SystemBean getSystemBean() {
+        return systemBean;
+    }
+
+    public void setSystemBean(SystemBean systemBean) {
+        this.systemBean = systemBean;
+    }
 }

+ 1 - 2
app/src/main/java/com/miekir/eden/ui/home/about/AboutFragment.java

@@ -12,7 +12,6 @@ import com.miekir.common.utils.ToastTool;
 import com.miekir.eden.R;
 import com.miekir.eden.bean.UpgradeBean;
 import com.miekir.eden.common.ICommonView;
-import com.miekir.eden.constant.ConstantString;
 import com.miekir.eden.manager.UserInfoManager;
 import com.miekir.eden.tool.SystemTool;
 import com.miekir.eden.ui.home.about.upgrade.UpgradePresenter;
@@ -97,7 +96,7 @@ public class AboutFragment extends BaseMVPFragment implements View.OnClickListen
                 // 立即激活
                 SystemTool.copyText(getActivity(), UserInfoManager.getInstance().getBeiUser().email);
                 ToastTool.showLong("已拷贝当前账号,请务必粘贴到备注");
-                ActivityTool.openUrl(getActivity(), ConstantString.UPGRAPE_ZFB);
+                ActivityTool.openUrl(getActivity(), UserInfoManager.getInstance().getSystemBean().zfb);
                 break;
 
             case R.id.tv_more:

+ 1 - 2
app/src/main/java/com/miekir/eden/ui/home/tool/ISystemView.java

@@ -11,7 +11,6 @@ import com.miekir.mvp.view.IView;
  */
 public interface ISystemView extends IView {
     void onGetConfigResult(boolean success, String message, SystemBean resultBean);
-    void onSetDoorResult(boolean success, String message, String resultBean);
-    void onSetWalkResult(boolean success, String message, String resultBean);
+    void onSetConfigResult(int configType, boolean success, String message, String newZFB);
     void onSetVipResult(boolean success, String message);
 }

+ 7 - 31
app/src/main/java/com/miekir/eden/ui/home/tool/SystemPresenter.java

@@ -21,6 +21,7 @@ import io.reactivex.schedulers.Schedulers;
 public class SystemPresenter extends BasePresenter<ISystemView> {
     public static final int CONFIG_TYPE_DOOR = 1;
     public static final int CONFIG_TYPE_WALK = 2;
+    public static final int CONFIG_TYPE_ZFB = 3;
 
     /**
      * 获取配置信息
@@ -48,53 +49,28 @@ public class SystemPresenter extends BasePresenter<ISystemView> {
                 });
     }
 
-    /**
-     * 设置API是否开放
-     */
-    public void setDoor(boolean openDoor) {
-        RetrofitHelper.getInstance()
-                .getRequestApi(ApiService.class)
-                .setApiConfig(openDoor, CONFIG_TYPE_DOOR)
-                .subscribeOn(Schedulers.io())
-                .observeOn(AndroidSchedulers.mainThread())
-                .subscribe(new BaseObserver<String>() {
-                    @Override
-                    public void onSuccess(String result) {
-                        if (getView() != null) {
-                            getView().onSetDoorResult(true, "", result);
-                        }
-                    }
-
-                    @Override
-                    public void onFailure(Throwable e, String errMsg) {
-                        if (getView() != null) {
-                            getView().onSetDoorResult(false, TextUtils.isEmpty(errMsg) ? "设置失败:"+e.getMessage() : errMsg, null);
-                        }
-                    }
-                });
-    }
 
     /**
      * 设置是否爬虫
      */
-    public void setWalk(boolean goWalking) {
+    public void setConfig(int configType, boolean booleanValue, String newZFB) {
         RetrofitHelper.getInstance()
                 .getRequestApi(ApiService.class)
-                .setApiConfig(goWalking, CONFIG_TYPE_WALK)
+                .setApiConfig(configType, booleanValue, newZFB)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new BaseObserver<String>() {
                     @Override
                     public void onSuccess(String result) {
                         if (getView() != null) {
-                            getView().onSetWalkResult(true, "", result);
+                            getView().onSetConfigResult(configType, true, "", newZFB);
                         }
                     }
 
                     @Override
                     public void onFailure(Throwable e, String errMsg) {
                         if (getView() != null) {
-                            getView().onSetWalkResult(false, TextUtils.isEmpty(errMsg) ? "设置失败:"+e.getMessage() : errMsg, null);
+                            getView().onSetConfigResult(configType, false, TextUtils.isEmpty(errMsg) ? "设置失败:"+e.getMessage() : errMsg, newZFB);
                         }
                     }
                 });
@@ -113,14 +89,14 @@ public class SystemPresenter extends BasePresenter<ISystemView> {
                     @Override
                     public void onSuccess(String result) {
                         if (getView() != null) {
-                            getView().onSetWalkResult(true, result, result);
+                            getView().onSetVipResult(true, result);
                         }
                     }
 
                     @Override
                     public void onFailure(Throwable e, String errMsg) {
                         if (getView() != null) {
-                            getView().onSetWalkResult(false, TextUtils.isEmpty(errMsg) ? "设置失败:"+e.getMessage() : errMsg, null);
+                            getView().onSetVipResult(false, TextUtils.isEmpty(errMsg) ? "设置失败:"+e.getMessage() : errMsg);
                         }
                     }
                 });

+ 73 - 53
app/src/main/java/com/miekir/eden/ui/mine/MineActivity.java

@@ -9,7 +9,6 @@ import android.view.View;
 import android.widget.CompoundButton;
 import android.widget.Switch;
 
-import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 
 import com.google.android.material.textfield.TextInputEditText;
@@ -37,8 +36,10 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
     private Switch switch_api;
     private Switch switch_walk;
     private TextInputEditText et_email;
+    private TextInputEditText et_zfb;
 
     private BeiUser mUser;
+    private SystemBean mSystemBean;
 
     @Override
     public int getLayoutID() {
@@ -55,7 +56,7 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
         mUser = UserInfoManager.getInstance().getBeiUser();
         setTitle(String.format(ConstantString.WELCOME_HELLO, TimeTool.getCurrentTimePeriod()));
         ViewTool.setOnClickListener(this, this,
-                new int[]{R.id.tv_my_fav, R.id.btn_exit_login, R.id.tv_add_photo, R.id.btn_set_vip});
+                new int[]{R.id.tv_my_fav, R.id.btn_exit_login, R.id.tv_add_photo, R.id.btn_set_vip, R.id.btn_set_zfb});
 
         // 只有我才能管理后台
         View ll_admin = findViewById(R.id.ll_admin);
@@ -66,21 +67,25 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
         }
 
         et_email = findViewById(R.id.et_email);
+        et_zfb = findViewById(R.id.et_zfb);
         switch_api = findViewById(R.id.switch_api);
         switch_walk = findViewById(R.id.switch_walk);
         switch_api.setOnCheckedChangeListener(this);
         switch_walk.setOnCheckedChangeListener(this);
-    }
+        mSystemBean = UserInfoManager.getInstance().getSystemBean();
+        if (mSystemBean == null) {
+            ToastTool.showShort("请重启应用");
+            finish();
+            return;
+        }
 
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+        switch_api.setOnCheckedChangeListener(null);
+        switch_api.setChecked(mSystemBean.isVipLimit);
+        switch_api.setOnCheckedChangeListener(this);
 
-        // 这个界面只有我才需要获取API设置
-        if (TextUtils.equals(ConstantString.NAME_ADMIN, mUser.email)) {
-            showLoading();
-            mSystemPresenter.getSystemConfig();
-        }
+        switch_walk.setOnCheckedChangeListener(null);
+        switch_walk.setChecked(mSystemBean.isWalking);
+        switch_walk.setOnCheckedChangeListener(this);
     }
 
     @Override
@@ -95,7 +100,7 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
                 // 设置会员VIP
                 String email = et_email.getEditableText().toString();
                 if (TextUtils.isEmpty(email)) {
-                    ToastTool.showShort("账号不能为空");
+                    ToastTool.showShort("要升级的账号不能为空");
                     return;
                 }
 
@@ -103,6 +108,17 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
                 mSystemPresenter.setVip(email);
                 break;
 
+            case R.id.btn_set_zfb:
+                String zfb = et_zfb.getEditableText().toString();
+                if (TextUtils.isEmpty(zfb)) {
+                    ToastTool.showShort("支付宝账号不能为空");
+                    return;
+                }
+
+                showLoading();
+                mSystemPresenter.setConfig(SystemPresenter.CONFIG_TYPE_ZFB, false, zfb);
+                break;
+
             case R.id.tv_add_photo:
                 startActivity(new Intent(this, AddPhotoActivity.class));
                 break;
@@ -120,57 +136,61 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
      */
     private void sureToExit() {
         AlertDialog alertDialog = new AlertDialog.Builder(this)
-               .setMessage("确定退出当前账号?")
-               .setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
-               .setPositiveButton("确定", (DialogInterface dialog, int which) -> {
-            dialog.dismiss();
-            UserInfoManager.getInstance().setBeiUser(null);
-            setResult(RESULT_OK);
-            finish();
-        }).create();
+                .setMessage("确定退出当前账号?")
+                .setNegativeButton("取消", (dialog, which) -> dialog.dismiss())
+                .setPositiveButton("确定", (DialogInterface dialog, int which) -> {
+                    dialog.dismiss();
+                    UserInfoManager.getInstance().setBeiUser(null);
+                    setResult(RESULT_OK);
+                    finish();
+                }).create();
         alertDialog.show();
     }
 
 
     @Override
     public void onGetConfigResult(boolean success, String message, SystemBean resultBean) {
-        dismissLoading();
-        if (!success || resultBean == null) {
-            return;
-        }
 
-        switch_api.setOnCheckedChangeListener(null);
-        switch_api.setChecked(resultBean.isVipLimit);
-        switch_api.setOnCheckedChangeListener(this);
-
-        switch_walk.setOnCheckedChangeListener(null);
-        switch_walk.setChecked(resultBean.isWalking);
-        switch_walk.setOnCheckedChangeListener(this);
     }
 
-    @Override
-    public void onSetDoorResult(boolean success, String message, String resultBean) {
-        dismissLoading();
-        if (success) {
-            ToastTool.showShort("设置成功");
-        } else {
-            ToastTool.showShort("设置失败");
-            switch_api.setOnCheckedChangeListener(null);
-            switch_api.setChecked(!switch_api.isChecked());
-            switch_api.setOnCheckedChangeListener(this);
-        }
-    }
 
     @Override
-    public void onSetWalkResult(boolean success, String message, String resultBean) {
+    public void onSetConfigResult(int configType, boolean success, String message, String newZFB) {
         dismissLoading();
-        if (success) {
-            ToastTool.showShort("设置成功");
-        } else {
-            ToastTool.showShort("设置失败");
-            switch_walk.setOnCheckedChangeListener(null);
-            switch_walk.setChecked(!switch_walk.isChecked());
-            switch_walk.setOnCheckedChangeListener(this);
+
+        switch (configType) {
+            case SystemPresenter.CONFIG_TYPE_DOOR:
+                if (success) {
+                    ToastTool.showShort("设置成功");
+                    mSystemBean.isVipLimit = !mSystemBean.isVipLimit;
+                } else {
+                    ToastTool.showShort("设置失败");
+                    switch_api.setOnCheckedChangeListener(null);
+                    switch_api.setChecked(!switch_api.isChecked());
+                    switch_api.setOnCheckedChangeListener(this);
+                }
+                break;
+
+            case SystemPresenter.CONFIG_TYPE_WALK:
+                if (success) {
+                    ToastTool.showShort("设置成功");
+                    mSystemBean.isWalking = !mSystemBean.isWalking;
+                } else {
+                    ToastTool.showShort("设置失败");
+                    switch_walk.setOnCheckedChangeListener(null);
+                    switch_walk.setChecked(!switch_walk.isChecked());
+                    switch_walk.setOnCheckedChangeListener(this);
+                }
+                break;
+            case SystemPresenter.CONFIG_TYPE_ZFB:
+            default:
+                if (success) {
+                    mSystemBean.zfb = newZFB;
+                    ToastTool.showShort("设置成功");
+                } else {
+                    ToastTool.showShort("设置成功");
+                }
+                break;
         }
     }
 
@@ -184,9 +204,9 @@ public class MineActivity extends BaseBeiActivity implements View.OnClickListene
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         showLoading();
         if (buttonView.getId() == switch_api.getId()) {
-            mSystemPresenter.setDoor(isChecked);
+            mSystemPresenter.setConfig(SystemPresenter.CONFIG_TYPE_DOOR, isChecked, mSystemBean.zfb);
         } else if (buttonView.getId() == switch_walk.getId()) {
-            mSystemPresenter.setWalk(isChecked);
+            mSystemPresenter.setConfig(SystemPresenter.CONFIG_TYPE_WALK, isChecked, mSystemBean.zfb);
         }
     }
 }

+ 33 - 5
app/src/main/java/com/miekir/eden/ui/mine/login/LoginActivity.java

@@ -12,9 +12,12 @@ import com.miekir.common.utils.ViewTool;
 import com.miekir.eden.R;
 import com.miekir.eden.base.BaseBeiActivity;
 import com.miekir.eden.bean.BeiUser;
+import com.miekir.eden.bean.SystemBean;
 import com.miekir.eden.manager.UserInfoManager;
 import com.miekir.eden.tool.StringTool;
 import com.miekir.eden.ui.TabActivity;
+import com.miekir.eden.ui.home.tool.ISystemView;
+import com.miekir.eden.ui.home.tool.SystemPresenter;
 import com.miekir.mvp.presenter.InjectPresenter;
 
 /**
@@ -22,7 +25,7 @@ import com.miekir.mvp.presenter.InjectPresenter;
  * @date 2020/6/18 16:48
  * Description: 登录界面
  */
-public class LoginActivity extends BaseBeiActivity implements View.OnClickListener, ILoginView, View.OnLongClickListener {
+public class LoginActivity extends BaseBeiActivity implements View.OnClickListener, ILoginView, ISystemView, View.OnLongClickListener {
     private View til_email;
     private TextInputEditText et_email;
     private TextInputEditText et_password;
@@ -30,6 +33,9 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
     @InjectPresenter
     LoginPresenter presenter;
 
+    @InjectPresenter
+    SystemPresenter systemPresenter;
+
     @Override
     public int getLayoutID() {
         return R.layout.activity_login;
@@ -89,13 +95,11 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
 
     @Override
     public void onLoginResult(BeiUser user, String message) {
-        dismissLoading();
         if (user != null) {
             UserInfoManager.getInstance().setBeiUser(user);
-            ToastTool.showShort("登录成功");
-            startActivity(new Intent(this, TabActivity.class));
-            finish();
+            systemPresenter.getSystemConfig();
         } else {
+            dismissLoading();
             ToastTool.showShort(message);
         }
     }
@@ -107,4 +111,28 @@ public class LoginActivity extends BaseBeiActivity implements View.OnClickListen
         }
         return false;
     }
+
+    @Override
+    public void onGetConfigResult(boolean success, String message, SystemBean resultBean) {
+        dismissLoading();
+        if (success && resultBean != null) {
+            UserInfoManager.getInstance().setSystemBean(resultBean);
+            ToastTool.showShort("登录成功");
+            startActivity(new Intent(this, TabActivity.class));
+            finish();
+        } else {
+            ToastTool.showShort("登录失败");
+        }
+
+    }
+
+    @Override
+    public void onSetConfigResult(int configType, boolean success, String message, String newZFB) {
+
+    }
+
+    @Override
+    public void onSetVipResult(boolean success, String message) {
+
+    }
 }

+ 29 - 1
app/src/main/java/com/miekir/eden/ui/welcome/WelcomeActivity.java

@@ -9,8 +9,11 @@ import com.miekir.common.utils.ToastTool;
 import com.miekir.eden.R;
 import com.miekir.eden.base.BaseBeiActivity;
 import com.miekir.eden.bean.BeiUser;
+import com.miekir.eden.bean.SystemBean;
 import com.miekir.eden.manager.UserInfoManager;
 import com.miekir.eden.ui.TabActivity;
+import com.miekir.eden.ui.home.tool.ISystemView;
+import com.miekir.eden.ui.home.tool.SystemPresenter;
 import com.miekir.eden.ui.mine.login.ILoginView;
 import com.miekir.eden.ui.mine.login.LoginActivity;
 import com.miekir.mvp.presenter.InjectPresenter;
@@ -22,11 +25,14 @@ import com.miekir.mvp.presenter.InjectPresenter;
  * @date 2020/9/2 11:56
  * Description:
  */
-public class WelcomeActivity extends BaseBeiActivity implements ILoginView {
+public class WelcomeActivity extends BaseBeiActivity implements ILoginView, ISystemView {
 
     @InjectPresenter
     WelcomePresenter presenter;
 
+    @InjectPresenter
+    SystemPresenter mSystemPresenter;
+
     @Override
     public int getLayoutID() {
         return R.layout.activity_welcome;
@@ -53,6 +59,18 @@ public class WelcomeActivity extends BaseBeiActivity implements ILoginView {
     public void onLoginResult(BeiUser user, String message) {
         if (user != null) {
             UserInfoManager.getInstance().setBeiUser(user);
+            mSystemPresenter.getSystemConfig();
+        } else {
+            ToastTool.showShort(message);
+            startActivity(new Intent(WelcomeActivity.this, LoginActivity.class));
+            finish();
+        }
+    }
+
+    @Override
+    public void onGetConfigResult(boolean success, String message, SystemBean systemBean) {
+        if (success && systemBean != null) {
+            UserInfoManager.getInstance().setSystemBean(systemBean);
             startActivity(new Intent(WelcomeActivity.this, TabActivity.class));
         } else {
             ToastTool.showShort(message);
@@ -60,4 +78,14 @@ public class WelcomeActivity extends BaseBeiActivity implements ILoginView {
         }
         finish();
     }
+
+    @Override
+    public void onSetConfigResult(int configType, boolean success, String message, String resultBean) {
+
+    }
+
+    @Override
+    public void onSetVipResult(boolean success, String message) {
+
+    }
 }

+ 39 - 0
app/src/main/res/layout/activity_mine.xml

@@ -57,7 +57,46 @@
             android:background="@drawable/selector_btn"
             style="?android:attr/borderlessButtonStyle"/>
 
+        <include layout="@layout/view_divider_common"/>
+
+        <com.google.android.material.textfield.TextInputLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/margin_default"
+            android:layout_marginEnd="@dimen/margin_default"
+            android:layout_marginTop="@dimen/margin_default"
+            android:hint="请输入新的支付链接"
+            app:boxBackgroundMode="outline"
+            app:boxCornerRadiusBottomEnd="4dp"
+            app:boxCornerRadiusBottomStart="4dp"
+            app:boxCornerRadiusTopEnd="4dp"
+            app:boxCornerRadiusTopStart="4dp"
+            app:boxStrokeWidth="@dimen/width_stroke"
+            app:boxStrokeWidthFocused="@dimen/width_stroke"
+            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
 
+            <com.google.android.material.textfield.TextInputEditText
+                android:id="@+id/et_zfb"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/text_normal_s"
+                android:inputType="textEmailAddress"
+                android:maxLength="50"/>
+        </com.google.android.material.textfield.TextInputLayout>
+
+        <android.widget.Button
+            android:id="@+id/btn_set_zfb"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:minHeight="0dp"
+            android:layout_margin="@dimen/margin_default"
+            android:paddingTop="@dimen/padding_full_width"
+            android:paddingBottom="@dimen/padding_full_width"
+            android:text="设置新的支付链接"
+            android:textColor="@color/white"
+            android:textStyle="bold"
+            android:background="@drawable/selector_btn"
+            style="?android:attr/borderlessButtonStyle"/>
 
         <include layout="@layout/view_divider_common"/>
 

+ 1 - 1
common/src/main/java/com/miekir/common/utils/ActivityTool.java

@@ -23,7 +23,7 @@ public class ActivityTool {
         try {
             activity.startActivity(intent);
         } catch (Exception e) {
-            ToastTool.showShort("找不到默认浏览器");
+            ToastTool.showShort("找不到支付通道");
             e.printStackTrace();
         }
     }