diff --git a/app/build.gradle b/app/build.gradle index d7b8296..ee5939e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,19 +105,20 @@ android { productFlavors { qa { + manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机"] buildConfigField("String", "OPEN_API_URL", "\"http://192.168.111.244:4009\"") buildConfigField("String", "BASE_URL", "\"http://app.dahehuoyun.com/api/\"") } product { - buildConfigField("String", "OPEN_API", "\"https://oapi.alct56.com\"") + manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机"] buildConfigField("String", "OPEN_API_URL", "\"https://oapi.alct56.com\"") buildConfigField("String", "BASE_URL", "\"http://app.dahehuoyun.com/api/\"") } } -// productFlavors.all { flavor -> -// flavor.manifestPlaceholders = [CHANNEL_VALUE: name] -// } + productFlavors.all { flavor -> + flavor.manifestPlaceholders = [CHANNEL_VALUE: name] + } android.applicationVariants.all { variant -> @@ -138,33 +139,15 @@ android { dependencies { - //implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs') - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.3.1' - implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'com.caverock:androidsvg-aar:1.3' - implementation 'com.github.bumptech.glide:glide:4.11.0' -// implementation files('libs\\AMap3DMap_5.8.0_AMapNavi_5.6.0_20191014.jar') -// implementation project(path: ':ocr_ui') - //implementation files('libs\\AMap3DMap_5.8.0_AMapNavi_5.6.0_20191014.jar') - kapt 'com.android.databinding:compiler:2.3.2' - //noinspection GradleCompatible,GradleCompatible - //implemention 'com.android.support:design:25.3.1' - //implementation files('libs\\BaiduLBS_Android.jar') - //当引入的与之前引入的库有重复冲突部分的时候,使用compileOnly - implementation files('libs\\mdp_sdk.jar') - compileOnly files('libs\\gson-2.8.0.jar') - annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' - implementation 'com.squareup.okhttp3:okhttp:3.2.0' - implementation 'com.jakewharton:butterknife:10.2.1' - annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' - implementation 'id.zelory:compressor:1.0.3' + //压缩工具 implementation 'top.zibin:Luban:1.1.3' + //角标 implementation 'com.haozhang.libary:android-slanted-textview:1.2' - // + //刷新头部,底部样式 implementation 'com.scwang.smart:refresh-layout-kernel:2.0.1' implementation 'com.scwang.smart:refresh-header-material:2.0.1' implementation 'com.scwang.smart:refresh-footer-ball:2.0.1' //球脉冲加载 @@ -174,45 +157,26 @@ dependencies { implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.1.0' //轮播插件 implementation 'com.github.zhpanvip:BannerViewPager:3.5.4' - // - implementation 'com.lxj:xpopup:2.2.8' - //工具类 - //implementation 'cn.hutool:hutool-all:5.7.11' + //弹出框 +// implementation 'com.lxj:xpopup:2.2.8' +// implementation 'com.github.li-xiaojun:XPopup:2.8.15' //交通厅 implementation 'com.lzy.net:okgo:3.0.4' implementation 'com.alibaba:fastjson:1.2.61' implementation 'org.bouncycastle:bcprov-jdk15on:1.55' - //org.bouncycastle:bcprov-jdk15to18 - //compileOnly 'org.bouncycastle:bcprov-jdk15to18:1.64' implementation 'org.apache.commons:commons-lang3:3.5' implementation (name:'locationgd-androidx_2.1.0', ext:'aar')//交通厅 -// implementation 'com.amap.api:location:latest.integration' - //implementation files('libs\\AMap_Location_V5.4.0_20210723.jar') //安联 - implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.loopj.android:android-async-http:1.4.9' implementation 'com.j256.ormlite:ormlite-android:4.48' implementation 'com.j256.ormlite:ormlite-core:4.48' - compileOnly 'com.github.hotchemi:permissionsdispatcher:2.3.1' - annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.3.1' + implementation "org.permissionsdispatcher:permissionsdispatcher:4.6.0" + kapt "org.permissionsdispatcher:permissionsdispatcher-processor:4.6.0" + //极光认证 implementation 'cn.jiguang.sdk:jverification:2.7.1' // 此处以2.7.1 版本为例。a implementation 'cn.jiguang.sdk:jpush:4.2.4' // 此处以JPush 4.2.4 版本为例。 implementation 'cn.jiguang.sdk:jcore:2.9.0' // 此处以JCore 2.9.0 版本为例。 - // 接入华为厂商 - implementation 'com.huawei.hms:push:4.0.2.300' - implementation 'cn.jiguang.sdk.plugin:huawei:4.0.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同 - // 接入 FCM 厂商 - implementation 'com.google.firebase:firebase-messaging:21.0.1' - implementation 'cn.jiguang.sdk.plugin:fcm:4.0.0' - // 接入魅族厂商 - implementation 'cn.jiguang.sdk.plugin:meizu:4.0.0' - // 接入 VIVO 厂商 - implementation 'cn.jiguang.sdk.plugin:vivo:4.0.0' - // 接入 OPPO 厂商 - implementation 'cn.jiguang.sdk.plugin:oppo:4.0.0' - // 接入小米厂商 - implementation 'cn.jiguang.sdk.plugin:xiaomi:4.0.0' //友盟 // 下面各SDK根据宿主App是否使用相关业务按需引入。 // 友盟统计SDK @@ -220,61 +184,23 @@ dependencies { implementation 'com.umeng.umsdk:asms:1.4.1'// 必选 implementation 'com.umeng.umsdk:apm:1.4.2' // 错误分析升级为独立SDK,看crash数据请一定集成,可选 implementation 'com.umeng.umsdk:abtest:1.0.0'//使用U-App中ABTest能力,可选 - //动态权限获取 - implementation "org.permissionsdispatcher:permissionsdispatcher:4.6.0" - kapt "org.permissionsdispatcher:permissionsdispatcher-processor:4.6.0" + //选择器 implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:3.1.1' //EventBus implementation 'org.greenrobot:eventbus:3.1.1' - //易签宝 - implementation(name:'EsignSDK', ext:'aar') - implementation'pub.devrel:easypermissions:1.3.0' - implementation "com.squareup.retrofit2:retrofit:2.4.0" - implementation "com.squareup.retrofit2:converter-gson:2.4.0" - implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0" - implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0' - - implementation "io.reactivex.rxjava2:rxjava:2.1.5" - implementation "io.reactivex.rxjava2:rxandroid:2.0.1" - - implementation 'org.greenrobot:eventbus:3.1.1' + //pdf展示 implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1' - // - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' //工具类 //implementation 'cn.hutool:hutool-all:5.7.11' - //ArcGis For Android工具库(API:100.1以上版本) - implementation 'com.github.qingmei2:SlideBottomLayout-Android:1.2.3' - implementation 'com.flipboard:bottomsheet-core:1.5.3' - implementation 'com.flipboard:bottomsheet-commons:1.5.3' //可选 implementation 'com.github.getActivity:XToast:8.2' - //阿里云视频播放 -// implementation 'com.aliyun.sdk.android:AliyunPlayer:5.4.0-part' -// implementation 'com.aliyun.video.android:svideostandard:3.25.+'//短视频标准版SDK必须依赖 -// implementation 'com.aliyun.video.android:core:1.2.2' //核心库必须依赖 -// implementation 'com.alivc.conan:AlivcConan:1.0.3'//核心库必须依赖 -// //AlivcFFmpeg必须依赖,且版本需要在4.3.0及以上,在以下两个版本中选择一个版本进行依赖。 -// implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.0' //短视频与播放器共用。两个SDK同时接入时,请用该版本。 -// implementation 'com.aliyun.video.android:upload:1.6.0'// 上传库,如不需要上传可不依赖 - // - //implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' - //ocr - //implementation (name:'ocrsdk.aar', ext:'aar') - //implementation 'com.github.xuexiangjys:XVideo:1.0.2' - implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.9' - implementation 'com.youth.banner:banner:1.4.10' + //易签宝 + implementation(name:'EsignSDK', ext:'aar') -// implementation 'com.amap.api:3dmap:latest.integration' -// implementation 'com.amap.api:search:latest.integration' - - implementation 'com.amap.api:3dmap:8.0.0' - implementation 'com.amap.api:location:5.5.1' - implementation 'com.amap.api:search:7.9.0' + //当引入的与之前引入的库有重复冲突部分的时候,使用compileOnly + implementation files('libs\\mdp_sdk.jar') implementation project(path: ':mylibrary') diff --git a/app/libs/gson-2.8.0.jar b/app/libs/gson-2.8.0.jar deleted file mode 100644 index 1235f63..0000000 Binary files a/app/libs/gson-2.8.0.jar and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 469c5f2..a11fb4a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java index b150b3e..46f3882 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java @@ -2,6 +2,14 @@ package com.arpa.hndahesudintocctmsdriver.request.net; import com.arpa.hndahesudintocctmsdriver.BuildConfig; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean; +import com.dahe.mylibrary.net.CommonResponseBean; + +import io.reactivex.rxjava3.core.Observable; +import retrofit2.http.Body; +import retrofit2.http.POST; +import retrofit2.http.Query; /** * Created by Administrator on 2018/8/8 0008. @@ -9,13 +17,14 @@ import com.arpa.hndahesudintocctmsdriver.BuildConfig; public interface Api { - String BASE_URL = "BuildConfig.BASE_URL"; + String BASE_URL = BuildConfig.BASE_URL; //获取版本 String VERSION = BASE_URL + "app/version"; - + @POST(BASE_URL+"/common/register") + Observable log(@Body LoginRegInputBean bean); } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java index a254971..3b8c3db 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java @@ -4,9 +4,9 @@ import android.content.Context; import com.dahe.mylibrary.net.CommonResponseBean; -import io.reactivex.Observer; -import io.reactivex.annotations.NonNull; -import io.reactivex.disposables.Disposable; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; /** diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java index d545fb0..d611fa5 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java @@ -44,7 +44,7 @@ public class DataManager { return api(); } - public static Api api() { + private static Api api() { return CommonBaseLibrary.getRetrofit().newBuilder() .client(new OkHttpClient.Builder() .connectTimeout(30, TimeUnit.SECONDS) diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java index 9225e79..d126c97 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java @@ -8,6 +8,8 @@ import android.content.Intent; import android.text.TextUtils; import android.view.Window; +import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; import com.dahe.mylibrary.net.CommonResponseBean; import com.dahe.mylibrary.net.ResultException; @@ -85,9 +87,9 @@ public abstract class RxHttpCallBack { } if (t.getCode() == 401) { -// UserUtils.Companion.getInstance().loginOut(mContext); - Intent intent = new Intent(mContext, LoginActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); + UiAuxiliary.delLogin(mContext); + Intent intent = new Intent(mContext, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); mContext.startActivity(intent); ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录"); }else{ diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt index e67a530..b3881d5 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt @@ -20,62 +20,66 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity import com.arpa.hndahesudintocctmsdriver.util.view.BottomTabUtil import com.arpa.hndahesudintocctmsdriver.util.view.PanDuanUtil import com.google.gson.Gson -import com.luck.picture.lib.permissions.RxPermissions -import io.reactivex.functions.Consumer +import com.permissionx.guolindev.PermissionX class MainActivity : BaseAppCompatActivity() { private var ibs = arrayOf() - private var title_view=arrayOf() - private var imgs0= intArrayOf(R.mipmap.tab1,R.mipmap.tab2,R.mipmap.xiaoxi0,R.mipmap.tab3) - private var imgs1= intArrayOf(R.mipmap.tab1_s,R.mipmap.tab2_s,R.mipmap.xiaoxi1,R.mipmap.tab3_s) + private var title_view = arrayOf() + private var imgs0 = intArrayOf(R.mipmap.tab1, R.mipmap.tab2, R.mipmap.xiaoxi0, R.mipmap.tab3) + private var imgs1 = + intArrayOf(R.mipmap.tab1_s, R.mipmap.tab2_s, R.mipmap.xiaoxi1, R.mipmap.tab3_s) private val gson = Gson() override fun msgMethod(m: Message?) { super.msgMethod(m) - when(m!!.what){ - 1->{ + when (m!!.what) { + 1 -> { isExit = false; } - RequsetCodeConstants.SUCCESS->{ } + RequsetCodeConstants.SUCCESS -> {} } } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) StateStyleUtil.stateTextColor(this) setContentView(R.layout.activity_main) - con=this - act=this + con = this + act = this //隐藏标题栏 val actionBar = supportActionBar actionBar?.hide() - var r1=findViewById(R.id.r1) - var r2=findViewById(R.id.r2) - var r3=findViewById(R.id.r3) - var r4=findViewById(R.id.r4) + var r1 = findViewById(R.id.r1) + var r2 = findViewById(R.id.r2) + var r3 = findViewById(R.id.r3) + var r4 = findViewById(R.id.r4) var fs = arrayOfNulls(4) fs[0] = HomeFragment() fs[1] = WalletFragment() fs[2] = NewsFragment() fs[3] = MyFragment() - ibs=arrayOf( + ibs = arrayOf( findViewById(R.id.huoyuan), findViewById(R.id.qianbao), findViewById(R.id.xiaoxi), findViewById(R.id.wode)) - title_view=arrayOf(findViewById(R.id.title1),findViewById(R.id.title2),findViewById(R.id.title3),findViewById(R.id.title4)) + title_view = arrayOf(findViewById(R.id.title1), + findViewById(R.id.title2), + findViewById(R.id.title3), + findViewById(R.id.title4)) var bt = BottomTabUtil(this, R.id.body, fs) bt.selectItem(fs[0]) r1.setOnClickListener { v -> - selectImage(bt.index,0) + selectImage(bt.index, 0) bt.setDefaultFragment(fs[0]) - bt.index=0 + bt.index = 0 } r2.setOnClickListener { v -> - if (!PanDuanUtil.isLogin(con)){ + if (!PanDuanUtil.isLogin(con)) { jumpLogin() - }else{ - selectImage(bt.index,1) + } else { + selectImage(bt.index, 1) if (!fs[1]!!.isAdded) { bt.hide(fs[bt.index]) bt.selectItem(fs[1]) @@ -86,10 +90,10 @@ class MainActivity : BaseAppCompatActivity() { } } r3.setOnClickListener { v -> - if (!PanDuanUtil.isLogin(con)){ + if (!PanDuanUtil.isLogin(con)) { jumpLogin() - }else{ - selectImage(bt.index,2) + } else { + selectImage(bt.index, 2) if (!fs[2]!!.isAdded) { bt.hide(fs[bt.index]) bt.selectItem(fs[2]) @@ -100,10 +104,10 @@ class MainActivity : BaseAppCompatActivity() { } } r4.setOnClickListener { v -> - if (!PanDuanUtil.isLogin(con)){ + if (!PanDuanUtil.isLogin(con)) { jumpLogin() - }else{ - selectImage(bt.index,3) + } else { + selectImage(bt.index, 3) if (!fs[3]!!.isAdded) { bt.hide(fs[bt.index]) bt.selectItem(fs[3]) @@ -113,41 +117,35 @@ class MainActivity : BaseAppCompatActivity() { bt.index = 3 } } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { getPression() } } - fun getPression(){ - var gpsPermissions = RxPermissions(this) - gpsPermissions.request( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ).subscribe( - Consumer { b: Boolean -> - if (b) { - //判断GPS模块是否开启 + fun getPression() { + PermissionX.init(this) + .permissions(Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION) + .request { allGranted, grantedList, deniedList -> + if (allGranted) { } else { - Toast.makeText(con,"开启权限失败,请在应用设置-权限-定位-始终允许",Toast.LENGTH_SHORT).show() - //.show("开启权限失败,请在应用设置-权限-定位-始终允许") + Toast.makeText(con, "开启权限失败,请在应用设置-权限-定位-始终允许", Toast.LENGTH_SHORT).show() } } - ) } - - fun selectImage(old:Int, new:Int){ + fun selectImage(old: Int, new: Int) { ibs[old].setImageResource(imgs0[old]) ibs[new].setImageResource(imgs1[new]) - title_view[old].setTextColor(resources.getColor(R.color.tab_select_no,null)) - title_view[new].setTextColor(resources.getColor(R.color.tab_select,null)) + title_view[old].setTextColor(resources.getColor(R.color.tab_select_no, null)) + title_view[new].setTextColor(resources.getColor(R.color.tab_select, null)) } - fun jumpLogin(){ - var inl=Intent(con,LoginActivity::class.java) + fun jumpLogin() { + var inl = Intent(con, LoginActivity::class.java) startActivity(inl) } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java index 1a281da..41ce93a 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java @@ -10,6 +10,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.cardview.widget.CardView; + import com.lxj.xpopup.core.CenterPopupView; import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java index 334f1a5..58512df 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java @@ -11,10 +11,7 @@ import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; -import java.util.concurrent.TimeUnit; -import rx.Observable; -import rx.schedulers.Schedulers; /** * @ClassName AddCarSuccActivity diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java index ad3f42a..09d88f3 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java @@ -12,6 +12,7 @@ import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; @@ -36,6 +37,7 @@ import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.entity.LocalMedia; import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.ImageViewerPopupView; import com.lxj.xpopup.interfaces.XPopupImageLoader; import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; @@ -65,6 +67,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.lxj.xpopup.photoview.PhotoView; import org.greenrobot.eventbus.EventBus; diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java index 22310dd..2e7e924 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java @@ -43,11 +43,11 @@ import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; import com.arpa.hndahesudintocctmsdriver.ui.news.NewActivity; +import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.hjq.xtoast.XToast; -import com.luck.picture.lib.permissions.RxPermissions; import com.lxj.xpopup.XPopup; import com.lxj.xpopup.interfaces.OnConfirmListener; import com.arpa.hndahesudintocctmsdriver.R; @@ -82,6 +82,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; import com.arpa.hndahesudintocctmsdriver.util.time.Timer; import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.permissionx.guolindev.PermissionX; import com.youth.banner.Banner; import com.youth.banner.BannerConfig; import com.youth.banner.Transformer; @@ -111,132 +112,132 @@ public class HomeFragment extends BaseFragment { private UserBean ub; private StartOrderBean sob; private HuoYuanListBean hb; - private Gson gson=new Gson(); - private CardView btn_news,btn_loadin,btn_update; + private Gson gson = new Gson(); + private CardView btn_news, btn_loadin, btn_update; private LinearLayout order_all; private HuoYuanListBean uab; - private List list=new ArrayList<>(); + private List list = new ArrayList<>(); private HuoYuanListDealBean hdb; private LinearLayout home_top; - private boolean keys=false; + private boolean keys = false; private ImageConfig ic; private DriverExpireBean deb; @Override public void msgMethod(Message m) { super.msgMethod(m); - switch (m.what){ + switch (m.what) { case RequsetCodeConstants.SUCCESS: // if (customDialog!=null) { // customDialog.dismiss(); // } - if(refreshLayout!=null && keys){ + if (refreshLayout != null && keys) { refreshLayout.finishRefresh(500); - keys=false; + keys = false; } - if (CacheGroup.cacheList.get("userdata")!=null){ - ub=gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); - if(ub.getCode()==200){ - SPUtil.insSP(con,"data","userdata",CacheGroup.cacheList.get("userdata")); - MsgUtil.addHdMsgWat(hd,33); - }else{ - Toast.makeText(con,ub.getMsg(),Toast.LENGTH_SHORT).show(); + if (CacheGroup.cacheList.get("userdata") != null) { + ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); + if (ub.getCode() == 200) { + SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata")); + MsgUtil.addHdMsgWat(hd, 33); + } else { + Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove("userdata"); } - if (CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)!=null){ - Log.e("--sob--",CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)); - sob=gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER),StartOrderBean.class); - if(sob.getCode()==200){ - SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_ORDER_KEY,gson.toJson(sob)); + if (CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER) != null) { + Log.e("--sob--", CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)); + sob = gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER), StartOrderBean.class); + if (sob.getCode() == 200) { + SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME, JTTConstant.JTT_DATA_ORDER_KEY, gson.toJson(sob)); initStart(); - StartOrderParts.setStartOrder(con,sob); - if(sob.getData()!=null){ + StartOrderParts.setStartOrder(con, sob); + if (sob.getData() != null) { ur.getJtts(sob.getData().getShippingNoteNumber()); } - }else{ - Toast.makeText(con,sob.getMsg(),Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove(HuoYuanFragmengt.START_ORDER); } - if(CacheGroup.cacheList.get("up_app")!=null){ - Log.e("up_app",CacheGroup.cacheList.get("up_app")); - UpAppBean uab=new Gson().fromJson(CacheGroup.cacheList.get("up_app"),UpAppBean.class); - if (uab.getCode()==200) { - if(uab.getData()!=null){ + if (CacheGroup.cacheList.get("up_app") != null) { + Log.e("up_app", CacheGroup.cacheList.get("up_app")); + UpAppBean uab = new Gson().fromJson(CacheGroup.cacheList.get("up_app"), UpAppBean.class); + if (uab.getCode() == 200) { + if (uab.getData() != null) { new XPopup.Builder(con) .dismissOnBackPressed(false) .dismissOnTouchOutside(false) - .asCustom(new UpAppAlert(con,uab.getData().getDownloadUrl(),uab.getData().getContent(),uab.getData().getVersion(),uab.getData().getForce())) + .asCustom(new UpAppAlert(con, uab.getData().getDownloadUrl(), uab.getData().getContent(), uab.getData().getVersion(), uab.getData().getForce())) .show(); } } CacheGroup.cacheList.remove("up_app"); } - if(CacheGroup.cacheList.get("hl")!=null){ - Log.e("hl",CacheGroup.cacheList.get("hl")); - uab=new Gson().fromJson(CacheGroup.cacheList.get("hl"),HuoYuanListBean.class); - if(uab.getCode()==200){ + if (CacheGroup.cacheList.get("hl") != null) { + Log.e("hl", CacheGroup.cacheList.get("hl")); + uab = new Gson().fromJson(CacheGroup.cacheList.get("hl"), HuoYuanListBean.class); + if (uab.getCode() == 200) { initOrder(); - }else{ - Toast.makeText(con,uab.getMsg(),Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, uab.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove("hl"); } - if(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)!=null){ - DriverAuthDataBean dad=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA),DriverAuthDataBean.class); - if (dad.getCode()==200) { - SPUtil.insSP(con,"data","authdata",CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)); - if (dad.getData()!=null && 100003==dad.getData().getAuditStatus()) { + if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) { + DriverAuthDataBean dad = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class); + if (dad.getCode() == 200) { + SPUtil.insSP(con, "data", "authdata", CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)); + if (dad.getData() != null && 100003 == dad.getData().getAuditStatus()) { initAlct(); } - }else{ - Toast.makeText(con,dad.getMsg(),Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, dad.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA); } - if(CacheGroup.cacheList.get("dealList")!=null){ - Log.e("历史货源",CacheGroup.cacheList.get("dealList")); - hdb=gson.fromJson(CacheGroup.cacheList.get("dealList"),HuoYuanListDealBean.class); - if(hdb.getCode()==200){ + if (CacheGroup.cacheList.get("dealList") != null) { + Log.e("历史货源", CacheGroup.cacheList.get("dealList")); + hdb = gson.fromJson(CacheGroup.cacheList.get("dealList"), HuoYuanListDealBean.class); + if (hdb.getCode() == 200) { insDeal(); - }else{ - Toast.makeText(con,hdb.getMsg(),Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(con, hdb.getMsg(), Toast.LENGTH_LONG).show(); } CacheGroup.cacheList.remove("dealList"); } - if (CacheGroup.cacheList.get("getImage")!=null) { - ic=gson.fromJson(CacheGroup.cacheList.get("getImage"),ImageConfig.class); - if(ic.getCode()==200){ + if (CacheGroup.cacheList.get("getImage") != null) { + ic = gson.fromJson(CacheGroup.cacheList.get("getImage"), ImageConfig.class); + if (ic.getCode() == 200) { initBanner(); - }else{ - Toast.makeText(con, StringUtil.isNull(ic.getMsg(),""),Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(con, StringUtil.isNull(ic.getMsg(), ""), Toast.LENGTH_LONG).show(); } CacheGroup.cacheList.remove("getImage"); } - if(CacheGroup.cacheList.get("driverExpire")!=null){ - Log.e("过期数据:",CacheGroup.cacheList.get("driverExpire")); - deb=gson.fromJson(CacheGroup.cacheList.get("driverExpire"),DriverExpireBean.class); - if (deb.getCode()==200) { - Intent in=new Intent(con,WebActivity.class); - in.putExtra("title","证件补传"); - if (!"".equals(deb.getData().getDriverLicenseUpdateUrl())){ - in.putExtra("url",deb.getData().getDriverLicenseUpdateUrl()); - }else{ - if(!"".equals(deb.getData().getIdCardUpdateUrl())){ - in.putExtra("url",deb.getData().getIdCardUpdateUrl()); + if (CacheGroup.cacheList.get("driverExpire") != null) { + Log.e("过期数据:", CacheGroup.cacheList.get("driverExpire")); + deb = gson.fromJson(CacheGroup.cacheList.get("driverExpire"), DriverExpireBean.class); + if (deb.getCode() == 200) { + Intent in = new Intent(con, WebActivity.class); + in.putExtra("title", "证件补传"); + if (!"".equals(deb.getData().getDriverLicenseUpdateUrl())) { + in.putExtra("url", deb.getData().getDriverLicenseUpdateUrl()); + } else { + if (!"".equals(deb.getData().getIdCardUpdateUrl())) { + in.putExtra("url", deb.getData().getIdCardUpdateUrl()); } } - if(!"".equals(deb.getData().getDriverLicenseUpdateUrl()) || !"".equals(deb.getData().getIdCardUpdateUrl())){ + if (!"".equals(deb.getData().getDriverLicenseUpdateUrl()) || !"".equals(deb.getData().getIdCardUpdateUrl())) { new XToast<>(act) .setContentView(R.layout.view_bc) // 设置成可拖拽的 .setDraggable() // 设置显示时长 - .setDuration(1000 * 60 * 60*12) + .setDuration(1000 * 60 * 60 * 12) .setOnClickListener(R.id.img_kf, (toast, view) -> { toast.startActivity(in); - Log.e("-is-",view.isInTouchMode()+""); + Log.e("-is-", view.isInTouchMode() + ""); }) // 设置动画样式 //.setAnimStyle(android.R.style.Animation_Translucent) @@ -249,13 +250,13 @@ public class HomeFragment extends BaseFragment { } } - if(CacheGroup.cacheList.get("jttRes")!=null){ - JTT jtt=gson.fromJson(CacheGroup.cacheList.get("jttRes"),JTT.class); - if(jtt.getCode()==200){ - SPUtil.insSP(con,"data","jtt",CacheGroup.cacheList.get("jttRes")); + if (CacheGroup.cacheList.get("jttRes") != null) { + JTT jtt = gson.fromJson(CacheGroup.cacheList.get("jttRes"), JTT.class); + if (jtt.getCode() == 200) { + SPUtil.insSP(con, "data", "jtt", CacheGroup.cacheList.get("jttRes")); JTTProcess.auth(con); - }else{ - Toast.makeText(con,StringUtil.isNull(jtt.getMsg(),"返回错误"),Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(con, StringUtil.isNull(jtt.getMsg(), "返回错误"), Toast.LENGTH_LONG).show(); } CacheGroup.cacheList.remove("jttRes"); } @@ -263,7 +264,8 @@ public class HomeFragment extends BaseFragment { case 33: initAuth(); break; - default:break; + default: + break; } } @@ -277,32 +279,32 @@ public class HomeFragment extends BaseFragment { @org.jetbrains.annotations.Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - root=inflater.inflate(R.layout.fragment_home,container,false); - con=root.getContext(); - act=getActivity(); + root = inflater.inflate(R.layout.fragment_home, container, false); + con = root.getContext(); + act = getActivity(); // map=root.findViewById(R.id.map); // map.onCreate(savedInstanceState); // if(aMap==null){ // aMap=map.getMap(); // initLoaction(); // } - brv=root.findViewById(R.id.brv_box); - btn_news=root.findViewById(R.id.btn_news); - btn_loadin=root.findViewById(R.id.btn_loadin); - btn_update=root.findViewById(R.id.btn_update); + brv = root.findViewById(R.id.brv_box); + btn_news = root.findViewById(R.id.btn_news); + btn_loadin = root.findViewById(R.id.btn_loadin); + btn_update = root.findViewById(R.id.btn_update); // bottomSheet=root.findViewById(R.id.bottom_sheet); - home_top=root.findViewById(R.id.home_top); - home_state=root.findViewById(R.id.home_state); - news_btn=root.findViewById(R.id.news_btn); - order_start=root.findViewById(R.id.order_start); - orderNum=root.findViewById(R.id.orderNum); - order_state=root.findViewById(R.id.order_state); + home_top = root.findViewById(R.id.home_top); + home_state = root.findViewById(R.id.home_state); + news_btn = root.findViewById(R.id.news_btn); + order_start = root.findViewById(R.id.order_start); + orderNum = root.findViewById(R.id.orderNum); + order_state = root.findViewById(R.id.order_state); // BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); // mBottomSheetBehavior.setHideable(false); // mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); EventBus.getDefault().register(this); - hyr=new HuoYuanRequset(con,hd); - ur=new UserRequset(con,hd); + hyr = new HuoYuanRequset(con, hd); + ur = new UserRequset(con, hd); initRefreshLoad(); initView(null); btn_news.setOnClickListener(v -> { @@ -315,34 +317,34 @@ public class HomeFragment extends BaseFragment { getRequest(); }); home_top.setOnClickListener(v -> { - if(!UiAuxiliary.isLogin(con)){ - Intent in=new Intent(con,LoginActivity.class); + if (!UiAuxiliary.isLogin(con)) { + Intent in = new Intent(con, LoginActivity.class); startActivity(in); } }); news_btn.setOnClickListener(v -> { - if(UiAuxiliary.isLogin(con)){ - Intent in=new Intent(con, NewActivity.class); + if (UiAuxiliary.isLogin(con)) { + Intent in = new Intent(con, NewActivity.class); startActivity(in); - }else{ - Intent in=new Intent(con, LoginActivity.class); + } else { + Intent in = new Intent(con, LoginActivity.class); startActivity(in); } }); //Intent serviceIn=new Intent(con, LocationService.class); //getActivity().startService(serviceIn); - Intent in=new Intent(con, WebKfActivity.class); + Intent in = new Intent(con, WebKfActivity.class); // 传入 Activity 对象表示设置成局部的,不需要有悬浮窗权限 // 传入 Application 对象表示设置成全局的,但需要有悬浮窗权限 - new XToast<>(act) + new XToast<>(act) .setContentView(R.layout.view_kf) // 设置成可拖拽的 .setDraggable() // 设置显示时长 - .setDuration(1000 * 60 * 60*12) - .setOnClickListener(R.id.img_kf, (toast, view) -> { - toast.startActivity(in); - Log.e("-is-",view.isInTouchMode()+""); + .setDuration(1000 * 60 * 60 * 12) + .setOnClickListener(R.id.img_kf, (toast, view) -> { + toast.startActivity(in); + Log.e("-is-", view.isInTouchMode() + ""); }) // 设置动画样式 //.setAnimStyle(android.R.style.Animation_Translucent) @@ -368,10 +370,10 @@ public class HomeFragment extends BaseFragment { public void initRefreshLoad() { - refreshLayout =root.findViewById(R.id.srl); + refreshLayout = root.findViewById(R.id.srl); refreshLayout.setOnRefreshListener(refreshLayout -> { Log.e("下拉刷新", "pps"); - keys=true; + keys = true; getRequest(); }); } @@ -381,56 +383,55 @@ public class HomeFragment extends BaseFragment { @Override public void initView(Object obj) { super.initView(obj); - List list=new ArrayList<>(); - list.add(new ManyBean(new Model(),R.layout.item_home)); - as=brv.creates(con,list); + List list = new ArrayList<>(); + list.add(new ManyBean(new Model(), R.layout.item_home)); + as = brv.creates(con, list); as.setOnItemViewListener((position, o, v, layout) -> { - banner=v.findViewById(R.id.banner); + banner = v.findViewById(R.id.banner); initItemHome(v); }); } private BaseRecyclerView brv_order; - private LinearLayout order_box,auth_box; + private LinearLayout order_box, auth_box; private Button btn_auth; private TextView text_login; private CardView card_order; private BaseRecyclerView brv_order_recommend; /** - * * @param v */ - public void initItemHome(View v){ - brv_order=v.findViewById(R.id.brv_order); - BaseRecyclerView brv_function=v.findViewById(R.id.brv_function); - brv_order_recommend=v.findViewById(R.id.brv_order_recommend); - btn_auth=v.findViewById(R.id.btn_auth); - text_login=v.findViewById(R.id.text_login); - order_box=v.findViewById(R.id.order_box); - auth_box=v.findViewById(R.id.auth_box); - order_all=v.findViewById(R.id.order_all); - ImageView fun_left=v.findViewById(R.id.fun_left); - ImageView fun_right=v.findViewById(R.id.fun_right); + public void initItemHome(View v) { + brv_order = v.findViewById(R.id.brv_order); + BaseRecyclerView brv_function = v.findViewById(R.id.brv_function); + brv_order_recommend = v.findViewById(R.id.brv_order_recommend); + btn_auth = v.findViewById(R.id.btn_auth); + text_login = v.findViewById(R.id.text_login); + order_box = v.findViewById(R.id.order_box); + auth_box = v.findViewById(R.id.auth_box); + order_all = v.findViewById(R.id.order_all); + ImageView fun_left = v.findViewById(R.id.fun_left); + ImageView fun_right = v.findViewById(R.id.fun_right); fun_left.setOnClickListener(v16 -> startActivity(new Intent(con, OrderListActivity.class))); fun_right.setOnClickListener(v15 -> { - if(UiAuxiliary.isLogin(con)){ + if (UiAuxiliary.isLogin(con)) { startActivity(new Intent(con, OrderAllActivity.class)); - }else{ + } else { startActivity(new Intent(con, LoginActivity.class)); } }); - LinearLayout huoyuan_all=v.findViewById(R.id.huoyuan_all); + LinearLayout huoyuan_all = v.findViewById(R.id.huoyuan_all); - if(!UiAuxiliary.isLogin(con)){ + if (!UiAuxiliary.isLogin(con)) { btn_auth.setText("去登录"); text_login.setText("您还没有登录,请先登录"); } btn_auth.setOnClickListener(v13 -> { - if(UiAuxiliary.isLogin(con)){ + if (UiAuxiliary.isLogin(con)) { startActivity(new Intent(con, PersonalAuthActivity.class)); - }else{ + } else { startActivity(new Intent(con, LoginActivity.class)); } }); @@ -441,68 +442,67 @@ public class HomeFragment extends BaseFragment { startActivity(new Intent(con, OrderListActivity.class)); }); order_start.setOnClickListener(v15 -> { - Intent in=new Intent(con,StartYunDanActivity.class); - in.putExtra("id",0); + Intent in = new Intent(con, StartYunDanActivity.class); + in.putExtra("id", 0); startActivity(in); }); //功能入口列表 - List list_function=new ArrayList<>(); + List list_function = new ArrayList<>(); // list_function.add(new Model(R.mipmap.icon_fun_qiang,"去抢单")); // list_function.add(new Model(R.mipmap.icon_function_order,"我的运单")); // list_function.add(new Model(R.mipmap.icon_function_auth,"司机圈")); - list_function.add(new Model(R.mipmap.icon_home_fun1,"司机之家")); - list_function.add(new Model(R.mipmap.icon_home_fun2,"咨询建议")); - list_function.add(new Model(R.mipmap.icon_home_fun3,"问卷调查")); - list_function.add(new Model(R.mipmap.icon_home_fun4,"知识竞赛")); - brv_function.createG(4,con,list_function,R.layout.item_image_text).setOnItemViewListener((position, o, v1) -> { - Model m= (Model) o; - ImageView img=v1.findViewById(R.id.img); + list_function.add(new Model(R.mipmap.icon_home_fun1, "司机之家")); + list_function.add(new Model(R.mipmap.icon_home_fun2, "咨询建议")); + list_function.add(new Model(R.mipmap.icon_home_fun3, "问卷调查")); + list_function.add(new Model(R.mipmap.icon_home_fun4, "知识竞赛")); + brv_function.createG(4, con, list_function, R.layout.item_image_text).setOnItemViewListener((position, o, v1) -> { + Model m = (Model) o; + ImageView img = v1.findViewById(R.id.img); img.setImageResource(m.getImageId()); - if (0==position) { - card_order=v1.findViewById(R.id.card_order); + if (0 == position) { + card_order = v1.findViewById(R.id.card_order); } v1.setOnClickListener(v2 -> { - switch (position){ + switch (position) { case 0: //startActivity(new Intent(con, OrderListActivity.class)); - RxPermissions rp=new RxPermissions(getActivity()); - rp.request( - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ).subscribe(b -> { - if (b) { - Intent in=new Intent(con, BusinessActivity.class); - in.putExtra("type","餐饮"); + PermissionX.init(getActivity()) + .permissions(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { + Intent in = new Intent(con, BusinessActivity.class); + in.putExtra("type", "餐饮"); startActivity(in); } else { - Toast.makeText(act.getBaseContext(),"请先开启定位权限",Toast.LENGTH_LONG).show(); + Toast.makeText(act.getBaseContext(), "请先开启定位权限", Toast.LENGTH_LONG).show(); } - } - ); + }); //Toast.makeText(con,"定位开启失败,请检查配置项",Toast.LENGTH_LONG).show(); break; case 1: - if(UiAuxiliary.isLogin(con)){ - Intent in3=new Intent(con, WebActivity.class); - in3.putExtra("url",""); - in3.putExtra("title","咨询建议"); + if (UiAuxiliary.isLogin(con)) { + Intent in3 = new Intent(con, WebActivity.class); + in3.putExtra("url", ""); + in3.putExtra("title", "咨询建议"); startActivity(in3); - }else{ + } else { startActivity(new Intent(con, LoginActivity.class)); } break; case 2: - Intent in4=new Intent(con, WebActivity.class); - in4.putExtra("url","https://www.wjx.cn/vm/mKciqMo.aspx"); - in4.putExtra("title","问卷调查"); + Intent in4 = new Intent(con, WebActivity.class); + in4.putExtra("url", "https://www.wjx.cn/vm/mKciqMo.aspx"); + in4.putExtra("title", "问卷调查"); startActivity(in4); break; case 3: - Intent in5=new Intent(con, WebActivity.class); - in5.putExtra("url","https://ks.wjx.top/vm/h6Jqu8A.aspx"); - in5.putExtra("title","知识竞猜"); + Intent in5 = new Intent(con, WebActivity.class); + in5.putExtra("url", "https://ks.wjx.top/vm/h6Jqu8A.aspx"); + in5.putExtra("title", "知识竞猜"); startActivity(in5); break; - default:break; + default: + break; } }); }); @@ -513,66 +513,67 @@ public class HomeFragment extends BaseFragment { /** * */ - public void initMap(){ + public void initMap() { getRequest(); } - private CustomDialog customDialog; - private boolean key=false; - private long oldTime=0; - public void getRequest(){ + private CustomDialog customDialog; + private boolean key = false; + private long oldTime = 0; + + public void getRequest() { // long newTime=Calendar.getInstance().getTimeInMillis(); // if((newTime-oldTime)>1000){ // customDialog=new CustomDialog(con,"加载中..."); // customDialog.show(); - ur.upApp(); - hyr.getHuoYuan(1,100); - ur.getImage(1); - if(UiAuxiliary.isLogin(con)){ - ur.User(); - ur.getDriverExpire(); - hyr.startOrder(0); - ur.driverAuthData(); - } + ur.upApp(); + hyr.getHuoYuan(1, 100); + ur.getImage(1); + if (UiAuxiliary.isLogin(con)) { + ur.User(); + ur.getDriverExpire(); + hyr.startOrder(0); + ur.driverAuthData(); + } // oldTime= Calendar.getInstance().getTimeInMillis(); // }else{ // Toast.makeText(con,"您刷新的太频繁了",Toast.LENGTH_LONG).show(); // } } - private String loadingAddress=""; - private String putAddress=""; - private String putTimer=""; - private int loadingSum=0; - private int putSum=0; + private String loadingAddress = ""; + private String putAddress = ""; + private String putTimer = ""; + private int loadingSum = 0; + private int putSum = 0; - public void initAuth(){ - String str=""; - if(ub.getData()!=null){ - str=ub.getData().getUname(); - }else{ - str="您好,请先登录"; + public void initAuth() { + String str = ""; + if (ub.getData() != null) { + str = ub.getData().getUname(); + } else { + str = "您好,请先登录"; } home_state.setText(str); - if(ub!=null && 100003==ub.getData().getAuditStatus()){ - if (auth_box!=null && order_box!=null) { + if (ub != null && 100003 == ub.getData().getAuditStatus()) { + if (auth_box != null && order_box != null) { auth_box.setVisibility(View.GONE); //order_box.setVisibility(View.VISIBLE); } - }else{ + } else { btn_auth.setText("去认证"); text_login.setText("认证成功,开始接单"); - if (auth_box!=null && order_box!=null) { + if (auth_box != null && order_box != null) { //auth_box.setVisibility(View.VISIBLE); //order_box.setVisibility(View.GONE); } } } - public void initStart(){ - loadingSum=0; - putSum=0; - if(sob.getData()!=null) { + public void initStart() { + loadingSum = 0; + putSum = 0; + if (sob.getData() != null) { for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { if (wayChild.getType() == 1) { loadingAddress = wayChild.getAddress(); @@ -584,37 +585,37 @@ public class HomeFragment extends BaseFragment { } } order_start.setVisibility(View.GONE); - if(sob!=null && sob.getData()!=null && 0 list_order=new ArrayList<>(); - if (loadingSum!=0) { - list_order.add(new ManyBean(sob.getData(),R.layout.item_start_order)); - }else{ - list_order.add(new ManyBean(new Model(),R.layout.item_null_start)); + List list_order = new ArrayList<>(); + if (loadingSum != 0) { + list_order.add(new ManyBean(sob.getData(), R.layout.item_start_order)); + } else { + list_order.add(new ManyBean(new Model(), R.layout.item_null_start)); } - brv_order.creates(con,list_order).setOnItemViewListener((position, o, v, layout) -> { - switch (layout){ + brv_order.creates(con, list_order).setOnItemViewListener((position, o, v, layout) -> { + switch (layout) { case R.layout.item_start_order: - TextView loadingAddress_view=v.findViewById(R.id.loadingAddress); - TextView receiverAddress_view=v.findViewById(R.id.receiverAddress); - TextView type_timer=v.findViewById(R.id.type_timer); + TextView loadingAddress_view = v.findViewById(R.id.loadingAddress); + TextView receiverAddress_view = v.findViewById(R.id.receiverAddress); + TextView type_timer = v.findViewById(R.id.type_timer); loadingAddress_view.setText(loadingAddress); receiverAddress_view.setText(putAddress); - type_timer.setText(loadingSum+"装"+putSum+"卸"+" "+ putTimer+"截止"); + type_timer.setText(loadingSum + "装" + putSum + "卸" + " " + putTimer + "截止"); v.setOnClickListener(v1 -> { - Intent in=new Intent(con, StartYunDanActivity.class); - in.putExtra("id",0); + Intent in = new Intent(con, StartYunDanActivity.class); + in.putExtra("id", 0); startActivity(in); }); break; @@ -624,46 +625,47 @@ public class HomeFragment extends BaseFragment { private List list_order; - public void initOrder(){ - list_order=new ArrayList<>(); + public void initOrder() { + list_order = new ArrayList<>(); for (HuoYuanListBean.DataDTO.RecordsDTO record : uab.getData().getRecords()) { - list_order.add(new ManyBean(record,R.layout.item_huoyuan)); - if(list_order.size()>=3){ + list_order.add(new ManyBean(record, R.layout.item_huoyuan)); + if (list_order.size() >= 3) { break; } } - brv_order_recommend.creates(con,list_order).setOnItemViewListener((position, o, v, layout) -> { - switch (layout){ + brv_order_recommend.creates(con, list_order).setOnItemViewListener((position, o, v, layout) -> { + switch (layout) { case R.layout.item_huoyuan: - HuoYuanListBean.DataDTO.RecordsDTO hdr= (HuoYuanListBean.DataDTO.RecordsDTO) o; - TextView qiang=v.findViewById(R.id.qiang); - TextView type_timer=v.findViewById(R.id.type_timer); - String up_time= Timer.formatChange(hdr.getEffectiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); - type_timer.setText(hdr.getSendPutString()+" "+up_time+"截止"); + HuoYuanListBean.DataDTO.RecordsDTO hdr = (HuoYuanListBean.DataDTO.RecordsDTO) o; + TextView qiang = v.findViewById(R.id.qiang); + TextView type_timer = v.findViewById(R.id.type_timer); + String up_time = Timer.formatChange(hdr.getEffectiveTime(), "yyyy-MM-dd HH:mm:ss", "MM-dd HH:mm"); + type_timer.setText(hdr.getSendPutString() + " " + up_time + "截止"); v.setOnClickListener(v2 -> { receivingOrder(hdr.getOrderId()); }); qiang.setOnClickListener(v1 -> { receivingOrder(hdr.getOrderId()); }); - if(1==hdr.getDispatchType()){ + if (1 == hdr.getDispatchType()) { qiang.setText("接单"); - }else{ + } else { qiang.setText("抢单"); } break; case R.layout.item_huoyuan_deal: - HuoYuanListDealBean.DataDTO.RecordsDTO recordsDTO= (HuoYuanListDealBean.DataDTO.RecordsDTO) o; - TextView driver_data=v.findViewById(R.id.diver_data); - TextView type_timer2=v.findViewById(R.id.type_timer); - String up_time2= Timer.formatChange(recordsDTO.getReceiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); - type_timer2.setText(recordsDTO.getSendPutString()+" "+up_time2+"成交"); - driver_data.setText("承运人:"+recordsDTO.getDriverName()+" | "+recordsDTO.getDriverPhone()+" | "+recordsDTO.getReceiveCarNum()); + HuoYuanListDealBean.DataDTO.RecordsDTO recordsDTO = (HuoYuanListDealBean.DataDTO.RecordsDTO) o; + TextView driver_data = v.findViewById(R.id.diver_data); + TextView type_timer2 = v.findViewById(R.id.type_timer); + String up_time2 = Timer.formatChange(recordsDTO.getReceiveTime(), "yyyy-MM-dd HH:mm:ss", "MM-dd HH:mm"); + type_timer2.setText(recordsDTO.getSendPutString() + " " + up_time2 + "成交"); + driver_data.setText("承运人:" + recordsDTO.getDriverName() + " | " + recordsDTO.getDriverPhone() + " | " + recordsDTO.getReceiveCarNum()); v.setOnClickListener(v12 -> { - new ToastUtil(con,0,"此订单已被抢单,下次努力").show(2000); + new ToastUtil(con, 0, "此订单已被抢单,下次努力").show(2000); }); break; - default:break; + default: + break; } }); @@ -680,20 +682,20 @@ public class HomeFragment extends BaseFragment { // card_order.setVisibility(View.GONE); // } - if(list_order.size()<3){ + if (list_order.size() < 3) { hyr.getHuoYuanDealList(); } } - public void insDeal(){ - if(list_order==null){ + public void insDeal() { + if (list_order == null) { return; } - List listadd=new ArrayList<>(); + List listadd = new ArrayList<>(); // for (HuoYuanListDealBean.DataDTO.RecordsDTO record : hdb.getData().getRecords()) { - listadd.add(new ManyBean(record,R.layout.item_huoyuan_deal)); - if((list_order.size()+listadd.size())>=3){ + listadd.add(new ManyBean(record, R.layout.item_huoyuan_deal)); + if ((list_order.size() + listadd.size()) >= 3) { break; } } @@ -701,13 +703,13 @@ public class HomeFragment extends BaseFragment { } - public void receivingOrder(int id){ - if(UiAuxiliary.isLogin(con)){ - if(ub!=null && 100003==ub.getData().getAuditStatus()){ - Intent in=new Intent(con,HuoYunDelActivity.class); - in.putExtra("id",id); + public void receivingOrder(int id) { + if (UiAuxiliary.isLogin(con)) { + if (ub != null && 100003 == ub.getData().getAuditStatus()) { + Intent in = new Intent(con, HuoYunDelActivity.class); + in.putExtra("id", id); startActivity(in); - }else{ + } else { new XPopup.Builder(con) .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 .asConfirm("提示", "请先完成认证,才能抢单哦!", @@ -715,19 +717,19 @@ public class HomeFragment extends BaseFragment { new OnConfirmListener() { @Override public void onConfirm() { - Intent in=new Intent(con, PersonalAuthActivity.class); + Intent in = new Intent(con, PersonalAuthActivity.class); con.startActivity(in); } }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 .show(); } - }else{ + } else { new XPopup.Builder(con) .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 .asConfirm("提示", "请先完成登录,才能抢单哦!", "取消", "去登录", () -> { - Intent in=new Intent(con, LoginActivity.class); + Intent in = new Intent(con, LoginActivity.class); con.startActivity(in); }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 .show(); @@ -735,12 +737,11 @@ public class HomeFragment extends BaseFragment { } - private Banner banner; private List imageUrlData; private List contentData; - private void initBanner(){ + private void initBanner() { banner.setOutlineProvider(new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { @@ -762,17 +763,17 @@ public class HomeFragment extends BaseFragment { banner.isAutoPlay(true); banner.setIndicatorGravity(BannerConfig.CENTER); banner.setOnBannerListener(position -> {//System.out.println("跳转"); - Intent in=new Intent(con, WebActivity.class); - Intent inL=new Intent(con, LoginActivity.class); - in.putExtra("url",ic.getData().get(position).getJumpUrl()); - in.putExtra("title",ic.getData().get(position).getTitle()); + Intent in = new Intent(con, WebActivity.class); + Intent inL = new Intent(con, LoginActivity.class); + in.putExtra("url", ic.getData().get(position).getJumpUrl()); + in.putExtra("title", ic.getData().get(position).getTitle()); if ("咨询建议".equals(ic.getData().get(position).getTitle())) { - if(UiAuxiliary.isLogin(con)){ + if (UiAuxiliary.isLogin(con)) { startActivity(in); - }else{ + } else { startActivity(inL); } - }else{ + } else { startActivity(in); } }); @@ -786,19 +787,19 @@ public class HomeFragment extends BaseFragment { } } - public void addMap(double latitude,double longitude,String title,String price,int id){ - if (aMap!=null) { - Log.e("longitude",longitude+""); - Log.e("latitude",latitude+""); + public void addMap(double latitude, double longitude, String title, String price, int id) { + if (aMap != null) { + Log.e("longitude", longitude + ""); + Log.e("latitude", latitude + ""); MarkerOptions markerOption = new MarkerOptions(); - markerOption.position(new LatLng(latitude,longitude)); - View infoWindow = LayoutInflater.from(con).inflate( + markerOption.position(new LatLng(latitude, longitude)); + View infoWindow = LayoutInflater.from(con).inflate( R.layout.map_source_goods, null); - TextView address=infoWindow.findViewById(R.id.address); - TextView prices=infoWindow.findViewById(R.id.price); + TextView address = infoWindow.findViewById(R.id.address); + TextView prices = infoWindow.findViewById(R.id.price); address.setText(title); - prices.setText("¥"+price+"元"); - markerOption.title(id+""); + prices.setText("¥" + price + "元"); + markerOption.title(id + ""); markerOption.draggable(false);//设置Marker不可拖动 markerOption.icon(BitmapDescriptorFactory.fromView(infoWindow)); markerOption.getIcon().getHeight(); @@ -817,12 +818,12 @@ public class HomeFragment extends BaseFragment { }); aMap.setOnMarkerClickListener(marker -> { //Toast.makeText(con,"点击了"+marker.getId(),Toast.LENGTH_LONG).show(); - if(UiAuxiliary.isLogin(con) && ub!=null){ - if(ub.getData().getAuditStatus()==100003){ - Intent in=new Intent(con,HuoYunDelActivity.class); - in.putExtra("id",Integer.parseInt(marker.getTitle())); + if (UiAuxiliary.isLogin(con) && ub != null) { + if (ub.getData().getAuditStatus() == 100003) { + Intent in = new Intent(con, HuoYunDelActivity.class); + in.putExtra("id", Integer.parseInt(marker.getTitle())); startActivity(in); - }else{ + } else { new XPopup.Builder(con) .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 .asConfirm("提示", "请先完成认证,才能抢单哦!", @@ -830,20 +831,20 @@ public class HomeFragment extends BaseFragment { new OnConfirmListener() { @Override public void onConfirm() { - Intent in=new Intent(con, PersonalAuthActivity.class); + Intent in = new Intent(con, PersonalAuthActivity.class); con.startActivity(in); } }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 .show(); //Toast.makeText(con,"请认证之后再接单",Toast.LENGTH_SHORT).show(); } - }else{ + } else { new XPopup.Builder(con) .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 .asConfirm("提示", "请先完成登录,才能抢单哦!", "取消", "去登录", () -> { - Intent in=new Intent(con,LoginActivity.class); + Intent in = new Intent(con, LoginActivity.class); con.startActivity(in); }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 .show(); @@ -878,28 +879,27 @@ public class HomeFragment extends BaseFragment { // map.onDestroy(); // } - public void initAlct(){ - RxPermissions rp=new RxPermissions(getActivity()); - rp.request( - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO - ).subscribe(b -> { - if (b) { + public void initAlct() { + PermissionX.init(getActivity()) + .permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.RECORD_AUDIO) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { } else { } - } - ); + }); ALProcess.verification(con); MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() { @Override public void onSuccess(Object o) { - Log.e("--成功信息--",new Gson().toJson(o)); + Log.e("--成功信息--", new Gson().toJson(o)); } + @Override public void onFailure(String s, String s1) { - Log.e("--失败信息--",s+s1); + Log.e("--失败信息--", s + s1); } }); } @@ -907,7 +907,7 @@ public class HomeFragment extends BaseFragment { private MyLocationStyle myLocationStyle;//地图定位样式 private boolean isFirstLocation = true;//第一次定位成功 - public void initLoaction(){ + public void initLoaction() { aMap.getUiSettings().setZoomControlsEnabled(true);//是否可以缩放 aMap.moveCamera(CameraUpdateFactory.zoomTo(11));//缩放比例 //地图文字的Z轴指数,设置为2可以将地图底图文字设置在添加的覆盖物之上 @@ -956,8 +956,8 @@ public class HomeFragment extends BaseFragment { double lat = location.getLatitude(); //纬度 double lng = location.getLongitude(); - Log.e("定位信息1",location.getLatitude()+""); - Log.e("定位信息2",location.getLongitude()+""); + Log.e("定位信息1", location.getLatitude() + ""); + Log.e("定位信息2", location.getLongitude() + ""); //实现第一次定位成功,将地图中心移动到定位点 CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 11); @@ -966,18 +966,18 @@ public class HomeFragment extends BaseFragment { //错误信息 String error = bundle.get("errorInfo").toString(); Log.e("Map", error); - Toast.makeText(con,"地图定位失败"+error,Toast.LENGTH_LONG).show(); + Toast.makeText(con, "地图定位失败" + error, Toast.LENGTH_LONG).show(); } } } @Subscribe - public void processResult(HomeEvent home) { - Log.e("-res-",home.getMessage()); + public void processResult(HomeEvent home) { + Log.e("-res-", home.getMessage()); initView(null); } - class Model{ + class Model { private int imageId; private String title; diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java index 494e3d8..ed9fa67 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java @@ -30,7 +30,6 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.esign.esignsdk.EsignSdk; import com.esign.esignsdk.data.AuthEvent; import com.google.gson.Gson; -import com.luck.picture.lib.permissions.RxPermissions; import com.lxj.xpopup.XPopup; import com.lxj.xpopup.core.BasePopupView; import com.lxj.xpopup.interfaces.OnConfirmListener; diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java index ce2fa1d..f9ad63c 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java @@ -19,6 +19,10 @@ import androidx.annotation.Nullable; import androidx.cardview.widget.CardView; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver; +import com.arpa.hndahesudintocctmsdriver.request.net.DataManager; +import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack; +import com.dahe.mylibrary.net.CommonResponseBean; import com.google.gson.Gson; import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; @@ -45,21 +49,21 @@ import cn.jpush.android.api.JPushInterface; public class LoginActivity extends BaseActivity { - public static final String CODE_RESULT="code_result"; - public static final String LOGIN_RESULT="login_result"; - public static final String USER="user"; - public static final String USER_TOKEN="token"; - public static final String USER_UNAME="uname"; - public static final String USER_RNAME="rname"; - public static final String USER_ID="id"; + public static final String CODE_RESULT = "code_result"; + public static final String LOGIN_RESULT = "login_result"; + public static final String USER = "user"; + public static final String USER_TOKEN = "token"; + public static final String USER_UNAME = "uname"; + public static final String USER_RNAME = "rname"; + public static final String USER_ID = "id"; private Button btn_login; private Button auto_login; - private EditText input_phone,input_code; + private EditText input_phone, input_code; private Button getCode; private LoginBean loginBean; private TimerTask tt; - private int timer_sum=60; + private int timer_sum = 60; private ImageButton agree_btn; private CardView no_btn; private UserRequset ur; @@ -67,38 +71,39 @@ public class LoginActivity extends BaseActivity { @Override public void msgMethod(Message m) { super.msgMethod(m); - switch (m.what){ + switch (m.what) { case 12: - getCode.setText(timer_sum+"s"); - if(timer_sum<=0){ + getCode.setText(timer_sum + "s"); + if (timer_sum <= 0) { getCode.setText("获取验证码"); - timer_sum=60; - code_key=true; + timer_sum = 60; + code_key = true; } break; case RequsetCodeConstants.SUCCESS: - if(CacheGroup.cacheList.get(CODE_RESULT)!=null){ - Log.e("--短信发送res--","短信发送成功"); + if (CacheGroup.cacheList.get(CODE_RESULT) != null) { + Log.e("--短信发送res--", "短信发送成功"); } - if(CacheGroup.cacheList.get(LOGIN_RESULT)!=null){ + if (CacheGroup.cacheList.get(LOGIN_RESULT) != null) { //存储登录记录 - loginBean=new Gson().fromJson(CacheGroup.cacheList.get(LOGIN_RESULT),LoginBean.class); - Log.e("--登录信息--",new Gson().toJson(loginBean)); - if(loginBean.getCode()==200){ - SPUtil.insSP(con,USER,USER_TOKEN,loginBean.getData().getToken()); - SPUtil.insSP(con,USER,USER_UNAME,loginBean.getData().getUname()); - SPUtil.insSP(con,USER,USER_RNAME,loginBean.getData().getRname()); - SPUtil.insSP(con,USER,USER_ID,loginBean.getData().getId()+""); - JPushInterface.setAlias(con,0,loginBean.getData().getUname()); - UiAuxiliary.homeRequest("登录成功"); - finish(); - }else{ - Toast.makeText(con,loginBean.getMsg(),Toast.LENGTH_SHORT).show(); + loginBean = new Gson().fromJson(CacheGroup.cacheList.get(LOGIN_RESULT), LoginBean.class); + Log.e("--登录信息--", new Gson().toJson(loginBean)); + if (loginBean.getCode() == 200) { + SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken()); + SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname()); + SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname()); + SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + ""); + JPushInterface.setAlias(con, 0, loginBean.getData().getUname()); + UiAuxiliary.homeRequest("登录成功"); + finish(); + } else { + Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show(); } CacheGroup.cacheList.remove(LOGIN_RESULT); } break; - default:break; + default: + break; } } @@ -107,42 +112,43 @@ public class LoginActivity extends BaseActivity { super.onCreate(savedInstanceState); StatusBarUtil.touming(getWindow()); setContentView(R.layout.activity_login); - con=this; - btn_login=findViewById(R.id.btn_login); - auto_login=findViewById(R.id.auto_login); - input_phone=findViewById(R.id.input_phone); - input_code=findViewById(R.id.input_code); - getCode=findViewById(R.id.getCode); - agree_btn=findViewById(R.id.agree_btn); - no_btn=findViewById(R.id.no_btn); - ur=new UserRequset(con,hd); + con = this; + btn_login = findViewById(R.id.btn_login); + auto_login = findViewById(R.id.auto_login); + input_phone = findViewById(R.id.input_phone); + input_code = findViewById(R.id.input_code); + getCode = findViewById(R.id.getCode); + agree_btn = findViewById(R.id.agree_btn); + no_btn = findViewById(R.id.no_btn); + ur = new UserRequset(con, hd); initView(null); } - boolean key=false; - boolean code_key=true; - private String url1=""; - private String url2=""; + boolean key = false; + boolean code_key = true; + private String url1 = ""; + private String url2 = ""; + @Override public void initView(Object obj) { super.initView(obj); agree_btn.setOnClickListener(v -> { agree_btn.setVisibility(View.GONE); no_btn.setVisibility(View.VISIBLE); - key=false; + key = false; }); no_btn.setOnClickListener(v -> { agree_btn.setVisibility(View.VISIBLE); no_btn.setVisibility(View.GONE); - key=true; + key = true; }); - ConfigBean cb= ConfigParts.getConfigParts(con); - if(cb!=null){ - url1=cb.getData().getUserUrl(); - url2="https://agreement.dahehuoyun.com/huawei/#/private"; + ConfigBean cb = ConfigParts.getConfigParts(con); + if (cb != null) { + url1 = cb.getData().getUserUrl(); + url2 = "https://agreement.dahehuoyun.com/huawei/#/private"; } - TextView tv_content=findViewById(R.id.tv_content); + TextView tv_content = findViewById(R.id.tv_content); String str = "我已阅读并同意相关服务条款和隐私政策《用户服务协议》和《隐私政策》"; SpannableStringBuilder ssb = new SpannableStringBuilder(); ssb.append(str); @@ -151,18 +157,19 @@ public class LoginActivity extends BaseActivity { ssb.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { - Log.e("-用户服务协议-",url1); + Log.e("-用户服务协议-", url1); //用户服务协议点击事件 - Intent in=new Intent(con, WebActivity.class); - in.putExtra("title","用户服务协议"); + Intent in = new Intent(con, WebActivity.class); + in.putExtra("title", "用户服务协议"); in.putExtra("url", url1); startActivity(in); } + @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); //设置文件颜色 - ds.setColor(getResources().getColor(R.color.theme_color,null)); + ds.setColor(getResources().getColor(R.color.theme_color, null)); // 去掉下划线 ds.setUnderlineText(false); } @@ -172,16 +179,17 @@ public class LoginActivity extends BaseActivity { @Override public void onClick(View widget) { //隐私协议点击事件 - Intent in=new Intent(con, WebActivity.class); - in.putExtra("title","隐私政策"); - in.putExtra("url",url2); + Intent in = new Intent(con, WebActivity.class); + in.putExtra("title", "隐私政策"); + in.putExtra("url", url2); startActivity(in); } + @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); //设置文件颜色 - ds.setColor(getResources().getColor(R.color.theme_color,null)); + ds.setColor(getResources().getColor(R.color.theme_color, null)); // 去掉下划线 ds.setUnderlineText(false); } @@ -190,36 +198,37 @@ public class LoginActivity extends BaseActivity { tv_content.setMovementMethod(LinkMovementMethod.getInstance()); tv_content.setText(ssb, TextView.BufferType.SPANNABLE); getCode.setOnClickListener(v -> { - String phone=String.valueOf(input_phone.getText()); - if ("".equals(phone) || phone==null){ - Log.e("点击事件","请先输入手机号"); - Toast.makeText(con,"请先输入手机号",Toast.LENGTH_SHORT).show(); - }else{ - if(11==phone.length() && phone.indexOf("1")==0){ - if(code_key){ - getCd(); - ur.getPhoneCode(phone); - code_key=false; - } - }else{ - Toast.makeText(con,"手机号格式不正确",Toast.LENGTH_SHORT).show(); + String phone = String.valueOf(input_phone.getText()); + if ("".equals(phone) || phone == null) { + Log.e("点击事件", "请先输入手机号"); + Toast.makeText(con, "请先输入手机号", Toast.LENGTH_SHORT).show(); + } else { + if (11 == phone.length() && phone.indexOf("1") == 0) { + if (code_key) { + getCd(); + ur.getPhoneCode(phone); + code_key = false; } + } else { + Toast.makeText(con, "手机号格式不正确", Toast.LENGTH_SHORT).show(); } + } }); btn_login.setOnClickListener(v -> { - String phone=String.valueOf(input_phone.getText()); - String code=String.valueOf(input_code.getText()); - Log.e("--code--",code); - if (judgeFormat(phone,code)){ - if(key){ - LoginRegInputBean lb=new LoginRegInputBean(); + String phone = String.valueOf(input_phone.getText()); + String code = String.valueOf(input_code.getText()); + Log.e("--code--", code); + if (judgeFormat(phone, code)) { + if (key) { + LoginRegInputBean lb = new LoginRegInputBean(); lb.setRoleId(4); lb.setUname(phone); lb.setSmscode(code); lb.setRegisterType(1); + ur.UserLogin(lb); - }else{ - Toast.makeText(con,"请先同意用户协议和隐私政策",Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, "请先同意用户协议和隐私政策", Toast.LENGTH_SHORT).show(); } } }); @@ -238,8 +247,8 @@ public class LoginActivity extends BaseActivity { .setLogBtnText(LoginConstant.LOG_BTN_TEXT.getValue()) .setLogBtnTextColor(0xffffffff) .setLogBtnImgPath(LoginConstant.BTN_IMG_PATH.getValue()) - .setAppPrivacyOne(LoginConstant.TIAOKUAN_ONE.getValue(),LoginConstant.TIAOKUAN_ONE_URL.getValue()) - .setAppPrivacyTwo(LoginConstant.TIAOKUAN_TWO.getValue(),LoginConstant.TIAOKUAN_TWO_URL.getValue()) + .setAppPrivacyOne(LoginConstant.TIAOKUAN_ONE.getValue(), LoginConstant.TIAOKUAN_ONE_URL.getValue()) + .setAppPrivacyTwo(LoginConstant.TIAOKUAN_TWO.getValue(), LoginConstant.TIAOKUAN_TWO_URL.getValue()) .setUncheckedImgPath(LoginConstant.BTN_IMG_PATH.getValue()) .setCheckedImgPath(LoginConstant.BTN_IMG_PATH.getValue()) .setSloganTextColor(0xff999999) @@ -263,9 +272,9 @@ public class LoginActivity extends BaseActivity { } });//设置授权页事件监听 JVerificationInterface.loginAuth(con, settings, (code, content, operator) -> { - if (code == 6000){ - Log.d("授权页", "code=" + code + ", token=" + content+" ,operator="+operator); - }else{ + if (code == 6000) { + Log.d("授权页", "code=" + code + ", token=" + content + " ,operator=" + operator); + } else { Log.d("授权页", "code=" + code + ", message=" + content); } }); @@ -273,36 +282,38 @@ public class LoginActivity extends BaseActivity { }); } - public void getCd(){ - new Thread(){ + + public void getCd() { + new Thread() { @Override public void run() { - while (timer_sum>0) { + while (timer_sum > 0) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } timer_sum--; - Message msg=new Message(); - msg.what=12; + Message msg = new Message(); + msg.what = 12; hd.sendMessage(msg); } interrupt(); } }.start(); } + //验证用户输入的是否符合格式 - public boolean judgeFormat(String phone,String code){ + public boolean judgeFormat(String phone, String code) { //1[0-9]{10} - if("".equals(phone) || "".equals(code)){ - Toast.makeText(con,"手机号和验证码不得为空",Toast.LENGTH_SHORT).show(); + if ("".equals(phone) || "".equals(code)) { + Toast.makeText(con, "手机号和验证码不得为空", Toast.LENGTH_SHORT).show(); return false; - }else{ - if(11==phone.length() && phone.indexOf("1")==0){ + } else { + if (11 == phone.length() && phone.indexOf("1") == 0) { return true; - }else{ - Toast.makeText(con,"手机号格式不正确",Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, "手机号格式不正确", Toast.LENGTH_SHORT).show(); return false; } } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java index 1ae80cf..b4494d3 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java @@ -38,7 +38,6 @@ import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; import com.bumptech.glide.Glide; import com.esign.esignsdk.EsignSdk; import com.google.gson.Gson; -import com.luck.picture.lib.permissions.RxPermissions; import com.lxj.xpopup.XPopup; import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java index 16a755e..aea22e2 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java @@ -23,9 +23,9 @@ import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; import com.arpa.hndahesudintocctmsdriver.parts.UserParts; import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; +import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.bumptech.glide.Glide; import com.google.gson.Gson; -import com.luck.picture.lib.permissions.RxPermissions; import com.lxj.xpopup.XPopup; import com.arpa.hndahesudintocctmsdriver.R; @@ -43,6 +43,7 @@ import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.permissionx.guolindev.PermissionX; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -217,19 +218,17 @@ public class MyFragment extends BaseFragment { onAuth.setOnClickListener(v -> startActivity(new Intent(con, PersonalAuthActivity.class))); //司机之家 onDriverHome.setOnClickListener(v -> { - RxPermissions rp=new RxPermissions(getActivity()); - rp.request( - Manifest.permission.ACCESS_BACKGROUND_LOCATION - ).subscribe(b -> { - if (b) { + PermissionX.init(getActivity()) + .permissions(Manifest.permission.ACCESS_BACKGROUND_LOCATION) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { Intent in=new Intent(con, BusinessActivity.class); in.putExtra("type","餐饮"); startActivity(in); } else { Toast.makeText(getContext(),"请先开启定位权限",Toast.LENGTH_LONG).show(); } - } - ); + }); }); //联系我们 onContact.setOnClickListener(v -> { diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java index e5d3354..7cb2979 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java @@ -4,6 +4,7 @@ import android.app.Activity; import androidx.fragment.app.Fragment; +import com.dahe.mylibrary.weight.GlideEngine; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.entity.LocalMedia; @@ -16,15 +17,16 @@ public class PicturlUtil { //(Activity) ctx 图片选择器 PictureSelector.create(activity) .openGallery(PictureConfig.TYPE_IMAGE) + .imageEngine(GlideEngine.createGlideEngine()) .maxSelectNum(maxNum) .minSelectNum(1) .imageSpanCount(4)// 每行显示个数 .selectionMode(PictureConfig.MULTIPLE)//多选 - .previewImage(true)//预览图片 - .compress(true)//压缩 + .isPreviewImage(true)//预览图片 + .isCompress(true)//压缩 .isCamera(true)// 是否显示拍照按钮 true or false .minimumCompressSize(100)// 小于100kb的图片不压缩 - .selectionMedia(imgs) + .selectionData(imgs) .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java index 5a27706..4643d13 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java @@ -14,7 +14,7 @@ import androidx.appcompat.app.AppCompatActivity; import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; -import com.luck.picture.lib.permissions.RxPermissions; +import com.permissionx.guolindev.PermissionX; import java.io.File; import java.util.ArrayList; @@ -55,32 +55,27 @@ public class GetCarImageAlert { //请按照如图所示拍摄回单照片,回单照片必须保持清晰完整,能看清具体吨数,便于结算运费时核查,感谢配合。 } btn_xiangce.setOnClickListener(v -> { - RxPermissions rp=new RxPermissions(act); - rp.request( - Manifest.permission.READ_EXTERNAL_STORAGE - ).subscribe(b -> { - if (b) { - //ImageGetUtil.AlbumGetImage(act); + PermissionX.init(act) + .permissions(Manifest.permission.READ_EXTERNAL_STORAGE) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { PicturlUtil.selectPicter(act, new ArrayList<>(), 1); } else { - Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show(); } - } - ); + }); }); btn_paizhao.setOnClickListener(v -> { - RxPermissions rp=new RxPermissions(act); - rp.request( - Manifest.permission.CAMERA - ).subscribe(b -> { - if (b) { + PermissionX.init(act) + .permissions(Manifest.permission.CAMERA) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { file=ImageGetUtil.createImageFile(act); ImageGetUtil.cameraAlbumGetImage(act,file); } else { - Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show(); } - } - ); + }); }); btn_quxiao.setOnClickListener(v -> popupWindow.dismiss()); //popupWindow消失屏幕变为不透明 diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java index 7d84758..e901d48 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java @@ -11,11 +11,12 @@ import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; -import com.luck.picture.lib.permissions.RxPermissions; import com.arpa.hndahesudintocctmsdriver.R; +import com.permissionx.guolindev.PermissionX; import java.io.File; import java.util.ArrayList; +import java.util.List; /** * @author hlh @@ -27,46 +28,44 @@ public class GetImageAlert { File file; PopupWindow popupWindow; - public void showPopueWindow(AppCompatActivity act){ - View popView = View.inflate(act, R.layout.choice_img,null); - Button btn_xiangce =popView.findViewById(R.id.btn_xiangce); + + public void showPopueWindow(AppCompatActivity act) { + View popView = View.inflate(act, R.layout.choice_img, null); + Button btn_xiangce = popView.findViewById(R.id.btn_xiangce); Button btn_paizhao = popView.findViewById(R.id.btn_paizhao); - Button btn_quxiao = popView.findViewById(R.id.btn_quxiao); + Button btn_quxiao = popView.findViewById(R.id.btn_quxiao); //获取屏幕宽高 - int weight =act.getResources().getDisplayMetrics().widthPixels; - int height = act.getResources().getDisplayMetrics().heightPixels*1/3; - popupWindow = new PopupWindow(popView,weight,height); + int weight = act.getResources().getDisplayMetrics().widthPixels; + int height = act.getResources().getDisplayMetrics().heightPixels * 1 / 3; + popupWindow = new PopupWindow(popView, weight, height); //popupWindow.setAnimationStyle(R.style.anim_popup_dir); popupWindow.setFocusable(true); //点击外部popueWindow消失 popupWindow.setOutsideTouchable(true); btn_xiangce.setOnClickListener(v -> { - RxPermissions rp=new RxPermissions(act); - rp.request( - Manifest.permission.READ_EXTERNAL_STORAGE - ).subscribe(b -> { - if (b) { + PermissionX.init(act) + .permissions(Manifest.permission.READ_EXTERNAL_STORAGE) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { PicturlUtil.selectPicter(act, new ArrayList<>(), 1); } else { - Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show(); } - } - ); + }); }); btn_paizhao.setOnClickListener(v -> { - RxPermissions rp=new RxPermissions(act); - rp.request( - Manifest.permission.CAMERA - ).subscribe(b -> { - if (b) { - file=ImageGetUtil.createImageFile(act); - ImageGetUtil.cameraAlbumGetImage(act,file); + + PermissionX.init(act) + .permissions(Manifest.permission.CAMERA) + .request((allGranted, grantedList, deniedList) -> { + if (allGranted) { + file = ImageGetUtil.createImageFile(act); + ImageGetUtil.cameraAlbumGetImage(act, file); } else { - Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show(); } - } - ); + }); }); btn_quxiao.setOnClickListener(v -> popupWindow.dismiss()); //popupWindow消失屏幕变为不透明 @@ -79,14 +78,14 @@ public class GetImageAlert { WindowManager.LayoutParams lp = act.getWindow().getAttributes(); lp.alpha = 0.5f; act.getWindow().setAttributes(lp); - popupWindow.showAtLocation(popView, Gravity.BOTTOM,0,50); + popupWindow.showAtLocation(popView, Gravity.BOTTOM, 0, 50); } public File getFile() { return file; } - public void dis(){ + public void dis() { popupWindow.dismiss(); } } diff --git a/app/src/main/res/layout/activity_auth_qualification.xml b/app/src/main/res/layout/activity_auth_qualification.xml index f70dbda..47623f2 100644 --- a/app/src/main/res/layout/activity_auth_qualification.xml +++ b/app/src/main/res/layout/activity_auth_qualification.xml @@ -76,15 +76,16 @@ android:textColor="#ff333333" android:textSize="@dimen/sp_15" /> + + android:textSize="@dimen/sp_15" /> diff --git a/compile.gradle b/compile.gradle index 83fac03..5082f7f 100644 --- a/compile.gradle +++ b/compile.gradle @@ -2,7 +2,7 @@ def SupportVersion = '28.0.0' def ButterKnifeVersion = '10.0.0' def CrashActivityVersion = '2.2.0' def StatusBarVersion = '2.3.3' -def GsonVersion = '2.8.5' +def GsonVersion = '2.8.6' def PhotoPickerVersion = 'v2.6.1' //def PhotoPickerVersion = 'v2.7.2' def GlideVersion = '4.12.0' @@ -24,7 +24,7 @@ def MagicIndicator = '1.7.0' def PickerView = '4.1.9' def NiceSpinner = '1.4.4' def Countdownview = '2.1.6' -def Xpopup = '2.2.23' +def Xpopup = '2.2.8' def CheckVersionLib = '2.4.1_androidx' def GooglePlayVersion = '15.0.1' def Streamsupport = '1.7.3' @@ -53,7 +53,7 @@ project.ext { "customactivityoncrash": "cat.ereza:customactivityoncrash:${CrashActivityVersion}", "gson" : "com.google.code.gson:gson:${GsonVersion}", "PhotoPicker" : "com.github.LuckSiege.PictureSelector:picture_library:${PhotoPickerVersion}", -// "PhotoPicker" : "io.github.lucksiege:pictureselector:${PhotoPickerVersion}", + "PhotoPicker" : "io.github.lucksiege:pictureselector:${PhotoPickerVersion}", "agentweb" : "com.github.Justson.AgentWeb:agentweb-core:${AgentWebVersion}", "statusbaruitl" : "com.github.niorgai:StatusBarCompat:${StatusBarVersion}", "glide" : "com.github.bumptech.glide:glide:${GlideVersion}", @@ -83,6 +83,10 @@ project.ext { "CheckVersionLib" :"com.github.AlexLiuSheng:CheckVersionLib:${CheckVersionLib}", "Bugly" :"com.tencent.bugly:crashreport:${BuglyVersion}", "Streamsupport" :"net.sourceforge.streamsupport:streamsupport:${Streamsupport}", - "PickerView" :"com.contrarywind:Android-PickerView:${PickerView}" + "PickerView" :"com.contrarywind:Android-PickerView:${PickerView}", + "Permissionx" :'com.guolindev.permissionx:permissionx:1.6.4', + "3Dmap" :'com.amap.api:3dmap:8.0.0', + "Location" :'com.amap.api:location:5.5.1', + "Search" :'com.amap.api:search:7.9.0' ] } diff --git a/mylibrary/build.gradle b/mylibrary/build.gradle index e33e607..47a9248 100644 --- a/mylibrary/build.gradle +++ b/mylibrary/build.gradle @@ -39,13 +39,11 @@ dependencies { implementation 'androidx.core:core-ktx:1.3.1' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.1' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' - -// api rootProject.ext.dependencies["butterknife"] -// annotationProcessor rootProject.ext.dependencies["butterknife-compiler"] api rootProject.ext.dependencies["gson"] api rootProject.ext.dependencies["glide"] annotationProcessor rootProject.ext.dependencies["glide-compiler"] @@ -67,15 +65,19 @@ dependencies { api rootProject.ext.dependencies["PickerView"] api rootProject.ext.dependencies["Xpopup"] api rootProject.ext.dependencies["Countdownview"] - api rootProject.ext.dependencies["CheckVersionLib"] - api rootProject.ext.dependencies["Bugly"] - api rootProject.ext.dependencies["Zxing"] +// api rootProject.ext.dependencies["CheckVersionLib"] +// api rootProject.ext.dependencies["Bugly"] +// api rootProject.ext.dependencies["Zxing"] api rootProject.ext.dependencies["Multidex"] - api rootProject.ext.dependencies["FlycoTabLayout"] +// api rootProject.ext.dependencies["FlycoTabLayout"] api rootProject.ext.dependencies["NiceDialog"] - api rootProject.ext.dependencies["MagicIndicator"] +// api rootProject.ext.dependencies["MagicIndicator"] api rootProject.ext.dependencies["glide-okhttps"] - api 'pub.devrel:easypermissions:3.0.0' + api rootProject.ext.dependencies["Permissionx"] + api rootProject.ext.dependencies["3Dmap"] + api rootProject.ext.dependencies["Location"] + api rootProject.ext.dependencies["Search"] + //友盟基础库(必须) // api 'com.umeng.umsdk:common:9.4.4' diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CarSelPopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CarSelPopupView.java index e93cf16..26850dc 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CarSelPopupView.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CarSelPopupView.java @@ -15,11 +15,8 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.listener.OnItemClickListener; import com.dahe.mylibrary.R; import com.dahe.mylibrary.adapter.CarAdapter; -import com.dahe.mylibrary.adapter.NodeAdapter; import com.dahe.mylibrary.bean.CarBean; -import com.dahe.mylibrary.bean.NodeBean; import com.dahe.mylibrary.net.JsonUtils; -import com.dahe.mylibrary.utils.ToastUtils; import com.lxj.xpopup.core.CenterPopupView; import org.jetbrains.annotations.NotNull; diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CenterPopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CenterPopupView.java index 1bda565..14a7542 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CenterPopupView.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CenterPopupView.java @@ -14,7 +14,6 @@ import com.chad.library.adapter.base.listener.OnItemClickListener; import com.dahe.mylibrary.R; import com.dahe.mylibrary.adapter.CenterSimAdapter; import com.dahe.mylibrary.bean.StateBean; -import com.dahe.mylibrary.wapper.SelectSimAdapter; import com.luck.picture.lib.decoration.GridSpacingItemDecoration; import com.lxj.xpopup.impl.PartShadowPopupView; diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomDicPopView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomDicPopView.java deleted file mode 100644 index 7b84f67..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomDicPopView.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.content.Context; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.listener.OnItemClickListener; -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.adapter.SelectDicAdapter; -import com.dahe.mylibrary.bean.DictBean; -import com.dahe.mylibrary.bean.StateBean; -import com.lxj.xpopup.core.AttachPopupView; - -import java.util.List; - -/** - * Description: 自定义局部阴影弹窗 - * Create by dance, at 2018/12/21 - */ -public class CustomDicPopView extends AttachPopupView { - private Context ctx; - private RecyclerView recyclerView; - private List wordList; - private SelectDicAdapter adapter; - private int selectPos; - - public CustomDicPopView(@NonNull Context context, List wordList, int selectPos) { - super(context); - this.ctx = context; - this.wordList= wordList; - this.selectPos = selectPos; - } - - @Override - protected int getImplLayoutId() { - return R.layout.custom_dic_popup; - } - - - @Override - protected void onCreate() { - super.onCreate(); - recyclerView = findViewById(R.id.recyclerView); - LinearLayoutManager linearLayoutManager = new LinearLayoutManager(ctx, RecyclerView.VERTICAL, false); -// recyclerView.addItemDecoration(new RecycleViewDivider(ctx,RecyclerView.VERTICAL)); - recyclerView.setLayoutManager(linearLayoutManager); - adapter = new SelectDicAdapter(-1, wordList,selectPos); - recyclerView.setAdapter(adapter); - - adapter.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) { - if (listener!=null){ - listener.selectChange(wordList.get(position),position); - } - ((SelectDicAdapter)adapter).setSelect(position); - adapter.notifyDataSetChanged(); - dismiss(); - } - }); - - } - - @Override - protected void onShow() { - super.onShow(); - Log.e("tag", "CustomPartShadowPopupView onShow"); - } - - @Override - protected void onDismiss() { - super.onDismiss(); - Log.e("tag", "CustomPartShadowPopupView onDismiss"); - } - - - private OnSelectChangeListener listener; - public CustomDicPopView setOnSelectChangeListener(OnSelectChangeListener listener){ - this.listener = listener; - return this; - } - public interface OnSelectChangeListener{ - void selectChange(StateBean item ,int postion); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomPartShadowPopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomPartShadowPopupView.java deleted file mode 100644 index d42f762..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/CustomPartShadowPopupView.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.app.Activity; -import android.content.Context; -import android.util.Log; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.fragment.app.FragmentActivity; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.listener.OnItemClickListener; -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.wapper.SelectSimAdapter; -import com.luck.picture.lib.decoration.GridSpacingItemDecoration; -import com.lxj.xpopup.impl.PartShadowPopupView; - -import java.util.List; - -/** - * Description: 自定义局部阴影弹窗 - * Create by dance, at 2018/12/21 - */ -public class CustomPartShadowPopupView extends PartShadowPopupView { - private Context ctx; - private RecyclerView recyclerView; - private List wordList; - private SelectSimAdapter adapter; - private String selectString; - - public CustomPartShadowPopupView(@NonNull Activity context, List wordList, String selectString) { - super(context); - this.wordList= wordList; - this.selectString = selectString; - } - - @Override - protected int getImplLayoutId() { - return R.layout.custom_part_shadow_popup; - } - - - @Override - protected void onCreate() { - super.onCreate(); - recyclerView = findViewById(R.id.recyclerView); - GridLayoutManager gridLayoutManager = new GridLayoutManager(ctx, 4); - recyclerView.addItemDecoration(new GridSpacingItemDecoration(4, 20, false)); - recyclerView.setLayoutManager(gridLayoutManager); - adapter = new SelectSimAdapter(-1, wordList,selectString); - recyclerView.setAdapter(adapter); - - adapter.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) { - if (listener!=null){ - listener.selectChange(wordList.get(position),position); - } - ((SelectSimAdapter)adapter).setSelect(wordList.get(position)); - adapter.notifyDataSetChanged(); - dismiss(); - } - }); - - } - - @Override - protected void onShow() { - super.onShow(); - Log.e("tag", "CustomPartShadowPopupView onShow"); - } - - @Override - protected void onDismiss() { - super.onDismiss(); - Log.e("tag", "CustomPartShadowPopupView onDismiss"); - } - - - private OnSelectChangeListener listener; - public CustomPartShadowPopupView setOnSelectChangeListener(OnSelectChangeListener listener){ - this.listener = listener; - return this; - } - public interface OnSelectChangeListener{ - void selectChange(String item ,int postion); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/InputPopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/InputPopupView.java deleted file mode 100644 index e8e8529..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/InputPopupView.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.content.Context; -import android.text.TextUtils; -import android.util.Log; -import android.widget.EditText; -import android.widget.TextView; - -import androidx.annotation.NonNull; - -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.utils.ToastUtils; -import com.lxj.xpopup.core.CenterPopupView; -import com.lxj.xpopup.util.KeyboardUtils; - -/** - * Description: 自定义局部阴影弹窗 - * Create by dance, at 2018/12/21 - */ -public class InputPopupView extends CenterPopupView { - private Context ctx; - - - public InputPopupView(@NonNull Context context) { - super(context); - this.ctx = context; - } - - @Override - protected int getImplLayoutId() { - return R.layout.my_confim_popup_input; - } - - - @Override - protected void onCreate() { - super.onCreate(); - EditText etInput = findViewById(R.id.et_input); - TextView tvCancel = findViewById(R.id.tv_cancel); - TextView tvConfirm = findViewById(R.id.tv_confirm); - if (listener != null) { - tvConfirm.setOnClickListener(view -> { - if (TextUtils.isEmpty(etInput.getText().toString().trim())){ - KeyboardUtils.hideSoftInput(tvConfirm); - ToastUtils.showToast(ctx,"请填写取消原因"); - return; - } - listener.okClick(etInput.getText().toString()); - dismiss(); - }); - } - - tvCancel.setOnClickListener(v -> dismiss()); - - } - - @Override - protected void onShow() { - super.onShow(); - Log.e("tag", "CustomPartShadowPopupView onShow"); - } - - @Override - protected void onDismiss() { - super.onDismiss(); - Log.e("tag", "CustomPartShadowPopupView onDismiss"); - } - - - private OnOkListener listener; - - public InputPopupView setOnOkListener(OnOkListener listener) { - this.listener = listener; - return this; - } - - public interface OnOkListener { - void okClick(String item); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/NodePopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/NodePopupView.java deleted file mode 100644 index b376d25..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/NodePopupView.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.content.Context; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.listener.OnItemClickListener; -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.adapter.NodeAdapter; -import com.dahe.mylibrary.bean.NodeBean; -import com.dahe.mylibrary.net.JsonUtils; -import com.dahe.mylibrary.utils.ToastUtils; -import com.lxj.xpopup.core.CenterPopupView; - -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.List; - -public class NodePopupView extends CenterPopupView { - - - private Context context; - private List data; - public NodePopupView(Context context,String data) { - super(context); - this.context = context; - ArrayList nodeBeans = JsonUtils.getInstance().jsonToList(data, NodeBean.class); - this.data = nodeBeans; - } - - @Override - protected int getImplLayoutId() { - return R.layout.view_node; - } - - @Override - protected void onCreate() { - super.onCreate(); - TextView tvTitle = (TextView) findViewById(R.id.tvTitle); - ImageView ivCha = (ImageView) findViewById(R.id.ivCha); - LinearLayout llCha = (LinearLayout) findViewById(R.id.llCha); - Button btnOK = (Button) findViewById(R.id.btnOK); - RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); - recyclerView.setLayoutManager(new LinearLayoutManager(context,RecyclerView.VERTICAL,false)); - recyclerView.setHasFixedSize(true); - NodeAdapter nodeAdapter = new NodeAdapter(-1,data); - recyclerView.setAdapter(nodeAdapter); - - - nodeAdapter.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(@NonNull @NotNull BaseQuickAdapter adapter, @NonNull @NotNull View view, int position) { - NodeBean nodeSelectBean = data.get(position); - if (!"0".equals(nodeSelectBean.getState())){ - ToastUtils.showToast(context,"该节点不可操作"); - return; - } - nodeSelectBean.setSelect("1".equals(nodeSelectBean.isSelect())?"0":"1"); - nodeAdapter.notifyItemChanged(position); - } - }); - - btnOK.setOnClickListener(v -> { - if (listener!=null){ - ArrayList temp = new ArrayList<>(); - for (int i = 0; i < data.size(); i++) { - NodeBean nodeSelectBean = data.get(i); - if ("1".equals(nodeSelectBean.isSelect())){ - temp.add(nodeSelectBean); - } - - } - if (temp.size()<=0){ - ToastUtils.showToast(context,"至少存在一个节点"); - return; - } - listener.okClick(JsonUtils.getInstance().toJson(data)); - temp = null; - dismiss(); - } - }); - llCha.setOnClickListener(v -> { - dismiss(); - }); - } - - - private OnOkListener listener; - - public NodePopupView setOnOkListener(OnOkListener listener) { - this.listener = listener; - return this; - } - - public interface OnOkListener { - void okClick(String data); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupTipsView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupTipsView.java deleted file mode 100644 index 4f08bd1..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupTipsView.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.content.Context; -import android.util.Log; -import android.widget.TextView; - -import androidx.annotation.NonNull; - -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.bean.TipsBean; -import com.lxj.xpopup.core.CenterPopupView; - -/** - * Description: 自定义局部阴影弹窗 - * Create by dance, at 2018/12/21 - */ -public class TextPopupTipsView extends CenterPopupView { - private TipsBean data; - private Context ctx; - - - public TextPopupTipsView(@NonNull Context context, TipsBean data) { - super(context); - this.data = data; - - } - - @Override - protected int getImplLayoutId() { - return R.layout.my_confim_popup_tip; - } - - - @Override - protected void onCreate() { - super.onCreate(); - TextView etInput = findViewById(R.id.tv_input); - TextView tvTitle = findViewById(R.id.tv_title); - TextView tvCancel = findViewById(R.id.tv_cancel); - TextView tvConfirm = findViewById(R.id.tv_confirm); - tvTitle.setText(data.getTitle()); - etInput.setText(data.getContent()); - if (listener != null) { - tvConfirm.setOnClickListener(view -> { - listener.okClick(); - dismiss(); - }); - } - - tvCancel.setOnClickListener(v -> dismiss()); - - } - - @Override - protected void onShow() { - super.onShow(); - Log.e("tag", "CustomPartShadowPopupView onShow"); - } - - @Override - protected void onDismiss() { - super.onDismiss(); - Log.e("tag", "CustomPartShadowPopupView onDismiss"); - } - - - private OnOkListener listener; - - public TextPopupTipsView setOnOkListener(OnOkListener listener) { - this.listener = listener; - return this; - } - - public interface OnOkListener { - void okClick(); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupView.java b/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupView.java deleted file mode 100644 index 798a3b9..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/cuspop/TextPopupView.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.dahe.mylibrary.cuspop; - -import android.content.Context; -import android.util.Log; -import android.widget.TextView; - -import androidx.annotation.NonNull; - -import com.dahe.mylibrary.R; -import com.lxj.xpopup.core.CenterPopupView; - -/** - * Description: 自定义局部阴影弹窗 - * Create by dance, at 2018/12/21 - */ -public class TextPopupView extends CenterPopupView { - private String data; - private Context ctx; - - - public TextPopupView(@NonNull Context context,String data) { - super(context); - this.data = data; - - } - - @Override - protected int getImplLayoutId() { - return R.layout.my_confim_popup_unus; - } - - - @Override - protected void onCreate() { - super.onCreate(); - TextView etInput = findViewById(R.id.tv_input); - TextView tvCancel = findViewById(R.id.tv_cancel); - TextView tvConfirm = findViewById(R.id.tv_confirm); - etInput.setText(data); - if (listener != null) { - tvConfirm.setOnClickListener(view -> { - listener.okClick(etInput.getText().toString()); - dismiss(); - }); - } - - tvCancel.setOnClickListener(v -> dismiss()); - - } - - @Override - protected void onShow() { - super.onShow(); - Log.e("tag", "CustomPartShadowPopupView onShow"); - } - - @Override - protected void onDismiss() { - super.onDismiss(); - Log.e("tag", "CustomPartShadowPopupView onDismiss"); - } - - - private OnOkListener listener; - - public TextPopupView setOnOkListener(OnOkListener listener) { - this.listener = listener; - return this; - } - - public interface OnOkListener { - void okClick(String item); - } -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java b/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java index 27e7ddc..694a18e 100644 --- a/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java +++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/JsonInterceptor.java @@ -2,11 +2,6 @@ package com.dahe.mylibrary.net; import android.text.TextUtils; import android.util.Log; - - -import com.google.zxing.common.StringUtils; - -import org.json.JSONArray; import org.json.JSONObject; import java.io.IOException; diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/LocationUtil.java b/mylibrary/src/main/java/com/dahe/mylibrary/utils/LocationUtil.java deleted file mode 100644 index 6a2d88b..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/LocationUtil.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.dahe.mylibrary.utils; - -import android.Manifest; -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.pm.PackageManager; -import android.location.Address; -import android.location.Geocoder; -import android.location.Location; -import android.location.LocationListener; -import android.location.LocationManager; -import android.location.LocationProvider; -import android.os.Bundle; -import android.util.Log; - -import androidx.core.app.ActivityCompat; - -import java.io.IOException; -import java.util.List; - -import io.reactivex.rxjava3.annotations.Nullable; -import pub.devrel.easypermissions.EasyPermissions; - -public class LocationUtil { - private static OnResponseListener responseListener; - private static LocationUtil locationUtil; - - private LocationManager locationManager; - private Location currentBestLocation; - private NetworkListener networkListener; - private GPSLocationListener gpsListener; - - private LocationUtil() { - } - - /** - * 定位模式 - */ - public enum Mode { - NETWORK, //网络定位 - GPS, //GPS定位 - AUTO //自动定位,使用网络或GPS定位 - } - - - public static final int NO_PERMISSION = 1; //没权限 - public static final int GPS_CLOSE = 2; //GPS是关闭的 - public static final int UNAVAILABLE = 3; //不可用 - - /** - * 请求定位 - */ - public static void requestLocation(Context context, Mode mode, OnResponseListener onResponseListener) { - LocationUtil.responseListener = onResponseListener; - if (EasyPermissions.hasPermissions(context, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.ACCESS_COARSE_LOCATION)) { - Log.i("lj", "获取定位权限,开始定位"); - //开始定位 - locationUtil = new LocationUtil(); - locationUtil.startLocation(context, mode); - } else { - Log.i("lj", "没有定位权限,定位失败"); - String provider = mode == Mode.GPS ? LocationManager.GPS_PROVIDER : LocationManager.NETWORK_PROVIDER; - onResponseListener.onErrorResponse(provider, NO_PERMISSION); - } - } - - /** - * 开始定位 - */ - private void startLocation(Context context, Mode mode) { - locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); - - if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - switch (mode) { - case NETWORK: - if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { - Log.i("lj", "网络定位"); - networkListener = new NetworkListener(); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 500, 0.1f, networkListener); - } else { - responseListener.onErrorResponse(LocationManager.NETWORK_PROVIDER, UNAVAILABLE); - } - break; - case GPS: - if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { - Log.i("lj","GPS定位"); - gpsListener = new GPSLocationListener(); - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 2, 0.1f, gpsListener); - } else { - responseListener.onErrorResponse(LocationManager.GPS_PROVIDER, GPS_CLOSE); - } - - break; - case AUTO: - if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { - Log.i("lj","自动定位选择网络定位"); - networkListener = new NetworkListener(); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 500, 0.1f, networkListener); - } else if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { - Log.i("lj","自动定位选择gps"); - gpsListener = new GPSLocationListener(); - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 2, 0.1f, gpsListener); - } else { - responseListener.onErrorResponse(LocationManager.NETWORK_PROVIDER, UNAVAILABLE); - } - - break; - default: - - break; - } - } else { - Log.i("lj","无权限"); - } - } - - /** - * 停止定位 - */ - public static void stopLocation() { - if (locationUtil == null) { - Log.i("lj","locationUtil is null"); - return; - } - if (locationUtil.networkListener != null) { - locationUtil.locationManager.removeUpdates(locationUtil.networkListener); - } - if (locationUtil.gpsListener != null) { - locationUtil.locationManager.removeUpdates(locationUtil.gpsListener); - } -// L.i("停止定位"); - } - - private class GPSLocationListener implements LocationListener { - @Override - public void onLocationChanged(Location location) { -// L.i("onLocationChanged"); - if (location != null) { -// L.i("GPS定位成功"); -// L.i("GPS定位耗时:" + ((System.currentTimeMillis() - l) / 1000) + "秒"); - boolean isBetter = isBetterLocation(location, currentBestLocation); - if (isBetter) { - currentBestLocation = location; - } - double latitude = currentBestLocation.getLatitude(); //纬度 - double longitude = currentBestLocation.getLongitude(); //经度 - responseListener.onSuccessResponse(latitude, longitude); - } else { -// L.i("location is null"); - } - } - - @SuppressLint("MissingPermission") - @Override - public void onStatusChanged(String provider, int status, Bundle extras) { -// L.i("onStatusChanged:" + status); - if (status == LocationProvider.OUT_OF_SERVICE || status == LocationProvider.TEMPORARILY_UNAVAILABLE) { -// L.i("GPS定位失败"); - //如果之前没有开启过网络定位,自动切换到网络定位 - if (networkListener == null) { - //开启网络定位 - networkListener = new NetworkListener(); - locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, networkListener); - } - } - } - - @Override - public void onProviderEnabled(String provider) { -// L.i("onProviderEnabled"); - } - - @Override - public void onProviderDisabled(String provider) { -// L.i("onProviderDisabled"); - } - } - - private class NetworkListener implements LocationListener { - @Override - public void onLocationChanged(Location location) { - if (location != null) { -// L.i("网络定位成功"); - - boolean isBetter = isBetterLocation(location, currentBestLocation); - if (isBetter) { - currentBestLocation = location; - } - double latitude = currentBestLocation.getLatitude(); //纬度 - double longitude = currentBestLocation.getLongitude(); //经度 - responseListener.onSuccessResponse(latitude, longitude); - - } - } - - @Override - public void onStatusChanged(String provider, int status, Bundle extras) { - if (status == LocationProvider.OUT_OF_SERVICE || status == LocationProvider.TEMPORARILY_UNAVAILABLE) { -// Log.i("网络定位失败"); - responseListener.onErrorResponse(LocationManager.NETWORK_PROVIDER, UNAVAILABLE); - } - } - - @Override - public void onProviderEnabled(String provider) { -// L.e("可用"); - } - - @Override - public void onProviderDisabled(String provider) { -// L.e("不可用"); - } - } - - private static final int TWO_MINUTES = 1000 * 60 * 2; - - /** - * 比较最新获取到的位置是否比当前最好的位置更好 - * - * @param location 最新获得的位置 - * @param currentBestLocation 当前获取到的最好的位置 - * @return 最新获取的位置比当前最好的位置更好则返回true - */ - private boolean isBetterLocation(Location location, Location currentBestLocation) { - if (currentBestLocation == null) { - // A new locationUtil is always better than no locationUtil - return true; - } - - //实时性 - // Check whether the new locationUtil fix is newer or older - long timeDelta = location.getTime() - currentBestLocation.getTime(); - boolean isSignificantlyNewer = timeDelta > TWO_MINUTES; //最新位置比当前位置晚两分钟定位 - boolean isSignificantlyOlder = timeDelta < -TWO_MINUTES;//最新位置比当前位置早两分钟定位 - boolean isNewer = timeDelta > 0; - - // If it's been more than two minutes since the current locationUtil, use the new locationUtil - // because the user has likely moved - if (isSignificantlyNewer) { - return true; - // If the new locationUtil is more than two minutes older, it must be worse - } else if (isSignificantlyOlder) { - return false; - } - - //精确性 - // Check whether the new locationUtil fix is more or less accurate - //locationUtil.getAccuracy()值越小越精确 - int accuracyDelta = (int) (location.getAccuracy() - currentBestLocation.getAccuracy()); - boolean isLessAccurate = accuracyDelta > 0; //最新的位置不如当前的精确 - boolean isMoreAccurate = accuracyDelta < 0; //最新的位置比当前的精确 - //最新的位置不如当前的精确,但是相差在一定范围之内 - boolean isSignificantlyLessAccurate = accuracyDelta > 200; - - // Check if the old and new locationUtil are from the same provider - boolean isFromSameProvider = isSameProvider(location.getProvider(), - currentBestLocation.getProvider()); - - // Determine locationUtil quality using a combination of timeliness and accuracy - if (isMoreAccurate) { - return true; - } else if (isNewer && !isLessAccurate) { - return true; - } else if (isNewer && !isSignificantlyLessAccurate && isFromSameProvider) { - return true; - } - return false; - } - - /** - * Checks whether two providers are the same - */ - private boolean isSameProvider(String provider1, String provider2) { - if (provider1 == null) { - return provider2 == null; - } - return provider1.equals(provider2); - } - - public interface OnResponseListener { - /** - * 定位成功 - * - * @param latitude 纬度 - * @param longitude 经度 - */ - void onSuccessResponse(double latitude, double longitude); - - /** - * 定位失败 - * - * @param provider provider - * @param status 失败码 - */ - void onErrorResponse(String provider, int status); - } - - /** - * 获取地址 - * - * @param context Context - * @param latitude 纬度 - * @param longitude 经度 - * @return Address - */ - public static @Nullable - Address getAddress(Context context, double latitude, double longitude) { - Geocoder geocoder = new Geocoder(context); - try { - List
list = geocoder.getFromLocation(latitude, longitude, 3); - if (list.size() > 0) { - Address address = list.get(0); -// Log.i("省:" + address.getAdminArea()); -// Log.i("市:" + address.getLocality()); -// Log.i("县/区:" + address.getSubLocality()); - return address; - } - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - -} diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/VersionUtils.java b/mylibrary/src/main/java/com/dahe/mylibrary/utils/VersionUtils.java deleted file mode 100644 index b03f60a..0000000 --- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/VersionUtils.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.dahe.mylibrary.utils; - -import android.app.Dialog; -import android.content.Context; -import android.content.DialogInterface; -import android.text.TextUtils; -import android.text.method.ScrollingMovementMethod; -import android.util.Log; -import android.view.KeyEvent; -import android.view.View; -import android.widget.ProgressBar; -import android.widget.TextView; - -import androidx.annotation.Nullable; - -import com.allenliu.versionchecklib.core.http.HttpParams; -import com.allenliu.versionchecklib.core.http.HttpRequestMethod; -import com.allenliu.versionchecklib.v2.AllenVersionChecker; -import com.allenliu.versionchecklib.v2.builder.DownloadBuilder; -import com.allenliu.versionchecklib.v2.builder.RequestVersionBuilder; -import com.allenliu.versionchecklib.v2.builder.UIData; -import com.allenliu.versionchecklib.v2.callback.CustomDownloadingDialogListener; -import com.allenliu.versionchecklib.v2.callback.CustomVersionDialogListener; -import com.allenliu.versionchecklib.v2.callback.RequestVersionListener; -import com.dahe.mylibrary.R; -import com.dahe.mylibrary.bean.VersionBean; -import com.dahe.mylibrary.dialog.VersionDialog; -import com.dahe.mylibrary.net.CommonResponseBean; -import com.dahe.mylibrary.net.JsonUtils; -import com.google.gson.reflect.TypeToken; - -import java.lang.reflect.Type; - -public class VersionUtils { - - - private static class SingletonHolder { - private static final VersionUtils INSTANCE = new VersionUtils(); - } - - private VersionUtils() { - } - - public static final VersionUtils getInstance() { - return SingletonHolder.INSTANCE; - } - - public void checkVersion(Context ctx, String api,boolean isShow) { - HttpParams httpParams = new HttpParams(); - httpParams.put("appType", "1"); - DownloadBuilder request = AllenVersionChecker - .getInstance() - .requestVersion() - .setRequestMethod(HttpRequestMethod.GET) - .setRequestUrl(api) - .setRequestParams(httpParams) - .request(new RequestVersionListener() { - @Nullable - @org.jetbrains.annotations.Nullable - @Override - public UIData onRequestVersionSuccess(DownloadBuilder downloadBuilder, String result) { - try { - if (StringUtils.isEmpty(result)) - return null; - Type type = new TypeToken>() { - }.getType(); - CommonResponseBean o = JsonUtils.getInstance().fromJson(result, type); - VersionBean.ParamsDao data = o.getData().getData(); - if ("1".equals(data.getUpdateType())) { - downloadBuilder.setForceRedownload(true); - }else{ - downloadBuilder.setForceRedownload(false); - } - if (AppUtils.getAppVersionCode() < data.getVersion()) { - UIData uiData = UIData.create(); - uiData.setTitle(data.getVersionName()); - uiData.setDownloadUrl(data.getApkUrl()); - uiData.setContent(data.getIntroduce()); - return uiData; - } - if (isShow){ - ToastUtils.showToast(ctx,"当前已是最新版本啊!"); - } - return null; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - @Override - public void onRequestVersionFailure(String message) { - - } - }); - - request.setCustomVersionDialogListener(createCustomDialogTwo(request)); - request.setCustomDownloadingDialogListener(createCustomDownloadingDialog(ctx)).executeMission(ctx); - } - - private CustomVersionDialogListener createCustomDialogTwo(DownloadBuilder request) { - return (context, versionBundle) -> { - VersionDialog baseDialog = new VersionDialog(context, R.style.BaseDialog, R.layout.custom_dialog_two_layout2); - TextView textView = baseDialog.findViewById(R.id.tv_msg); - TextView tvVersion = baseDialog.findViewById(R.id.tvVersion); - tvVersion.setText(request.getVersionBundle().getTitle()+" 版本更新"); - textView.setMovementMethod(ScrollingMovementMethod.getInstance()); - RequestVersionBuilder requestVersionBuilder = request.getRequestVersionBuilder(); -// TextView tvTitle = baseDialog.findViewById(R.id.tv_title); - baseDialog.findViewById(R.id.close).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - boolean forceRedownload = request.isForceRedownload(); - if (forceRedownload){ - ToastUtils.showToast(context,"请更新版本"); - }else{ - baseDialog.cancel(); - baseDialog.dismiss(); - AllenVersionChecker.getInstance().cancelAllMission(); - } - - } - }); -// textView.setText(versionBundle.getContent()); - textView.setText(versionBundle.getContent()); - baseDialog.setCanceledOnTouchOutside(request.isForceRedownload()?false:true); - baseDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - if (KeyEvent.KEYCODE_BACK==event.getKeyCode()&&request.isForceRedownload()){ - ToastUtils.showToast(context,"请更新版本"); - return true; - } - return false; - } - }); - baseDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - - } - }); - return baseDialog; - }; - } - - - /** - * 自定义下载中对话框,下载中会连续回调此方法 updateUI - * 务必用库传回来的context 实例化你的dialog - * - * @param ctx - * @return - */ - private CustomDownloadingDialogListener createCustomDownloadingDialog(Context ctx) { - return new CustomDownloadingDialogListener() { - @Override - public Dialog getCustomDownloadingDialog(Context context, int progress, UIData versionBundle) { - VersionDialog baseDialog = new VersionDialog(context, R.style.BaseDialog, R.layout.dialog_download_layout); - return baseDialog; - } - - @Override - public void updateUI(Dialog dialog, int progress, UIData versionBundle) { - TextView tvProgress = dialog.findViewById(R.id.tv_progress); - ProgressBar progressBar = dialog.findViewById(R.id.pb); - progressBar.setProgress(progress); - tvProgress.setText(ctx.getString(R.string.versionchecklib_progress, progress)); - } - }; - } - -// private NotificationBuilder createCustomNotification(Context ctx) { -// return NotificationBuilder.create() -// .setRingtone(true) -// .setIcon(R.mipmap.) -// .setTicker("custom_ticker") -// .setContentTitle("custom title") -// .setContentText(ctx.getString(R.string.custom_content_text)); -// } -} diff --git a/mylibrary/src/main/res/layout/custom_dialog_two_layout.xml b/mylibrary/src/main/res/layout/custom_dialog_two_layout.xml deleted file mode 100644 index bb372d4..0000000 --- a/mylibrary/src/main/res/layout/custom_dialog_two_layout.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - -