xiongzhu 7 лет назад
Родитель
Сommit
0a80b1890a

+ 30 - 0
app/src/main/java/com/android/chmo/app/ChmoApplication.java

@@ -2,6 +2,7 @@ package com.android.chmo.app;
 
 import android.app.Activity;
 import android.app.AlertDialog;
+import android.app.Dialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -28,8 +29,10 @@ import com.android.chmo.mixpush.ChmoMixPushMessageHandler;
 import com.android.chmo.model.LoginUser;
 import com.android.chmo.model.ModelInfo;
 import com.android.chmo.receiver.VChatReceiver;
+import com.android.chmo.ui.activity.LoginActivity;
 import com.android.chmo.ui.activity.WelcomeActivity;
 import com.android.chmo.ui.activity.model.ModelDetailActivity;
+import com.android.chmo.ui.dialog.ConfirmDialog;
 import com.android.chmo.utils.LoginUtils;
 import com.android.chmo.utils.NotifyUtils;
 import com.android.chmo.utils.PixelUtils;
@@ -370,4 +373,31 @@ public class ChmoApplication extends BaseApplication {
 
         return config;
     }
+
+    public static boolean isLogin() {
+        if (app.getLoginUser() == null) {
+            return false;
+        }
+        return !app.getLoginUser().getPk().equals("0");
+    }
+
+    public static void showLoginDialog(Context context) {
+        new ConfirmDialog(context).setButton("立即登录", "取消")
+                .setMsg("你还未登录")
+                .setOutTouchDismiss(true)
+                .setDialogListener(new ConfirmDialog.DialogListener() {
+                    @Override
+                    public void onOk(Dialog dialog) {
+                        dialog.dismiss();
+                        Intent intent = new Intent(context, LoginActivity.class);
+                        context.startActivity(intent);
+                    }
+
+                    @Override
+                    public void onCancel(Dialog dialog) {
+                        dialog.dismiss();
+                    }
+                })
+                .show();
+    }
 }

+ 15 - 13
app/src/main/java/com/android/chmo/ui/activity/LoginActivity.java

@@ -1,6 +1,7 @@
 package com.android.chmo.ui.activity;
 
 import android.Manifest;
+import android.content.Intent;
 import android.support.annotation.NonNull;
 import android.text.TextUtils;
 import android.widget.EditText;
