[2110] bus 登录背景页面、bus线路过长处理、

This commit is contained in:
yangyakun
2022-09-23 17:29:14 +08:00
parent 7eb429e878
commit b83f066a87
10 changed files with 86 additions and 39 deletions

View File

@@ -77,7 +77,7 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
return;
}
BusLineModel.getInstance().queryBusLineTasksById(lineId,position);
subscribe = Observable.interval(5, TimeUnit.SECONDS).subscribe(aLong -> {
subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> {
BusLineModel.getInstance().queryBusLineTasksById(lineId,position);
});
}

View File

@@ -161,12 +161,10 @@ class BusSwitchLineActivity : MvpActivity<BusSwitchLineView?, BusLinePresenter?>
result.taskList.addAll(lineTaskInfo.data)
// 打开操作
mAdapter.notifyItemChanged(position)
if((position==mData.size-1||position==mData.size-2)&&mData.size>6){
linearLayoutManager.stackFromEnd = true
}else{
linearLayoutManager.stackFromEnd = false
}
linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6
mLinesListView.scrollToPosition(position)
}else if(lineTaskInfo.data.isEmpty()){
mAdapter.notifyItemChanged(position)
}
}
}

View File

@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.mogo.och.bus.R
import com.mogo.och.bus.bean.BusQueryLinesResponse
import com.mogo.och.bus.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder
import kotlin.text.StringBuilder
/**
* 路线列表adapter
@@ -39,8 +40,20 @@ class SwitchLineAdapter(
override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) {
val currentPosition = holder.bindingAdapterPosition
val line = mData[currentPosition]
if(line.name!=null&&line.name.length>10){
line.name = line.name.substring(0,10)+""
}
holder.lineName.text = line.name
holder.lineEndName.text = mContext.getString(R.string.bus_line_goto_end, line.endSiteName)
val sb = StringBuilder()
if (line.endSiteName!=null&&line.endSiteName.length>10) {
sb.append(line.endSiteName.substring(0,5))
sb.append("")
sb.append(line.endSiteName.substring(line.endSiteName.length-5,line.endSiteName.length))
}else{
sb.append(line.endSiteName)
}
val string = mContext.getString(R.string.bus_line_goto_end, sb.toString())
holder.lineEndName.text = string
holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3)
val switchLineTaskAdapter = SwitchLineTaskAdapter(
mContext,

View File

@@ -49,13 +49,13 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_35"
android:ellipsize="end"
android:maxLines="2"
android:singleLine="true"
android:textColor="@color/bus_color_b9c3e9"
android:textSize="@dimen/dp_36"
app:layout_constraintBottom_toTopOf="@+id/v_line_task"
app:layout_constraintStart_toStartOf="@+id/switch_line_name"
app:layout_constraintTop_toBottomOf="@+id/switch_line_name"
app:layout_constraintEnd_toStartOf="@+id/actv_show_more"
tools:text="@string/bus_switch_line_end" />
<View

View File

@@ -20,8 +20,8 @@
<string name="bus_line_start">起点: </string>
<string name="bus_line_end">终点: </string>
<string name="bus_line_goto_end">往%1$s方向</string>
<string name="bus_change_line_commit_tip_s">更换路线成功</string>
<string name="bus_change_line_commit_tip_f">更换路线失败</string>
<string name="bus_change_line_commit_tip_s">更换任务成功</string>
<string name="bus_change_line_commit_tip_f">更换任务失败</string>
<!-- <string name="bus_arrive_to_end_title">去往下车地点</string>-->
<string name="bus_arrive_to_end_start">起点:</string>
<string name="bus_arrive_to_end_end">终点:</string>

View File

@@ -21,6 +21,8 @@ interface LoginService : IProvider {
fun queryLoginStatusByNet()
fun showUiModel(show:Boolean)
/**
* 登出
*/

View File

