diff --git a/app/src/main/java/com/yizhuan/erban/skill/activity/ActivitySkillHome.kt b/app/src/main/java/com/yizhuan/erban/skill/activity/ActivitySkillHome.kt index 2feaa50bf..bb74260c3 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/activity/ActivitySkillHome.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/activity/ActivitySkillHome.kt @@ -20,18 +20,17 @@ import com.yizhuan.erban.skill.event.SkillEvent import com.yizhuan.erban.skill.repository.SkillDataManager import com.yizhuan.erban.skill.repository.SkillModel import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import io.reactivex.functions.Consumer -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode +@ActLayoutRes(R.layout.activity_skill_home) class ActivitySkillHome : BaseBindingActivity() { private lateinit var adapter: MineSkillCardAdapter private var addDialog: AddSkillCardDialog? = null - private lateinit var skillTypeList: List + private var skillTypeList: List? = null override fun init() { initTitleBar("技能卡") EventBus.getDefault().register(this) @@ -46,50 +45,55 @@ class ActivitySkillHome : BaseBindingActivity() { 0 -> showAddableSkillDialog() else -> { val item = adapter.getItem(position) as SkillPropertyEntity + // EditSkillActivity } } } mBinding.refreshLayout.setOnRefreshListener { loadUserSkillList() } - CoroutineScope(Dispatchers.Main).launch { - loadSkillTypeList() - loadUserSkillList() - } + SkillModel.instance.getSkillTypeList() + .compose(bindToLifecycle()) + .subscribe(Consumer { + skillTypeList = it + loadUserSkillList() + }, + Consumer { th -> + th.printStackTrace() + skillTypeList = ArrayList(0) + loadUserSkillList() + }) } private fun loadUserSkillList() { SkillModel.instance.getUserAllSkillCardDetail() .compose(bindToLifecycle()) + .doOnSubscribe { dialogManager.showProgressDialog(this) } .subscribe( Consumer { if (mBinding.refreshLayout.isRefreshing) { mBinding.refreshLayout.isRefreshing = false } + adapter.setHeaderAndEmpty(true) //这里没有做加载功能 adapter.setNewData(it) if (it.isEmpty()) { + adapter.setHeaderAndEmpty(false) adapter.emptyView = createEmptyView() } + dialogManager.dismissDialog() }, Consumer { th -> th.printStackTrace() mBinding.refreshLayout.isRefreshing = false + adapter.setHeaderAndEmpty(false) adapter.emptyView = createEmptyView() + dialogManager.dismissDialog() }) } - private fun loadSkillTypeList() { - SkillModel.instance.getSkillTypeList() - .compose(bindToLifecycle()) - .subscribe(Consumer { skillTypeList = it }, - Consumer { th -> - th.printStackTrace() - skillTypeList = ArrayList(0) - }) - } private fun createEmptyView(): View { val rootHeight = UIUtil.dip2px(this, 180.0) @@ -120,7 +124,7 @@ class ActivitySkillHome : BaseBindingActivity() { private fun showAddableSkillDialog() { if (addDialog == null) { - addDialog = AddSkillCardDialog(context, skillTypeList) { + addDialog = AddSkillCardDialog(context, skillTypeList!!) { AddSkillActivity.start(this, it.cardId) } } diff --git a/app/src/main/java/com/yizhuan/erban/skill/activity/AddSkillActivity.kt b/app/src/main/java/com/yizhuan/erban/skill/activity/AddSkillActivity.kt index 3bb06138e..876b97be3 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/activity/AddSkillActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/activity/AddSkillActivity.kt @@ -13,8 +13,10 @@ import com.yizhuan.erban.skill.entity.SkillRecordEntity import com.yizhuan.erban.skill.repository.SkillDataManager import com.yizhuan.erban.skill.repository.SkillModel import com.yizhuan.erban.skill.widget.SelectionItem +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import io.reactivex.functions.Consumer +@ActLayoutRes(R.layout.activity_skill_edit) class AddSkillActivity : BaseBindingActivity() { private lateinit var delegate: ActivitySkillEditDelegate override fun init() { diff --git a/app/src/main/java/com/yizhuan/erban/skill/activity/EditSkillActivity.kt b/app/src/main/java/com/yizhuan/erban/skill/activity/EditSkillActivity.kt index e952e1d7d..d9338f86d 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/activity/EditSkillActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/activity/EditSkillActivity.kt @@ -1,5 +1,7 @@ package com.yizhuan.erban.skill.activity +import android.content.Context +import android.content.Intent import android.view.View import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseBindingActivity @@ -7,15 +9,18 @@ import com.yizhuan.erban.databinding.ActivitySkillEditBinding import com.yizhuan.erban.skill.event.SkillEvent import com.yizhuan.erban.skill.repository.SkillModel import com.yizhuan.erban.ui.widget.dialog.CommonTipDialog +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes import io.reactivex.functions.Consumer import org.greenrobot.eventbus.EventBus +@ActLayoutRes(R.layout.activity_skill_edit) class EditSkillActivity : BaseBindingActivity() { private lateinit var mDelegate: ActivitySkillEditDelegate private lateinit var deleteTipDialog: CommonTipDialog override fun init() { mBinding.setClick { this } mDelegate = ActivitySkillEditDelegate(this) + } override fun onClick(v: View) { @@ -59,4 +64,13 @@ class EditSkillActivity : BaseBindingActivity() { toast("删除失败") }) } + + companion object{ + private const val ITEM_ID = "item_id" + fun start(context:Context,id:Int){ + val intent = Intent(context,EditSkillActivity::class.java) + intent.putExtra(ITEM_ID,id) + context.startActivity(intent) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/skill/decoration/MineSkillListDecoration.kt b/app/src/main/java/com/yizhuan/erban/skill/decoration/MineSkillListDecoration.kt index 9a68acbcd..8909f050b 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/decoration/MineSkillListDecoration.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/decoration/MineSkillListDecoration.kt @@ -13,7 +13,7 @@ class MineSkillListDecoration(context: Context, topSpaceDp: Int, bottomSpaceDp: init { topSpace = UIUtil.dip2px(context, topSpaceDp.toDouble()) - bottomSpace = UIUtil.dip2px(context, bottomSpace.toDouble()) + bottomSpace = UIUtil.dip2px(context, bottomSpaceDp.toDouble()) } override fun getItemOffsets( diff --git a/app/src/main/java/com/yizhuan/erban/skill/decoration/SkillGridDecoration.kt b/app/src/main/java/com/yizhuan/erban/skill/decoration/SkillGridDecoration.kt index 6f7f1d364..074e54144 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/decoration/SkillGridDecoration.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/decoration/SkillGridDecoration.kt @@ -26,5 +26,8 @@ class SkillGridDecoration(context: Context, marginDp: Int, spaceDp: Int) : outRect.left = spaceDp / 2 outRect.right = marginDp } + if(position/2>0&&position, @@ -20,13 +25,15 @@ class AddSkillCardDialog( init { width = UIUtil.getScreenWidth(context) height = UIUtil.dip2px(context, 366.0) + gravity = Gravity.BOTTOM this.data = data } private lateinit var adapter: AddSkillCardAdapter override fun init() { binding.recyclerView.layoutManager = GridLayoutManager(context, 2) - binding.recyclerView.addItemDecoration(SkillGridDecoration(context, 15, 26)) + binding.recyclerView.addItemDecoration(MineSkillListDecoration(context, 15, 26)) + adapter = AddSkillCardAdapter() adapter.setOnItemClickListener { _, _, position -> callback(adapter.getItem(position)!!)//能到这里肯定是点击了某个item ,肯定获取的是有效值 closeDialog() diff --git a/app/src/main/java/com/yizhuan/erban/skill/dialog/SkillSelectionDialog.kt b/app/src/main/java/com/yizhuan/erban/skill/dialog/SkillSelectionDialog.kt index 8b4d8c114..6ad99b930 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/dialog/SkillSelectionDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/dialog/SkillSelectionDialog.kt @@ -3,13 +3,16 @@ package com.yizhuan.erban.skill.dialog import android.content.Context import android.view.View import androidx.recyclerview.widget.GridLayoutManager +import com.yizhuan.erban.R import com.yizhuan.erban.databinding.DialogAddSkillItemBinding import com.yizhuan.erban.skill.adapter.SkillSelectionAdapter import com.yizhuan.erban.skill.decoration.SkillGridDecoration import com.yizhuan.erban.skill.entity.PropDictVosEntity import com.yizhuan.erban.skill.entity.PropsEntity import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes +@ActLayoutRes(R.layout.dialog_add_skill_item) class SkillSelectionDialog( context: Context, var item: PropsEntity?, val callback: (value: PropDictVosEntity) -> Unit diff --git a/app/src/main/java/com/yizhuan/erban/skill/repository/Api.kt b/app/src/main/java/com/yizhuan/erban/skill/repository/Api.kt index 678911743..d86ad31c9 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/repository/Api.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/repository/Api.kt @@ -7,10 +7,7 @@ import com.yizhuan.erban.skill.entity.SkillTypeEntity import com.yizhuan.xchat_android_core.bean.response.ServiceResult import io.reactivex.Single import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST -import retrofit2.http.Query +import retrofit2.http.* interface Api { @GET("/skillCard/getUserAllSkillCardDetail") @@ -19,7 +16,7 @@ interface Api { @GET("/skillCard/getTypeList") fun getSkillTypeList(): Single>> - @POST("/skillCard/getCardInfoById") + @GET("/skillCard/getCardInfoById") fun getCardInfoById(@Query("cardId") cardId: String): Single> @POST("/skillCard/saveOrUpdate") diff --git a/app/src/main/java/com/yizhuan/erban/skill/widget/SkillCardView.kt b/app/src/main/java/com/yizhuan/erban/skill/widget/SkillCardView.kt index d8437e214..296b91916 100644 --- a/app/src/main/java/com/yizhuan/erban/skill/widget/SkillCardView.kt +++ b/app/src/main/java/com/yizhuan/erban/skill/widget/SkillCardView.kt @@ -30,11 +30,12 @@ class SkillCardView( constructor(context: Context) : this(context, null) constructor(context: Context, @Nullable attrs: AttributeSet?) : this(context, attrs, 0) - private lateinit var itemList: ArrayList + private var itemList: ArrayList private var rootEntity: SkillRecordEntity? = null init { orientation = VERTICAL + itemList = ArrayList() } //标题 diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt index 62e0ab0d5..8c0da1c98 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt @@ -10,7 +10,9 @@ import com.yizhuan.erban.databinding.ActivityScheduleManageBinding import com.yizhuan.erban.flutter.RouterConstants import com.yizhuan.erban.ui.webview.CommonWebViewActivity import com.yizhuan.xchat_android_core.UriProvider +import com.yizhuan.xchat_android_library.annatation.ActLayoutRes +@ActLayoutRes(R.layout.activity_schedule_manage) class ScheduleManageActivity : BaseBindingActivity() { override fun init() { initTitleBar("赛程管理") diff --git a/app/src/main/res/layout/item_add_skill_select_card.xml b/app/src/main/res/layout/item_add_skill_select_card.xml index 212aa9bf2..425b16f83 100644 --- a/app/src/main/res/layout/item_add_skill_select_card.xml +++ b/app/src/main/res/layout/item_add_skill_select_card.xml @@ -2,9 +2,8 @@ + android:layout_height="48dp" + android:background="@drawable/bg_f1f1fa_8"> extends AppCo protected int width, height; protected Context context; + protected int gravity; public BaseBindingDialog(Context context) { this(context, 0); @@ -35,6 +36,7 @@ public abstract class BaseBindingDialog extends AppCo this.context = context; width = ScreenUtil.getDialogWidth(); height = WindowManager.LayoutParams.WRAP_CONTENT; + gravity = Gravity.CENTER; } protected T binding; @@ -49,7 +51,7 @@ public abstract class BaseBindingDialog extends AppCo windowParams.width = width; windowParams.height = height; windowParams.dimAmount = 0.5f; - windowParams.gravity = Gravity.CENTER; + windowParams.gravity = gravity; windowParams.x = 0; windowParams.y = 0; // window.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);