| | |
| | | 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 cn.sinata.rxnetty.NettyClient |
| | | import cn.sinata.xldutils.activity.BaseActivity |
| | | import cn.sinata.xldutils.application.BaseApplication |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import com.google.android.gms.maps.MapsInitializer |
| | |
| | | import com.igo.user.interfaces.StringCallback |
| | | import com.igo.user.network.Apis |
| | | import com.igo.user.network.HttpManager |
| | | import com.igo.user.network.RRetrofit |
| | | import com.igo.user.network.entity.TrippingInfo |
| | | import com.igo.user.network.request |
| | | import com.igo.user.ui.MainActivity |
| | |
| | | appContext = this |
| | | // initializeRecaptchaClient() |
| | | registerActivityLifecycleCallbacks(this) |
| | | setDefaultLanguage() |
| | | LanguageUtil.setDefaultLanguage(Const.Language.DEFAULT_LANGUAGE) |
| | | 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() |
| | | } |
| | | } |
| | | |
| | |
| | | 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") |
| | | val l = when (language) { |
| | | Const.Language.CHINESE -> "1" |
| | | Const.Language.FRENCH -> "3" |
| | | else -> "2" |
| | | } |
| | | val language = LanguageUtil.getLanguage() |
| | | val l = RRetrofit.getLanguageType(language) |
| | | NettyClient.getInstance() |
| | | .sendMessage("{\"data\":{\"userId\":$userId,\"language\":$l,\"token\":\"$token\",\"type\":1},\"method\":\"PING\",\"code\":200,\"msg\":\"SUCCESS\"}") |
| | | } |
| | |
| | | import android.view.ViewGroup |
| | | import androidx.fragment.app.DialogFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.view.WheelView |
| | | import com.igo.user.R |
| | | import com.igo.user.utils.Const |
| | |
| | | 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") } |
| | | private val language by lazy { LanguageUtil.getLanguage() } |
| | | |
| | | override fun onCreateView( |
| | | inflater: LayoutInflater, |
| | |
| | | import android.widget.TextView |
| | | import androidx.fragment.app.DialogFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.toTime |
| | | import cn.sinata.xldutils.utils.toTimeEnglish |
| | | import cn.sinata.xldutils.utils.toTimeFrench |
| | |
| | | private val tv_title by lazy { find<TextView>(R.id.tv_title) } |
| | | |
| | | private val language by lazy { |
| | | SPUtils.instance().getString("language") |
| | | LanguageUtil.getLanguage() |
| | | } |
| | | |
| | | private val dayTimes = arrayListOf<Long>() |
| | |
| | | import cn.sinata.xldutils.defaultScheduler |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.rxutils.ResultDataSubscriber |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import com.igo.user.utils.Const |
| | | import io.reactivex.Flowable |
| | |
| | | activity.dismissDialog() |
| | | if (code == 600) {//token无效 |
| | | super.onError( |
| | | code, when (SPUtils.instance().getString("language")) { |
| | | code, when (LanguageUtil.getLanguage()) { |
| | | Const.Language.CHINESE -> "您的身份已过期,请重新登录" |
| | | Const.Language.FRENCH -> "Votre identité a expiré, veuillez vous reconnecter" |
| | | else -> "Your identity has expired, please log in again" |
| | |
| | | package com.igo.user.network |
| | | |
| | | import cn.sinata.xldutils.data.ResultData |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import com.google.gson.JsonObject |
| | | import com.igo.user.IGoApplication |
| | | import com.igo.user.data.HomeDatas |
| | | import com.igo.user.network.entity.* |
| | | import com.igo.user.network.entity.Anchor |
| | | import com.igo.user.network.entity.AutoCompleteBean |
| | | import com.igo.user.network.entity.CarPrice |
| | | import com.igo.user.network.entity.City |
| | | import com.igo.user.network.entity.Coupon |
| | | import com.igo.user.network.entity.DriverInfo |
| | | import com.igo.user.network.entity.EmailBean |
| | | import com.igo.user.network.entity.Evaluation |
| | | import com.igo.user.network.entity.Function |
| | | import com.igo.user.network.entity.GeoBean |
| | | import com.igo.user.network.entity.Goods |
| | | import com.igo.user.network.entity.GoogleToken |
| | | import com.igo.user.network.entity.InviteHis |
| | | import com.igo.user.network.entity.InvokeHis |
| | | import com.igo.user.network.entity.Line |
| | | import com.igo.user.network.entity.LogisticProgress |
| | | import com.igo.user.network.entity.Message |
| | | import com.igo.user.network.entity.MyBankCard |
| | | import com.igo.user.network.entity.OpenCity |
| | | import com.igo.user.network.entity.Order |
| | | import com.igo.user.network.entity.Phone |
| | | import com.igo.user.network.entity.PlaceDetailBean |
| | | import com.igo.user.network.entity.Point |
| | | import com.igo.user.network.entity.RealName |
| | | import com.igo.user.network.entity.RouteBean |
| | | import com.igo.user.network.entity.SearchBean |
| | | import com.igo.user.network.entity.SeatInfo |
| | | import com.igo.user.network.entity.ServiceRecord |
| | | import com.igo.user.network.entity.Shift |
| | | import com.igo.user.network.entity.TrippingInfo |
| | | import com.igo.user.network.entity.UserInfo |
| | | import com.igo.user.network.entity.VersionData |
| | | import com.igo.user.network.entity.WalletRecord |
| | | import com.igo.user.network.entity.WalletRecordBean |
| | | import com.igo.user.utils.Const |
| | | import io.reactivex.Flowable |
| | | import okhttp3.MediaType |
| | |
| | | * @param type 1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们 |
| | | */ |
| | | fun getH5(type: Int, language: String? = null): Flowable<ResultData<JsonObject>> { |
| | | val language = |
| | | language ?: SPUtils.instance().getString("language", Const.Language.DEFAULT_LANGUAGE) |
| | | val language = language ?: LanguageUtil.getLanguage() |
| | | return request().getH5(language,type) |
| | | } |
| | | |
| | |
| | | */ |
| | | fun geoCode(lat:Double,lon: Double): Flowable<GeoBean> { |
| | | //1=简体中文,2=英语,3=法语 |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | val lan = if (language == Const.Language.CHINESE) "zh-CN" else language |
| | | return request().directions(IGoApplication.tripId,"${startLat},${startLon}","${endLat},${endLon}",lan) |
| | | } |
| | |
| | | package com.igo.user.network |
| | | |
| | | import android.util.Log |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import com.igo.user.BuildConfig |
| | | import com.igo.user.utils.Const |
| | |
| | | |
| | | private val loggingInterceptor by lazy { |
| | | LoggingInterceptor().apply { |
| | | level = if (BuildConfig.DEBUG) LoggingInterceptor.Level.BODY else LoggingInterceptor.Level.NONE |
| | | level = |
| | | if (BuildConfig.DEBUG) LoggingInterceptor.Level.BODY else LoggingInterceptor.Level.NONE |
| | | } |
| | | } |
| | | |
| | | private val retrofit: Retrofit = Retrofit.Builder() |
| | | .baseUrl(Apis.BASE_URL) |
| | | .addConverterFactory(JsonConverterFactory.create()) |
| | | .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) |
| | | .client(OkHttpClient.Builder() |
| | | .addInterceptor(HttpLoggingInterceptor().apply { |
| | | level = HttpLoggingInterceptor.Level.BODY |
| | | }) |
| | | .addInterceptor { chain -> |
| | | var request = chain.request() |
| | | if (request.method() == "POST"&&!request.url().toString().contains("base/user/image")) { |
| | | val bodyBuilder = FormBody.Builder() |
| | | var formBody:FormBody |
| | | if (request.body() is FormBody) { |
| | | formBody = request.body() as FormBody |
| | | (0 until formBody.size()).forEach { |
| | | bodyBuilder.addEncoded( |
| | | formBody.encodedName(it), formBody.encodedValue( |
| | | it |
| | | ) |
| | | .baseUrl(Apis.BASE_URL) |
| | | .addConverterFactory(JsonConverterFactory.create()) |
| | | .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) |
| | | .client( |
| | | OkHttpClient.Builder() |
| | | .addInterceptor(HttpLoggingInterceptor().apply { |
| | | level = HttpLoggingInterceptor.Level.BODY |
| | | }) |
| | | .addInterceptor { chain -> |
| | | var request = chain.request() |
| | | if (request.method() == "POST" && !request.url().toString() |
| | | .contains("base/user/image") |
| | | ) { |
| | | val bodyBuilder = FormBody.Builder() |
| | | var formBody: FormBody |
| | | if (request.body() is FormBody) { |
| | | formBody = request.body() as FormBody |
| | | (0 until formBody.size()).forEach { |
| | | bodyBuilder.addEncoded( |
| | | formBody.encodedName(it), formBody.encodedValue( |
| | | it |
| | | ) |
| | | } |
| | | } |
| | | if (request.header("language").isNullOrEmpty()) { |
| | | //1=简体中文,2=英语,3=印尼语 |
| | | val language = SPUtils.instance() |
| | | .getString("language", Const.Language.DEFAULT_LANGUAGE) |
| | | formBody = bodyBuilder.addEncoded( |
| | | "language", when (language) { |
| | | Const.Language.CHINESE -> "1" |
| | | Const.Language.FRENCH -> "3" |
| | | else -> "2" |
| | | } |
| | | ).build() |
| | | request = request.newBuilder().post(formBody).build() |
| | | ) |
| | | } |
| | | } |
| | | chain.proceed(request) |
| | | var language = request.header("language") |
| | | language = if (language.isNullOrEmpty()) { |
| | | LanguageUtil.getLanguage()!! |
| | | } else { |
| | | language |
| | | } |
| | | //1=简体中文,2=英语,3=法语 |
| | | formBody = bodyBuilder.addEncoded("language", getLanguageType(language)).build() |
| | | request = request.newBuilder().post(formBody).build() |
| | | } |
| | | .addInterceptor { chain -> |
| | | val token = SPUtils.instance().getString(Const.User.TOKEN) |
| | | val request = |
| | | if (token.isEmpty()) chain.request() else |
| | | chain.request().newBuilder().addHeader("Authorization", "Bearer $token").build() |
| | | Log.e(Const.Tag,request.headers().toString()) |
| | | chain.proceed(request) |
| | | } |
| | | .addInterceptor(loggingInterceptor) |
| | | .build()) |
| | | .build() |
| | | chain.proceed(request) |
| | | } |
| | | .addInterceptor { chain -> |
| | | val token = SPUtils.instance().getString(Const.User.TOKEN) |
| | | val request = |
| | | if (token.isEmpty()) chain.request() else |
| | | chain.request().newBuilder().addHeader("Authorization", "Bearer $token") |
| | | .build() |
| | | Log.e(Const.Tag, request.headers().toString()) |
| | | chain.proceed(request) |
| | | } |
| | | .addInterceptor(loggingInterceptor) |
| | | .build()) |
| | | .build() |
| | | |
| | | companion object { |
| | | fun instance() = RRetrofit() |
| | | fun getLanguageType(language: String): String { |
| | | return when (language) { |
| | | Const.Language.CHINESE -> "1" |
| | | Const.Language.FRENCH -> "3" |
| | | else -> "2" |
| | | } |
| | | } |
| | | } |
| | | |
| | | fun <T> create(clazz: Class<T>): T = retrofit.create(clazz) |
| | |
| | | import android.widget.TextView |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.toBrowser |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optDouble |
| | | import cn.sinata.xldutils.utils.optInt |
| | |
| | | |
| | | override fun initView() { |
| | | title = getString(R.string.邮寄快件指南) |
| | | if (SPUtils.instance().getString("language") == Const.Language.FRENCH) { //解决法文标题过长问题 |
| | | if (LanguageUtil.getLanguage() == Const.Language.FRENCH) { //解决法文标题过长问题 |
| | | titleBar.titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f) |
| | | } |
| | | PayUtil.addPayListener(this) |
| | |
| | | import android.widget.EditText |
| | | import android.widget.TextView |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.isValidPhone |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import com.igo.user.R |
| | |
| | | else{ |
| | | val strings = arrayListOf<String>() |
| | | val dialog = SingleWheelDialog() |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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{ |
| | |
| | | province.clear() |
| | | province.addAll(data ?: arrayListOf()) |
| | | val strings = arrayListOf<String>() |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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.选择地区)) |
| | |
| | | et_name.filters = arrayOf(RealNameInputFilter()) |
| | | et_city.filters = arrayOf(RealNameInputFilter()) |
| | | et_district.filters = arrayOf(RealNameInputFilter()) |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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) |
| | | } |
| | |
| | | import android.widget.TextView |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import com.igo.user.IGoApplication |
| | | import com.igo.user.R |
| | | import com.igo.user.dialog.TipDialog |
| | |
| | | tipDialog.arguments = bundleOf("msg" to getString(R.string.确定切换语言吗)) |
| | | tipDialog.setCallback(object :TipDialog.OnClickCallback{ |
| | | override fun onOk() { |
| | | SPUtils.instance().put("language",language).apply() |
| | | LanguageUtil.changeAppLanguage(this@LanguageActivity,language,"") |
| | | LanguageUtil.saveLanguage(this@LanguageActivity,language) |
| | | IGoApplication.appContext?.reLaunch() |
| | | } |
| | | |
| | |
| | | import android.webkit.WebViewClient |
| | | import android.widget.ImageView |
| | | import android.widget.TextView |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.optString |
| | | import com.igo.user.R |
| | |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.setCallback(object : ShareDialog.Callback { |
| | | override fun onOk(way: Int) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | val languageP = if (language == Const.Language.CHINESE) 1 else if (language == Const.Language.ENGLISH) 2 else 3 |
| | | val url = String.format( |
| | | Apis.SHARE_URL, |
| | |
| | | webView.loadData(it.optString("content"), "text/html; charset=utf-8", "utf-8") |
| | | } |
| | | } |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | iv_bg.imageResource = when (language) { |
| | | Const.Language.CHINESE -> R.mipmap.share_bg |
| | | Const.Language.FRENCH -> R.mipmap.share_bg_fr |
| | |
| | | import android.util.Log |
| | | import android.widget.TextView |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.activity.SelectPhotoDialog |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import com.facebook.drawee.view.SimpleDraweeView |
| | | import com.google.android.datatransport.cct.internal.LogEvent |
| | | import com.igo.user.R |
| | | import com.igo.user.dialog.ChooseBirthDialog |
| | | import com.igo.user.dialog.ChooseBirthEnglishDialog |
| | |
| | | singleWheelDialog.show(supportFragmentManager, "sex") |
| | | } |
| | | tv_birth.setOnClickListener { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | if (language == Const.Language.ENGLISH || language == Const.Language.FRENCH) { |
| | | val chooseBirthDialog = ChooseBirthEnglishDialog() |
| | | chooseBirthDialog.setCallback(object : ChooseBirthEnglishDialog.Callback { |
| | |
| | | import cn.sinata.xldutils.adapter.HFRecyclerAdapter |
| | | import cn.sinata.xldutils.adapter.util.ViewHolder |
| | | import cn.sinata.xldutils.invisible |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.visible |
| | | import com.daimajia.swipe.SwipeLayout |
| | | import com.igo.user.R |
| | |
| | | } |
| | | |
| | | fun getUsedRes():Int{ |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | return when(language){ |
| | | Const.Language.CHINESE-> R.mipmap.used |
| | | Const.Language.FRENCH->R.mipmap.used_f |
| | |
| | | } |
| | | |
| | | fun getExpiredRes():Int{ |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | return when(language){ |
| | | Const.Language.CHINESE-> R.mipmap.passd |
| | | Const.Language.FRENCH->R.mipmap.passd_f |
| | |
| | | import cn.sinata.xldutils.adapter.HFRecyclerAdapter |
| | | import cn.sinata.xldutils.adapter.util.ViewHolder |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.visible |
| | | import com.igo.user.R |
| | | import com.igo.user.network.entity.Order |
| | |
| | | if (data.isFrozen == 2){ |
| | | clMain.alpha = 0.5f |
| | | frozen.visible() |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | val ic = when(language){ |
| | | Const.Language.ENGLISH->R.mipmap.yidongjie_e |
| | | Const.Language.CHINESE->R.mipmap.yidongjie |
| | |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.rxutils.ResultException |
| | | import cn.sinata.xldutils.sysErr |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout |
| | | import cn.sinata.xldutils.visible |
| | | import com.igo.user.IGoApplication |
| | |
| | | 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") == Const.Language.FRENCH){ //解决法文标题过长问题 |
| | | if (LanguageUtil.getLanguage() == Const.Language.FRENCH){ //解决法文标题过长问题 |
| | | titleBar.titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP,12f) |
| | | } |
| | | getString(R.string.设置上车点) |
| | |
| | | import cn.sinata.xldutils.fragment.BaseFragment |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.invisible |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optBoolean |
| | |
| | | //是否循环刷新 |
| | | private var hadLoopRefresh = false |
| | | override fun onFirstVisibleToUser() { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | tv_110.setCompoundDrawablesRelativeWithIntrinsicBounds( |
| | | 0, |
| | | if (language == Const.Language.CHINESE) R.mipmap.icon_110 else R.mipmap.icon_191, |
| | |
| | | private fun setMarker(latLon: LatLng, content: String = "") { |
| | | val options = MarkerOptions() |
| | | options.position(latLon) |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | if (content.isNotEmpty()) { |
| | | val ic = when (language) { |
| | | Const.Language.ENGLISH -> R.mipmap.end_point_e |
| | |
| | | import cn.sinata.xldutils.hide |
| | | import cn.sinata.xldutils.invisible |
| | | import cn.sinata.xldutils.toBrowser |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.myToast |
| | |
| | | } |
| | | if (order!!.isFrozen == 2) { |
| | | tv_frozen.visible() |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | val ic = when (language) { |
| | | Const.Language.ENGLISH -> R.mipmap.yidongjie_e |
| | | Const.Language.CHINESE -> R.mipmap.yidongjie |
| | |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | val languageP = |
| | | if (language == Const.Language.CHINESE) 1 else if (language == Const.Language.ENGLISH) 2 else 3 |
| | | val url = String.format( |
| | |
| | | package com.igo.user.ui.trip |
| | | |
| | | //import com.share.utils.ShareUtils |
| | | //import com.umeng.socialize.UMShareListener |
| | | //import com.umeng.socialize.bean.SHARE_MEDIA |
| | | import android.app.Activity |
| | | import android.graphics.Color |
| | | import android.view.View |
| | | import android.widget.CheckBox |
| | | import android.widget.TextView |
| | | import androidx.core.os.bundleOf |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.invisible |
| | | import cn.sinata.xldutils.toBrowser |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optDouble |
| | |
| | | import com.igo.user.utils.showMoney |
| | | import com.igo.user.views.CenterFlowLayout |
| | | import com.igo.user.views.RatingBar |
| | | //import com.share.utils.ShareUtils |
| | | //import com.umeng.socialize.UMShareListener |
| | | //import com.umeng.socialize.bean.SHARE_MEDIA |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.sdk27.coroutines.onClick |
| | | import org.jetbrains.anko.startActivity |
| | |
| | | * @param isStart true:起点标记 false:终点标记 |
| | | */ |
| | | private fun setMarker(latLon: LatLng, isStart:Boolean = true) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | |
| | | if (isStart){ |
| | | val ic = when(language){ |
| | |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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) |
| | |
| | | import android.view.View |
| | | import android.widget.EditText |
| | | import android.widget.TextView |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.optString |
| | | import com.igo.user.R |
| | |
| | | } |
| | | } |
| | | |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | if (language == Const.Language.CHINESE){ |
| | | tv_tip.gravity = Gravity.CENTER |
| | | tv_rule.typeface = Typeface.DEFAULT |
| | |
| | | import androidx.recyclerview.widget.LinearLayoutManager |
| | | import androidx.recyclerview.widget.RecyclerView |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.visible |
| | | import com.igo.user.R |
| | | import com.igo.user.network.entity.Order |
| | |
| | | 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") |
| | | val language = LanguageUtil.getLanguage() |
| | | tv_price1.text = when(language){ |
| | | Const.Language.ENGLISH->"${100-(order.discount*10).toInt()}%" |
| | | Const.Language.CHINESE->"${order.discount}折" |
| | |
| | | import cn.sinata.xldutils.activity.BaseActivity |
| | | import cn.sinata.xldutils.callPhone |
| | | import cn.sinata.xldutils.gone |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SpanBuilder |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.utils.parserTime |
| | |
| | | shareDialog.arguments = bundleOf("isTrip" to true) |
| | | shareDialog.setCallback(object :ShareDialog.Callback{ |
| | | override fun onOk(way: Int) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | 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) |
| | |
| | | * @param isStart true:起点标记 false:终点标记 |
| | | */ |
| | | private fun setMarker(latLon: LatLng, content: CharSequence = "", isStart: Boolean = true) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | if (isStart) { |
| | | val ic = when (language) { |
| | | Const.Language.ENGLISH -> R.mipmap.starting_point_e |
| | |
| | | import android.view.View |
| | | import android.widget.Toast |
| | | import androidx.core.content.ContextCompat |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import com.google.android.gms.common.api.ApiException |
| | | import com.google.android.gms.common.util.CollectionUtils.listOf |
| | | import com.google.android.gms.maps.CameraUpdateFactory |
| | |
| | | onClick: (latLngs: MutableList<LatLng>, lineTance: Float, lineTime: Long) -> Unit |
| | | ) { |
| | | //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") |
| | | var language = LanguageUtil.getLanguage() |
| | | var centerStr = getPointStr(centerPoint ?: arrayListOf()) |
| | | var url = "https://maps.googleapis.com/maps/api/directions/json" + |
| | | "?origin=" + start.latitude.toString() + "," + start.longitude.toString() + |
| | |
| | | onClick: (latLngs: MutableList<LatLng>, lineTance: Float, lineTime: Long) -> Unit |
| | | ) { |
| | | //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") |
| | | var language = LanguageUtil.getLanguage() |
| | | val client: OkHttpClient = OkHttpClient().newBuilder() |
| | | .build() |
| | | val mediaType: MediaType = MediaType.parse("text/plain")!! |
| | |
| | | lng: Double, |
| | | function: ( List<GoogleNearBean2.ResultsBean>) -> Unit |
| | | ) { |
| | | var language = SPUtils.instance().getString("language") |
| | | var language = LanguageUtil.getLanguage() |
| | | 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") |
| | | var language = LanguageUtil.getLanguage() |
| | | 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") |
| | | var language = LanguageUtil.getLanguage() |
| | | 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") |
| | | var language = LanguageUtil.getLanguage() |
| | | var url = "https://maps.googleapis.com/maps/api/geocode/json" + |
| | | "?latlng="+ lat.toString() +","+lon.toString() + |
| | | "&language="+language+ |
| | |
| | | android:layout_height="1px" |
| | | android:background="@color/dividing_line_color" |
| | | app:layout_constraintEnd_toEndOf="@id/et_phone" |
| | | app:layout_constraintStart_toStartOf="@id/et_phone" |
| | | app:layout_constraintStart_toStartOf="@id/tv_pwd" |
| | | app:layout_constraintTop_toBottomOf="@id/barrier" /> |
| | | |
| | | <CheckBox |
| | |
| | | import cn.sinata.xldutils.R |
| | | import cn.sinata.xldutils.rxutils.RequestHelper |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.myToast |
| | | import cn.sinata.xldutils.widget.ProgressDialog |
| | | import io.reactivex.disposables.CompositeDisposable |
| | | import io.reactivex.disposables.Disposable |
| | | import org.jetbrains.anko.AnkoLogger |
| | | import kotlin.system.exitProcess |
| | | |
| | | /** |
| | | * 基础activity,包含设置默认强制竖屏显示,广播方式实现关闭全部继承自该activity,并注册了关闭广播的子类 |
| | |
| | | } |
| | | |
| | | override fun attachBaseContext(newBase: Context?) { |
| | | val language = SPUtils.instance().getString("language") |
| | | val language = LanguageUtil.getLanguage() |
| | | super.attachBaseContext(LanguageUtil.attachBaseContext(newBase, language, "")) |
| | | } |
| | | |
| | |
| | | package cn.sinata.xldutils.rxutils |
| | | |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | object Error { |
| | | val REQUEST_ERROR = when(SPUtils.instance().getString("language")){ |
| | | val REQUEST_ERROR = when(LanguageUtil.getLanguage()){ |
| | | "ch","zh"->"请求出错!" |
| | | "fr"->"Erreur de demande" |
| | | else->"Request Error" |
| | | } |
| | | val PARSER_ERROR = "Data Parse Error!" |
| | | val NET_ERROR = when(SPUtils.instance().getString("language")){ |
| | | val NET_ERROR = when(LanguageUtil.getLanguage()){ |
| | | "ch","zh"->"网络异常,请检查您的网络状态!" |
| | | "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")){ |
| | | val SERVER_ERROR = when(LanguageUtil.getLanguage()){ |
| | | "ch","zh"->"服务器异常,请稍后再试" |
| | | "fr"->"Erreur de serveur, veuillez réessayer plus tard" |
| | | else->"Server error, please retry later" |
| | |
| | | package cn.sinata.xldutils.rxutils |
| | | |
| | | import cn.sinata.xldutils.sysErr |
| | | import cn.sinata.xldutils.utils.SPUtils |
| | | import cn.sinata.xldutils.utils.LanguageUtil |
| | | import com.google.gson.JsonSyntaxException |
| | | import retrofit2.HttpException |
| | | import java.net.ConnectException |
| | |
| | | */ |
| | | open fun onError(code: Int, msg: String) { |
| | | if (msg == "TOKEN_INVALID"){ |
| | | _showToast(when(SPUtils.instance().getString("language")){ |
| | | _showToast(when(LanguageUtil.getLanguage()){ |
| | | "ch","zh"->"您的身份已过期,请重新登录" |
| | | "fr"->"Votre identité a expiré, veuillez vous reconnecter" |
| | | else->"Your identity has expired, please log in again" |
| | |
| | | import android.os.Build; |
| | | import android.os.LocaleList; |
| | | import android.text.TextUtils; |
| | | import android.util.DisplayMetrics; |
| | | |
| | | import java.util.Locale; |
| | | |
| | | public class LanguageUtil { |
| | | private static String defaultLanguage = ""; |
| | | |
| | | public static void setDefaultLanguage(String language) { |
| | | defaultLanguage = language; |
| | | } |
| | | |
| | | //获取语言 |
| | | public static String getLanguage() { |
| | | return SPUtils.Companion.instance().getString("language", defaultLanguage); |
| | | } |
| | | |
| | | //设置语言 |
| | | public static void saveLanguage(Context context, String language) { |
| | | SPUtils.Companion.instance().put("language", language).apply(); |
| | | LanguageUtil.changeAppLanguage(context, language, ""); |
| | | } |
| | | |
| | | private static Locale getLocaleByLanguage(String language) { |
| | | if (TextUtils.isEmpty(language)) { |
| | | return Locale.FRENCH; |
| | |
| | | * @param context |
| | | * @param newLanguage 想要切换的语言类型 比如 Const.Language.ENGLISH ,"zh" |
| | | */ |
| | | public static void changeAppLanguage(Context context, String newLanguage, String country) { |
| | | private static void changeAppLanguage(Context context, String newLanguage, String country) { |
| | | if (TextUtils.isEmpty(newLanguage)) { |
| | | return; |
| | | } |
| | |
| | | configuration.locale = locale; |
| | | resources.updateConfiguration(configuration, resources.getDisplayMetrics()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 如果是7.0以下,我们需要调用changeAppLanguage方法, |
| | | * 如果是7.0及以上系统,直接把我们想要切换的语言类型保存在SharedPreferences中,然后重新启动MainActivity即可 |
| | | */ |
| | | public static void setLanguage(String language, String country, Context appContext) { |
| | | if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { |
| | | changeAppLanguage(appContext, language, country); |
| | | } |
| | | SPUtils.Companion.instance().put("language", language); |
| | | SPUtils.Companion.instance().put("country", country); |
| | | } |
| | | |
| | | |
| | | public static void set(boolean isEnglish, Context context) { |
| | | Configuration configuration = context.getResources().getConfiguration(); |
| | | DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); |
| | | if (isEnglish) { |
| | | //设置英文 |
| | | configuration.locale = Locale.ENGLISH; |
| | | } else { |
| | | //设置中文 |
| | | configuration.locale = Locale.SIMPLIFIED_CHINESE; |
| | | } |
| | | //更新配置 |
| | | context.getResources().updateConfiguration(configuration, displayMetrics); |
| | | } |
| | | } |