瀏覽代碼

上架商品的框架

詹子聪 6 年之前
父節點
當前提交
b7a490671c

+ 123 - 0
app/src/main/java/com/itant/shibei/ui/mine/goods/AddGoodsActivity.java

@@ -0,0 +1,123 @@
+package com.itant.shibei.ui.mine.goods;
+
+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 com.google.android.material.textfield.TextInputEditText;
+import com.itant.shibei.R;
+import com.itant.shibei.base.BaseBeiActivity;
+import com.itant.shibei.tool.StringTool;
+import com.itant.shibei.ui.mine.MineActivity;
+import com.itant.shibei.ui.mine.forget.ForgetActivity;
+import com.itant.shibei.ui.mine.register.RegisterActivity;
+import com.miekir.common.utils.ToastTool;
+import com.miekir.common.utils.ViewTool;
+import com.miekir.mvp.presenter.InjectPresenter;
+
+import rx_activity_result2.RxActivityResult;
+
+/**
+ * @author Miekir
+ * @date 2020/6/18 16:48
+ * Description: 登录界面
+ */
+public class AddGoodsActivity extends BaseBeiActivity implements View.OnClickListener, IAddGoodsView {
+    private TextInputEditText et_email;
+    private TextInputEditText et_password;
+
+    @InjectPresenter
+    IAddGoodsPresenter presenter;
+
+    @Override
+    public int getLayoutID() {
+        return R.layout.activity_goods_add;
+    }
+
+    @Override
+    public void initViews(Bundle savedInstanceState) {
+        setTitle("使用电子邮箱登录");
+        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:
+                // 注册
+                Intent registerIntent = new Intent(this, RegisterActivity.class);
+                RxActivityResult.on(this).startIntent(registerIntent)
+                        .filter(result -> result.resultCode() == RESULT_OK)
+                        .subscribe(result -> {
+                            // 注册成功之后关闭登录界面
+                            startActivity(new Intent(AddGoodsActivity.this, MineActivity.class));
+                            finish();
+                        });
+                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)
+                        .subscribe(result -> {
+                            // 找回密码成功之后关闭登录界面
+                            startActivity(new Intent(AddGoodsActivity.this, MineActivity.class));
+                            finish();
+                        });
+                break;
+
+            case R.id.btn_login:
+                String email = et_email.getEditableText().toString();
+                String password = et_password.getEditableText().toString();
+                if (TextUtils.isEmpty(email)) {
+                    ToastTool.showShort("邮箱不能为空");
+                    return;
+                }
+                if (TextUtils.isEmpty(password)) {
+                    ToastTool.showShort("密码不能为空");
+                    return;
+                }
+
+                password = StringTool.getEncodeString(password);
+                showLoading();
+                presenter.submitLogin(email, password);
+                break;
+            default:
+                break;
+        }
+    }
+
+    @Override
+    public void onAddGoodsResult(boolean success, String message) {
+        dismissLoading();
+        if (success) {
+            finish();
+        } else {
+            ToastTool.showShort(message);
+        }
+    }
+}

+ 41 - 0
app/src/main/java/com/itant/shibei/ui/mine/goods/IAddGoodsPresenter.java

@@ -0,0 +1,41 @@
+package com.itant.shibei.ui.mine.goods;
+
+import com.itant.shibei.base.ApiService;
+import com.itant.shibei.bean.BeiUser;
+import com.miekir.mvp.presenter.BasePresenter;
+import com.miekir.network.core.RetrofitHelper;
+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 IAddGoodsPresenter extends BasePresenter<IAddGoodsView> {
+
+    public void submitLogin(String email, String password) {
+        RetrofitHelper.getInstance()
+                .getRequestApi(ApiService.class)
+                .submitLogin(email, password)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new BaseObserver<BeiUser>() {
+                    @Override
+                    public void onSuccess(BeiUser result) {
+                        if (getView() != null) {
+                            //getView().onAddGoodsResult(result, null);
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(Throwable e, String errMsg) {
+                        if (getView() != null) {
+                            //getView().onAddGoodsResult(null, TextUtils.isEmpty(errMsg) ? "登录失败" : errMsg);
+                        }
+                    }
+                });
+    }
+}

+ 15 - 0
app/src/main/java/com/itant/shibei/ui/mine/goods/IAddGoodsView.java

@@ -0,0 +1,15 @@
+package com.itant.shibei.ui.mine.goods;
+
+import com.miekir.mvp.view.IView;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/8/2 10:29
+ * Description: 获取验证码的回调
+ */
+public interface IAddGoodsView extends IView {
+
+    void onAddGoodsResult(boolean success, String message);
+}

+ 97 - 0
app/src/main/res/layout/activity_goods_add.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/colorPrimary"
+    android:fitsSystemWindows="true"
+    android:orientation="vertical"
+    android:focusable="true"
+    android:focusableInTouchMode="true">
+    <!--启用深色模式之后,需要使用fitsSystemWindows来不让布局上滑-->
+
+    <include layout="@layout/view_toolbar" />
+    <!--阴影效果android:background="?android:attr/listDivider"-->
+
+    <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_email"
+            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>
+
+
+    <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_password"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPassword"
+            android:maxLength="20"
+            android:textSize="@dimen/text_normal_s"/>
+
+    </com.google.android.material.textfield.TextInputLayout>
+
+    <TextView
+        android:id="@+id/tv_forget"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/margin_message"
+        android:layout_marginEnd="@dimen/margin_default"
+        android:text="忘记密码"
+        android:textColor="@color/gray_hint"
+        android:textStyle="bold"
+        android:textSize="@dimen/text_s"
+        android:background="?attr/selectableItemBackground"
+        android:layout_gravity="end"/>
+
+    <android.widget.Button
+        android:id="@+id/btn_login"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="0dp"
+        android:layout_marginTop="@dimen/margin_message"
+        android:layout_marginStart="@dimen/margin_default"
+        android:layout_marginEnd="@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"/>
+
+</LinearLayout>