@@ -28,6 +28,7 @@ class LoginServiceImpl : LoginService,ILoginViewCallback {
private var fragment: Fragment?=null
private var taxiLoginDialogFragment: WeakReference<TaxiLoginDialogFragment>? = null
private var presenter: OchCommonLoginStatusDefaultPresenter?=null
private var uiModel = true
override fun init(context: Context) {
@@ -53,40 +54,42 @@ class LoginServiceImpl : LoginService,ILoginViewCallback {
override fun showLoginDialogFragment() {
fragment?.let {
CallerHmiManager.hideToolsView()
val parentFragmentManager = it.parentFragmentManager
val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG)
if (fragmentByTag is DialogFragment) {
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
return
}
if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证")
if(uiModel) {
fragment?.let {
CallerHmiManager.hideToolsView()
val parentFragmentManager = it.parentFragmentManager
val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG)
if (fragmentByTag is DialogFragment) {
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
return
}
if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证")
return
}
}
}
}
if (taxiLoginDialogFragment?.get() == null) {
taxiLoginDialogFragment = WeakReference(newInstance())
}
val taxiLoginDialog = taxiLoginDialogFragment?.get()
if (taxiLoginDialog != null) {
if (taxiLoginDialog.dialog != null && taxiLoginDialog.dialog!!.isShowing) {
return
if (taxiLoginDialogFragment?.get() == null) {
taxiLoginDialogFragment = WeakReference(newInstance())
}
if (taxiLoginDialog.isAdded) { //解决方法就是添加这行代码如果已经添加了就移除掉然后再show就不会出现Fragment already added的错误了。
parentFragmentManager.beginTransaction().remove(taxiLoginDialog)
.commitAllowingStateLoss()
val taxiLoginDialog = taxiLoginDialogFragment?.get()
if (taxiLoginDialog != null) {
if (taxiLoginDialog.dialog != null && taxiLoginDialog.dialog!!.isShowing) {
return
}
if (taxiLoginDialog.isAdded) { //解决方法就是添加这行代码如果已经添加了就移除掉然后再show就不会出现Fragment already added的错误了。
parentFragmentManager.beginTransaction().remove(taxiLoginDialog)
.commitAllowingStateLoss()
}
d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面")
taxiLoginDialog.show(parentFragmentManager, TAG)
taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? ->
taxiLoginDialogFragment?.clear()
presenter?.queryLoginStatus()
})
}
d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面")
taxiLoginDialog.show(parentFragmentManager, TAG)
taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? ->
taxiLoginDialogFragment?.clear()
presenter?.queryLoginStatus()
})
}
}
}
@@ -104,6 +107,10 @@ class LoginServiceImpl : LoginService,ILoginViewCallback {
presenter?.queryLoginStatus()
}
override fun showUiModel(show:Boolean) {
uiModel = show;
}
override fun loginOut(mLatitude:Double,mLongitude:Double) {
presenter?.logOut(mLatitude,mLongitude)
}

View File

@@ -8,6 +8,7 @@ import android.util.Log
import android.view.*
import androidx.appcompat.widget.AppCompatButton
import androidx.appcompat.widget.AppCompatEditText
import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
@@ -15,7 +16,9 @@ import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.mvp.MvpDialogFragment
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -23,7 +26,9 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
import com.mogo.och.common.module.R
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.presenter.OchCommonLoginPresenter
import com.mogo.och.common.module.biz.provider.LoginService
/**
@@ -40,6 +45,7 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, OchC
lateinit var aceLoginPhoneValue: AppCompatEditText
lateinit var acetPhoneCodeValue: AppCompatEditText
lateinit var actvWelcomeLoginTitle: AppCompatTextView
lateinit var acivLoginBg: AppCompatImageView
private var mOnClickListener: DialogInterface.OnDismissListener? = null
@@ -69,7 +75,9 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, OchC
acetPhoneCodeValue = mRootView.findViewById(R.id.acet_phone_code_value)
actvWelcomeLoginTitle = mRootView.findViewById(R.id.actv_welcome_login_title)
actvLoginShowSn = mRootView.findViewById(R.id.actv_login_show_sn)
acivLoginBg = mRootView.findViewById(R.id.aciv_login_bg)
inputPhoneNormal()
initBg()
initListener()
dialog?.window?.let {
context?.let { contextIn->
@@ -81,6 +89,17 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, OchC
}
}
private fun initBg() {
when (DebugConfig.getProductFlavor()) {
"fPadLenovoOchTaxi" -> {
acivLoginBg.setImageResource(R.drawable.taxi_ic_login_bg)
}
"fPadLenovoOchBus" -> {
acivLoginBg.setImageResource(R.drawable.bus_ic_login_bg)
}
}
}
private fun initListener() {
mRootView.isFocusable = true
mRootView.isFocusableInTouchMode = true
@@ -121,6 +140,13 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, OchC
actvLoginGetCode.onClick {
mPresenter?.getPhoneCode(aceLoginPhoneValue.text.toString())
}
actvLoginShowSn.setOnLongClickListener{
val loginService = ARouter.getInstance().build(OchCommonConst.LOGINSERVICE)
.navigation() as LoginService
loginService.showUiModel(false)
dismissAllowingStateLoss()
true
}
aceLoginPhoneValue.addTextChangedListener {
it?.let { itEditable->
if(itEditable.isNotEmpty()){

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@@ -7,6 +7,7 @@
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_login_bg"
android:src="@drawable/taxi_ic_login_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"/>