| | |
| | | package com.igo.user.ui |
| | | |
| | | import android.Manifest |
| | | import android.annotation.SuppressLint |
| | | import android.app.Activity |
| | | import android.content.Intent |
| | | import android.graphics.Paint |
| | |
| | | import androidx.fragment.app.Fragment |
| | | import androidx.fragment.app.FragmentPagerAdapter |
| | | import androidx.lifecycle.lifecycleScope |
| | | import androidx.transition.Visibility |
| | | import androidx.viewpager.widget.PagerAdapter |
| | | import androidx.viewpager.widget.ViewPager |
| | | import androidx.viewpager.widget.ViewPager.OnPageChangeListener |
| | | import cn.sinata.rxnetty.NettyClient |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.invisible |
| | |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optInt |
| | | import cn.sinata.xldutils.utils.optString |
| | | import cn.sinata.xldutils.utils.showAllowingStateLoss |
| | | import cn.sinata.xldutils.visible |
| | | import com.facebook.drawee.view.SimpleDraweeView |
| | | import com.flyco.tablayout.SlidingTabLayout |
| | | import com.flyco.tablayout.listener.OnTabSelectListener |
| | | import com.google.android.gms.maps.CameraUpdateFactory |
| | | import com.google.android.gms.maps.model.LatLng |
| | | import com.igo.user.BuildConfig |
| | |
| | | import com.igo.user.dialog.AlertDialog |
| | | import com.igo.user.dialog.BannerDialog |
| | | import com.igo.user.dialog.TipDialog |
| | | import com.igo.user.dialog.UserRuleDialog |
| | | import com.igo.user.network.HttpManager |
| | | import com.igo.user.network.entity.Function |
| | | import com.igo.user.network.entity.UserInfo |
| | |
| | | import com.igo.user.ui.HomeActivity.Companion.funcHome |
| | | import com.igo.user.ui.HomeActivity.Companion.latHome |
| | | import com.igo.user.ui.HomeActivity.Companion.lonHome |
| | | import com.igo.user.ui.charter.CharterFragment |
| | | import com.igo.user.ui.crosscity.CrossCityFragment |
| | | import com.igo.user.ui.crosscity.PayCrossActivity |
| | | import com.igo.user.ui.login.LoginActivity |
| | | import com.igo.user.ui.logistics.LogisticsFragment |
| | | import com.igo.user.ui.mine.FeedbackActivity |
| | | import com.igo.user.ui.mine.FinishMailActivity |
| | | import com.igo.user.ui.mine.InvokeListActivity |
| | | import com.igo.user.ui.mine.MsgActivity |
| | | import com.igo.user.ui.mine.MyCouponActivity |
| | |
| | | import com.igo.user.ui.trip.ScanActivity |
| | | import com.igo.user.ui.trip.TripActivity |
| | | import com.igo.user.utils.Const |
| | | import com.igo.user.utils.PlaceHolderFragment |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import kotlinx.coroutines.delay |
| | | import kotlinx.coroutines.launch |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.sdk27.coroutines.onClick |
| | | import org.jetbrains.anko.startActivity |
| | |
| | | } |
| | | |
| | | private val taxiFragment by lazy { MapTripFragment() } |
| | | // private val crossCityFragment by lazy { CrossCityFragment() } |
| | | |
| | | // private val crossCityFragment by lazy { CrossCityFragment() } |
| | | private val logisticsFragment by lazy { LogisticsFragment() } |
| | | // private val charterFragment by lazy { CharterFragment() } |
| | | // private val charterFragment by lazy { CharterFragment() } |
| | | |
| | | //起点信息,传递给扫码下单页面 |
| | | var startLat = 0.0 |
| | |
| | | |
| | | private val fragments = arrayListOf<Fragment>() |
| | | override fun initView() { |
| | | fragments.clear() |
| | | func.clear() |
| | | funcHome.add(Function(1, getString(R.string.专车))) |
| | | funcHome.add(Function(4, getString(R.string.快件))) |
| | | IGoApplication.mainActivity = this |
| | | /* if (checkLogin(false)&&SPUtils.instance().getString(Const.User.EMAIL).isEmpty()){ //当前登录但没有设置邮箱,强制设置邮箱 |
| | | startActivity<FinishMailActivity>("isRegister" to true) |
| | | }*/ |
| | | titleBar.gone() |
| | | tv_city.text = IGoApplication.chooseCityName |
| | | val i = 0 |
| | |
| | | ).build() |
| | | tv_tip.text = stringBuilder |
| | | tv_tip.isVisible = mViewPager.currentItem != 1 |
| | | |
| | | /* if (isOpen&&func.isNotEmpty()){ |
| | | checkNewVersion() |
| | | getPhone() |
| | | getAgreement() |
| | | // titles.addAll(func.map { it.name }) |
| | | |
| | | }else{ |
| | | // fragments.add(taxiFragment) |
| | | showAlert() |
| | | }*/ |
| | | checkNewVersion() |
| | | getPhone() |
| | | getAgreement() |
| | | |
| | | |
| | | titles.addAll(arrayOf(getString(R.string.专车), getString(R.string.快件))) |
| | | fragments.add(taxiFragment) |
| | | fragments.add(logisticsFragment) |
| | | |
| | | taxiFragment.callback = { |
| | | tv_tip.visibility = if (this) View.VISIBLE else View.GONE |
| | | } |
| | | |
| | | |
| | | /* func.forEach { |
| | | if (it.id in (1..2)&&!fragments.contains(taxiFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CROSS_CITY) |
| | | fragments.add(crossCityFragment) |
| | | else if (it.id in (4..5)&&!fragments.contains(logisticsFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CHARTER) |
| | | fragments.add(charterFragment) |
| | | }*/ |
| | | drawer_main.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) |
| | | showLocationDescDialog { |
| | | fragments.clear() |
| | | func.clear() |
| | | funcHome.add(Function(1, getString(R.string.专车))) |
| | | funcHome.add(Function(4, getString(R.string.快件))) |
| | | IGoApplication.mainActivity = this |
| | | |
| | | mViewPager.adapter = object : FragmentPagerAdapter( |
| | | supportFragmentManager, |
| | | BEHAVIOR_SET_USER_VISIBLE_HINT |
| | | ) { |
| | | override fun getItem(position: Int) = fragments[position] |
| | | checkNewVersion() |
| | | getPhone() |
| | | if (isOpen) |
| | | getAds() |
| | | |
| | | override fun getCount() = fragments.size |
| | | |
| | | override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { |
| | | titles.addAll(arrayOf(getString(R.string.专车), getString(R.string.快件))) |
| | | fragments.add(taxiFragment) |
| | | fragments.add(logisticsFragment) |
| | | |
| | | taxiFragment.callback = { |
| | | tv_tip.visibility = if (this) View.VISIBLE else View.GONE |
| | | } |
| | | |
| | | |
| | | /* func.forEach { |
| | | if (it.id in (1..2)&&!fragments.contains(taxiFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CROSS_CITY) |
| | | fragments.add(crossCityFragment) |
| | | else if (it.id in (4..5)&&!fragments.contains(logisticsFragment)) |
| | | |
| | | else if (it.id == Const.OrderType.TYPE_CHARTER) |
| | | fragments.add(charterFragment) |
| | | }*/ |
| | | |
| | | mViewPager.adapter = object : FragmentPagerAdapter( |
| | | supportFragmentManager, |
| | | BEHAVIOR_SET_USER_VISIBLE_HINT |
| | | ) { |
| | | override fun getItem(position: Int) = fragments[position] |
| | | |
| | | override fun getCount() = fragments.size |
| | | |
| | | override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { |
| | | // super.destroyItem(container, position, `object`) |
| | | } |
| | | } |
| | | |
| | | override fun getItemPosition(`object`: Any): Int { |
| | | return PagerAdapter.POSITION_NONE |
| | | override fun getItemPosition(`object`: Any): Int { |
| | | return PagerAdapter.POSITION_NONE |
| | | } |
| | | } |
| | | } |
| | | initTab() |
| | | NettyClient.getInstance().startService() |
| | | initTab() |
| | | NettyClient.getInstance().startService() |
| | | |
| | | // Facebook散列字符串 |
| | | // try { |
| | |
| | | // |
| | | // } |
| | | |
| | | mViewPager.currentItem = intent.getIntExtra("pos", 0).apply { |
| | | if (this == 0) { |
| | | iv_scan.visible() |
| | | tabview1.textColor = getColor(R.color.colorPrimary) |
| | | tabview2.textColor = getColor(cn.sinata.xldutils.R.color.textColor99) |
| | | } else { |
| | | iv_scan.gone() |
| | | tabview1.textColor = getColor(cn.sinata.xldutils.R.color.textColor99) |
| | | tabview2.textColor = getColor(R.color.colorPrimary) |
| | | mViewPager.currentItem = intent.getIntExtra("pos", 0).apply { |
| | | if (this == 0) { |
| | | iv_scan.visible() |
| | | tabview1.textColor = getColor(R.color.colorPrimary) |
| | | tabview2.textColor = getColor(cn.sinata.xldutils.R.color.textColor99) |
| | | } else { |
| | | iv_scan.gone() |
| | | tabview1.textColor = getColor(cn.sinata.xldutils.R.color.textColor99) |
| | | tabview2.textColor = getColor(R.color.colorPrimary) |
| | | } |
| | | if (this == 1) tv_tip.gone() |
| | | } |
| | | if (this == 1) tv_tip.gone() |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | private var privacy: String? = null //隐私协议 |
| | | private var user: String? = null //用户协议 |
| | | private fun getAgreement() { |
| | | if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false)) { |
| | | HttpManager.getH5(1).request(this) { _, data -> |
| | | privacy = data?.optString("content") ?: "" |
| | | showPrivacyAgreement() |
| | | } |
| | | HttpManager.getH5(2).request(this) { _, data -> |
| | | user = data?.optString("content") ?: "" |
| | | showPrivacyAgreement() |
| | | } |
| | | } else if (isOpen) |
| | | getAds() |
| | | } |
| | | ///显示定位描述弹窗 |
| | | private fun showLocationDescDialog(sureCallback:()-> Unit) { |
| | | val rxPermissions = RxPermissions(this); |
| | | if (!rxPermissions.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { |
| | | val tipDialog = TipDialog() |
| | | tipDialog.arguments = bundleOf( |
| | | "msg" to getString(R.string.定位权限说明), |
| | | "ok" to getString(R.string.ok), |
| | | "cancel" to getString(R.string.取消) |
| | | ) |
| | | tipDialog.setCallback(object : TipDialog.OnClickCallback { |
| | | @SuppressLint("CheckResult") |
| | | override fun onOk() { |
| | | rxPermissions.request( |
| | | Manifest.permission.ACCESS_FINE_LOCATION, |
| | | Manifest.permission.ACCESS_COARSE_LOCATION |
| | | ).subscribe { |
| | | if (it) { |
| | | sureCallback.invoke() |
| | | } else { |
| | | myToast(getString(R.string.没有权限)) |
| | | finish() |
| | | } |
| | | } |
| | | } |
| | | |
| | | private fun showPrivacyAgreement() { |
| | | if (privacy != null && user != null) { |
| | | val userRuleDialog = UserRuleDialog() |
| | | userRuleDialog.arguments = bundleOf("privacy" to privacy, "user" to user) |
| | | userRuleDialog.setDismissCallback(object : UserRuleDialog.OnDismiss { |
| | | override fun onDismiss() { |
| | | if (!SPUtils.instance().getBoolean(Const.User.IS_AGREE, false)) |
| | | finish() |
| | | else |
| | | getAds() |
| | | override fun onCancel() { |
| | | finish() |
| | | } |
| | | }) |
| | | userRuleDialog.show(supportFragmentManager, "rule") |
| | | tipDialog.isCancelable = false |
| | | tipDialog.show(supportFragmentManager, "locationDesc") |
| | | } else { |
| | | sureCallback.invoke() |
| | | } |
| | | } |
| | | |