@@ -59,27 +60,27 @@ public class LoginActivity extends BaseActivity {
     public void login() {
         final String phone = phoneEdit.getText().toString();
         final String password = passwordEdit.getText().toString();
-        if(TextUtils.isEmpty(phone)) {
+        if (TextUtils.isEmpty(phone)) {
             showToast("请输入手机号");
             return;
         }
 
-        if(!CommonUtils.isPhone(phone)) {
+        if (!CommonUtils.isPhone(phone)) {
             showToast("手机号不正确");
             return;
         }
 
-        if(TextUtils.isEmpty(password)) {
+        if (TextUtils.isEmpty(password)) {
             showToast("请输入密码");
             return;
         }
         showLoading("登录中...");
-        UserService.login(phone, password, new RequestCallback(){
+        UserService.login(phone, password, new RequestCallback() {
             @Override
             public void onSuccess(String result) {
                 hideLoading();
                 LoginRes res = new Gson().fromJson(result, LoginRes.class);
-                if(res.data != null) {
+                if (res.data != null) {
                     LoginUser user = new LoginUser();
                     user.setUser(res.data);
                     LoginUtils.saveLoginUser(user);
@@ -87,9 +88,11 @@ public class LoginActivity extends BaseActivity {
                     SpManager.getInstance().setString("LoginPwd", password);
 
                     IMManager.login();
-                    openPage(MainActivity.class);
+                    Intent intent = new Intent(LoginActivity.this, MainActivity.class);
+                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                    startActivity(intent);
                     finish();
-                }else {
+                } else {
                     showToast(TextUtils.isEmpty(res.desc) ? "登录失败" : res.desc);
                 }
             }
@@ -105,7 +108,7 @@ public class LoginActivity extends BaseActivity {
 
     @OnClick(R.id.forgetPwd)
     public void forgetPwd() {
-            openPage(ForgetPwdActivity.class);
+        openPage(ForgetPwdActivity.class);
     }
 
     @OnClick(R.id.go_register)
@@ -115,15 +118,14 @@ public class LoginActivity extends BaseActivity {
 
     @OnClick(R.id.container)
     public void containerClick() {
-        CommonUtils.closeKeybord(phoneEdit,this);
+        CommonUtils.closeKeybord(phoneEdit, this);
     }
 
 
-
     private void checkLocationPermission() {
         MPermission.with(this)
                 .setRequestCode(20)
-                .permissions( new String[] {
+                .permissions(new String[]{
                         Manifest.permission.ACCESS_FINE_LOCATION,
                         Manifest.permission.ACCESS_COARSE_LOCATION,
                         Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS}).request();
@@ -135,12 +137,12 @@ public class LoginActivity extends BaseActivity {
     }
 
     @OnMPermissionGranted(20)
-    public void locationPermissionSuccess(){
+    public void locationPermissionSuccess() {
 
     }
 
     @OnMPermissionDenied(20)
-    public void locationPermissionFailed(){
+    public void locationPermissionFailed() {
         showToast("定位所需权限未授权");
     }
 

+ 0 - 1
app/src/main/java/com/android/chmo/ui/activity/MainActivity.java

@@ -206,7 +206,6 @@ public class MainActivity extends BaseActivity {
         super.onBackPressed();
     }
 
-
     private void checkUpdate() {
         UserService.checkUpdate(new RequestCallback() {
             @Override

+ 9 - 7
app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java

@@ -54,13 +54,15 @@ public class WelcomeActivity extends BaseActivity {
     private void start() {
         ChmoApplication.isInit = true;
         if (SpManager.getInstance().getBoolean("appStarted")) {
-            LoginUser user = ChmoApplication.getApp().getLoginUser();
-            if (null != user) {
-                IMManager.login();
-                openPage(MainActivity.class);
-            } else {
-                openPage(LoginActivity.class);
-            }
+            // LoginUser user = ChmoApplication.getApp().getLoginUser();
+            // if (null != user) {
+            //     IMManager.login();
+            //     openPage(MainActivity.class);
+            // } else {
+            //     openPage(LoginActivity.class);
+            // }
+            IMManager.login();
+            openPage(MainActivity.class);
         } else {
             openPage(GuideActivity.class);
         }

+ 21 - 8
app/src/main/java/com/android/chmo/ui/activity/find/FindDetailActivity.java

@@ -15,6 +15,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.android.chmo.R;
+import com.android.chmo.app.ChmoApplication;
 import com.android.chmo.base.BaseActivity;
 import com.android.chmo.constant.Constants;
 import com.android.chmo.http.HttpApi;
@@ -52,21 +53,21 @@ public class FindDetailActivity extends BaseActivity implements RefreshListView.
     @BindView(R.id.refreshList)
     RefreshListView refreshListView;
     @BindView(R.id.commentBottom)
-    View commentBottom;
+    View            commentBottom;
     @BindView(R.id.commentInput)
-    EditText commentEdit;
+    EditText        commentEdit;
 
 
     ImageView headView;
     ImageView bigImage;
-    TextView nameView;
-    TextView addrView;
-    TextView timeView;
+    TextView  nameView;
+    TextView  addrView;
+    TextView  timeView;
 
-    TextView goodNum;
+    TextView  goodNum;
     ImageView goodIcon;
-    TextView commentNum;
-    TextView followText;
+    TextView  commentNum;
+    TextView  followText;
     ImageView followIcon;
 
     View emptyView;
@@ -136,18 +137,30 @@ public class FindDetailActivity extends BaseActivity implements RefreshListView.
         view.findViewById(R.id.goodBtn).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (!ChmoApplication.isLogin()) {
+                    ChmoApplication.showLoginDialog(FindDetailActivity.this);
+                    return;
+                }
                 setGood();
             }
         });
         view.findViewById(R.id.followBtn).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (!ChmoApplication.isLogin()) {
+                    ChmoApplication.showLoginDialog(FindDetailActivity.this);
+                    return;
+                }
                 setFollow();
             }
         });
         view.findViewById(R.id.commentBtn).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (!ChmoApplication.isLogin()) {
+                    ChmoApplication.showLoginDialog(FindDetailActivity.this);
+                    return;
+                }
                 CommonUtils.openKeybord(commentEdit, FindDetailActivity.this);
             }
         });

+ 9 - 6
app/src/main/java/com/android/chmo/ui/activity/me/SettingsActivity.java

@@ -21,6 +21,7 @@ import com.android.chmo.http.service.UserService;
 import com.android.chmo.im.IMManager;
 import com.android.chmo.model.LoginUser;
 import com.android.chmo.ui.activity.LoginActivity;
+import com.android.chmo.ui.activity.MainActivity;
 import com.android.chmo.ui.dialog.ConfirmDialog;
 import com.android.chmo.ui.dialog.SelectDialog;
 import com.android.chmo.utils.CommonUtils;
@@ -42,15 +43,15 @@ import butterknife.OnClick;
 
 public class SettingsActivity extends BaseActivity {
     private final int RESULT_MODNAME = 1;
-    private final int RESULT_CAMERA = 2;
-    private final int RESULT_PHOTO = 3;
+    private final int RESULT_CAMERA  = 2;
+    private final int RESULT_PHOTO   = 3;
 
     @BindView(R.id.iv_avatar)
     ImageView ivAvatar;
     @BindView(R.id.tv_name)
-    TextView tvName;
+    TextView  tvName;
     @BindView(R.id.tv_phone)
-    TextView tvPhone;
+    TextView  tvPhone;
 
     @Override
     protected int getContentResId() {
@@ -128,8 +129,10 @@ public class SettingsActivity extends BaseActivity {
                                 LoginUtils.clearLoginUser();
                                 CommonUtils.clearAllNotification(getContext());
                                 IMManager.logout();
-                                openPage(LoginActivity.class);
-                                close();
+                                Intent intent = new Intent(SettingsActivity.this, MainActivity.class);
+                                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                                startActivity(intent);
+                                finish();
                             }
 
                             @Override

+ 32 - 0
app/src/main/java/com/android/chmo/ui/activity/model/ModelDetailActivity.java

@@ -327,6 +327,10 @@ public class ModelDetailActivity extends BaseActivity {
 
     @OnClick(R.id.privateZone)
     public void privateZone() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         Intent intent = new Intent(this, ModelZoneActivity.class);
         intent.putExtra("model", model);
         openPage(intent);
@@ -334,6 +338,10 @@ public class ModelDetailActivity extends BaseActivity {
 
     @OnClick(R.id.follow_btn)
     public void clickFollow() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         showLoading();
         int type = model.isattention == 1 ? 2 : 1;
         ModelService.setFollow(model.modelpk, type, new RequestCallback() {
@@ -366,6 +374,10 @@ public class ModelDetailActivity extends BaseActivity {
 
     @OnClick(R.id.talk)
     public void talk() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         showLoading();
         UserService.canChat(new RequestCallback() {
             @Override
@@ -405,6 +417,10 @@ public class ModelDetailActivity extends BaseActivity {
     // 直呼
     @OnClick(R.id.call)
     public void call() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         new CallRewardDialog(this).setSelectListener(new CallRewardDialog.RewardSelectListener() {
             @Override
             public void onSelect(int value, Dialog dialog) {
@@ -425,6 +441,10 @@ public class ModelDetailActivity extends BaseActivity {
     // 视频
     @OnClick(R.id.sendVideo)
     public void sendVideo() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         if (model.is_a == 0) {
             showToast("模特当前离线");
             return;
@@ -439,6 +459,10 @@ public class ModelDetailActivity extends BaseActivity {
     // 预约
     @OnClick(R.id.reserve)
     public void reserve() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         Intent intent = new Intent(this, ModelReserveActivty.class);
         intent.putExtra("model", model);
         openPage(intent);
@@ -484,6 +508,10 @@ public class ModelDetailActivity extends BaseActivity {
 
     @OnClick(R.id.report)
     public void report() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         Intent intent = new Intent(this, ModelReportActivity.class);
         intent.putExtra("modelPk", model.modelpk);
         openPage(intent);
@@ -491,6 +519,10 @@ public class ModelDetailActivity extends BaseActivity {
 
     @OnClick(R.id.shield)
     public void shield() {
+        if (!ChmoApplication.isLogin()) {
+            ChmoApplication.showLoginDialog(this);
+            return;
+        }
         new ConfirmDialog(this).setMsg("是否确定屏蔽该模特?")
                 .setDialogListener(new ConfirmDialog.DialogListener() {
                     @Override

+ 37 - 21
app/src/main/java/com/android/chmo/ui/fragment/MineFragment.java

@@ -6,6 +6,7 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.android.chmo.R;
+import com.android.chmo.app.ChmoApplication;
 import com.android.chmo.base.BaseFragment;
 import com.android.chmo.http.HttpApi;
 import com.android.chmo.http.RequestCallback;
@@ -45,9 +46,14 @@ public class MineFragment extends BaseFragment {
 
     @Override
     public void initView() {
-        LoginUser user = LoginUtils.getLoginUser();
-        tvName.setText(user.getPet());
-        XUtilsImage.displayCircluar(ivAvatar, HttpApi.getImgUrl(user.getHphoto()), R.mipmap.def_head);
+        if (ChmoApplication.isLogin()) {
+            LoginUser user = LoginUtils.getLoginUser();
+            tvName.setText(user.getPet());
+            XUtilsImage.displayCircluar(ivAvatar, HttpApi.getImgUrl(user.getHphoto()), R.mipmap.def_head);
+        } else {
+            tvName.setText("未登录");
+            XUtilsImage.displayCircluar(ivAvatar, "", R.mipmap.def_head);
+        }
     }
 
     @Override
@@ -62,29 +68,39 @@ public class MineFragment extends BaseFragment {
     }
 
     private void getUserInfo() {
-        UserService.getUser(new RequestCallback() {
-            @Override
-            public void onSuccess(String result) {
-                LoginRes res = new Gson().fromJson(result, LoginRes.class);
-                if (res.data != null) {
-                    LoginUser user = new LoginUser();
-                    user.setUser(res.data);
-                    LoginUtils.saveLoginUser(user);
-                    IMManager.updateUser();
-                    initView();
+        if (ChmoApplication.isLogin()) {
+            UserService.getUser(new RequestCallback() {
+                @Override
+                public void onSuccess(String result) {
+                    LoginRes res = new Gson().fromJson(result, LoginRes.class);
+                    if (res.data != null) {
+                        LoginUser user = new LoginUser();
+                        user.setUser(res.data);
+                        LoginUtils.saveLoginUser(user);
+                        IMManager.updateUser();
+                        initView();
+                    }
                 }
-            }
 
-            @Override
-            public void onFailure(String error) {
-            }
-        });
+                @Override
+                public void onFailure(String error) {
+                }
+            });
+        }
     }
 
     @OnClick({R.id.ll_order, R.id.btn_promote, R.id.ll_jump,
             R.id.ll_wallet, R.id.ll_video_order, R.id.ll_about,
             R.id.iv_settings, R.id.iv_avatar})
     void onClick(View v) {
+        if (v.getId() == R.id.ll_about) {
+            openPage(AboutActivity.class);
+        } else {
+            if (!ChmoApplication.isLogin()) {
+                ChmoApplication.showLoginDialog(this.getActivity());
+                return;
+            }
+        }
         switch (v.getId()) {
             case R.id.ll_order:
                 openPage(MyOrderActivity.class);
@@ -98,9 +114,9 @@ public class MineFragment extends BaseFragment {
             case R.id.btn_promote:
                 openPage(PromoteActivity.class);
                 break;
-            case R.id.ll_about:
-                openPage(AboutActivity.class);
-                break;
+            // case R.id.ll_about:
+            //     openPage(AboutActivity.class);
+            //     break;
             case R.id.iv_settings:
             case R.id.iv_avatar:
                 openPage(SettingsActivity.class);

+ 8 - 3
app/src/main/java/com/android/chmo/utils/LoginUtils.java

@@ -27,18 +27,23 @@ public class LoginUtils {
 
     /**
      * 查询登录信息
+     *
      * @return
      */
     public static LoginUser getLoginUser() {
         LoginUser user = null;
         try {
-            List<LoginUser> list =  CommDbHelper.get().getDbManager().findAll(LoginUser.class);
+            List<LoginUser> list = CommDbHelper.get().getDbManager().findAll(LoginUser.class);
             if (null != list && !list.isEmpty()) {
                 user = list.get(0);
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
+        if (user == null) {
+            user = new LoginUser();
+            user.setPk("0");
+        }
         return user;
     }
 
@@ -49,7 +54,7 @@ public class LoginUtils {
         try {
             CommDbHelper.get().getDbManager().delete(LoginUser.class);
             ChmoApplication.getApp().setLoginUser(null);
-        }catch (DbException e) {
+        } catch (DbException e) {
             e.printStackTrace();
         }
     }
@@ -59,7 +64,7 @@ public class LoginUtils {
             @Override
             public void onSuccess(String result) {
                 LoginRes res = new Gson().fromJson(result, LoginRes.class);
-                if(res.data != null) {
+                if (res.data != null) {
                     LoginUser user = new LoginUser();
                     user.setUser(res.data);
                     LoginUtils.saveLoginUser(user);