| | |
| | | package com.igo.user |
| | | |
| | | //import com.umeng.commonsdk.UMConfigure |
| | | //import com.umeng.socialize.PlatformConfig |
| | | import android.app.Activity |
| | | import android.app.Application |
| | | import android.content.Intent |
| | | import android.os.Bundle |
| | | import android.text.TextUtils |
| | | import android.util.Log |
| | | import androidx.appcompat.app.AppCompatActivity |
| | | import androidx.core.os.bundleOf |
| | | import androidx.fragment.app.Fragment |
| | | import androidx.fragment.app.FragmentManager |
| | | import androidx.lifecycle.lifecycleScope |
| | | import androidx.lifecycle.withResumed |
| | | import cn.sinata.rxnetty.LogHelper.initLogs |
| | | import cn.sinata.rxnetty.LogHelper.logRecord |
| | | import cn.sinata.rxnetty.NettyClient |
| | |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import com.google.android.gms.maps.MapsInitializer |
| | | import com.google.android.gms.maps.model.LatLng |
| | | import com.google.android.libraries.places.api.Places |
| | | import com.google.gson.Gson |
| | | import com.igo.user.dialog.ChooseCardDialog |
| | |
| | | import com.igo.user.network.HttpManager |
| | | import com.igo.user.network.entity.TrippingInfo |
| | | import com.igo.user.network.request |
| | | import com.igo.user.network.requestByF |
| | | import com.igo.user.ui.MainActivity |
| | | import com.igo.user.ui.SplashActivity |
| | | import com.igo.user.ui.login.LoginActivity |
| | | import com.igo.user.ui.trip.TripActivity |
| | | import com.igo.user.utils.Const |
| | | import com.igo.user.utils.pay.PayListener |
| | | import com.igo.user.utils.pay.PayUtil |
| | | import com.sinata.download.DownloadLibrary |
| | | //import com.umeng.commonsdk.UMConfigure |
| | | //import com.umeng.socialize.PlatformConfig |
| | | import io.reactivex.Flowable |
| | | import io.reactivex.disposables.Disposable |
| | | import org.jetbrains.anko.runOnUiThread |
| | | import org.jetbrains.anko.startActivity |
| | | import org.json.JSONObject |
| | | import java.util.concurrent.TimeUnit |
| | | import com.google.android.gms.maps.model.LatLng |
| | | |
| | | class IGoApplication : BaseApplication(), Application.ActivityLifecycleCallbacks { |
| | | private val TAG = "IGoApplication" |
| | |
| | | appContext = this |
| | | // initializeRecaptchaClient() |
| | | registerActivityLifecycleCallbacks(this) |
| | | setDefaultLanguage() |
| | | DownloadLibrary.init( |
| | | this, |
| | | resources.getIdentifier("ic_launcher", "mipmap", packageName), |
| | |
| | | ) { renderer -> |
| | | Log.e(Const.GoogleTag, "LATEST renderer:${renderer.name}") |
| | | // initializeConsumerSdk() |
| | | } |
| | | } |
| | | |
| | | //设置默认语言 |
| | | private fun setDefaultLanguage() { |
| | | val language = SPUtils.instance().getString("language") |
| | | if (TextUtils.isEmpty(language)) { |
| | | SPUtils.instance().put("language", Const.Language.DEFAULT_LANGUAGE).apply() |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | Const.Method.DRIVER_POSITION -> {//司机位置 |
| | | logRecord(TAG,"received DRIVER_POSITION message $json, listeners size ${listeners.size}") |
| | | logRecord( |
| | | TAG, |
| | | "received DRIVER_POSITION message $json, listeners size ${listeners.size}" |
| | | ) |
| | | val jb = json.optJSONObject("data") |
| | | jb?.let { |
| | | val data = Gson().fromJson(jb.toString(), TrippingInfo::class.java) |
| | |
| | | ) |
| | | tipDialog.setCallback(object : TipDialog.OnClickCallback { |
| | | override fun onOk() { |
| | | confirmDifferencePrice(topAct, orderId, money, 2){ |
| | | confirmDifferencePrice(topAct, orderId, money, 2) { |
| | | getUserInfoWhenPay(topAct, orderId, money) |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | private fun pay(act: BaseActivity, orderId: Int, way: Int, money: Double) { |
| | | HttpManager.payOrderLogisticsSpread(orderId, way).request(act, showDialog = true) { _, data -> |
| | | myToast(getString(R.string.支付成功)) |
| | | } |
| | | HttpManager.payOrderLogisticsSpread(orderId, way) |
| | | .request(act, showDialog = true) { _, data -> |
| | | myToast(getString(R.string.支付成功)) |
| | | } |
| | | } |
| | | |
| | | private fun confirmDifferencePrice(act: BaseActivity, orderId: Int, money: Double, state: Int, block: (() -> Unit)? = null) { |
| | | HttpManager.confirmDifferencePrice(orderId, money, state).request(act, showDialog = true) { _, _ -> |
| | | block?.invoke() |
| | | } |
| | | private fun confirmDifferencePrice( |
| | | act: BaseActivity, |
| | | orderId: Int, |
| | | money: Double, |
| | | state: Int, |
| | | block: (() -> Unit)? = null |
| | | ) { |
| | | HttpManager.confirmDifferencePrice(orderId, money, state) |
| | | .request(act, showDialog = true) { _, _ -> |
| | | block?.invoke() |
| | | } |
| | | } |
| | | |
| | | private fun sendHeart() { |
| | | val userId = SPUtils.instance().getInt(Const.User.USER_ID) |
| | | val token = SPUtils.instance().getString(Const.User.TOKEN) |
| | | if (userId != -1) { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | val l = when (language) { |
| | | "ch" -> "1" |
| | | "fr" -> "3" |
| | | Const.Language.CHINESE -> "1" |
| | | Const.Language.FRENCH -> "3" |
| | | else -> "2" |
| | | } |
| | | NettyClient.getInstance() |
| | |
| | | if (activity is AppCompatActivity) { |
| | | activity.supportFragmentManager.registerFragmentLifecycleCallbacks(object : |
| | | FragmentManager.FragmentLifecycleCallbacks() { |
| | | override fun onFragmentCreated(fm: FragmentManager, f: Fragment, savedInstanceState: Bundle?) { |
| | | override fun onFragmentCreated( |
| | | fm: FragmentManager, |
| | | f: Fragment, |
| | | savedInstanceState: Bundle? |
| | | ) { |
| | | super.onFragmentCreated(fm, f, savedInstanceState) |
| | | Log.i("zmc-pageF", "onFragmentCreated: " + f.javaClass.name) |
| | | } |
| | |
| | | private val wv_2 by lazy { find<WheelView>(R.id.wv_2) } |
| | | private val wv_3 by lazy { find<WheelView>(R.id.wv_3) } |
| | | |
| | | private val language by lazy { SPUtils.instance().getString("language","en") } |
| | | private val language by lazy { SPUtils.instance().getString("language") } |
| | | |
| | | override fun onCreateView( |
| | | inflater: LayoutInflater, |
| | |
| | | val end = if (wv_3.seletedIndex == years.lastIndex) month else 11 |
| | | months.clear() |
| | | months.addAll((0..end)) |
| | | val list = if (language == "en") Const.monthEnglish.subList(0,end+1) else Const.monthFrench.subList(0,end+1) |
| | | val list = if (language == Const.Language.ENGLISH) Const.monthEnglish.subList(0,end+1) else Const.monthFrench.subList(0,end+1) |
| | | wv_2.setItems(list) |
| | | wv_2.setSeletion(if (isFirst) list.lastIndex else 0) |
| | | } |
| | |
| | | import cn.sinata.xldutils.utils.toTimeFrench |
| | | import cn.sinata.xldutils.view.WheelView |
| | | import com.igo.user.R |
| | | import com.igo.user.utils.Const |
| | | import org.jetbrains.anko.matchParent |
| | | import org.jetbrains.anko.support.v4.find |
| | | import org.jetbrains.anko.wrapContent |
| | |
| | | private val tv_title by lazy { find<TextView>(R.id.tv_title) } |
| | | |
| | | private val language by lazy { |
| | | SPUtils.instance().getString("language", "en") |
| | | SPUtils.instance().getString("language") |
| | | } |
| | | |
| | | private val dayTimes = arrayListOf<Long>() |
| | |
| | | * 根据语言格式化日期显示 |
| | | */ |
| | | private fun getFormantDay(time:Long):String{ |
| | | return if (language == "en") time.toTimeEnglish() else if (language == "fr") time.toTimeFrench() else time.toTime("MM月dd") |
| | | return if (language == Const.Language.ENGLISH) time.toTimeEnglish() else if (language == Const.Language.FRENCH) time.toTimeFrench() else time.toTime("MM月dd") |
| | | } |
| | | |
| | | private fun setHour() { |
| | |
| | | activity.dismissDialog() |
| | | if (code == 600) {//token无效 |
| | | super.onError( |
| | | code, when (SPUtils.instance().getString("language", "en")) { |
| | | "ch" -> "您的身份已过期,请重新登录" |
| | | "fr" -> "Votre identité a expiré, veuillez vous reconnecter" |
| | | code, when (SPUtils.instance().getString("language")) { |
| | | Const.Language.CHINESE -> "您的身份已过期,请重新登录" |
| | | Const.Language.FRENCH -> "Votre identité a expiré, veuillez vous reconnecter" |
| | | else -> "Your identity has expired, please log in again" |
| | | } |
| | | ) |
| | |
| | | */ |
| | | fun geoCode(lat:Double,lon: Double): Flowable<GeoBean> { |
| | | //1=简体中文,2=英语,3=法语 |
| | | val language = SPUtils.instance().getString("language","en") |
| | | val lan = if (language == "ch") "zh-CN" else language |
| | | val language = SPUtils.instance().getString("language") |
| | | val lan = if (language == Const.Language.CHINESE) "zh-CN" else language |
| | | return request().geoCode(IGoApplication.tripId,"${lat},${lon}",lan) |
| | | } |
| | | |
| | |
| | | */ |
| | | fun textsearch(key:String,lat: Double,lon: Double): Flowable<SearchBean> { |
| | | //1=简体中文,2=英语,3=法语 |
| | | val language = SPUtils.instance().getString("language","en") |
| | | val lan = if (language == "ch") "zh-CN" else language |
| | | val language = SPUtils.instance().getString("language") |
| | | val lan = if (language == Const.Language.CHINESE) "zh-CN" else language |
| | | return request().textsearch(IGoApplication.tripId,key,"${lat},${lon}",lan) |
| | | // return request().textsearch(key,5.586363,-0.187788,IGoApplication.chooseCityName,lan) //阿克拉 5.586363,-0.187788 |
| | | } |
| | |
| | | */ |
| | | fun autocomplete(key:String,country:String = "gh"): Flowable<AutoCompleteBean> { |
| | | //1=简体中文,2=英语,3=法语 |
| | | val language = SPUtils.instance().getString("language","en") |
| | | val lan = if (language == "ch") "zh-CN" else language |
| | | val language = SPUtils.instance().getString("language") |
| | | val lan = if (language == Const.Language.CHINESE) "zh-CN" else language |
| | | return request().autocomplete(IGoApplication.tripId,key,lan,"country:$country") |
| | | } |
| | | |
| | |
| | | * 路线 |
| | | */ |
| | | fun directions(startLat: Double,startLon: Double,endLat: Double,endLon: Double): Flowable<RouteBean> { |
| | | val language = SPUtils.instance().getString("language","en") |
| | | val lan = if (language == "ch") "zh-CN" else language |
| | | val language = SPUtils.instance().getString("language") |
| | | val lan = if (language == Const.Language.CHINESE) "zh-CN" else language |
| | | return request().directions(IGoApplication.tripId,"${startLat},${startLon}","${endLat},${endLon}",lan) |
| | | } |
| | | |
| | |
| | | }) |
| | | .addInterceptor { chain -> |
| | | //1=简体中文,2=英语,3=印尼语 |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language", Const.Language.DEFAULT_LANGUAGE) |
| | | var request = chain.request() |
| | | if (request.method() == "POST"&&!request.url().toString().contains("base/user/image")) { |
| | | val bodyBuilder = FormBody.Builder() |
| | |
| | | } |
| | | formBody = bodyBuilder.addEncoded( |
| | | "language", when (language) { |
| | | "ch" -> "1" |
| | | "fr" -> "3" |
| | | Const.Language.CHINESE -> "1" |
| | | Const.Language.FRENCH -> "3" |
| | | else -> "2" |
| | | } |
| | | ).build() |
| | |
| | | |
| | | override fun initView() { |
| | | title = getString(R.string.邮寄快件指南) |
| | | if (SPUtils.instance().getString("language", "en") == "fr") { //解决法文标题过长问题 |
| | | if (SPUtils.instance().getString("language") == Const.Language.FRENCH) { //解决法文标题过长问题 |
| | | titleBar.titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f) |
| | | } |
| | | PayUtil.addPayListener(this) |
| | |
| | | import com.igo.user.network.request |
| | | import com.igo.user.ui.TransparentStatusBarActivity |
| | | import com.igo.user.ui.login.AreaCodeActivity |
| | | import com.igo.user.utils.Const |
| | | import com.igo.user.utils.RealNameInputFilter |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.sdk27.coroutines.onClick |
| | |
| | | else{ |
| | | val strings = arrayListOf<String>() |
| | | val dialog = SingleWheelDialog() |
| | | val language = SPUtils.instance().getString("language","en") |
| | | strings.addAll(province.map { if (language == "en") it.englishName else if (language == "fr") it.frenchName else it.chineseName }) |
| | | val language = SPUtils.instance().getString("language") |
| | | strings.addAll(province.map { if (language == Const.Language.ENGLISH) it.englishName else if (language == Const.Language.FRENCH) it.frenchName else it.chineseName }) |
| | | dialog.arguments = bundleOf("data" to strings,"title" to getString(R.string.选择地区)) |
| | | dialog.setCallback(object :StringCallback{ |
| | | override fun onRlt(rlt: String) { |
| | |
| | | province.clear() |
| | | province.addAll(data ?: arrayListOf()) |
| | | val strings = arrayListOf<String>() |
| | | val language = SPUtils.instance().getString("language","en") |
| | | strings.addAll(province.map { if (language == "en") it.englishName else if (language == "fr") it.frenchName else it.chineseName }) |
| | | val language = SPUtils.instance().getString("language") |
| | | strings.addAll(province.map { if (language == Const.Language.ENGLISH) it.englishName else if (language == Const.Language.FRENCH) it.frenchName else it.chineseName }) |
| | | val dialog = SingleWheelDialog() |
| | | dialog.arguments = bundleOf("data" to strings, "title" to getString(R.string.选择地区)) |
| | | dialog.setCallback(object : StringCallback { |
| | |
| | | et_name.filters = arrayOf(RealNameInputFilter()) |
| | | et_city.filters = arrayOf(RealNameInputFilter()) |
| | | et_district.filters = arrayOf(RealNameInputFilter()) |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | et_name.setTextSize(TypedValue.COMPLEX_UNIT_SP,if (language == "ch") 14f else 11f) |
| | | et_phone.setTextSize(TypedValue.COMPLEX_UNIT_SP,if (language == "ch") 14f else 11f) |
| | | val language = SPUtils.instance().getString("language") |
| | | et_name.setTextSize(TypedValue.COMPLEX_UNIT_SP,if (language == Const.Language.CHINESE) 14f else 11f) |
| | | et_phone.setTextSize(TypedValue.COMPLEX_UNIT_SP,if (language == Const.Language.CHINESE) 14f else 11f) |
| | | } |
| | | |
| | | override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
| | |
| | | import com.igo.user.R |
| | | import com.igo.user.dialog.TipDialog |
| | | import com.igo.user.ui.TransparentStatusBarActivity |
| | | import com.igo.user.utils.Const |
| | | import org.jetbrains.anko.find |
| | | |
| | | class LanguageActivity : TransparentStatusBarActivity() { |
| | |
| | | |
| | | override fun initClick() { |
| | | tv_china.setOnClickListener { |
| | | change("ch") |
| | | change(Const.Language.CHINESE) |
| | | } |
| | | |
| | | tv_en.setOnClickListener { |
| | | change("en") |
| | | change(Const.Language.ENGLISH) |
| | | } |
| | | |
| | | tv_fr.setOnClickListener { |
| | | change("fr") |
| | | change(Const.Language.FRENCH) |
| | | } |
| | | } |
| | | |
| | |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.setCallback(object : ShareDialog.Callback { |
| | | override fun onOk(way: Int) { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val languageP = if (language == "ch") 1 else if (language == "en") 2 else 3 |
| | | val language = SPUtils.instance().getString("language") |
| | | val languageP = if (language == Const.Language.CHINESE) 1 else if (language == Const.Language.ENGLISH) 2 else 3 |
| | | val url = String.format( |
| | | Apis.SHARE_URL, |
| | | languageP, |
| | |
| | | webView.loadData(it.optString("content"), "text/html; charset=utf-8", "utf-8") |
| | | } |
| | | } |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | iv_bg.imageResource = when (language) { |
| | | "ch" -> R.mipmap.share_bg |
| | | "fr" -> R.mipmap.share_bg_fr |
| | | Const.Language.CHINESE -> R.mipmap.share_bg |
| | | Const.Language.FRENCH -> R.mipmap.share_bg_fr |
| | | else -> R.mipmap.share_bg_en |
| | | } |
| | | } |
| | |
| | | import com.igo.user.network.HttpManager |
| | | import com.igo.user.network.request |
| | | import com.igo.user.ui.TransparentStatusBarActivity |
| | | import com.igo.user.utils.Const |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.startActivityForResult |
| | | import org.jetbrains.anko.toast |
| | |
| | | singleWheelDialog.show(supportFragmentManager, "sex") |
| | | } |
| | | tv_birth.setOnClickListener { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | if (language == "en" || language == "fr") { |
| | | val language = SPUtils.instance().getString("language") |
| | | if (language == Const.Language.ENGLISH || language == Const.Language.FRENCH) { |
| | | val chooseBirthDialog = ChooseBirthEnglishDialog() |
| | | chooseBirthDialog.setCallback(object : ChooseBirthEnglishDialog.Callback { |
| | | override fun onOk(s: String, formatS: String) { |
| | |
| | | import com.igo.user.R |
| | | import com.igo.user.interfaces.OnDelCallback |
| | | import com.igo.user.network.entity.Coupon |
| | | import com.igo.user.utils.Const |
| | | import org.jetbrains.anko.backgroundResource |
| | | import org.jetbrains.anko.imageResource |
| | | |
| | |
| | | } |
| | | |
| | | fun getUsedRes():Int{ |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | return when(language){ |
| | | "ch"-> R.mipmap.used |
| | | "fr"->R.mipmap.used_f |
| | | Const.Language.CHINESE-> R.mipmap.used |
| | | Const.Language.FRENCH->R.mipmap.used_f |
| | | else->R.mipmap.used_e |
| | | } |
| | | } |
| | | |
| | | fun getExpiredRes():Int{ |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | return when(language){ |
| | | "ch"-> R.mipmap.passd |
| | | "fr"->R.mipmap.passd_f |
| | | Const.Language.CHINESE-> R.mipmap.passd |
| | | Const.Language.FRENCH->R.mipmap.passd_f |
| | | else->R.mipmap.passd_e |
| | | } |
| | | } |
| | |
| | | if (data.isFrozen == 2){ |
| | | clMain.alpha = 0.5f |
| | | frozen.visible() |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | val ic = when(language){ |
| | | "en"->R.mipmap.yidongjie_e |
| | | "ch"->R.mipmap.yidongjie |
| | | Const.Language.ENGLISH->R.mipmap.yidongjie_e |
| | | Const.Language.CHINESE->R.mipmap.yidongjie |
| | | else->R.mipmap.yidongjie_f |
| | | } |
| | | frozen.setImageResource(ic) |
| | |
| | | import com.igo.user.ui.ChooseCityActivity |
| | | import com.igo.user.ui.TransparentStatusBarActivity |
| | | import com.igo.user.ui.trip.adapter.PositionAdapter |
| | | import com.igo.user.utils.Const |
| | | import io.reactivex.subscribers.DisposableSubscriber |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.startActivityForResult |
| | |
| | | lv_position.setMode(SwipeRefreshRecyclerLayout.Mode.None) |
| | | lv_position.setLayoutManager(LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false)) |
| | | title = if (isLogistics) getString(if (isStart) R.string.设置领取点 else R.string.设置目的地) else if(isModify) getString(R.string.设置目的地) else if(isStart){ |
| | | if (SPUtils.instance().getString("language","en") == "fr"){ //解决法文标题过长问题 |
| | | if (SPUtils.instance().getString("language") == Const.Language.FRENCH){ //解决法文标题过长问题 |
| | | titleBar.titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP,12f) |
| | | } |
| | | getString(R.string.设置上车点) |
| | |
| | | private val cl_taxi by lazy { find<View>(R.id.cl_taxi) } |
| | | |
| | | override fun onFirstVisibleToUser() { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | tv_110.setCompoundDrawablesRelativeWithIntrinsicBounds( |
| | | 0, |
| | | if (language == "ch") R.mipmap.icon_110 else R.mipmap.icon_191, |
| | | if (language == Const.Language.CHINESE) R.mipmap.icon_110 else R.mipmap.icon_191, |
| | | 0, |
| | | 0 |
| | | ) |
| | |
| | | private fun setMarker(latLon: LatLng, content: String = "") { |
| | | val options = MarkerOptions() |
| | | options.position(latLon) |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | if (content.isNotEmpty()) { |
| | | val ic = when (language) { |
| | | "en" -> R.mipmap.end_point_e |
| | | "ch" -> R.mipmap.end_point |
| | | Const.Language.ENGLISH -> R.mipmap.end_point_e |
| | | Const.Language.CHINESE -> R.mipmap.end_point |
| | | else -> R.mipmap.end_point_f |
| | | } |
| | | val view = layoutInflater.inflate(R.layout.marker_with_text, null, false) |
| | |
| | | startMarker = aMap.addMarker(options) |
| | | } else { |
| | | val ic = when (language) { |
| | | "en" -> R.mipmap.starting_point_e |
| | | "ch" -> R.mipmap.starting_point |
| | | Const.Language.ENGLISH -> R.mipmap.starting_point_e |
| | | Const.Language.CHINESE -> R.mipmap.starting_point |
| | | else -> R.mipmap.starting_point_f |
| | | } |
| | | options.icon(BitmapDescriptorFactory.fromResource(ic)) |
| | |
| | | } |
| | | if (order!!.isFrozen == 2) { |
| | | tv_frozen.visible() |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | val ic = when (language) { |
| | | "en" -> R.mipmap.yidongjie_e |
| | | "ch" -> R.mipmap.yidongjie |
| | | Const.Language.ENGLISH -> R.mipmap.yidongjie_e |
| | | Const.Language.CHINESE -> R.mipmap.yidongjie |
| | | else -> R.mipmap.yidongjie_f |
| | | } |
| | | tv_frozen.setCompoundDrawablesRelativeWithIntrinsicBounds(0, ic, 0, 0) |
| | |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.setCallback(object : ShareDialog.Callback { |
| | | override fun onOk(way: Int) { //0:wx 1:qq 2:msg |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | val languageP = |
| | | if (language == "ch") 1 else if (language == "en") 2 else 3 |
| | | if (language == Const.Language.CHINESE) 1 else if (language == Const.Language.ENGLISH) 2 else 3 |
| | | val url = String.format( |
| | | Apis.SHARE_URL, |
| | | languageP, |
| | |
| | | * @param isStart true:起点标记 false:终点标记 |
| | | */ |
| | | private fun setMarker(latLon: LatLng, isStart:Boolean = true) { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | |
| | | if (isStart){ |
| | | val ic = when(language){ |
| | | "en"->R.mipmap.starting_point_e |
| | | "ch"->R.mipmap.starting_point |
| | | Const.Language.ENGLISH->R.mipmap.starting_point_e |
| | | Const.Language.CHINESE->R.mipmap.starting_point |
| | | else->R.mipmap.starting_point_f |
| | | } |
| | | val icon = BitmapDescriptorFactory.fromResource(ic) |
| | |
| | | startMarker = aMap.addMarker(options) |
| | | }else{ |
| | | val ic = when(language){ |
| | | "en"->R.mipmap.end_point_e |
| | | "ch"->R.mipmap.end_point |
| | | Const.Language.ENGLISH->R.mipmap.end_point_e |
| | | Const.Language.CHINESE->R.mipmap.end_point |
| | | else->R.mipmap.end_point_f |
| | | } |
| | | val options = MarkerOptions() |
| | |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.setCallback(object :ShareDialog.Callback{ |
| | | override fun onOk(way: Int) { //0:wx 1:qq 2:msg |
| | | val language = SPUtils.instance().getString("language","en") |
| | | val languageP = if (language == "ch") 1 else if (language == "en") 2 else 3 |
| | | val language = SPUtils.instance().getString("language") |
| | | val languageP = if (language == Const.Language.CHINESE) 1 else if (language == Const.Language.ENGLISH) 2 else 3 |
| | | val url = String.format(Apis.SHARE_URL, languageP, languageP,SPUtils.instance().getInt(Const.User.USER_ID)) |
| | | if (way == 3) |
| | | IGoShareUtils.shareWA(this@OrderDetailWithMapActivity,getString(R.string.下载注册即送打车券),url) |
| | |
| | | import com.igo.user.ui.H5Activity |
| | | import com.igo.user.ui.TransparentStatusBarActivity |
| | | import com.igo.user.ui.login.AreaCodeActivity |
| | | import com.igo.user.utils.Const |
| | | import com.tbruyelle.rxpermissions2.RxPermissions |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.startActivity |
| | |
| | | } |
| | | } |
| | | |
| | | val language = SPUtils.instance().getString("language","en") |
| | | if (language == "ch"){ |
| | | val language = SPUtils.instance().getString("language") |
| | | if (language == Const.Language.CHINESE){ |
| | | tv_tip.gravity = Gravity.CENTER |
| | | tv_rule.typeface = Typeface.DEFAULT |
| | | } |
| | |
| | | val tv_name1 = view1.find<TextView>(R.id.tv_name) |
| | | val tv_price1 = view1.find<TextView>(R.id.tv_price) |
| | | tv_name1.text = getString(R.string.活动折扣) |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | tv_price1.text = when(language){ |
| | | "en"->"${100-(order.discount*10).toInt()}%" |
| | | "ch"->"${order.discount}折" |
| | | Const.Language.ENGLISH->"${100-(order.discount*10).toInt()}%" |
| | | Const.Language.CHINESE->"${order.discount}折" |
| | | else->"${100-(order.discount*10).toInt()}%" |
| | | } |
| | | ll_detail.addView(view1) |
| | |
| | | shareDialog.setCallback(object :ShareDialog.Callback{ |
| | | override fun onOk(way: Int) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val languageP = if (language == "ch") 1 else if(language == "fr") 3 else 2 |
| | | val languageP = if (language == Const.Language.CHINESE) 1 else if(language == Const.Language.FRENCH) 3 else 2 |
| | | val url = String.format(Apis.TRIP_URL,languageP,id.toString(),type,languageP) |
| | | if (way == 3) |
| | | IGoShareUtils.shareWA(this@TripActivity,getString(R.string.行程分享内容,SPUtils.instance().getString(Const.User.PHONE)),url) |
| | |
| | | * @param isStart true:起点标记 false:终点标记 |
| | | */ |
| | | private fun setMarker(latLon: LatLng, content: CharSequence = "", isStart: Boolean = true) { |
| | | val language = SPUtils.instance().getString("language", "en") |
| | | val language = SPUtils.instance().getString("language") |
| | | if (isStart) { |
| | | val ic = when (language) { |
| | | "en" -> R.mipmap.starting_point_e |
| | | "ch" -> R.mipmap.starting_point |
| | | Const.Language.ENGLISH -> R.mipmap.starting_point_e |
| | | Const.Language.CHINESE -> R.mipmap.starting_point |
| | | else -> R.mipmap.starting_point_f |
| | | } |
| | | val icon = if (content.isEmpty()) BitmapDescriptorFactory.fromResource(ic) |
| | |
| | | } |
| | | } else { |
| | | val ic = when (language) { |
| | | "en" -> R.mipmap.end_point_e |
| | | "ch" -> R.mipmap.end_point |
| | | Const.Language.ENGLISH -> R.mipmap.end_point_e |
| | | Const.Language.CHINESE -> R.mipmap.end_point |
| | | else -> R.mipmap.end_point_f |
| | | } |
| | | if (endMarker != null) { |
| | |
| | | const val Tag = "IGOLog" |
| | | const val GoogleTag = "Google_Consumer=======>" |
| | | const val PAGE_SIZE = 20 //列表页大小 |
| | | |
| | | //各类第三方key |
| | | const val UMENG_KEY = "6014e26af1eb4f3f9b7d7b35" |
| | | const val LOGIN_KEY = "DyINxe+JJ40/jVOc5KiVYUBCTMwMu6NTOKlk+02P+N0GJC0WEpt3ku4YZmId/jYUl8atB44AuZzD3lBxYFRvJGc06iQ2MN1fxcY5/aglSGzwtscPr8XUdhUE31Jyk1lCQAiN2hAuSubR08B7FHuyjm11S2PH9lxGQX3mWOxZqwKrVWfp5moGg2ZoT2WQco1+mx0MBUbixcInlfxz6PZCiDTrIozc4ErXkCHvQ2H3UTMLCjleUwYEYYHQbg5tCTAniJAeuAy/vvzhYfOMFoBm8cWQHSaklrVOOeeFyojfWJvJdW5xRmkVHQ==" |
| | | const val LOGIN_KEY = |
| | | "DyINxe+JJ40/jVOc5KiVYUBCTMwMu6NTOKlk+02P+N0GJC0WEpt3ku4YZmId/jYUl8atB44AuZzD3lBxYFRvJGc06iQ2MN1fxcY5/aglSGzwtscPr8XUdhUE31Jyk1lCQAiN2hAuSubR08B7FHuyjm11S2PH9lxGQX3mWOxZqwKrVWfp5moGg2ZoT2WQco1+mx0MBUbixcInlfxz6PZCiDTrIozc4ErXkCHvQ2H3UTMLCjleUwYEYYHQbg5tCTAniJAeuAy/vvzhYfOMFoBm8cWQHSaklrVOOeeFyojfWJvJdW5xRmkVHQ==" |
| | | const val WX_APP_ID = "wxee51b2f5147bdd4c" |
| | | const val WX_SECRET = "ae28aa141b837619d4429415451b49e0" |
| | | const val QQ_APP_ID = "1105787937" |
| | |
| | | var BUCKET_NAME = "i-go" |
| | | var OBS_END_POINT = "https://obs.af-south-1.myhuaweicloud.com" |
| | | |
| | | val monthEnglish = arrayListOf("January","February","March","April","May","June","July","August","September","October","November","December") |
| | | val monthFrench = arrayListOf("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre") |
| | | val monthEnglish = arrayListOf( |
| | | "January", |
| | | "February", |
| | | "March", |
| | | "April", |
| | | "May", |
| | | "June", |
| | | "July", |
| | | "August", |
| | | "September", |
| | | "October", |
| | | "November", |
| | | "December" |
| | | ) |
| | | val monthFrench = arrayListOf( |
| | | "Janvier", |
| | | "Février", |
| | | "Mars", |
| | | "Avril", |
| | | "Mai", |
| | | "Juin", |
| | | "Juillet", |
| | | "Août", |
| | | "Septembre", |
| | | "Octobre", |
| | | "Novembre", |
| | | "Décembre" |
| | | ) |
| | | |
| | | const val FIRST_LAUNCH = "isFirst" |
| | | |
| | | //语言 |
| | | object Language { |
| | | //英语 |
| | | const val ENGLISH = "en" |
| | | |
| | | //法语 |
| | | const val FRENCH = "fr" |
| | | |
| | | //汉语 |
| | | const val CHINESE = "ch" |
| | | |
| | | //默认语言 |
| | | const val DEFAULT_LANGUAGE = FRENCH |
| | | } |
| | | |
| | | object User { |
| | | const val TOKEN = "token" |
| | |
| | | const val NO_PHONE = "noPhone" |
| | | } |
| | | |
| | | object Share{ |
| | | object Share { |
| | | const val TITLE = "GOPOST" |
| | | const val TRIP_CONTENT = "你的好友(%s)正在使用GOPOST%s(%s)。" |
| | | } |
| | | |
| | | object OrderType{ //1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车 |
| | | object OrderType { //1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车 |
| | | const val TYPE_SPECIAL = 1 |
| | | const val TYPE_TAXI = 2 |
| | | const val TYPE_CROSS_CITY = 3 |
| | |
| | | const val TYPE_CHARTER = 6 |
| | | } |
| | | |
| | | object Method{ |
| | | object Method { |
| | | const val PING_RECEIVE = "OK" |
| | | const val ORDER_STATUS = "ORDER_STATUS" |
| | | const val DRIVER_POSITION = "DRIVER_POSITION" |
| | |
| | | const val DIFFERENCE = "DIFFERENCE" |
| | | } |
| | | |
| | | object RequestCode{ |
| | | object RequestCode { |
| | | const val START_SITE = 1000 |
| | | const val END_SITE = 1001 |
| | | const val START_ADDRESS = 1010 |
| | |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import com.google.android.gms.common.api.ApiException |
| | | import com.google.android.gms.common.util.CollectionUtils.listOf |
| | | import com.google.android.gms.maps.* |
| | | import com.google.android.gms.maps.model.* |
| | | import com.google.android.gms.maps.CameraUpdateFactory |
| | | import com.google.android.gms.maps.GoogleMap |
| | | import com.google.android.gms.maps.GoogleMapOptions |
| | | import com.google.android.gms.maps.SupportMapFragment |
| | | import com.google.android.gms.maps.model.BitmapDescriptor |
| | | import com.google.android.gms.maps.model.BitmapDescriptorFactory |
| | | import com.google.android.gms.maps.model.CameraPosition |
| | | import com.google.android.gms.maps.model.Circle |
| | | import com.google.android.gms.maps.model.CircleOptions |
| | | import com.google.android.gms.maps.model.LatLng |
| | | import com.google.android.gms.maps.model.LatLngBounds |
| | | import com.google.android.gms.maps.model.Marker |
| | | import com.google.android.gms.maps.model.MarkerOptions |
| | | import com.google.android.gms.maps.model.Polygon |
| | | import com.google.android.gms.maps.model.PolygonOptions |
| | | import com.google.android.gms.maps.model.Polyline |
| | | import com.google.android.gms.maps.model.PolylineOptions |
| | | import com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerGoogleMap |
| | | import com.google.android.libraries.places.api.Places |
| | | import com.google.android.libraries.places.api.model.* |
| | | import com.google.android.libraries.places.api.model.AutocompletePrediction |
| | | import com.google.android.libraries.places.api.model.AutocompleteSessionToken |
| | | import com.google.android.libraries.places.api.model.Place |
| | | import com.google.android.libraries.places.api.model.PlaceLikelihood |
| | | import com.google.android.libraries.places.api.model.TypeFilter |
| | | import com.google.android.libraries.places.api.net.FetchPlaceRequest |
| | | import com.google.android.libraries.places.api.net.FindAutocompletePredictionsRequest |
| | | import com.google.android.libraries.places.api.net.FindCurrentPlaceRequest |
| | |
| | | import com.igo.user.IGoApplication |
| | | import com.igo.user.R |
| | | import com.igo.user.utils.Const |
| | | import okhttp3.* |
| | | import java.util.* |
| | | import okhttp3.MediaType |
| | | import okhttp3.OkHttpClient |
| | | import okhttp3.Request |
| | | import okhttp3.RequestBody |
| | | import okhttp3.Response |
| | | import java.util.Arrays |
| | | import java.util.Collections.emptyList |
| | | import kotlin.collections.get |
| | | |
| | | |
| | | object AMapKit { |
| | |
| | | ) { |
| | | //https://maps.googleapis.com/maps/api/directions/json?origin=39.99709957757345,116.31184045225382&destination=39.949158391497214,116.4154639095068&sensor=false&mode=driving |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()) { |
| | | language = "en" |
| | | } |
| | | var centerStr = getPointStr(centerPoint ?: arrayListOf()) |
| | | var url = "https://maps.googleapis.com/maps/api/directions/json" + |
| | | "?origin=" + start.latitude.toString() + "," + start.longitude.toString() + |
| | |
| | | ) { |
| | | //https://maps.googleapis.com/maps/api/directions/json?origin=39.99709957757345,116.31184045225382&destination=39.949158391497214,116.4154639095068&sensor=false&mode=driving |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()){ |
| | | language = "en" |
| | | } |
| | | val client: OkHttpClient = OkHttpClient().newBuilder() |
| | | .build() |
| | | val mediaType: MediaType = MediaType.parse("text/plain")!! |
| | |
| | | function: ( List<GoogleNearBean2.ResultsBean>) -> Unit |
| | | ) { |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()){ |
| | | language = "en" |
| | | } |
| | | var url = "https://maps.googleapis.com/maps/api/place/nearbysearch/json" + |
| | | "?location="+ lat.toString()+","+lng.toString() + |
| | | "&radius=1500" + |
| | |
| | | fun searchSite(context: Context, content: String?, cityName: String, function: (List<AutocompletePrediction>) -> Unit) { |
| | | val placesClient = Places.createClient(context) |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()){ |
| | | language = "en" |
| | | } |
| | | val token = AutocompleteSessionToken.newInstance() |
| | | // val bounds = RectangularBounds.newInstance( |
| | | // LatLng(-33.880490, 151.184363), LatLng(-33.858754, 151.229596)) |
| | |
| | | */ |
| | | fun getAddress(context: Context,lat:Double,lon:Double,function:(String)->Unit) { |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()){ |
| | | language = "en" |
| | | } |
| | | var url = "https://maps.googleapis.com/maps/api/geocode/json" + |
| | | "?latlng="+ lat.toString() +","+lon.toString() + |
| | | "&language="+language+ |
| | |
| | | } |
| | | fun getAddressName(context: Context,lat:Double,lon:Double,function:(String)->Unit) { |
| | | var language = SPUtils.instance().getString("language") |
| | | if (language.isEmpty()){ |
| | | language = "en" |
| | | } |
| | | var url = "https://maps.googleapis.com/maps/api/geocode/json" + |
| | | "?latlng="+ lat.toString() +","+lon.toString() + |
| | | "&language="+language+ |
| | |
| | | <RadioButton |
| | | android:id="@+id/rb_privacy" |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" |
| | | android:background="@drawable/selector_bg_btn_left" |
| | | android:button="@null" |
| | |
| | | <RadioButton |
| | | android:id="@+id/rb_user" |
| | | android:layout_width="0dp" |
| | | android:layout_height="wrap_content" |
| | | android:layout_height="match_parent" |
| | | android:layout_weight="1" |
| | | android:background="@drawable/selector_bg_btn_right" |
| | | android:button="@null" |
| | |
| | | } |
| | | |
| | | override fun attachBaseContext(newBase: Context?) { |
| | | var language = SPUtils.instance().getString("language") |
| | | val country = SPUtils.instance().getString("country")//todo 特别标注:此处country代表地区而非国家,台湾省是中国的一部分!!(用于区分繁体中文和简体中文) |
| | | if (language.isNullOrEmpty()) { |
| | | language = "en" |
| | | } |
| | | val language = SPUtils.instance().getString("language") |
| | | super.attachBaseContext(LanguageUtil.attachBaseContext(newBase, language, "")) |
| | | } |
| | | |
| | |
| | | * |
| | | */ |
| | | object Error { |
| | | val REQUEST_ERROR = when(SPUtils.instance().getString("language","en")){ |
| | | val REQUEST_ERROR = when(SPUtils.instance().getString("language")){ |
| | | "ch"->"请求出错!" |
| | | "fr"->"Erreur de demande" |
| | | else->"Request Error" |
| | | } |
| | | val PARSER_ERROR = "Data Parse Error!" |
| | | val NET_ERROR = when(SPUtils.instance().getString("language","en")){ |
| | | val NET_ERROR = when(SPUtils.instance().getString("language")){ |
| | | "ch"->"网络异常,请检查您的网络状态!" |
| | | "fr"->"Le réseau est anormal, veuillez vérifier l\'état de votre réseau!" |
| | | else->"The network is abnormal, please check your network status!" |
| | | } |
| | | |
| | | val SERVER_ERROR = when(SPUtils.instance().getString("language","en")){ |
| | | val SERVER_ERROR = when(SPUtils.instance().getString("language")){ |
| | | "ch"->"服务器异常,请稍后再试" |
| | | "fr"->"Erreur de serveur, veuillez réessayer plus tard" |
| | | else->"Server error, please retry later" |
| | |
| | | */ |
| | | open fun onError(code: Int, msg: String) { |
| | | if (msg == "TOKEN_INVALID"){ |
| | | _showToast(when(SPUtils.instance().getString("language","en")){ |
| | | _showToast(when(SPUtils.instance().getString("language")){ |
| | | "ch"->"您的身份已过期,请重新登录" |
| | | "fr"->"Votre identité a expiré, veuillez vous reconnecter" |
| | | else->"Your identity has expired, please log in again" |
| | |
| | | |
| | | /** |
| | | * @param context |
| | | * @param newLanguage 想要切换的语言类型 比如 "en" ,"zh" |
| | | * @param newLanguage 想要切换的语言类型 比如 Const.Language.ENGLISH ,"zh" |
| | | */ |
| | | @SuppressWarnings("deprecation") |
| | | public static void changeAppLanguage(Context context, String newLanguage, String country) { |