1 文件已重命名
37个文件已修改
2个文件已删除
35个文件已添加
| | |
| | | testBuildType "debug" |
| | | |
| | | defaultConfig { |
| | | minSdkVersion 21 |
| | | minSdkVersion 26 |
| | | targetSdkVersion 29 |
| | | versionCode 10 |
| | | versionName "1.0.1" |
| | |
| | | defaultConfig { |
| | | applicationId "com.xianning.driver" |
| | | minSdkVersion 26 |
| | | targetSdkVersion 29 |
| | | versionCode 12 |
| | | versionName "1.7" |
| | | targetSdkVersion 30 |
| | | versionCode 18 |
| | | versionName "1.95" |
| | | multiDexEnabled true |
| | | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
| | | |
| | |
| | | abiFilters "armeabi-v7a", "arm64-v8a" // 保留这种架构的CPU |
| | | } |
| | | applicationVariants.all { variant -> |
| | | // 更新至Android Studio 3.3 gradle 4.10.1 |
| | | variant.outputs.all { |
| | | outputFileName = "xianning-${defaultConfig.versionName}-${new Date().format("yyyy-MM-dd" , TimeZone.getTimeZone("GMT+08")) }.apk" |
| | | } |
| | |
| | | implementation 'com.google.zxing:core:3.3.0' |
| | | implementation 'cn.jiguang.sdk:jpush:3.6.6' // 此处以JPush 3.6.6 版本为例。 |
| | | implementation 'cn.jiguang.sdk:jcore:2.3.8' // 此处以JCore 2.3.8 版本为例。 |
| | | // implementation 'com.tencent.bugly:crashreport:3.1.0' |
| | | // implementation 'com.tencent.bugly:nativecrashreport:3.1.0' |
| | | implementation project(path: ':ChipsLayoutManager') |
| | | //http日志拦截器 |
| | | implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1' |
| | | implementation project(path: ':easyfloat') |
| | | implementation 'com.tencent.bugly:crashreport:latest.release' //tx bugly |
| | | |
| | | implementation 'com.baidu.lbsyun:BaiduMapSDK_Location_All:9.6.4' |
| | | implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.9' |
| | |
| | | implementation 'androidx.constraintlayout:constraintlayout:2.1.4' |
| | | implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' |
| | | implementation 'com.airbnb.android:lottie:3.6.0' |
| | | } |
| | | } |
| | |
| | | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":12,"versionName":"1.7","enabled":true,"outputFile":"xianning-1.7-2025-01-14.apk","fullName":"release","baseName":"release","dirName":""},"path":"xianning-1.7-2025-01-14.apk","properties":{}}] |
| | | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":18,"versionName":"1.95","enabled":true,"outputFile":"xianning-1.95-2025-03-14.apk","fullName":"release","baseName":"release","dirName":""},"path":"xianning-1.95-2025-03-14.apk","properties":{}}] |
| | |
| | | <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> |
| | | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
| | | <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> |
| | | <uses-permission android:name="android.permission.READ_CONTACTS" /> |
| | | |
| | | <application |
| | | android:name="com.xianning.driver.base.MyApplication" |
| | | android:icon="@mipmap/ic_launcher" |
| | | android:label="@string/app_name" |
| | | android:requestLegacyExternalStorage="true" |
| | | android:networkSecurityConfig="@xml/network_security_config" |
| | | android:supportsRtl="true" |
| | | android:theme="@style/AppTheme"> |
| | |
| | | android:name="android.support.FILE_PROVIDER_PATHS" |
| | | android:resource="@xml/file_paths" /> |
| | | </provider> |
| | | <meta-data |
| | | android:name="com.amap.api.v2.apikey" |
| | | android:value="8c5529a431322b2237c263055d561eb6" /> |
| | | |
| | | <meta-data |
| | | android:name="com.baidu.lbsapi.API_KEY" |
| | |
| | | <activity android:name=".ui.mine.WithdrawRecordActivity" /> |
| | | <activity android:name=".ui.mine.WalletRecordActivity" /> |
| | | <activity android:name=".ui.main.CallOrderActivity" /> |
| | | <activity android:name=".base.gaode.gpsnav.BaiduNaviActivity" /> <!-- 微信 --> |
| | | <activity android:name=".base.gaode.gpsnav.BaiduNaviActivity" /> |
| | | <activity android:name=".ui.main.major.MajorSureMoneyOfflineActivity" /> |
| | | <activity android:name=".ui.mine.WithdrawOfflineActivity" /> |
| | | <activity android:name=".ui.mine.WithdrawDetailActivity" /> |
| | | <activity android:name=".ui.mine.InviteActivity" /> |
| | | <activity android:name=".ui.mine.InviteRecordActivity" /> <!-- 微信 --> |
| | | |
| | | <!-- Since JCore2.0.0 Required SDK核心功能--> |
| | | <!-- 可配置android:process参数将Service放在其他进程中;android:enabled属性不能是false --> |
New file |
| | |
| | | package com.xianning.driver.base |
| | | |
| | | import android.os.Bundle |
| | | import android.os.CountDownTimer |
| | | import android.view.Gravity |
| | | import android.view.LayoutInflater |
| | | import android.view.View |
| | | import android.view.ViewGroup |
| | | import android.view.inputmethod.InputMethodManager |
| | | import android.widget.EditText |
| | | import androidx.appcompat.app.AppCompatActivity |
| | | import androidx.fragment.app.DialogFragment |
| | | import cn.sinata.xldutils.R |
| | | |
| | | abstract class BaseDialogFragment : DialogFragment() { |
| | | abstract fun setContentView(): Int |
| | | abstract fun setGravity(): Int |
| | | abstract fun initView() |
| | | |
| | | var isFirstResume = true |
| | | var canceledOnTouchOutside = true |
| | | |
| | | var mCancelable = true; |
| | | |
| | | override fun onCreateView( |
| | | inflater: LayoutInflater, |
| | | container: ViewGroup?, |
| | | savedInstanceState: Bundle? |
| | | ): View? { |
| | | return inflater.inflate(setContentView(), container, false) |
| | | } |
| | | |
| | | override fun onCreate(savedInstanceState: Bundle?) { |
| | | super.onCreate(savedInstanceState) |
| | | setStyle( |
| | | STYLE_NO_FRAME, |
| | | if (setGravity() == Gravity.CENTER) R.style.FadeDialog else R.style.Dialog |
| | | ) |
| | | } |
| | | |
| | | override fun onActivityCreated(savedInstanceState: Bundle?) { |
| | | super.onActivityCreated(savedInstanceState) |
| | | dialog?.window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) |
| | | dialog?.window?.setGravity(setGravity()) |
| | | dialog?.setCanceledOnTouchOutside(canceledOnTouchOutside) |
| | | isCancelable = mCancelable |
| | | } |
| | | |
| | | |
| | | override fun onViewCreated(view: View, savedInstanceState: Bundle?) { |
| | | super.onViewCreated(view, savedInstanceState) |
| | | initView() |
| | | } |
| | | |
| | | /** |
| | | * 显示键盘 |
| | | * |
| | | * @param et 输入焦点 |
| | | */ |
| | | fun showInput(et: EditText) { |
| | | et.postDelayed({ |
| | | et.requestFocus() |
| | | val imm = |
| | | requireContext().getSystemService(AppCompatActivity.INPUT_METHOD_SERVICE) as InputMethodManager |
| | | imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT) |
| | | }, 200) |
| | | } |
| | | |
| | | override fun onStop() { |
| | | super.onStop() |
| | | dialog?.window?.setWindowAnimations(0) //阻止二次动画 |
| | | } |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | if (isFirstResume) |
| | | isFirstResume = false |
| | | else |
| | | object : CountDownTimer(500, 500) { |
| | | override fun onTick(millisUntilFinished: Long) { |
| | | } |
| | | |
| | | override fun onFinish() { |
| | | dialog?.window?.setWindowAnimations(if (setGravity() == Gravity.CENTER) R.style.FadeDialog else R.style.Dialog) |
| | | } |
| | | }.start() |
| | | } |
| | | } |
| | |
| | | public static String endpoint = "oss-cn-wuhan-lr.aliyuncs.com"; |
| | | |
| | | |
| | | //手动请求权限列表 |
| | | public static String permissions_write = "android.permission.WRITE_EXTERNAL_STORAGE"; |
| | | public static String permissions_camera = "android.permission.CAMERA"; |
| | | // 地图 |
| | | public static String permissions_location_fine = "android.permission.ACCESS_FINE_LOCATION"; |
| | | public static String permissions_location_coarse = "android.permission.ACCESS_COARSE_LOCATION"; |
| | | public static String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES"; |
| | | |
| | | |
| | | public static String[] PERMISSIONS_LIST = {Manifest.permission.READ_EXTERNAL_STORAGE, |
| | | Manifest.permission.READ_PHONE_STATE |
| | | , Manifest.permission.WRITE_EXTERNAL_STORAGE |
| | |
| | | import com.xianning.driver.utils.Cache.CacheUtil |
| | | import com.xianning.driver.utils.LogUtils |
| | | import com.google.gson.Gson |
| | | import com.tencent.bugly.crashreport.CrashReport |
| | | import com.umeng.commonsdk.UMConfigure |
| | | import com.umeng.socialize.PlatformConfig |
| | | import com.xuexiang.xui.XUI |
| | |
| | | SDKInitializer.setAgreePrivacy(this,true) |
| | | SDKInitializer.initialize(this) |
| | | SDKInitializer.setCoordType(CoordType.BD09LL) |
| | | CrashReport.initCrashReport(this, "aef1d069f7", true) |
| | | } |
| | | |
| | | fun initPersionDate(){ |
| | |
| | | UMConfigure.DEVICE_TYPE_PHONE, |
| | | "" |
| | | ) |
| | | PlatformConfig.setWeixin("wx484d3afa3d9f8251", "cf21c4d18ef5afa174d9fecec3e7359b") |
| | | PlatformConfig.setQQZone("1105920536", "bx7zWrVgTskXHZTr") //qq互联 |
| | | PlatformConfig.setWeixin("wxf6dbaef77a7d3b91", "7b3f7f7091da783cb4c6531f42d9915b") |
| | | JPushInterface.setDebugMode(true) |
| | | JPushInterface.init(this) |
| | | setAlisa() |
| | |
| | | //设置是否在stop的时候杀死这个进程,默认(建议)不杀死,即setIgnoreKillProcess(true) |
| | | option.SetIgnoreCacheException(false); |
| | | option.setIsNeedAddress(true) |
| | | //可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll; |
| | | option.setCoorType("bd09ll") |
| | | //可选,设置是否收集Crash信息,默认收集,即参数为false |
| | | mLocationClient?.setLocOption(option) |
| | | mLocationClient?.registerLocationListener(lisener) |
| | | mLocationClient?.start() |
| | | |
| | | return mLocationClient |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | fun drawLine(context: Context, aMap: BaiduMap, points: List<LatLng>?): Overlay { |
| | | fun drawLine(context: Context, aMap: BaiduMap, points: List<LatLng>?): Overlay? { |
| | | val latLngs: MutableList<LatLng> = ArrayList() |
| | | latLngs.addAll(points?: arrayListOf()) |
| | | //设置折线的属性 |
| | |
| | | .points(latLngs) |
| | | //在地图上绘制折线 |
| | | //mPloyline 折线对象 |
| | | return aMap.addOverlay(mOverlayOptions) |
| | | if (aMap!=null) |
| | | return aMap.addOverlay(mOverlayOptions) |
| | | return null |
| | | } |
| | | |
| | | fun moveCamera(aMap: BaiduMap, latlng: LatLng) { |
| | | val mapStatusUpdate = MapStatusUpdateFactory.newLatLng(latlng) |
| | | aMap.animateMapStatus(mapStatusUpdate,16) |
| | | aMap.animateMapStatus(mapStatusUpdate,8) |
| | | } |
| | | |
| | | fun moveCamera(aMap: BaiduMap, start: LatLng?, end: LatLng?) { |
| | |
| | | DrivingRouteLine.DrivingStep steps = drivingRouteLine.getAllStep().get(i); |
| | | latLngs.addAll(steps.getWayPoints()); |
| | | } |
| | | callback.onGetDrivingRouteResult(latLngs,(float) drivingRouteLine.getDistance(), drivingRouteLine.getDuration()); |
| | | callback.onGetDrivingRouteResult(latLngs,(float) drivingRouteLine.getDistance(), drivingRouteLine.getDuration()/60); |
| | | } |
| | | mSearch.destroy(); |
| | | } |
| | |
| | | val fullScreen: Boolean = supportFullScreen() |
| | | val params = Bundle() |
| | | params.putBoolean(BNaviCommonParams.ProGuideKey.IS_SUPPORT_FULL_SCREEN, fullScreen) |
| | | // IS_REALNAVI代表导航类型,true表示真实导航,false表示模拟导航,默认是true |
| | | // params.putBoolean(BNaviCommonParams.ProGuideKey.IS_REALNAVI, false) |
| | | mRouteGuideManager = BaiduNaviManagerFactory.getRouteGuideManager() |
| | | val config = BNGuideConfig.Builder() |
| | | .params(params) |
New file |
| | |
| | | package com.xianning.driver.bean |
| | | |
| | | data class InviteInfo( |
| | | val code: Int, |
| | | val `data`: InviteInfoData, |
| | | val msg: String |
| | | ) |
| | | |
| | | data class InviteInfoData( |
| | | val code: String, |
| | | val inviteNumber: String |
| | | ) |
New file |
| | |
| | | package com.xianning.driver.bean |
| | | |
| | | data class InviteRecord( |
| | | val code: Int, |
| | | val `data`: List<InviteData>, |
| | | val msg: String |
| | | ) |
| | | |
| | | data class InviteData( |
| | | val avatar: String, |
| | | val id: Int, |
| | | val inviteUserId: Int, |
| | | val phone: String, |
| | | val registerTime: String, |
| | | val userId: Int, |
| | | val userType: Int |
| | | ) |
| | |
| | | private double mileageMoney; |
| | | private double orderMoney; |
| | | private double parkMoney; |
| | | public double platformFee; |
| | | private double redPacketMoney; |
| | | private double roadTollMoney; |
| | | private double startMoney; |
New file |
| | |
| | | package com.xianning.driver.bean |
| | | |
| | | data class NoticeBean( |
| | | val code: Int, |
| | | val `data`: List<NoticeData>, |
| | | val msg: String |
| | | ) |
| | | |
| | | data class NoticeData( |
| | | val content: String, |
| | | val flag: String, |
| | | val id: String, |
| | | val imgUrl: String, |
| | | val insertTime: String, |
| | | val insertUser: Int, |
| | | val isAlert: Int, |
| | | val isBroadcast: String, |
| | | val isDelete: Int, |
| | | val isDriver: Int, |
| | | val isShow: Int, |
| | | val isUser: Int, |
| | | val sort: String, |
| | | val title: String, |
| | | val type: Int, |
| | | val updateTime: String, |
| | | val updateUser: String |
| | | ) |
| | |
| | | private Double orderMoney; |
| | | private String orderName; |
| | | private Integer orderState; |
| | | private Integer payManner; |
| | | private Integer payManner; //1.线上 2.线下 3.打表 |
| | | private String phone; |
| | | private String startAddress; |
| | | private Double startDistance; |
| | |
| | | private String time; |
| | | private int type; |
| | | public int isBack; //1已投诉 |
| | | public int payManner; |
| | | private String remark; |
| | | private String peopleNumber; |
| | | private String cargoNumber; |
| | |
| | | val createTime: String, |
| | | val money: Double, |
| | | val state: String |
| | | ) |
| | | |
| | | data class WithdrawBean( |
| | | val code: Int, |
| | | val `data`: WithdrawData, |
| | | val msg: String |
| | | ) |
| | | |
| | | data class WithdrawData( |
| | | val rows: List<Row>, |
| | | val total: String |
| | | ) |
| | | |
| | | data class Row( |
| | | val id: String, |
| | | val openBank: String, |
| | | val receiptVoucher: String, |
| | | val receivePaymentAccount: String, |
| | | val receivePaymentName: String, |
| | | val remark: String, |
| | | val status: Int, |
| | | val withdrawalMoney: Double, |
| | | val withdrawalTime: String, |
| | | val withdrawalType: Int |
| | | ) |
New file |
| | |
| | | package com.xianning.driver.bean |
| | | |
| | | data class WithdrawDetails( |
| | | val code: Int, |
| | | val `data`: WithdrawDetailsData, |
| | | val msg: String |
| | | ) |
| | | |
| | | data class WithdrawDetailsData( |
| | | val openBank: String, |
| | | val receiptVoucher: String, |
| | | val receivePaymentAccount: String, |
| | | val receivePaymentName: String, |
| | | val remark: String, |
| | | val status: Int, |
| | | val withdrawalMoney: Double, |
| | | val withdrawalTime: String, |
| | | val withdrawalType: Int |
| | | ) |
New file |
| | |
| | | package com.xianning.driver.bean; |
| | | |
| | | public class WxpayBean { |
| | | |
| | | /** |
| | | * code : 0 |
| | | * data : {"amount":0,"content":"string","id":0,"lat":0,"lon":0,"minute":0,"name":"string","number":0} |
| | | * msg : string |
| | | */ |
| | | |
| | | private int code; |
| | | public OrderPayBean data; |
| | | private String msg; |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(int code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | |
| | | public String getMsg() { |
| | | return msg; |
| | | } |
| | | |
| | | public void setMsg(String msg) { |
| | | this.msg = msg; |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | |
| | | public class Api { |
| | | // http://120.220.4.60:8190/user/base/taxi/udeskTaxiOrder http://120.220.4.60:8190/user/base/taxi/udeskTaxiOrder |
| | | // public static final String BASE_URL = "http://192.168.110.111:7777/driver-server/"; |
| | | // http://120.220.4.60:8190/user/base/taxi/udeskTaxiOrder |
| | | // public static final String BASE_URL = "http://192.168.110.64:7777/driver-server/";//周帅内 |
| | | // public static final String BASE_URL = "http://221.182.45.100:7777/driver-server/"; //内网映射 |
| | | public static final String BASE_URL = "https://xn95128.cn/driver/"; |
| | | |
| | | // public static final String SOCKET_SERVER = "192.168.110.111"; |
| | | // public static final String SOCKET_SERVER = "221.182.45.100"; |
| | | // public static final String SOCKET_SERVER = "192.168.110.64"; |
| | | public static final String SOCKET_SERVER = "36.134.221.234"; |
| | | public static final int SOCKET_PORT = 9977; |
| | | public static final int SUCCESS = 200; |
| | |
| | | public static String updateDriver = "base/driver/updateDriver"; //api/driver/updateDriver 司机注册后完善个人信息 |
| | | public static String companyList = "base/driver/companyList"; |
| | | |
| | | /*** |
| | | /** |
| | | * 首页 |
| | | */ |
| | | public static String queryHomeData = "api/driver/queryHomeData"; ///api/driver/queryHomeData获取首页统计数据 |
| | |
| | | public static String queryHistoryActivityInfo = "api/driver/queryHistoryActivityInfo"; //api/driver/queryHistoryActivityInfo 获取历史日期中的活动内容 |
| | | public static String queryNeedCertificate = "base/driver/queryNeedCertificate"; //base/driver/queryNeedCertificate 注册完善个人信息根据选择的从业地判断是否需要网约车资格证 |
| | | |
| | | /*** |
| | | /** |
| | | * 订单中 |
| | | */ |
| | | public static String queryOrderInfo = "api/order/queryOrderInfo"; ///api/order/queryOrderInfo 获取服务中页面订单详情 |
| | | public static String reassign = "api/order/reassign"; ///api/order/reassign 提交改派申请 |
| | | public static String process = "api/order/process"; //api/order/process司机走流程操作api/order/process司机走流程操作 |
| | | public static String confirmFees = "api/order/confirmFees"; //api/order/confirmFees 司机确认费用 |
| | | public static String orderStateSocket = "api/netty/orderStateSocket"; ///api/netty/orderStateSocket 主动调用获取订单状态 |
| | |
| | | public static String addCancelOrder = "api/order/addCancelOrder"; |
| | | public static String setOrderCrossCitySort = "api/orderCrossCity/setOrderCrossCitySort"; ///api/orderCrossCity/setOrderCrossCitySort 修改订单顺序(跨城) |
| | | |
| | | /*** |
| | | /** |
| | | * 消息 |
| | | */ |
| | | public static String queryNotices = "api/systemNotice/queryNotices"; ///api/systemNotice/queryNotices= 获取系统消息和公告 |
| | |
| | | public static String clearSystemNotice = "api/systemNotice/clearSystemNotice"; //api/systemNotice/clearSystemNotice 清除所有消息或公告 |
| | | |
| | | |
| | | /*** |
| | | /** |
| | | * 个人中心 |
| | | */ |
| | | public static String queryInfo = "api/driver/queryInfo"; //api/driver/queryInfo 获取个人中心详情 |
| | |
| | | public static String feedback = "api/feedback/feedback"; //api/feedback/feedback 提交反馈意见 |
| | | public static String querySetOrders = "api/driver/querySetOrders"; //api/driver/querySetOrders 获取设置接单的业务类型列表 |
| | | public static String updateOrders = "api/driver/updateOrders"; //api/driver/updateOrders 设置接单规则 |
| | | public static String addWithdrawal = "api/withdrawal/addWithdrawal"; |
| | | |
| | | public static String queryMyCar = "api/driver/queryMyCar"; //api/driver/queryMyCar获取当前车辆及空闲车辆 |
| | | public static String queryAllBrand = "api/car/queryAllBrand"; //api/car/queryAllBrand 获取所有车辆品牌 |
| | |
| | | public static String reservation = "api/line/reservation"; //api/line/reservation 预约/取消预约 |
| | | public static String reassignOrderCrossCityReassign = "api/orderCrossCity/reassignOrderCrossCityReassign"; ///api/orderCrossCity/reassignOrderCrossCityReassign 提交改派申请(跨城) |
| | | |
| | | /*** |
| | | /** |
| | | * card |
| | | */ |
| | | public static String queryBankCard = "api/bankCard/queryBankCard"; ///api/bankCard/queryBankCard 获取银行卡号列表 |
| | |
| | | public static String out = "api/zion/out"; //微信提现操作 |
| | | public static String hisory = "api/zion/order/hisory"; //历史记录 |
| | | public static String backreson = "api/zion/order/backreson"; //反馈详情 |
| | | public static String queryList = "api/withdrawal/queryList"; |
| | | public static String queryDetailById = "api/withdrawal/queryDetailById"; |
| | | |
| | | /** |
| | | * 咸宁新增 |
| | | */ |
| | | public static String getCode = "api/user/getCode"; //获取用户邀请二维码 |
| | | public static String inviteList = "api/user/inviteList"; //获取用户邀请记录 |
| | | public static String confirm = "api/order/confirm"; //司机手动确认收款 |
| | | public static String allert = "api/user/allert"; //首页弹窗 |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.adapter |
| | | |
| | | import android.view.View |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.BaseRvAdapter |
| | | import com.xianning.driver.base.BaseViewHolder |
| | | import com.xianning.driver.base.MyApplication |
| | | import com.xianning.driver.bean.InviteData |
| | | import com.xianning.driver.utils.glide.GlideUtil |
| | | import kotlinx.android.synthetic.main.item_invite.view.* |
| | | |
| | | class InviteRecordAdapter : BaseRvAdapter<InviteData>() { |
| | | override fun getLayoutResId(viewType: Int) = R.layout.item_invite |
| | | |
| | | override fun onBindItem(holder: BaseViewHolder, view: View, item: InviteData) { |
| | | holder.itemView?.apply { |
| | | GlideUtil.loady2(MyApplication.getInstance(),item.avatar,iv_head) |
| | | tv_phone.text = item.phone |
| | | tv_time.text = item.registerTime.substring(0,16) |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.xianning.driver.ui.main.OrderOverActivity |
| | | import com.xianning.driver.ui.main.TripActivity |
| | | import com.xianning.driver.ui.main.major.MajorSureMoneyActivity |
| | | import com.xianning.driver.ui.main.major.MajorSureMoneyOfflineActivity |
| | | import com.xianning.driver.ui.mine.ComplainOrderActivity |
| | | import kotlinx.android.synthetic.main.item_main_list.view.* |
| | | import org.jetbrains.anko.startActivity |
| | |
| | | context.startActivity<TripActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | } |
| | | 6 ->{ |
| | | if (item.type.toString() == "1"){ |
| | | // if (item.type.toString() == "1"){ |
| | | // context.startActivity<MajorSureMoneyActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | // } |
| | | // if (item.type.toString() == "2"){ |
| | | // context.startActivity<FillOutActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | // } |
| | | if (item.payManner == 2){ |
| | | context.startActivity<MajorSureMoneyOfflineActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | }else{ |
| | | context.startActivity<MajorSureMoneyActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | } |
| | | if (item.type.toString() == "2"){ |
| | | context.startActivity<FillOutActivity>("orderId" to item.id.toString() , "orderType" to item.type.toString()) |
| | | } |
| | | } |
| | | 7,12->{ |
| | |
| | | class WalletRecordAdapter : BaseRvAdapter<WalletRecordData>() { |
| | | override fun getLayoutResId(viewType: Int) = R.layout.item_withdraw |
| | | |
| | | var showState = false |
| | | |
| | | override fun onBindItem(holder: BaseViewHolder, view: View, item: WalletRecordData) { |
| | | holder.itemView.tv_time.text = item.createTime |
| | | holder.itemView.tv_money.text = "%s¥%.2f".format(if (item.addordown == 1) "+" else "-",item.money) |
| | | holder.itemView.tv_state.text = if (!showState&&item.state!="充值"&&item.state!="扣除") "提现" else item.state |
| | | holder.itemView.tv_money.text = "%s¥%.2f".format(if (item.addordown == 1) "+" else "-",item.money) |
| | | holder.itemView.tv_state.text = item.state |
| | | } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.adapter |
| | | |
| | | import android.view.View |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.BaseRvAdapter |
| | | import com.xianning.driver.base.BaseViewHolder |
| | | import com.xianning.driver.bean.Row |
| | | import com.xianning.driver.bean.WalletRecordData |
| | | import com.xianning.driver.ui.mine.WithdrawDetailActivity |
| | | import kotlinx.android.synthetic.main.item_withdraw.view.* |
| | | import org.jetbrains.anko.startActivity |
| | | |
| | | class WithdrawRecordAdapter : BaseRvAdapter<Row>() { |
| | | override fun getLayoutResId(viewType: Int) = R.layout.item_withdraw |
| | | |
| | | override fun onBindItem(holder: BaseViewHolder, view: View, item: Row) { |
| | | holder.itemView.tv_time.text = item.withdrawalTime |
| | | holder.itemView.tv_money.text = "¥%.2f".format(item.withdrawalMoney) |
| | | holder.itemView.tv_state.text = when (item.status) { |
| | | 2 -> "提现成功" |
| | | 3 -> "提现失败" |
| | | else -> "待提现" |
| | | } |
| | | holder.itemView.tv_money.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.mipmap.more_black, 0) |
| | | holder.itemView.setOnClickListener { |
| | | context.startActivity<WithdrawDetailActivity>("id" to item.id) |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | import com.baidu.location.BDAbstractLocationListener |
| | | import com.baidu.location.BDLocation |
| | | import com.baidu.location.LocationClient |
| | | import com.example.emanagercar.ui.base.BaseWebActivity |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.BaseEvent |
| | | import com.xianning.driver.base.Const |
| | | import com.xianning.driver.base.MyApplication |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.base.gaode.AMapKit |
| | | import com.xianning.driver.bean.HomeDataBean |
| | | import com.xianning.driver.bean.OrderSimpleData |
| | | import com.xianning.driver.bean.SelectServerModeBean |
| | | import com.xianning.driver.bean.VersionBean |
| | | import com.xianning.driver.ui.DialogUtil |
| | | import com.xianning.driver.ui.main.event.MineEventActivity |
| | | import com.xianning.driver.ui.mine.MineActivity |
| | |
| | | import com.lzf.easyfloat.enums.SidePattern |
| | | import com.lzf.easyfloat.interfaces.OnInvokeView |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import com.tencent.bugly.crashreport.CrashReport |
| | | //import com.tencent.bugly.crashreport.CrashReport |
| | | import com.umeng.commonsdk.UMConfigure |
| | | import com.umeng.socialize.PlatformConfig |
| | | import com.xianning.driver.bean.* |
| | | import com.xianning.driver.netUtls.* |
| | | import com.xianning.driver.ui.mine.RechargeActivity |
| | | import com.xianning.driver.utils.HtmlUtils |
| | | import kotlinx.android.synthetic.main.activity_main.* |
| | | import kotlinx.android.synthetic.main.app_title.* |
| | | import kotlinx.android.synthetic.main.dialog_notice.view.* |
| | | import kotlinx.android.synthetic.main.dialog_sure_and_del.view.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.dip |
| | |
| | | |
| | | private var listener:BDAbstractLocationListener? = null |
| | | private var locationClient:LocationClient? = null |
| | | private var isFirst = true |
| | | |
| | | override fun initView() { |
| | | LocationClient.setAgreePrivacy(true) |
| | |
| | | callVersion() |
| | | checkGps() |
| | | MyApplication.addOrderView(qeeOrderView) |
| | | callNotice() |
| | | } |
| | | |
| | | /** |
| | | * 获取公告弹窗 |
| | | */ |
| | | private fun callNotice() { |
| | | var map = getMapByAny() |
| | | callNet(Api.allert, map) { |
| | | var data = gson.fromJson<NoticeBean>(it, NoticeBean::class.java) |
| | | if (!data.data.isNullOrEmpty()){ |
| | | val first = data.data.first() |
| | | if (first.id != CacheKey.getKeyStr("notice")){ |
| | | CacheKey.putKeyStr("notice",first.id) |
| | | val dialog = DialogUtil.getDialog(this, R.layout.dialog_notice,R.style.dialogFullScreen_not_float) |
| | | val view = DialogUtil.getView(dialog) |
| | | view.iv_notice.setImageURI(first.imgUrl) |
| | | view.tv_notice.text = HtmlUtils.getTextFromHtml(first.content) |
| | | view.iv_close.setOnClickListener { |
| | | dialog.dismiss() |
| | | } |
| | | view.cl.setOnClickListener { |
| | | var map = getMapByAny() |
| | | map["type"] = 5 |
| | | callNet(Api.queryByType, map) { |
| | | var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java) |
| | | BaseWebActivity.to(mContext, data.data.content, "关于我们", "1") |
| | | } |
| | | dialog.dismiss() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | // map["id"] = CacheKey.getUserId() |
| | | callNet(Api.queryNewData, map) { |
| | | var data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) { |
| | | if (data.data.version != "" && data.data.version > Utils.getAppVersion(this)) { |
| | | if (data.data.mandatory == 2) { |
| | | DialogUtil.getDelAndSureDialog(this, "有新版本是否更新?", {}, { |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe{ |
| | | if (it){ |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | }else |
| | | toast("缺少文件权限") |
| | | } |
| | | }) |
| | | } else if (data.data.mandatory == 1) { |
| | | DialogUtil.getDelAndSureDialog(this, "版本已过时,是否强制升级?", { |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP)) |
| | | }, { |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe{ |
| | | if (it){ |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | }else |
| | | toast("缺少文件权限") |
| | | } |
| | | ToastUtils.showShortToast(this, "后台开始下载,请等待") |
| | | }) |
| | | }else{ |
| | |
| | | |
| | | override fun onResume() { |
| | | super.onResume() |
| | | mainFragment?.refresh() |
| | | if (!isFirst){ |
| | | mainFragment?.refresh() |
| | | } |
| | | isFirst = false |
| | | } |
| | | |
| | | fun beOnDuty(b:Boolean){ |
| | |
| | | import kotlinx.android.synthetic.main.include_order_top.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | |
| | | class OrderOverActivity : MyBaseActivity() { |
| | | |
| | |
| | | MyApplication.currentOrderId = "" |
| | | ll_pay_result.gone() |
| | | tv_show_pay_over.gone() |
| | | tv_login.gone() |
| | | } |
| | | |
| | | override fun initView() { |
| | |
| | | } |
| | | |
| | | private fun showUi(orderBean: OrderBean?) { |
| | | tv_login.gone() |
| | | orderBean?.let { |
| | | tv_name.text = it.data.nickName |
| | | tv_car_num.text = it.data.historyNum.toString() + "次乘车" |
| | |
| | | } |
| | | 6, 7 -> { |
| | | if (it.data.payManner == 2) { |
| | | tv_show_pay_over.visible() |
| | | // tv_show_pay_over.visible() |
| | | setTitleText("已完成") |
| | | ll_pay_result.gone() |
| | | } else { |
| | | // ll_pay_result.gone() |
| | | showPayResultText(it, it.data.orderState) |
| | | addSocketLisener() |
| | | } else if (it.data.payManner == 3){ |
| | | setTitleText("已完成") |
| | | tv_show_pay_over.visible() |
| | | }else { |
| | | addSocketLisener() |
| | | showPayResultText(it, it.data.orderState) |
| | | } |
| | |
| | | if (it.data.payManner == 2) { |
| | | tv_show_pay_over.visible() |
| | | setTitleText("已完成") |
| | | ll_pay_result.gone() |
| | | // ll_pay_result.gone() |
| | | showPayResultText(it, it.data.orderState) |
| | | |
| | | } else if (it.data.payManner == 3){ |
| | | setTitleText("已完成") |
| | | tv_show_pay_over.visible() |
| | | } else { |
| | | showPayResultText(it, it.data.orderState) |
| | | } |
| | |
| | | if (statue in 6..7) { |
| | | tv_pay_result_title.text = "待乘客支付" |
| | | setTitleText("待支付") |
| | | // if (it.data.payManner == 2) |
| | | // tv_login.visible() |
| | | } else { |
| | | tv_pay_result_title.text = "乘客已支付" |
| | | setTitleText("已完成") |
| | | ll_pay_result.visible() |
| | | } |
| | | tv_pay_result_money.text = "¥" + it.data.orderMoney.toString() |
| | | when (orderType) { |
| | | "2" -> { |
| | | tv_pay_result_small_money.text = "其中含红包费用:¥" + it.data.tipMoney.toString() |
| | | when (it.data.payManner) { |
| | | 2 -> { |
| | | tv_pay_result_small_money.text = "" |
| | | } |
| | | "1" -> { |
| | | else -> { |
| | | tv_pay_result_small_money.text = "查看收费明细" |
| | | tv_pay_result_small_money.clickDelay { |
| | | startActivity<MajorMoneyDetailActivity>( |
| | |
| | | } |
| | | |
| | | override fun setOnclick() { |
| | | |
| | | tv_login.setOnClickListener { |
| | | DialogUtil.getDelAndSureDialog(this, "是否确认收款?", {}, { |
| | | val mapByAny = getMapByAny() |
| | | mapByAny["orderId"] = orderId |
| | | mapByAny["orderType"] = orderType |
| | | callNet(Api.confirm,mapByAny){ |
| | | toast("操作成功") |
| | | initView() |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.xianning.driver.base.gaode.AMapKit.moveCamera3 |
| | | import com.xianning.driver.base.gaode.BaiduUtils |
| | | import com.xianning.driver.base.gaode.gpsnav.BaiduNaviActivity |
| | | import com.xianning.driver.bean.MajorMoneyBean |
| | | import com.xianning.driver.ui.main.major.MajorSureMoneyOfflineActivity |
| | | import com.ypx.imagepicker.utils.PBitmapUtils |
| | | import io.reactivex.Observable |
| | | import io.reactivex.android.schedulers.AndroidSchedulers |
| | |
| | | } |
| | | } |
| | | 5, 6 -> { |
| | | it.data.orderState = 6 |
| | | when(orderType){ |
| | | "2" -> { |
| | | showMoneyTypeDialog() |
| | | } |
| | | "1" -> { |
| | | callStatue(6,{ |
| | | startActivity<MajorSureMoneyActivity>( |
| | | "orderId" to orderId, |
| | | "orderType" to orderType |
| | | ) |
| | | finish() |
| | | }) { |
| | | |
| | | } |
| | | } |
| | | } |
| | | if (it.data.payManner == 3){ |
| | | showMoneyTypeDialog() |
| | | }else |
| | | callorderMoney() |
| | | } |
| | | } |
| | | } |
| | |
| | | iv_phone.clickDelay { |
| | | orderBean.let { |
| | | Utils.callPhone(this, it.data.phone) |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 陈昆:结束订单前(state==5)需要计算费用 |
| | | */ |
| | | private fun callorderMoney() { |
| | | var map = getMapByAny() |
| | | map["orderId"] = orderId |
| | | map["orderType"] = orderType |
| | | callNet(false, Api.queryMoneyInfo, map) { |
| | | orderBean.data.orderState = 6 |
| | | callStatue(6,{ |
| | | if (orderBean.data.payManner == 2){ |
| | | startActivity<MajorSureMoneyOfflineActivity>( |
| | | "orderId" to orderId, |
| | | "orderType" to orderType |
| | | ) |
| | | }else |
| | | startActivity<MajorSureMoneyActivity>( |
| | | "orderId" to orderId, |
| | | "orderType" to orderType |
| | | ) |
| | | finish() |
| | | }) { |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | val map = getMapByAny() |
| | | map["orderId"] = orderId |
| | | map["orderType"] = orderType |
| | | map["type"] = 2 |
| | | map["type"] = 3 |
| | | callStatue(6,{ |
| | | callNet(Api.confirmFees, map) { |
| | | finish() |
| | |
| | | startMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "") as Marker |
| | | } |
| | | startMarker!!.isVisible = false |
| | | if (endMarker == null) { |
| | | if (endMarker == null&&it.data.endLat!=0.0) { |
| | | val view = createView(R.layout.item_map_market, this) |
| | | view.iv_img.setImageResource(R.mipmap.end_point) |
| | | endMarker = addMarker(aMap, it.data.endLat, it.data.endLon, view, "") as Marker |
| | |
| | | tv_long_distance_money.text = it.data.longDistanceMoney.toString()+"元" |
| | | tv_long_go_money.text = it.data.roadTollMoney.toString()+"元" |
| | | et_stop_car_money.text = it.data.parkMoney.toString()+"元" |
| | | et_coupon_money.text = "-"+it.data.couponMoney.toString()+"元" |
| | | et_platform_money.text = "-"+it.data.platformFee.toString()+"元" |
| | | tv_all_money.text = "¥"+it.data.orderMoney.toString()+"" |
| | | rl_start_num.visibility = if (it.data.startMoney == 0.0) View.GONE else View.VISIBLE |
| | | rl_wait_name.visibility = if (it.data.wait == 0.0) View.GONE else View.VISIBLE |
| | |
| | | rl_long_distance_money.visibility = if (it.data.longDistanceMoney == 0.0) View.GONE else View.VISIBLE |
| | | rl_long_go_money.visibility = if (it.data.roadTollMoney == 0.0) View.GONE else View.VISIBLE |
| | | rl_stop_car_money.visibility = if (it.data.parkMoney == 0.0) View.GONE else View.VISIBLE |
| | | |
| | | |
| | | rl_platform_money.visibility = if (it.data.platformFee == 0.0) View.GONE else View.VISIBLE |
| | | rl_coupon_money.visibility = if (it.data.couponMoney == 0.0) View.GONE else View.VISIBLE |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | package com.xianning.driver.ui.main.major |
| | | |
| | | import cn.sinata.xldutils.utils.clickDelay |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.BaseEvent |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.callNet |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.ui.main.OrderOverActivity |
| | | import kotlinx.android.synthetic.main.activity_sure_money_off.* |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | import java.lang.Exception |
| | | |
| | | class MajorSureMoneyOfflineActivity :MyBaseActivity(){ |
| | | |
| | | val orderType by lazy { |
| | | intent.getStringExtra("orderType") |
| | | } |
| | | |
| | | val orderId by lazy { |
| | | intent.getStringExtra("orderId") |
| | | } |
| | | |
| | | override fun setContentView() { |
| | | setContentView(R.layout.activity_sure_money_off) |
| | | } |
| | | |
| | | override fun initView() { |
| | | setTitleText("确认费用") |
| | | } |
| | | |
| | | |
| | | override fun setOnclick() { |
| | | tv_sure.clickDelay { |
| | | val etMoneyS = et_money.text.toString() |
| | | if (etMoneyS.isNullOrEmpty()){ |
| | | toast("请输入行程费用") |
| | | return@clickDelay |
| | | } |
| | | var money = 0.0 |
| | | try { |
| | | money = etMoneyS.toDouble() |
| | | }catch (e:Exception){ |
| | | toast("请输入正确的行程费用") |
| | | return@clickDelay |
| | | } |
| | | if (money == 0.0){ |
| | | toast("请输入正确的行程费用") |
| | | return@clickDelay |
| | | } |
| | | sureMoneyCall(money) |
| | | } |
| | | } |
| | | |
| | | private fun sureMoneyCall(money:Double) { |
| | | var map = getMapByAny() |
| | | map["orderId"] = orderId |
| | | map["orderType"] = orderType |
| | | map["type"] = 2 |
| | | map["travelFee"] = money |
| | | callNet(false, Api.confirmFees, map) { |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.BACK_CAR_OVER)) |
| | | finish() |
| | | startActivity<OrderOverActivity>( |
| | | "orderId" to orderId, |
| | | "orderType" to orderType, |
| | | "isTrip" to true |
| | | ) |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.mine |
| | | |
| | | import android.Manifest |
| | | import android.graphics.Bitmap |
| | | import android.os.Environment |
| | | import android.provider.MediaStore |
| | | import androidx.core.view.drawToBitmap |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.MyApplication |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.bean.InviteInfo |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.callNet |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.utils.Cache.CacheKey |
| | | import com.xianning.driver.utils.glide.GlideUtil |
| | | import kotlinx.android.synthetic.main.activity_invite.* |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.toast |
| | | import java.io.File |
| | | import java.io.FileOutputStream |
| | | |
| | | class InviteActivity : MyBaseActivity() { |
| | | override fun setContentView() { |
| | | setContentView(R.layout.activity_invite) |
| | | } |
| | | |
| | | override fun initView() { |
| | | setTitleText("邀请好友") |
| | | val userInfo = CacheKey.getUserInfo() |
| | | GlideUtil.loady(MyApplication.getInstance(),userInfo.avatar,iv_head) |
| | | tv_name.text = userInfo.name |
| | | callNet(Api.getCode, getMapByAny()){ |
| | | val fromJson = gson.fromJson(it, InviteInfo::class.java) |
| | | tv_count.text = SpanBuilder.content("您已成功邀请 ${fromJson.data.inviteNumber} 位乘客") |
| | | .sizeSpan(7,7+fromJson.data.inviteNumber.length,18) |
| | | .colorSpan(this,7,7+fromJson.data.inviteNumber.length,R.color.end_red).build() |
| | | GlideUtil.load(MyApplication.getInstance(),fromJson.data.code,iv_code,0) |
| | | } |
| | | } |
| | | |
| | | override fun setOnclick() { |
| | | tv_download.setOnClickListener { |
| | | RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe { |
| | | if (it) |
| | | try { |
| | | val copyPath = |
| | | getExternalFilesDir(Environment.DIRECTORY_DCIM)!!.absolutePath + "/" + System.currentTimeMillis() + ".png" |
| | | val file = File(copyPath) |
| | | if (!file.exists()) { |
| | | file.createNewFile() |
| | | } |
| | | val fors = FileOutputStream(file) |
| | | iv_code.drawToBitmap()?.compress(Bitmap.CompressFormat.PNG, 0, fors) |
| | | fors.flush() |
| | | fors.close() |
| | | MediaStore.Images.Media.insertImage(this.contentResolver, file.absolutePath, copyPath, null); |
| | | toast("保存成功") |
| | | } catch (e: Exception) { |
| | | toast("保存失败") |
| | | } |
| | | else |
| | | toast("缺少文件存储权限") |
| | | } |
| | | } |
| | | |
| | | tv_action.setOnClickListener { |
| | | startActivity<InviteRecordActivity>() |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.mine |
| | | |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.utils.TimeUtils |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.utils.view.DateFilterDialog |
| | | import kotlinx.android.synthetic.main.activity_invite_record.* |
| | | import org.jetbrains.anko.toast |
| | | |
| | | class InviteRecordActivity:MyBaseActivity() { |
| | | override fun setContentView() { |
| | | setContentView(R.layout.activity_invite_record) |
| | | } |
| | | |
| | | val listFragment by lazy { |
| | | InviteRecordFragment() |
| | | } |
| | | |
| | | |
| | | override fun initView() { |
| | | setTitleText("邀请记录") |
| | | addFragment(listFragment,R.id.rl_container) |
| | | } |
| | | |
| | | override fun setOnclick() { |
| | | tv_time.setOnClickListener { |
| | | val dateFilterDialog = DateFilterDialog() |
| | | // dateFilterDialog.arguments = bundleOf("start" to tv_start.text.toString(),"end" to tv_end.text.toString()) |
| | | dateFilterDialog.show(supportFragmentManager,"date") |
| | | dateFilterDialog.callback = object :DateFilterDialog.StringCallback{ |
| | | override fun onResult(start: String?, end: String?) { |
| | | if (start.isNullOrEmpty()){ |
| | | toast("请选择开始时间") |
| | | }else if (end.isNullOrEmpty()){ |
| | | toast("请选择结束时间") |
| | | }else if (TimeUtils.parseDateMillisecond(start) > TimeUtils.parseDateMillisecond(end)){ |
| | | toast("开始时间不能大于结束时间") |
| | | }else{ |
| | | tv_start.text = start |
| | | tv_end.text = end |
| | | dateFilterDialog.dismissAllowingStateLoss() |
| | | listFragment.startTime = start.replace("/","-") |
| | | listFragment.endTime = end.replace("/","-") |
| | | listFragment.refresh() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.mine |
| | | |
| | | import android.view.View |
| | | import com.example.emanagercar.ui.base.BaseRecyclerFragment |
| | | import com.xianning.driver.bean.InviteData |
| | | import com.xianning.driver.bean.InviteRecord |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.ui.adapter.InviteRecordAdapter |
| | | import java.util.HashMap |
| | | |
| | | class InviteRecordFragment:BaseRecyclerFragment<InviteData>(InviteRecordAdapter()) { |
| | | |
| | | var startTime:String? = null //开始时间 yyyy-MM-dd |
| | | var endTime:String? = null //结束时间 yyyy-MM-dd |
| | | |
| | | override fun pathUrl(): String? { |
| | | return Api.inviteList |
| | | } |
| | | |
| | | override fun mapObject(): HashMap<String?, Any?>? { |
| | | var map = getMapByAny() |
| | | if (startTime!=null&&endTime!=null){ |
| | | map["endTime"] = endTime |
| | | map["startTime"] = startTime |
| | | } |
| | | return map |
| | | } |
| | | |
| | | override fun mapString(): HashMap<String?, String?>? { |
| | | return null |
| | | } |
| | | |
| | | override fun getDatas(t: String?): List<InviteData> { |
| | | var data = gson.fromJson<InviteRecord>(t,InviteRecord::class.java) |
| | | return data.data |
| | | } |
| | | |
| | | override fun onItemClick(view: View?, position: Int) { |
| | | } |
| | | |
| | | override fun initView() { |
| | | } |
| | | |
| | | } |
| | |
| | | rl_put_friend.setOnClickListener { |
| | | showShareDialog() |
| | | } |
| | | //邀请有礼 |
| | | rl_invite.setOnClickListener { |
| | | startActivity<InviteActivity>() |
| | | } |
| | | |
| | | //联系客服 |
| | | rl_call_server.setOnClickListener { |
| | |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.bean.RechargeMoneyBean |
| | | import com.xianning.driver.bean.WxpayBean |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.callNet |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.ui.DialogUtil |
| | | import com.xianning.driver.ui.adapter.MoneyAdapter |
| | | import com.xianning.driver.wxapi.WXPayEntryActivity |
| | | import kotlinx.android.synthetic.main.activity_recharge.* |
| | | import kotlinx.android.synthetic.main.dialog_wx_pay.view.* |
| | | import java.lang.Exception |
| | |
| | | val mapByAny = getMapByAny() |
| | | mapByAny["money"] = money |
| | | callNet(Api.recharge,mapByAny){ |
| | | |
| | | val bean = gson.fromJson(it, WxpayBean::class.java).data |
| | | WXPayEntryActivity.to(this,1,bean) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | tv_withdraw.clickDelay { |
| | | startActivity<WithdrawActivity>("balance" to balance,"appid" to appid) |
| | | // startActivity<WithdrawActivity>("balance" to balance,"appid" to appid) |
| | | startActivity<WithdrawOfflineActivity>("balance" to balance,"appid" to appid) |
| | | } |
| | | |
| | | tv_money_detail.clickDelay { |
New file |
| | |
| | | package com.xianning.driver.ui.mine |
| | | |
| | | import android.graphics.Color |
| | | import cn.sinata.xldutils.utils.gone |
| | | import cn.sinata.xldutils.utils.visible |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.bean.WithdrawDetails |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.callNet |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import kotlinx.android.synthetic.main.activity_withdraw_details.* |
| | | |
| | | class WithdrawDetailActivity:MyBaseActivity() { |
| | | override fun setContentView() { |
| | | setContentView(R.layout.activity_withdraw_details) |
| | | } |
| | | |
| | | private val id by lazy { intent.getStringExtra("id") } |
| | | |
| | | override fun initView() { |
| | | setTitleText("提现记录") |
| | | getData() |
| | | } |
| | | |
| | | override fun setOnclick() { |
| | | } |
| | | |
| | | private fun getData(){ |
| | | var map = getMapByAny() |
| | | map["id"] = id |
| | | callNet(false, Api.queryDetailById, map) { |
| | | val data = gson.fromJson(it, WithdrawDetails::class.java).data |
| | | tv_time.text = data.withdrawalTime |
| | | tv_money.text = "¥%.2f".format(data.withdrawalMoney) |
| | | tv_way.text = if (data.withdrawalType == 1){ |
| | | tv_bank.gone() |
| | | tv_1.gone() |
| | | "支付宝" |
| | | } else{ |
| | | tv_bank.text = data.openBank |
| | | "银行卡" |
| | | } |
| | | tv_name.text = data.receivePaymentName |
| | | tv_account.text = data.receivePaymentAccount |
| | | tv_state.text = when(data.status){ //提现状态 1=待处理 2=成功 3=失败 |
| | | 2->{ |
| | | tv_state.setTextColor(Color.parseColor("#3495F8")) |
| | | iv_img.visible() |
| | | iv_img.setImageURI(data.receiptVoucher) |
| | | "提现成功" |
| | | } |
| | | 3->{ |
| | | tv_remark.text = data.remark |
| | | "提现失败" |
| | | } |
| | | else->{ |
| | | tv_remark.gone() |
| | | tv_2.gone() |
| | | "待提现" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.xianning.driver.ui.mine |
| | | |
| | | import cn.sinata.xldutils.utils.clickDelay |
| | | import cn.sinata.xldutils.utils.gone |
| | | import cn.sinata.xldutils.utils.visible |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.MyBaseActivity |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.callNet |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.ui.DialogUtil |
| | | import kotlinx.android.synthetic.main.activity_withdraw_offline.* |
| | | import java.lang.Exception |
| | | |
| | | class WithdrawOfflineActivity : MyBaseActivity(){ |
| | | override fun setContentView() { |
| | | setContentView(R.layout.activity_withdraw_offline) |
| | | } |
| | | |
| | | private var balance = 0.0 |
| | | private var payType = 1 //1支付宝 2银行卡 |
| | | |
| | | override fun initView() { |
| | | setTitleText("提现") |
| | | balance = intent.getDoubleExtra("balance",0.0) |
| | | et_money.hint = "填写提现金额(最多可提¥%.2f)".format(balance) |
| | | |
| | | //默认银行卡 |
| | | payType = 2 |
| | | gp_ali.gone() |
| | | gp_bank.visible() |
| | | } |
| | | |
| | | override fun setOnclick() { |
| | | tv_withdraw.clickDelay { |
| | | var money = 0.0 |
| | | val text = et_money.text.toString() |
| | | if (text.isNullOrEmpty()) |
| | | showToast("请输入提现金额") |
| | | else{ |
| | | try { |
| | | money = text.toDouble() |
| | | if (money == 0.0){ |
| | | showToast("提现金额不能为0") |
| | | return@clickDelay |
| | | }else if (money > balance){ |
| | | showToast("最多可提现${balance}元") |
| | | return@clickDelay |
| | | }else{ |
| | | |
| | | } |
| | | }catch (e:Exception){ |
| | | showToast("提现金额错误") |
| | | return@clickDelay |
| | | } |
| | | } |
| | | val mapByAny = getMapByAny() |
| | | val name = et_name.text.toString() |
| | | if (payType == 1){ |
| | | if (name.isNullOrEmpty()){ |
| | | showToast("请输入收款人姓名") |
| | | return@clickDelay |
| | | } |
| | | val ali = et_ali.text.toString() |
| | | if (ali.isNullOrEmpty()){ |
| | | showToast("请输入支付宝账号") |
| | | return@clickDelay |
| | | }else |
| | | mapByAny["receivePaymentAccount"] = ali |
| | | }else{ |
| | | val bank = et_bank.text.toString() |
| | | if (bank.isNullOrEmpty()){ |
| | | showToast("请输入开户行") |
| | | return@clickDelay |
| | | }else |
| | | mapByAny["openBank"] = bank |
| | | val bankNo = et_bank_no.text.toString() |
| | | if (bankNo.isNullOrEmpty()){ |
| | | showToast("请输入银行卡号") |
| | | return@clickDelay |
| | | }else |
| | | mapByAny["receivePaymentAccount"] = bankNo |
| | | if (name.isNullOrEmpty()){ |
| | | showToast("请输入收款人姓名") |
| | | return@clickDelay |
| | | } |
| | | } |
| | | mapByAny["receivePaymentName"] = name |
| | | mapByAny["withdrawalType"] = payType |
| | | mapByAny["withdrawalMoney"] = money |
| | | callNet(Api.addWithdrawal, mapByAny){ |
| | | DialogUtil.getOnlySureDialog(this,"提交成功!我们将尽快为您处理!"){ |
| | | finish() |
| | | } |
| | | } |
| | | } |
| | | |
| | | // rg_type.setOnCheckedChangeListener { group, checkedId -> |
| | | // if (checkedId == R.id.rb_ali){ |
| | | // payType = 1 |
| | | // gp_ali.visible() |
| | | // gp_bank.gone() |
| | | // }else{ |
| | | // payType = 2 |
| | | // gp_ali.gone() |
| | | // gp_bank.visible() |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | |
| | | |
| | | import android.view.View |
| | | import com.example.emanagercar.ui.base.BaseRecyclerFragment |
| | | import com.xianning.driver.bean.WalletRecord |
| | | import com.xianning.driver.bean.WalletRecordData |
| | | import com.xianning.driver.bean.Row |
| | | import com.xianning.driver.bean.WithdrawBean |
| | | import com.xianning.driver.netUtls.Api |
| | | import com.xianning.driver.netUtls.getMapByAny |
| | | import com.xianning.driver.ui.adapter.WalletRecordAdapter |
| | | import com.xianning.driver.ui.adapter.WithdrawRecordAdapter |
| | | import java.util.HashMap |
| | | |
| | | class WithdrawRecordFragment:BaseRecyclerFragment<WalletRecordData>(WalletRecordAdapter()) { |
| | | |
| | | var state = 3 //充值1扣除2体现3 |
| | | class WithdrawRecordFragment:BaseRecyclerFragment<Row>(WithdrawRecordAdapter()) { |
| | | |
| | | override fun pathUrl(): String? { |
| | | return Api.hisory |
| | | return Api.queryList |
| | | } |
| | | |
| | | override fun mapObject(): HashMap<String?, Any?>? { |
| | | var map = getMapByAny() |
| | | map["state"] = state |
| | | return map |
| | | } |
| | | |
| | |
| | | return null |
| | | } |
| | | |
| | | override fun getDatas(t: String?): List<WalletRecordData> { |
| | | var data = gson.fromJson<WalletRecord>(t,WalletRecord::class.java) |
| | | return data.data |
| | | override fun getDatas(t: String?): List<Row> { |
| | | var data = gson.fromJson<WithdrawBean>(t, WithdrawBean::class.java) |
| | | return data.data.rows |
| | | } |
| | | |
| | | override fun onItemClick(view: View?, position: Int) { |
| | | } |
| | | |
| | | override fun initView() { |
| | | (adapter as WalletRecordAdapter).showState = true |
| | | } |
| | | |
| | | } |
| | |
| | | package com.xianning.driver.ui.mine.setting |
| | | |
| | | import android.Manifest |
| | | import cn.sinata.xldutils.utils.Utils |
| | | import com.example.emanagercar.ui.base.BaseWebActivity |
| | | import com.xianning.driver.R |
| | |
| | | import com.xianning.driver.utils.download.DownloadUtil |
| | | import com.xianning.driver.utils.glide.GlideCacheUtil |
| | | import com.lljjcoder.style.citylist.Toast.ToastUtils |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import com.tencent.mm.opensdk.modelbase.BaseReq |
| | | import com.tencent.mm.opensdk.modelbase.BaseResp |
| | | import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler |
| | |
| | | if (data.data.version != "" && data.data.version != Utils.getAppVersion(this)) { |
| | | if (data.data.mandatory == 2) { |
| | | DialogUtil.getDelAndSureDialog(this, "有新版本是否更新?", {}, { |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe{ |
| | | if (it){ |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | }else |
| | | toast("缺少文件权限") |
| | | } |
| | | }) |
| | | } else if (data.data.mandatory == 1) { |
| | | DialogUtil.getDelAndSureDialog(this, "版本已过时,是否强制升级?", { |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP)) |
| | | }, { |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe{ |
| | | if (it){ |
| | | DownloadUtil(this).downloadAPK(data.data.url, "咸宁95128约车司机") |
| | | }else |
| | | toast("缺少文件权限") |
| | | } |
| | | ToastUtils.showShortToast(this, "后台开始下载,请等待") |
| | | }) |
| | | }else{ |
| | |
| | | .placeholder(R.mipmap.default_head) |
| | | .apply(RequestOptions.circleCropTransform()) |
| | | .diskCacheStrategy(DiskCacheStrategy.RESOURCE); |
| | | /** |
| | | * 默认应用图标头像 |
| | | */ |
| | | public static RequestOptions defaultCircleIcon = new RequestOptions() |
| | | .circleCrop() |
| | | .error(R.mipmap.ic_launcher) |
| | | .placeholder(R.mipmap.ic_launcher) |
| | | .apply(RequestOptions.circleCropTransform()) |
| | | .diskCacheStrategy(DiskCacheStrategy.RESOURCE); |
| | | |
| | | /** |
| | | * |
| | |
| | | .into(imageView); |
| | | } |
| | | |
| | | public static void loady2(Context context, String url, ImageView imageView) { |
| | | Glide.with(context) |
| | | .load(url) |
| | | .apply(defaultCircleIcon) |
| | | .into(imageView); |
| | | } |
| | | |
| | | |
| | | public static void loadBitMap(Context context, String url, ImageView imageView) { |
| | | loadBitMap(context, url, imageView, 4,false); |
New file |
| | |
| | | package com.xianning.driver.utils.view |
| | | |
| | | import android.graphics.Color |
| | | import android.view.Gravity |
| | | import cn.sinata.xldutils.utils.TimeUtils |
| | | import com.xianning.driver.R |
| | | import com.xianning.driver.base.BaseDialogFragment |
| | | import kotlinx.android.synthetic.main.dialog_filter_date.* |
| | | import java.util.* |
| | | |
| | | class DateFilterDialog: BaseDialogFragment() { |
| | | override fun setContentView() = R.layout.dialog_filter_date |
| | | |
| | | override fun setGravity() = Gravity.BOTTOM |
| | | |
| | | |
| | | var callback:StringCallback? = null |
| | | private var startDate:String? = null |
| | | private var endDate:String? = null |
| | | var isStart = true |
| | | |
| | | override fun initView() { |
| | | startDate = arguments?.getString("start") |
| | | endDate = arguments?.getString("end") |
| | | if (startDate.isNullOrEmpty()) |
| | | startDate = TimeUtils.getCurrentDate() |
| | | if (endDate.isNullOrEmpty()) |
| | | endDate = TimeUtils.getCurrentDate() |
| | | start.text = startDate |
| | | end.text = endDate |
| | | start.setOnClickListener { |
| | | isStart = true |
| | | checkBtn() |
| | | } |
| | | end.setOnClickListener { |
| | | isStart = false |
| | | checkBtn() |
| | | } |
| | | initYear() |
| | | initMonth() |
| | | initDay(true) |
| | | wv_1.setOnWheelViewListener { selectedIndex, item -> |
| | | initDay(false) |
| | | } |
| | | wv_2.setOnWheelViewListener { selectedIndex, item -> |
| | | initDay(false) |
| | | } |
| | | wv_3.setOnWheelViewListener { selectedIndex, item -> |
| | | inputDate() |
| | | } |
| | | |
| | | tv_cancel.setOnClickListener { dismissAllowingStateLoss() } |
| | | tv_sure.setOnClickListener { |
| | | callback?.onResult(startDate,endDate) |
| | | } |
| | | } |
| | | |
| | | private fun inputDate(){ |
| | | val y = wv_1.seletedItem.substring(0, 4).toInt() |
| | | val m = wv_2.seletedItem.substring(0, wv_2.seletedItem.length-1) |
| | | val d = wv_3.seletedItem.substring(0, wv_3.seletedItem.length-1) |
| | | if (isStart){ |
| | | startDate = "%d/%02d/%02d".format(y,m.toInt(),d.toInt()) |
| | | start.text = startDate |
| | | } |
| | | else{ |
| | | endDate = "%d/%02d/%02d".format(y,m.toInt(),d.toInt()) |
| | | end.text = endDate |
| | | } |
| | | } |
| | | |
| | | private fun initDay(isFirst:Boolean) { |
| | | var selectIndex = 0 |
| | | if (!isFirst){ |
| | | selectIndex = wv_3.seletedIndex |
| | | } |
| | | val c = Calendar.getInstance() |
| | | val day = c.get(Calendar.DAY_OF_MONTH) |
| | | val year = wv_1.seletedItem.substring(0,4).toInt() |
| | | val month = wv_2.seletedItem.substring(0,wv_2.seletedItem.length-1).toInt() |
| | | c.set(Calendar.YEAR,year) |
| | | c.set(Calendar.MONTH,month-1) |
| | | val actualMaximum = c.getActualMaximum(Calendar.DAY_OF_MONTH) |
| | | val list = (1..actualMaximum).map { "${it}日" } |
| | | wv_3.setItems(list) |
| | | if (isFirst){ |
| | | wv_3.setSeletion(day-1) |
| | | }else{ |
| | | // if (selectIndex+1 > actualMaximum){ |
| | | // wv_3.setSeletion(list.lastIndex) |
| | | // }else{ |
| | | // wv_3.setSeletion(0) |
| | | // } |
| | | wv_3.setSeletion(0) |
| | | } |
| | | if (!isFirst) |
| | | inputDate() |
| | | } |
| | | |
| | | private fun initMonth() { |
| | | val list = (1..12).map { "${it}月" } |
| | | wv_2.setItems(list) |
| | | wv_2.setSeletion(list.lastIndex) |
| | | val c = Calendar.getInstance() |
| | | wv_2.setSeletion(c.get(Calendar.MONTH)) |
| | | } |
| | | |
| | | private fun initYear() { |
| | | val c = Calendar.getInstance() |
| | | val list = (2024..c.get(Calendar.YEAR)).map { "${it}年" } |
| | | wv_1.setItems(list) |
| | | wv_1.setSeletion(list.lastIndex) |
| | | } |
| | | |
| | | private fun checkBtn(){ |
| | | if (isStart){ |
| | | start.setTextColor(Color.parseColor("#1677FF")) |
| | | end.setTextColor(Color.parseColor("#333333")) |
| | | start.setBackgroundResource(R.drawable.bg_blue_line_4) |
| | | end.setBackgroundResource(R.drawable.bg_gray_line_4) |
| | | start.setCompoundDrawablesWithIntrinsicBounds(0,0,R.mipmap.ic_date_blue,0) |
| | | end.setCompoundDrawablesWithIntrinsicBounds(0,0,R.mipmap.ic_date,0) |
| | | }else{ |
| | | end.setTextColor(Color.parseColor("#1677FF")) |
| | | start.setTextColor(Color.parseColor("#333333")) |
| | | end.setBackgroundResource(R.drawable.bg_blue_line_4) |
| | | start.setBackgroundResource(R.drawable.bg_gray_line_4) |
| | | end.setCompoundDrawablesWithIntrinsicBounds(0,0,R.mipmap.ic_date_blue,0) |
| | | start.setCompoundDrawablesWithIntrinsicBounds(0,0,R.mipmap.ic_date,0) |
| | | } |
| | | } |
| | | |
| | | interface StringCallback{ |
| | | fun onResult(start:String?,end:String?) |
| | | } |
| | | } |
| | |
| | | request.timeStamp = orderInfo.getTimeStamp(); |
| | | request.sign = orderInfo.getSign(); |
| | | Boolean Pay = api.sendReq(request); |
| | | Toast.makeText(this, "发起支付", Toast.LENGTH_SHORT).show(); |
| | | // Toast.makeText(this, "发起支付", Toast.LENGTH_SHORT).show(); |
| | | finish(); |
| | | } |
| | | |
| | |
| | | if (baseResp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) { |
| | | WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) baseResp; |
| | | String extraData =launchMiniProResp.extMsg; //对应小程序组件 <button open-type="launchApp"> 中的 app-parameter 属性 |
| | | |
| | | |
| | | } |
| | | } |
| | | }; |
| | |
| | | // EventBus.getDefault().post(new BaseEvent(BaseEvent.PAY_FAIL,resp.errStr)); |
| | | } |
| | | EventBus.getDefault().post(new BaseEvent(BaseEvent.WEIXIN_BACK)); |
| | | // finish(); |
| | | finish(); |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <stroke android:width="1dp" android:color="@color/colorAccent"/> |
| | | <corners android:radius="4dp"/> |
| | | </shape> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <corners android:radius="4dp"/> |
| | | <stroke android:color="@color/textColorHint" android:width="1dp"/> |
| | | </shape> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <corners android:radius="4dp"/> |
| | | <solid android:color="@color/white"/> |
| | | <stroke android:color="#D9D9D9" android:width="1dp"/> |
| | | </shape> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| | | <corners android:radius="20dp"/> |
| | | <stroke android:color="@color/white" android:width="1dp"/> |
| | | </shape> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | android:background="#FEF8E8" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto"> |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content"> |
| | | <ImageView |
| | | android:id="@+id/tv_1" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:src="@mipmap/invite_t1" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:layout_marginTop="24dp"/> |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_1" |
| | | android:layout_marginTop="18dp" |
| | | app:layout_constraintDimensionRatio="390:694" |
| | | android:background="@mipmap/bg_invite" |
| | | app:layout_constraintBottom_toBottomOf="parent"> |
| | | <ImageView |
| | | android:id="@+id/tv_action" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | android:src="@mipmap/bg_btn" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:layout_marginBottom="28dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="邀请记录" |
| | | android:textColor="#FF3918" |
| | | android:textSize="18sp" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="@id/tv_action" |
| | | app:layout_constraintEnd_toEndOf="@id/tv_action" |
| | | app:layout_constraintTop_toTopOf="@id/tv_action" |
| | | app:layout_constraintBottom_toBottomOf="@id/tv_action" |
| | | android:layout_marginEnd="25dp" |
| | | android:layout_marginBottom="6dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_download" |
| | | android:text="下载邀请码" |
| | | android:textColor="@color/white" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="10dp" |
| | | android:paddingHorizontal="15dp" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintVertical_bias="0.71" |
| | | android:background="@drawable/bg_white_line_20"/> |
| | | <ImageView |
| | | android:id="@+id/iv_head" |
| | | android:layout_width="66dp" |
| | | android:layout_height="66dp" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:layout_marginTop="4dp" |
| | | android:src="@mipmap/default_head" /> |
| | | <TextView |
| | | android:id="@+id/tv_name" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toBottomOf="@id/iv_head" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" |
| | | android:textColor="@color/textColor" |
| | | android:layout_marginTop="2dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_name" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/tv_count" |
| | | android:textSize="14sp" |
| | | android:textColor="@color/textColor" |
| | | android:layout_marginTop="3dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_count" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:textSize="14sp" |
| | | android:text="加入咸宁95128出行平台" |
| | | android:textColor="@color/textColor"/> |
| | | <androidx.constraintlayout.widget.Guideline |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/guide_1" |
| | | android:orientation="vertical" |
| | | app:layout_constraintGuide_percent="0.27"/> |
| | | <androidx.constraintlayout.widget.Guideline |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/guide_2" |
| | | android:orientation="vertical" |
| | | app:layout_constraintGuide_percent="0.74"/> |
| | | <ImageView |
| | | android:layout_width="0dp" |
| | | android:layout_height="0dp" |
| | | android:id="@+id/iv_code" |
| | | app:layout_constraintStart_toEndOf="@id/guide_1" |
| | | app:layout_constraintEnd_toStartOf="@id/guide_2" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintDimensionRatio="1:1" |
| | | app:layout_constraintVertical_bias="0.452"/> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | |
| | | </ScrollView> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:background="#F3F4F5"> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="44dp" |
| | | android:id="@+id/tv_time" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:layout_margin="14dp" |
| | | android:background="@drawable/bg_white_grayline_4"/> |
| | | <ImageView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/iv_1" |
| | | android:src="@mipmap/ic_date" |
| | | app:layout_constraintEnd_toEndOf="@id/tv_time" |
| | | app:layout_constraintTop_toTopOf="@id/tv_time" |
| | | app:layout_constraintBottom_toBottomOf="@id/tv_time" |
| | | android:layout_marginEnd="14dp"/> |
| | | <ImageView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/iv_2" |
| | | android:src="@mipmap/ic_irrow_date" |
| | | app:layout_constraintStart_toStartOf="@id/tv_time" |
| | | app:layout_constraintEnd_toStartOf="@id/iv_1" |
| | | app:layout_constraintTop_toTopOf="@id/tv_time" |
| | | app:layout_constraintBottom_toBottomOf="@id/tv_time"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_start" |
| | | app:layout_constraintStart_toStartOf="@id/tv_time" |
| | | app:layout_constraintTop_toTopOf="@id/tv_time" |
| | | app:layout_constraintBottom_toBottomOf="@id/tv_time" |
| | | android:textSize="14sp" |
| | | android:hint="开始日期" |
| | | android:textColorHint="@color/textColorHint" |
| | | android:textColor="@color/textColor" |
| | | android:layout_marginStart="14dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_end" |
| | | app:layout_constraintStart_toEndOf="@id/iv_2" |
| | | app:layout_constraintTop_toTopOf="@id/tv_time" |
| | | app:layout_constraintBottom_toBottomOf="@id/tv_time" |
| | | android:textSize="14sp" |
| | | android:hint="结束日期" |
| | | android:textColorHint="@color/textColorHint" |
| | | android:textColor="@color/textColor" |
| | | android:layout_marginStart="14dp"/> |
| | | <RelativeLayout |
| | | android:layout_marginTop="9dp" |
| | | android:id="@+id/rl_container" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_time" |
| | | app:layout_constraintBottom_toBottomOf="parent"/> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl_coupon_money" |
| | | android:layout_marginTop="15dp" |
| | | android:layout_marginStart="12dp" |
| | | android:layout_marginEnd="12dp" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content"> |
| | | |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_centerVertical="true" |
| | | android:text="优惠券抵扣" |
| | | android:textColor="#ff000000" |
| | | android:textSize="12sp" |
| | | /> |
| | | |
| | | <TextView |
| | | android:id="@+id/et_coupon_money" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:layout_alignParentEnd="true" |
| | | android:layout_centerVertical="true" |
| | | android:background="@null" |
| | | android:gravity="end|center_vertical" |
| | | android:text="0.00元" |
| | | android:inputType="numberDecimal" |
| | | android:textColor="#ff333333" |
| | | android:textSize="12sp" /> |
| | | |
| | | </RelativeLayout> |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl_platform_money" |
| | | android:layout_marginTop="15dp" |
| | | android:layout_marginStart="12dp" |
| | | android:layout_marginEnd="12dp" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content"> |
| | | |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_centerVertical="true" |
| | | android:text="平台服务费" |
| | | android:textColor="#ff000000" |
| | | android:textSize="12sp" |
| | | /> |
| | | |
| | | <TextView |
| | | android:id="@+id/et_platform_money" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:layout_alignParentEnd="true" |
| | | android:layout_centerVertical="true" |
| | | android:background="@null" |
| | | android:gravity="end|center_vertical" |
| | | android:text="0.00元" |
| | | android:inputType="numberDecimal" |
| | | android:textColor="#ff333333" |
| | | android:textSize="12sp" /> |
| | | |
| | | </RelativeLayout> |
| | | |
| | | </LinearLayout> |
| | | |
| | | </LinearLayout> |
| | |
| | | android:textColor="#ffffffff" |
| | | android:textSize="12sp" /> |
| | | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | <LinearLayout |
| | |
| | | android:textColor="#333333" |
| | | android:textSize="12sp" /> |
| | | |
| | | |
| | | </LinearLayout> |
| | | |
| | | <LinearLayout |
| | |
| | | android:textColor="#333333" |
| | | android:textSize="12sp" /> |
| | | |
| | | |
| | | </LinearLayout> |
| | | |
| | | <LinearLayout |
| | |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="余额" |
| | | android:text="人民币" |
| | | android:textColor="#333333" |
| | | android:textSize="12sp" /> |
| | | |
| | | |
| | | </LinearLayout> |
| | | |
| | | |
| | | </LinearLayout> |
| | | |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | <include layout="@layout/include_line_left_15" /> |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | <include layout="@layout/include_line_left_15" /> |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl_set_order" |
| | | android:visibility="gone" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | <View |
| | | android:layout_width="match_parent" |
| | |
| | | android:id="@+id/rl_change_car" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | |
| | |
| | | android:layout_height="4dp" |
| | | android:background="#F3F4F5" /> |
| | | |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl_put_friend" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | <include layout="@layout/include_line_left_15" /> |
| | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | <include layout="@layout/include_line_left_15" /> |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl_invite" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp" |
| | | android:alpha="0.8" |
| | | android:background="@color/white" |
| | | android:drawableEnd="@mipmap/more_black" |
| | | android:drawablePadding="10dp" |
| | | android:gravity="center_vertical" |
| | | android:paddingStart="42dp" |
| | | android:paddingEnd="15dp" |
| | | android:text="邀请有礼" |
| | | android:textColor="@color/black" |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | | android:layout_centerVertical="true" |
| | | android:layout_marginStart="15dp" |
| | | android:src="@mipmap/invite" /> |
| | | |
| | | </RelativeLayout> |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | |
| | | <include layout="@layout/include_line_left_15" /> |
| | |
| | | android:visibility="gone" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:visibility="gone" |
| | | android:background="@color/white" /> |
| | | |
| | |
| | | android:id="@+id/rl_setting" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="43dp"> |
| | | |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | |
| | | android:textSize="15sp" |
| | | android:textStyle="bold" /> |
| | | |
| | | |
| | | <ImageView |
| | | android:layout_width="16dp" |
| | | android:layout_height="wrap_content" |
| | |
| | | |
| | | </RelativeLayout> |
| | | |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="7dp" |
| | | android:layout_height="4dp" |
| | | android:background="@color/white" /> |
| | | <Space |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | android:layout_weight="1"/> |
| | | |
| | | |
| | | |
| | | |
| | | </LinearLayout> |
| | | |
| | | |
| | | </RelativeLayout> |
| | | <RelativeLayout |
| | |
| | | android:textStyle="bold" |
| | | android:textColor="@color/main_yellow" |
| | | android:textSize="14sp" /> |
| | | |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | android:layout_weight="1"/> |
| | | <TextView |
| | | android:id="@+id/tv_login" |
| | | android:layout_width="match_parent" |
| | | android:text="确认收款" |
| | | android:textColor="#ffffffff" |
| | | android:gravity="center" |
| | | android:visibility="gone" |
| | | android:layout_marginStart="14dp" |
| | | android:layout_marginBottom="20dp" |
| | | android:layout_marginEnd="14dp" |
| | | android:background="@drawable/bg_login" |
| | | android:textSize="14sp" |
| | | android:layout_height="40dp"/> |
| | | </LinearLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:background="#F3F4F5" |
| | | android:layout_height="match_parent" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto"> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:background="@color/dividing_line_color"/> |
| | | <LinearLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:layout_marginTop="1dp" |
| | | android:background="@color/white"> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:text="本次行程费用" |
| | | android:textSize="14sp" |
| | | android:textStyle="bold" |
| | | android:textColor="@color/textColor" |
| | | android:paddingVertical="11dp" |
| | | android:layout_marginEnd="14dp" |
| | | android:layout_marginStart="14dp"/> |
| | | <EditText |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:hint="金额" |
| | | android:inputType="numberDecimal" |
| | | android:paddingVertical="11dp" |
| | | android:background="@null" |
| | | android:id="@+id/et_money" |
| | | android:paddingHorizontal="14dp" |
| | | android:textSize="14sp" |
| | | android:textColor="@color/textColor"/> |
| | | </LinearLayout> |
| | | <TextView |
| | | android:id="@+id/tv_sure" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="40dp" |
| | | android:layout_marginStart="14dp" |
| | | android:layout_marginEnd="14dp" |
| | | android:layout_marginBottom="14dp" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | android:background="@drawable/bg_login" |
| | | android:gravity="center" |
| | | android:text="确认费用" |
| | | android:textColor="#ffffffff" |
| | | android:textSize="14sp" /> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:background="#F3F4F5"> |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:layout_marginTop="8dp" |
| | | android:padding="12dp" |
| | | android:layout_marginHorizontal="12dp" |
| | | android:background="@drawable/bg_white_4"> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_time" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_time" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="提现时间" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_money" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_time" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_money" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="提现金额" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_way" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_money" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_way" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="提现方式" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_bank" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_way" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_bank" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="开户行" |
| | | android:id="@+id/tv_1" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_name" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_bank" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_name" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="收款人" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_account" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_name" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_account" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="收款账号" |
| | | /> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_state" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_account" |
| | | android:textColor="@color/end_red" |
| | | android:textSize="12sp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_state" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="提现状态" |
| | | /> |
| | | <com.facebook.drawee.view.SimpleDraweeView |
| | | android:layout_width="60dp" |
| | | android:layout_height="60dp" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_state" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:layout_marginTop="12dp" |
| | | android:id="@+id/iv_img" |
| | | android:visibility="gone" |
| | | app:actualImageScaleType="centerCrop" |
| | | app:roundedCornerRadius="1dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_remark" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_state" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:maxWidth="250dp" |
| | | android:textStyle="bold" |
| | | android:layout_marginTop="12dp"/> |
| | | <TextView |
| | | android:id="@+id/tv_2" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/tv_remark" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="12sp" |
| | | android:text="备注" |
| | | /> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="match_parent" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:background="#F3F4F5"> |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:layout_marginTop="1dp" |
| | | android:background="@color/white"> |
| | | |
| | | <EditText |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:hint="填写提现金额(最多可提¥100)" |
| | | android:background="@null" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="14dp" |
| | | android:inputType="numberDecimal" |
| | | app:layout_constraintStart_toEndOf="@id/tv_1" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/et_money" |
| | | android:layout_marginStart="60dp" |
| | | android:layout_marginEnd="14dp"/> |
| | | <TextView |
| | | android:id="@+id/tv_1" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_money" |
| | | android:text="提现金额" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/et_money" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <RadioGroup |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:orientation="horizontal" |
| | | app:layout_constraintTop_toBottomOf="@id/et_money" |
| | | android:id="@+id/rg_type"> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_money" |
| | | android:text="提现方式" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <RadioButton |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/rb_ali" |
| | | android:text="支付宝" |
| | | android:textSize="12sp" |
| | | android:visibility="gone" |
| | | android:paddingVertical="14dp" |
| | | android:paddingHorizontal="8dp" |
| | | android:layout_marginStart="55dp" |
| | | android:checked="true"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/rb_bank" |
| | | android:text="银行卡" |
| | | android:textSize="12sp" |
| | | android:textColor="@color/textColor" |
| | | android:paddingVertical="14dp" |
| | | android:layout_marginStart="60dp"/> |
| | | </RadioGroup> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/rg_type" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <EditText |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:hint="输入银行名称" |
| | | android:background="@null" |
| | | app:layout_constraintTop_toBottomOf="@id/rg_type" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="14dp" |
| | | android:singleLine="true" |
| | | app:layout_constraintStart_toEndOf="@id/tv_1" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/et_bank" |
| | | android:layout_marginStart="60dp" |
| | | android:layout_marginEnd="14dp"/> |
| | | <TextView |
| | | android:id="@+id/tv_2" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_bank" |
| | | android:text="开户行" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <View |
| | | android:id="@+id/line_bank" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/et_bank" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <EditText |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:hint="输入银行卡号" |
| | | android:background="@null" |
| | | app:layout_constraintTop_toBottomOf="@id/et_bank" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="14dp" |
| | | android:singleLine="true" |
| | | android:inputType="number" |
| | | app:layout_constraintStart_toEndOf="@id/tv_1" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/et_bank_no" |
| | | android:layout_marginStart="60dp" |
| | | android:layout_marginEnd="14dp"/> |
| | | <TextView |
| | | android:id="@+id/tv_3" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_bank_no" |
| | | android:text="卡号" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <View |
| | | android:id="@+id/line_bank_no" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/et_bank_no" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <EditText |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:hint="输入收款人" |
| | | android:background="@null" |
| | | app:layout_constraintTop_toBottomOf="@id/et_bank_no" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="14dp" |
| | | android:singleLine="true" |
| | | app:layout_constraintStart_toEndOf="@id/tv_1" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/et_name" |
| | | android:layout_marginStart="60dp" |
| | | android:layout_marginEnd="14dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_name" |
| | | android:text="收款人" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <View |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/et_name" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <EditText |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:hint="输入支付宝账号" |
| | | android:background="@null" |
| | | app:layout_constraintTop_toBottomOf="@id/et_name" |
| | | android:textSize="14sp" |
| | | android:paddingVertical="14dp" |
| | | android:singleLine="true" |
| | | app:layout_constraintStart_toEndOf="@id/tv_1" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:id="@+id/et_ali" |
| | | android:layout_marginStart="60dp" |
| | | android:layout_marginEnd="14dp"/> |
| | | <TextView |
| | | android:id="@+id/tv_4" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintBaseline_toBaselineOf="@id/et_ali" |
| | | android:text="支付宝账号" |
| | | android:textSize="14sp" |
| | | android:layout_marginStart="14dp" |
| | | android:textColor="@color/textColor" |
| | | android:textStyle="bold" |
| | | app:layout_constraintStart_toStartOf="parent"/> |
| | | <View |
| | | android:id="@+id/line_ali" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="1dp" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintTop_toBottomOf="@id/et_ali" |
| | | android:layout_marginHorizontal="14dp"/> |
| | | <androidx.constraintlayout.widget.Group |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/gp_bank" |
| | | app:constraint_referenced_ids="et_bank,tv_2,line_bank,et_bank_no,tv_3,line_bank_no" |
| | | android:visibility="gone"/> |
| | | <androidx.constraintlayout.widget.Group |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/gp_ali" |
| | | app:constraint_referenced_ids="et_ali,tv_4,line_ali"/> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_withdraw" |
| | | android:textStyle="bold" |
| | | android:textColor="@color/white" |
| | | android:textSize="14sp" |
| | | android:layout_marginHorizontal="14dp" |
| | | android:layout_marginBottom="14dp" |
| | | android:gravity="center" |
| | | android:paddingVertical="10dp" |
| | | android:background="@drawable/bg_orange_4" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | android:text="确定提现"/> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:background="@color/white" |
| | | android:orientation="vertical"> |
| | | |
| | | <RelativeLayout |
| | | android:id="@+id/rl" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content"> |
| | | |
| | | <TextView |
| | | android:id="@+id/tv_cancel" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:padding="16dp" |
| | | android:text="取消" |
| | | android:layout_marginTop="8dp" |
| | | android:textColor="@color/colorAccent" |
| | | android:textSize="@dimen/textSize" /> |
| | | |
| | | <TextView |
| | | android:id="@+id/tv_sure" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_alignParentRight="true" |
| | | android:padding="16dp" |
| | | android:text="确定" |
| | | android:layout_marginTop="8dp" |
| | | android:textColor="@color/colorAccent" |
| | | android:textSize="@dimen/textSize" /> |
| | | |
| | | <TextView |
| | | android:id="@+id/tv_title" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_centerInParent="true" |
| | | android:text="" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="16sp" |
| | | android:textStyle="bold" /> |
| | | </RelativeLayout> |
| | | |
| | | <View |
| | | android:layout_width="12dp" |
| | | android:layout_height="1dp" |
| | | android:id="@+id/center" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | app:layout_constraintTop_toTopOf="@id/start" |
| | | app:layout_constraintBottom_toBottomOf="@id/start" |
| | | android:background="#CCCCCC"/> |
| | | |
| | | <TextView |
| | | android:id="@+id/start" |
| | | android:layout_width="0dp" |
| | | android:layout_height="34dp" |
| | | app:layout_constraintTop_toBottomOf="@id/rl" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:layout_marginStart="12dp" |
| | | android:layout_marginTop="13dp" |
| | | android:layout_marginEnd="15dp" |
| | | android:paddingStart="12dp" |
| | | android:paddingEnd="8dp" |
| | | android:drawableEnd="@mipmap/ic_date_blue" |
| | | android:textColor="@color/colorAccent" |
| | | android:text="0000/00/00" |
| | | android:gravity="center_vertical" |
| | | android:background="@drawable/bg_blue_line_4" |
| | | app:layout_constraintEnd_toStartOf="@id/center"/> |
| | | |
| | | <TextView |
| | | android:id="@+id/end" |
| | | android:layout_width="0dp" |
| | | android:layout_height="34dp" |
| | | app:layout_constraintTop_toBottomOf="@id/rl" |
| | | app:layout_constraintEnd_toEndOf="parent" |
| | | android:layout_marginStart="12dp" |
| | | android:layout_marginTop="13dp" |
| | | android:layout_marginEnd="15dp" |
| | | android:paddingStart="12dp" |
| | | android:paddingEnd="8dp" |
| | | android:drawableEnd="@mipmap/ic_date" |
| | | android:textColor="@color/textColor" |
| | | android:text="0000/00/00" |
| | | android:gravity="center_vertical" |
| | | android:background="@drawable/bg_gray_line_4" |
| | | app:layout_constraintStart_toEndOf="@id/center"/> |
| | | |
| | | <LinearLayout |
| | | android:id="@+id/ll_content" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="160dp" |
| | | android:layout_marginTop="8dp" |
| | | app:layout_constraintTop_toBottomOf="@id/start" |
| | | android:layout_marginBottom="14dp" |
| | | android:orientation="horizontal"> |
| | | |
| | | <cn.sinata.xldutils.view.WheelView |
| | | android:id="@+id/wv_1" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1.2" /> |
| | | |
| | | <cn.sinata.xldutils.view.WheelView |
| | | android:id="@+id/wv_2" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" /> |
| | | |
| | | <cn.sinata.xldutils.view.WheelView |
| | | android:id="@+id/wv_3" |
| | | android:layout_width="0dp" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" /> |
| | | |
| | | </LinearLayout> |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto" |
| | | android:id="@+id/rl_container" |
| | | android:background="@color/l_transparent" |
| | | android:layout_height="match_parent"> |
| | | |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:layout_centerInParent="true" |
| | | android:background="@drawable/bg_white_round_5" |
| | | android:orientation="vertical" |
| | | android:layout_marginStart="68dp" |
| | | android:id="@+id/cl" |
| | | android:layout_marginEnd="68dp"> |
| | | |
| | | <com.facebook.drawee.view.SimpleDraweeView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="0dp" |
| | | android:id="@+id/iv_notice" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:roundedCornerRadius="5dp" |
| | | app:roundTopEnd="true" |
| | | app:roundTopStart="true" |
| | | app:roundBottomEnd="false" |
| | | app:placeholderImage="@color/page_bg" |
| | | app:roundBottomStart="false" |
| | | app:layout_constraintDimensionRatio="5:6"/> |
| | | |
| | | <TextView |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | app:layout_constraintTop_toBottomOf="@id/iv_notice" |
| | | android:id="@+id/tv_notice" |
| | | android:textSize="14sp" |
| | | android:textColor="@color/textColor" |
| | | android:paddingHorizontal="10dp" |
| | | android:paddingVertical="8dp"/> |
| | | |
| | | |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | |
| | | <ImageView |
| | | android:id="@+id/iv_close" |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:layout_below="@id/cl" |
| | | android:layout_centerHorizontal="true" |
| | | android:layout_marginTop="10dp" |
| | | android:padding="10dp" |
| | | android:src="@mipmap/ic_dialog_close"/> |
| | | |
| | | </RelativeLayout> |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | xmlns:app="http://schemas.android.com/apk/res-auto"> |
| | | <androidx.constraintlayout.widget.ConstraintLayout |
| | | android:layout_width="match_parent" |
| | | android:layout_height="wrap_content" |
| | | android:background="@color/white" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | android:layout_marginVertical="4dp"> |
| | | <ImageView |
| | | android:id="@+id/iv_head" |
| | | android:layout_width="50dp" |
| | | android:layout_height="50dp" |
| | | app:layout_constraintTop_toTopOf="parent" |
| | | app:layout_constraintBottom_toBottomOf="parent" |
| | | app:layout_constraintStart_toStartOf="parent" |
| | | android:layout_margin="14dp"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_phone" |
| | | app:layout_constraintTop_toTopOf="@id/iv_head" |
| | | app:layout_constraintStart_toEndOf="@id/iv_head" |
| | | android:layout_marginStart="14dp" |
| | | android:layout_marginTop="5dp" |
| | | android:textColor="@color/textColor" |
| | | android:textSize="14sp" |
| | | android:textStyle="bold"/> |
| | | <TextView |
| | | android:layout_width="wrap_content" |
| | | android:layout_height="wrap_content" |
| | | android:id="@+id/tv_time" |
| | | app:layout_constraintTop_toBottomOf="@id/tv_phone" |
| | | android:layout_marginTop="4dp" |
| | | app:layout_constraintStart_toStartOf="@id/tv_phone" |
| | | android:textColor="@color/textColorHint" |
| | | android:textSize="12sp"/> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | | </androidx.constraintlayout.widget.ConstraintLayout> |
| | |
| | | android:layout_marginEnd="14dp" |
| | | android:textStyle="bold" |
| | | android:text="¥100.00" |
| | | android:drawablePadding="13dp" |
| | | android:textSize="14sp" |
| | | android:textColor="@color/textColor"/> |
| | | <View |
| | |
| | | android:layout_weight="1" |
| | | android:gravity="center" |
| | | android:orientation="vertical" |
| | | android:visibility="gone" |
| | | android:paddingTop="26dp"> |
| | | |
| | | <ImageView |
| | |
| | | <resources> |
| | | <color name="colorPrimary">#6200EE</color> |
| | | <color name="colorPrimaryDark">#3700B3</color> |
| | | <color name="colorAccent">#03DAC5</color> |
| | | <color name="colorAccent">#4D8BFF</color> |
| | | <color name="red_main">#FF3277</color> |
| | | |
| | | <!-- 100% — FF--> |
| | |
| | | <color name="color_F85460">#F85460</color> |
| | | <color name="color_3590FA" >#3590FA</color> |
| | | <color name="text_gray_car">#ff27282d</color> |
| | | <color name="page_bg">#F5F5F5</color> |
| | | </resources> |
| | |
| | | buildToolsVersion "29.0.3" |
| | | |
| | | defaultConfig { |
| | | minSdkVersion 17 |
| | | targetSdkVersion 28 |
| | | minSdkVersion 26 |
| | | targetSdkVersion 29 |
| | | versionCode 1 |
| | | versionName "1.0" |
| | | } |
| | |
| | | |
| | | |
| | | defaultConfig { |
| | | minSdkVersion 19 |
| | | targetSdkVersion 28 |
| | | minSdkVersion 26 |
| | | targetSdkVersion 29 |
| | | versionCode 1 |
| | | versionName "1.0" |
| | | |
| | |
| | | compileSdkVersion 29 |
| | | |
| | | defaultConfig { |
| | | minSdkVersion 21 |
| | | minSdkVersion 26 |
| | | targetSdkVersion 29 |
| | | } |
| | | buildTypes { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 获取当前时间 |
| | | * @return |
| | | */ |
| | | public static String getCurrentDate() { |
| | | |
| | | SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd",Locale.CHINA); |
| | | |
| | | return f.format(new Date(System.currentTimeMillis())); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 获取时间的年份 |
| | | * @return |
| | | */ |
| | |
| | | return 0; |
| | | } |
| | | |
| | | public static long parseDateMillisecond(String time) { |
| | | |
| | | SimpleDateFormat formart = new SimpleDateFormat("yyyy/MM/dd",Locale.CHINA); |
| | | |
| | | try { |
| | | Date d = formart.parse(time); |
| | | |
| | | return d.getTime(); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | public static Date parseTaskTime(String time) { |
| | | |
| | | SimpleDateFormat formart = new SimpleDateFormat("yyyy/MM/dd HH:mm",Locale.CHINA); |