Commit 4778ebe4 by luofan

登录页面集成图形验证码,工单,我的页面增加位置,人脸识别,地址判断弹框

parent 09b81edf
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
......@@ -13,6 +15,7 @@
<option value="$PROJECT_DIR$/baseSDK" />
<option value="$PROJECT_DIR$/beauty" />
<option value="$PROJECT_DIR$/camera" />
<option value="$PROJECT_DIR$/captcha" />
<option value="$PROJECT_DIR$/learnCenter" />
<option value="$PROJECT_DIR$/liveModule" />
<option value="$PROJECT_DIR$/locationComponent" />
......@@ -28,6 +31,7 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>
......
......@@ -2,24 +2,25 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/IDCardLib/IDCardLib.iml" filepath="$PROJECT_DIR$/IDCardLib/IDCardLib.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
<module fileurl="file://$PROJECT_DIR$/baseSDK/baseSDK.iml" filepath="$PROJECT_DIR$/baseSDK/baseSDK.iml" />
<module fileurl="file://$PROJECT_DIR$/beauty/beauty.iml" filepath="$PROJECT_DIR$/beauty/beauty.iml" />
<module fileurl="file://$PROJECT_DIR$/camera/camera.iml" filepath="$PROJECT_DIR$/camera/camera.iml" />
<module fileurl="file://$PROJECT_DIR$/dayu-saas-android00.iml" filepath="$PROJECT_DIR$/dayu-saas-android00.iml" />
<module fileurl="file://$PROJECT_DIR$/learnCenter/learnCenter.iml" filepath="$PROJECT_DIR$/learnCenter/learnCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/liveModule/liveModule.iml" filepath="$PROJECT_DIR$/liveModule/liveModule.iml" />
<module fileurl="file://$PROJECT_DIR$/locationComponent/locationComponent.iml" filepath="$PROJECT_DIR$/locationComponent/locationComponent.iml" />
<module fileurl="file://$PROJECT_DIR$/managercenter/managercenter.iml" filepath="$PROJECT_DIR$/managercenter/managercenter.iml" />
<module fileurl="file://$PROJECT_DIR$/messageCenter/messageCenter.iml" filepath="$PROJECT_DIR$/messageCenter/messageCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/orderCenter/orderCenter.iml" filepath="$PROJECT_DIR$/orderCenter/orderCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/pickerview/pickerview.iml" filepath="$PROJECT_DIR$/pickerview/pickerview.iml" />
<module fileurl="file://$PROJECT_DIR$/provider/provider.iml" filepath="$PROJECT_DIR$/provider/provider.iml" />
<module fileurl="file://$PROJECT_DIR$/saleCenter/saleCenter.iml" filepath="$PROJECT_DIR$/saleCenter/saleCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/umeng/umeng.iml" filepath="$PROJECT_DIR$/umeng/umeng.iml" />
<module fileurl="file://$PROJECT_DIR$/userCenter/userCenter.iml" filepath="$PROJECT_DIR$/userCenter/userCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/wheelview/wheelview.iml" filepath="$PROJECT_DIR$/wheelview/wheelview.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/dayu-saas-android.iml" filepath="$PROJECT_DIR$/.idea/modules/dayu-saas-android.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/IDCardLib/dayu-saas-android.IDCardLib.iml" filepath="$PROJECT_DIR$/.idea/modules/IDCardLib/dayu-saas-android.IDCardLib.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/dayu-saas-android.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/dayu-saas-android.app.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/baseSDK/dayu-saas-android.baseSDK.iml" filepath="$PROJECT_DIR$/.idea/modules/baseSDK/dayu-saas-android.baseSDK.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/beauty/dayu-saas-android.beauty.iml" filepath="$PROJECT_DIR$/.idea/modules/beauty/dayu-saas-android.beauty.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/camera/dayu-saas-android.camera.iml" filepath="$PROJECT_DIR$/.idea/modules/camera/dayu-saas-android.camera.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/captcha/dayu-saas-android.captcha.iml" filepath="$PROJECT_DIR$/.idea/modules/captcha/dayu-saas-android.captcha.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/learnCenter/dayu-saas-android.learnCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/learnCenter/dayu-saas-android.learnCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/liveModule/dayu-saas-android.liveModule.iml" filepath="$PROJECT_DIR$/.idea/modules/liveModule/dayu-saas-android.liveModule.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/locationComponent/dayu-saas-android.locationComponent.iml" filepath="$PROJECT_DIR$/.idea/modules/locationComponent/dayu-saas-android.locationComponent.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/managercenter/dayu-saas-android.managercenter.iml" filepath="$PROJECT_DIR$/.idea/modules/managercenter/dayu-saas-android.managercenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/messageCenter/dayu-saas-android.messageCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/messageCenter/dayu-saas-android.messageCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/orderCenter/dayu-saas-android.orderCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/orderCenter/dayu-saas-android.orderCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/pickerview/dayu-saas-android.pickerview.iml" filepath="$PROJECT_DIR$/.idea/modules/pickerview/dayu-saas-android.pickerview.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/provider/dayu-saas-android.provider.iml" filepath="$PROJECT_DIR$/.idea/modules/provider/dayu-saas-android.provider.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/saleCenter/dayu-saas-android.saleCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/saleCenter/dayu-saas-android.saleCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/umeng/dayu-saas-android.umeng.iml" filepath="$PROJECT_DIR$/.idea/modules/umeng/dayu-saas-android.umeng.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/userCenter/dayu-saas-android.userCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/userCenter/dayu-saas-android.userCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/wheelview/dayu-saas-android.wheelview.iml" filepath="$PROJECT_DIR$/.idea/modules/wheelview/dayu-saas-android.wheelview.iml" />
</modules>
</component>
</project>
\ No newline at end of file
package com.dayu.bigfish.presenter.main;
import com.dayu.base.api.protocol.AddressInfoBean;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.bigfish.api.protocol.VersionInfo;
......@@ -43,6 +44,16 @@ public interface MainContract {
void hideInvateCodeView();
void showRedPackets(List<RedPacketBean> datas);
/**
* 地址,定位,认证弹框.
*/
void showInfoDialog();
/**
* 获取用户地址信息.
*/
public abstract void getUserAddressInfo(AddressInfoBean info);
}
abstract class Presenter extends BasePresenter<View> {
......
......@@ -187,4 +187,13 @@ public class MainPresenter extends MainContract.Presenter {
.subscribe(baseObserver(success->{
}));
}
public void getAddrInfo() {
Api.getService(com.dayu.base.api.APIService.class).getAddressInfo(mAccountId).compose(Api.applySchedulers())
.subscribe(baseObserver(data -> {
mView.getUserAddressInfo(data);
},responeThrowable -> {mView.getUserAddressInfo(null);}
));
}
}
......@@ -30,8 +30,8 @@ public class AboutUsActivity extends DataBindingActivity<AboutUsBinding> {
} else if (Constants.ENVIROMENT.equals("uat")) {
versionCode = (String.format(getString(com.dayu.usercenter.R.string.enviroment_uat), versionCode));
}
mBind.tvVersion.setText(getString(R.string.tv_now_version)+versionCode);
mBind.tvVersion.setText(getString(R.string.tv_now_version) + versionCode);
mBind.detail.setText("\u3000\u3000" + getString(R.string.about_us_detial));
// mBind.imageAbout.setOnClickListener(view -> startActivity(new Intent(this,InputtipsActivity.class)));
}
......
......@@ -4,8 +4,10 @@ import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Environment;
import android.provider.Settings;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
......@@ -20,6 +22,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.bigfish.salecenter.ui.fragment.HomeSaleFragment;
import com.dayu.base.api.Api;
import com.dayu.base.api.DownloadService;
import com.dayu.base.api.protocol.AddressInfoBean;
import com.dayu.base.api.protocol.RedPacketBean;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.bigfish.MyApplication;
......@@ -147,15 +150,15 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
mBind.tabSecond.setOnClickListener(o -> {
if (mPosition != 1) {
showHideFragment(1, mPosition);
int detectSatus = UserManager.getInstance().getUser().getDetectStatus();
if (detectSatus == 2 || detectSatus == 3) {
showCertificationDialog();
}
showInfoDialog();
}
});
mBind.tabLearn.setOnClickListener(o -> showHideFragment(2, mPosition));
mBind.tabFour.setOnClickListener(o -> showHideFragment(3, mPosition));
mBind.tabFour.setOnClickListener(o -> {
showHideFragment(3, mPosition);
showInfoDialog();
});
mBind.rlInvateCode.setOnTouchListener((view, motionEvent) -> true);
mBind.tvCancle.setOnClickListener(v -> {
hideInvateCodeView();
......@@ -426,6 +429,59 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
showRedPackDialog(datas);
}
@Override
public void showInfoDialog() {
getGpsState();
mPresenter.getAddrInfo();
int detectSatus = UserManager.getInstance().getUser().getDetectStatus();
if (detectSatus == 2 || detectSatus == 3) {
showCertificationDialog();
}
}
@Override
public void getUserAddressInfo(AddressInfoBean info) {
if (info == null || TextUtils.isEmpty(info.getAddress())) {
CustomDialog dialog = new CustomDialog(mActivity, com.dayu.order.R.style.CustomDialog,
"师傅好!您须先完善接单收货地址,才能接到上门服务工单!"
, (dialog1, confirm) -> {
if (confirm) {
ARouter.getInstance().build(RouterPath.PATH_EDIT_ADDRESS).navigation();
dialog1.dismiss();
}
dialog1.dismiss();
});
dialog.setTitle("温馨提示")
.setNegativeButton(mActivity.getString(com.dayu.order.R.string.cancle))
.setPositiveButton("马上去完善");
dialog.show();
}
}
private void getGpsState() {
LocationManager lm = (LocationManager) mActivity.getSystemService(mActivity.LOCATION_SERVICE);
boolean enable = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!enable) {
showGpsDialog();
}
}
private void showGpsDialog() {
CustomDialog customDialog = new CustomDialog(mActivity, com.dayu.usercenter.R.style.CustomDialog, "您必须先打开APP定位服务才能接到上门服务工单!",
(dialog, confirm) -> {
if (confirm) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 200);
}
});
customDialog.setTitle("温馨提示")
.setPositiveButton("马上去打开")
.setNegativeButton("取消");
customDialog.show();
}
/**
* 处理intent传来的信息.
*
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data class=".AboutUsBinding"/>
<RelativeLayout
<data class=".AboutUsBinding" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
android:background="@color/white"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/title"
......@@ -14,97 +16,57 @@
<TextView
style="@style/text_title"
android:text="@string/tv_about"
/>
android:text="@string/tv_about" />
<ImageView
android:id="@+id/iv_back"
style="@style/title_image_back"
/>
style="@style/title_image_back" />
</RelativeLayout>
<ImageView
style="@style/card_line"
android:layout_below="@id/title"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/title"
android:background="@color/cl_home_listview_bg"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_30"
>
<ImageView
android:id="@+id/image_about"
android:layout_width="@dimen/dp_205"
android:layout_height="@dimen/dp_205"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:src="@mipmap/about_us"
/>
<ImageView style="@style/card_line" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/hello_engineer"
android:textSize="@dimen/dp_20" />
<TextView
android:id="@+id/detail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="10dp"
android:layout_marginEnd="@dimen/dp_20"
android:lineSpacingMultiplier="1.2"
android:text="@string/about_us_detial"
android:textSize="@dimen/dp_20" />
<TextView
android:id="@+id/text_about"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/image_about"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_31"
android:text="@string/tv_about_us"
android:textColor="@color/cl_home_title_text_color"
android:textSize="@dimen/sp_15"
android:textStyle="bold"
/>
<TextView
android:id="@+id/about_main_text"
android:layout_width="@dimen/dp_267"
android:layout_height="wrap_content"
android:layout_below="@id/text_about"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_29"
android:lineSpacingExtra="@dimen/sp_8"
android:text="@string/tv_about_us_text"
android:textColor="@color/cl_home_title_text_color"
android:textSize="@dimen/sp_15"
/>
<TextView
android:id="@+id/tv_version"
style="@style/common_text_style"
android:layout_below="@id/about_main_text"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_30"
android:text="@string/tv_now_version"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_version"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_20"
android:text="@string/tv_about_dayu"
android:textColor="@color/cl_selector_hui"
android:textSize="@dimen/sp_12"
/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
</RelativeLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:src="@mipmap/app_icon_about_us_bg" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_20"
android:text="北京大鱼创想科技有限公司 版权所有"
android:textSize="@dimen/dp_15" />
<TextView
android:id="@+id/tv_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="bottom"
android:paddingTop="@dimen/dp_10"
tools:text="v2.7.5" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -51,9 +51,9 @@ dependencies {
//eventBus
api 'org.greenrobot:eventbus:3.1.1'
//retrofit
api 'com.squareup.retrofit2:retrofit:2.4.0'
api 'com.squareup.retrofit2:converter-gson:2.4.0'
api 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
api 'com.squareup.retrofit2:retrofit:2.8.1'
api 'com.squareup.retrofit2:converter-gson:2.8.1'
api 'com.squareup.retrofit2:adapter-rxjava2:2.8.1'
//图片选择
// api 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.5'
api 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.9'
......@@ -89,6 +89,7 @@ dependencies {
api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
api 'com.github.delight-im:Android-AdvancedWebView:v3.2.1'
implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.1.0'
api project(':umeng')
......
......@@ -12,6 +12,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.dayu.utils.LogUtils;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
......@@ -82,6 +84,8 @@ public abstract class DataBindingFragment<B extends ViewDataBinding> extends Fra
isVisible = true;
//显示加载效果,延时
mDisposable.add(Observable.timer(300, TimeUnit.MILLISECONDS).subscribe(aLong -> onVisible()));
String simpleName = this.getClass().getSimpleName();
LogUtils.e("===当前fragment:(" +simpleName+ ".java:1)");
} else {
isVisible = false;
onInvisible();
......@@ -98,6 +102,8 @@ public abstract class DataBindingFragment<B extends ViewDataBinding> extends Fra
if (!hidden) {
isVisible = true;
onVisible();
String simpleName = this.getClass().getSimpleName();
LogUtils.e("===当前fragment:(" +simpleName+ ".java:1)");
} else {
isVisible = false;
onInvisible();
......
......@@ -42,19 +42,19 @@ public class Constants {
/**
* dev环境配置.
*/
// public static String ENVIROMENT = "debug";
// public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static String BASE_URL = "http://47.94.101.239:3112";
// public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
// public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
// public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
// public static final boolean IS_DEBUG = true;
// public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
// public static int XLR_PID = 239; //小绿人商家id
public static String ENVIROMENT = "debug";
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static String BASE_URL = "http://47.94.101.239:3112";
public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
public static final boolean IS_DEBUG = true;
public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
public static int XLR_PID = 239; //小绿人商家id
/**
......@@ -80,19 +80,19 @@ public class Constants {
/**
* 正式环境.
*/
public static String ENVIROMENT = "release";
public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
public static String BASE_URL = "https://mobile.kf.ai";
public static String WEB_SOP = "https://sop.kf.ai/#/sop";
public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
public static final boolean IS_DEBUG = false;
public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
public static int XLR_PID = 1936; //小绿人商家id
// public static String ENVIROMENT = "release";
// public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
// public static String BASE_URL = "https://mobile.kf.ai";
// public static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
// public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
// public static final boolean IS_DEBUG = false;
// public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
// public static int XLR_PID = 1936; //小绿人商家id
......
......@@ -1040,6 +1040,9 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸­äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
<string name="pls_input_nick">请输入昵称</string>
<string name="edit_success">修改成功</string>
<string name="hello_engineer">师傅您好!</string>
<string name="about_us_detial">我们是一家专注于智能硬件产品【销售-安装-运维服务】的互联网平台,公司总部位于北京中关村,国内各大城市都设有分支机构。我们基于移动互联网、云计算、大数据和人工智能技术,在帮助各种智能硬件设备厂商开展服务业务。目前大鱼服务网已覆盖全国369个城市和2800多个区县级市场,已入驻2000多家品牌厂商/系统集成商/代理服务商,注册师傅超过50000人。</string>
</resources>
......@@ -5,8 +5,8 @@ buildscript {
ext.build_tools_version = "27.0.3"
ext.min_sdk_version = 17
ext.target_sdk_version = 26
ext.version_code = 276
ext.verson_name = "2.7.6"
ext.version_code = 277
ext.verson_name = "2.7.7"
ext.gradle_version = '3.1.4'
ext.isReleaseMinify = false
ext.isDebugMinify = false
......
......@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip
......@@ -9,4 +9,4 @@ include ':app', ':saleCenter', ':learnCenter',
':pickerview',
':wheelview',
':IDCardLib',
':umeng', ':camera', ':liveModule', ':beauty'
':umeng', ':camera', ':liveModule', ':beauty',':captcha'
......@@ -60,6 +60,6 @@ dependencies {
//ARouter
annotationProcessor "com.alibaba:arouter-compiler:$arouter_compiler_version"
api project(':provider')
api project(':captcha')
api project(':IDCardLib')
}
......@@ -35,6 +35,10 @@ public class UserApiFactory {
return Api.getService(UserService.class).sendCode(telephone, type).compose(Api.applySchedulers());
}
public static Observable<Boolean> sendCheckCode(String telephone, int type,RequestBody body) {
return Api.getService(UserService.class).sendCode(telephone, type,body).compose(Api.applySchedulers());
}
public static Observable<EngineerInfo> getEngineerInfo(int accountId) {
return Api.getService(UserService.class).getEngineerInfo(accountId).compose(Api.applySchedulers());
}
......
......@@ -56,6 +56,15 @@ public interface UserService {
Observable<BaseResponse<Boolean>> sendCode(@Path("telephone") String telephone, @Path("type") int type);
/**
* 滑块校验后,获取验证码
*
* @param type 1:短信;2:语音.
* @return
*/
@POST(UserConstant.REGISTER_URL)
Observable<BaseResponse<Boolean>> sendCode(@Path("telephone") String telephone, @Path("type") int type, @Body RequestBody body);
/**
* 获取师傅信息.
*
* @param accountId
......
......@@ -29,7 +29,7 @@ public class UserConstant {
/**
* 登录时发送验证码
*/
public static final String REGISTER_URL = "/api-user/" + "account/loginSms/{telephone}/type/{type}";
public static final String REGISTER_URL = "/api-user/" + "account/appLoginSms/{telephone}/type/{type}";
/**
* 修改用户头像.
*/
......
......@@ -26,6 +26,8 @@ public interface SmsLoginContract {
void showLoginDialog(OnCloseListener listener);
void setError(String str);
void showCaptchaDialog();
}
abstract class Presenter extends BasePresenter<View> {
......@@ -37,6 +39,10 @@ public interface SmsLoginContract {
*/
public abstract void sendCode(int type);
public void sendCode(String result){
}
/**
* 登录.
*/
......@@ -69,5 +75,6 @@ public interface SmsLoginContract {
*/
public abstract void getStations(int id);
public abstract void showCaptcha(int type);
}
}
......@@ -21,6 +21,13 @@ import com.dayu.utils.UserManager;
import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient;
import org.json.JSONObject;
import java.util.HashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;
/**
* Created by luofan
* on 2017/11/8.
......@@ -29,6 +36,7 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
private String mPhone;
public ObservableField<String> phoneNume = new ObservableField<>();
public ObservableField<String> code = new ObservableField<>();
private int type;
@Override
public void onAttached() {
......@@ -41,6 +49,11 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
@Override
public void sendCode(int type) {
}
@Override
public void sendCode(String result) {
if (TextUtils.isEmpty(mPhone) && phoneNume.get() != null)
mPhone = phoneNume.get();
mView.showDialog();
......@@ -49,7 +62,11 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
} else {
mView.changeVoiceCodeBtn();
}
UserApiFactory.sendCode(mPhone, type).subscribe(baseObserver(aBoolean -> {
HashMap<String, Object> params = new HashMap<>();
params.put("captchaVerification", result);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
UserApiFactory.sendCheckCode(mPhone, type,body).subscribe(baseObserver(aBoolean -> {
if (type == 1) {
mView.showToast(R.string.login_sms_success);
} else if (type == 2) {
......@@ -189,6 +206,12 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
}
@Override
public void showCaptcha(int type) {
this.type = type;
mView.showCaptchaDialog();
}
@Override
public void getSiteId(UserInfo info) {
mView.showDialog();
UserApiFactory.getSiteId(Integer.parseInt(info.getAccountId())).subscribe(baseObserver(
......
......@@ -96,6 +96,11 @@ public class SmsCodeActivity extends BaseActivity<SmsLoginPresenter, ActivitySms
}
@Override
public void showCaptchaDialog() {
}
@Override
protected void onStop() {
super.onStop();
if (customDialog != null && customDialog.isShowing()){
......
......@@ -26,6 +26,7 @@ import com.dayu.utils.UtilsUserAccountMatcher;
import com.dayu.widgets.ChangeEnvDialog;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.listener.OnCloseListener;
import com.example.verificationcodejavademo.widget.BlockPuzzleDialog;
import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.Subscribe;
......@@ -37,7 +38,9 @@ import org.greenrobot.eventbus.Subscribe;
*/
@Route(path = BaseConstant.PATH_LOGIN)
public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySmsLoginBinding> implements SmsLoginContract.View {
public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter, ActivitySmsLoginBinding> implements SmsLoginContract.View {
private BlockPuzzleDialog blockPuzzleDialog;
@Override
public int getLayoutId() {
return R.layout.activity_sms_login;
......@@ -56,6 +59,7 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
mBind.environment.setVisibility(View.VISIBLE);
mBind.environment.setText(String.format(getString(R.string.enviroment_demons), versionCode));
}
blockPuzzleDialog = new BlockPuzzleDialog(this);
setListener();
if (Constants.IS_DEBUG) {
......@@ -113,7 +117,11 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
});
mBind.tvRegister.setOnClickListener(view -> {
startActivity(new Intent(mActivity,RegisterActivity.class));
startActivity(new Intent(mActivity, RegisterActivity.class));
});
blockPuzzleDialog.setOnResultsListener(result -> {
mPresenter.sendCode(result);
});
}
......@@ -128,7 +136,7 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
}
@Subscribe
public void registerSuccess(RegisterSuccessEvent event){
public void registerSuccess(RegisterSuccessEvent event) {
finish();
}
......@@ -194,4 +202,10 @@ public class SmsLoginActivity extends BaseActivity<SmsLoginPresenter,ActivitySms
clickCount = 0;
}
}
@Override
public void showCaptchaDialog() {
blockPuzzleDialog.show();
}
}
package com.dayu.usercenter.ui.fragment;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import com.alibaba.android.arouter.launcher.ARouter;
import com.dayu.base.api.Api;
......@@ -34,6 +40,7 @@ import com.dayu.usercenter.presenter.homeuser.HomeUserContract;
import com.dayu.usercenter.presenter.homeuser.HomeUserPresenter;
import com.dayu.usercenter.ui.activity.PersonInfoActivity;
import com.dayu.usercenter.ui.activity2.CommonRecordActivity;
import com.dayu.usercenter.ui.activity2.EditAddressActivity;
import com.dayu.usercenter.ui.activity2.EditBankActivity;
import com.dayu.usercenter.ui.activity2.EditNickActivity;
import com.dayu.usercenter.ui.activity2.ShareUserCardActivity;
......@@ -88,10 +95,10 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
mBind.tvStartLive.setOnClickListener(view -> ARouter.getInstance().build(RouterPath.PATH_PREPARELIVE).navigation());
mBind.tvSendCard.setOnClickListener(view -> sendUserCard());
mBind.ivEditNick.setOnClickListener(view -> startActivity(EditNickActivity.class));
mBind.tvFetch.setOnClickListener(view ->{
if (canWithdrawMoney > 0){
mBind.tvFetch.setOnClickListener(view -> {
if (canWithdrawMoney > 0) {
applyWithdraw();
}else {
} else {
showToast("无可提现金额!");
}
});
......@@ -134,26 +141,21 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
public void getAddrInfoSuccess(AddressInfoBean info) {
if (info == null || TextUtils.isEmpty(info.getAddress())) {
hasAddressInfo = false;
if (TextUtils.isEmpty((String) SPUtils.get("bank_addr_info", ""))) {
showBankAddrDialog("");
SPUtils.put("bank_addr_info", "showed");
}
} else {
hasAddressInfo = true;
}
}
private void showBankAddrDialog(String str) {
showBankAddrDialog(str,UserInfoActivity.class);
showBankAddrDialog(str, EditAddressActivity.class);
}
private void showBankAddrDialog(String str,Class clazz) {
showBankAddrDialog(str, "去填写",clazz);
private void showBankAddrDialog(String str, Class clazz) {
showBankAddrDialog(str, "马上去完善", clazz);
}
//完善用户信息提示框
private void showBankAddrDialog(String str,String conirmStr, Class clazz) {
private void showBankAddrDialog(String str, String conirmStr, Class clazz) {
if (TextUtils.isEmpty(str)) {
str = "请尽快填写您的银行卡信息和快递信息,以免影响您的提现和接单。";
}
......@@ -321,7 +323,7 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
}
if (TextUtils.isEmpty(mUserInfo.getHeaderImg()) || mUserInfo.getHeaderImg().equals(Constants.AvatarUrl)) {
String str = "请先上传您的头像";
showBankAddrDialog(str,"去上传",PersonInfoActivity.class);
showBankAddrDialog(str, "去上传", PersonInfoActivity.class);
return;
}
if (!hasAddressInfo || !hasBankInfo) {
......@@ -331,14 +333,14 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
}
WechatShareDialog.getInstance().showBottomDialog(mActivity, pos -> {
if (pos == 0){
String name = TextUtils.isEmpty(mUserInfo.getNickName())?mUserInfo.getAccountName():mUserInfo.getNickName();
String path = Constants.USER_PROGRAM_PATH+mUserId;
String title = "我是"+name+",很高兴为您服务!";
CommonUtils.shareProgramPath(mActivity, mUserInfo.getHeaderImg(), title, "",path, SHARE_MEDIA.WEIXIN, null);
AddUserCardData data = new AddUserCardData(mUserId,"微信");
if (pos == 0) {
String name = TextUtils.isEmpty(mUserInfo.getNickName()) ? mUserInfo.getAccountName() : mUserInfo.getNickName();
String path = Constants.USER_PROGRAM_PATH + mUserId;
String title = "我是" + name + ",很高兴为您服务!";
CommonUtils.shareProgramPath(mActivity, mUserInfo.getHeaderImg(), title, "", path, SHARE_MEDIA.WEIXIN, null);
AddUserCardData data = new AddUserCardData(mUserId, "微信");
Api.getService(UserService2.class).addSendUserRecord(data).compose(Api.applySchedulers()).subscribe();
}else {
} else {
startActivity(ShareUserCardActivity.class);
}
});
......@@ -352,13 +354,13 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
}
if (!hasBankInfo) {
String str = "请先完善您的银行卡信息才能提现";
showBankAddrDialog(str,EditBankActivity.class);
showBankAddrDialog(str, EditBankActivity.class);
return;
}
showDialog();
ApplyWithdrawData data = new ApplyWithdrawData(mUserId);
Api.getService(UserService2.class).appplyWithdraw(data).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(success->{
.subscribe(mPresenter.baseObserver(success -> {
if (success)
showApplySuccessDialog();
}));
......@@ -393,7 +395,6 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
customDialog.show();
}
@Override
public void onResume() {
super.onResume();
......@@ -438,6 +439,7 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
public void afterEditAddr(EditAddressEvent event) {
mPresenter.getAddrInfo();
}
@Subscribe
public void afterChangeNick(ChangeNickEvent event) {
initUser();
......@@ -446,6 +448,6 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
private void setUserNick(String nickName) {
if (!TextUtils.isEmpty(nickName))
mBind.tvNick.setText("("+nickName+")");
mBind.tvNick.setText("(" + nickName + ")");
}
}
......@@ -128,7 +128,7 @@
android:gravity="center"
android:alpha="0.35"
android:background="@drawable/btn_blue_commom"
android:onClick="@{()->presenter.sendCode(1)}"
android:onClick="@{()->presenter.showCaptcha(1)}"
android:text="@string/tv_login_register_button_text"
android:textColor="@color/white" />
</LinearLayout>
......@@ -146,7 +146,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_below="@+id/line_code"
android:onClick="@{()->presenter.sendCode(2)}"
android:onClick="@{()->presenter.showCaptcha(2)}"
android:layout_centerHorizontal="true"
android:text="@string/voice_code_notice"
android:textColor="@color/cl_receiving_order_item_data"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment