From 5eb815dba7d6c8dbe1a5d97a9ffaa6e2445e3b3e Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 31 May 2018 17:35:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=80=E6=9C=8D=E7=BB=A7?= =?UTF-8?q?=E7=BB=AD=E4=BC=98=E5=8C=96(=E8=BF=98=E5=B7=AEpost=E8=AF=B7?= =?UTF-8?q?=E6=B1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gh/common/databind/BindingAdapters.java | 26 +++++++++------ .../com/gh/common/util/EntranceUtils.java | 1 + .../gamecenter/entity/KaiFuCalendarEntity.kt | 12 +++++++ .../gamedetail/GameDetailKaiFuAdapter.java | 3 +- .../gamecenter/kaifu/add/AddKaiFuActivity.kt | 7 ++-- .../gamecenter/kaifu/add/AddKaiFuViewModel.kt | 32 +++++++++++++++++-- app/src/main/res/layout/kaifu_add_item.xml | 13 +++++--- 7 files changed, 75 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 2ca1bf2b31..74be6f0eab 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -6,6 +6,7 @@ import android.support.v4.content.ContextCompat; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; +import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; @@ -65,28 +66,35 @@ public class BindingAdapters { } } - @BindingAdapter({"addKaiFuNote"}) - public static void addKaiFuTime(TextView view, String note) { - view.setText(note); - } - - @BindingAdapter({"addKaiFuTime", "addKaiFuPosition"}) - public static void addKaiFuTime(TextView view, Long time, Integer position) { + public static void addKaiFuTime(EditText view, Long time, Integer position) { if (time == 0) { view.setText("点击选择"); } else { String pattern; if (position == 0) { - pattern = "yyy-MM-dd hh:mm +"; + pattern = "yyy-MM-dd HH:mm +"; } else { - pattern = "yyy-MM-dd hh:mm"; + pattern = "yyy-MM-dd HH:mm"; } SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.CHINA); view.setText(format.format(time * 1000)); } } + @BindingAdapter({"kaiFuTextColor", "kaiFuTextPosition"}) + public static void kaiFuTextColor(EditText view, Integer dataMark, Integer position) { + if (dataMark == 1 && view.getId() == R.id.kaifu_add_time + || dataMark == 2 && view.getId() == R.id.kaifu_add_name + || dataMark == 3 && view.getId() == R.id.kaifu_add_remark + || dataMark == 4 && (view.getId() == R.id.kaifu_add_time || view.getId() == R.id.kaifu_add_name)) { + view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.red)); + } else if (position == 0) { + view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.hint)); + } else { + view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.title)); + } + } @BindingAdapter("visibleGone") public static void showHide(View view, Boolean show) { diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index 5ea7dbdd24..f2e697f712 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -73,6 +73,7 @@ public class EntranceUtils { public static final String KEY_VERSION_UPDATE = "versionUpdate"; public static final String KEY_CHECK_QUESTION_CONCERN = "check_question_concern"; public static final String KEY_DRAFT_ID = "draft_id"; + public static final String KEY_KAIFU_LIST = "kaifuList"; public static void jumpActivity(Context context, Bundle bundle) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/KaiFuCalendarEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/KaiFuCalendarEntity.kt index 7d90def18a..e10f2cb67b 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/KaiFuCalendarEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/KaiFuCalendarEntity.kt @@ -19,6 +19,8 @@ class KaiFuCalendarEntity() : Parcelable, BaseObservable() { private var time: Long = 0 + private var dataMark: Int = 0 // 判断字段是否符合条件 1:时间,2:名字,3:备注,4:时间&名字, 0: 正常 + var type: String? = null var remark: String = "" @@ -45,6 +47,16 @@ class KaiFuCalendarEntity() : Parcelable, BaseObservable() { return this.time } + public fun setDataMark(dataMark: Int) { + this.dataMark = dataMark + notifyPropertyChanged(BR.dataMark) + } + + @Bindable + public fun getDataMark(): Int { + return this.dataMark + } + override fun describeContents(): Int { return 0 diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java index 7d8c34e496..dbfb32e57e 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailKaiFuAdapter.java @@ -191,7 +191,8 @@ public class GameDetailKaiFuAdapter extends BaseRecyclerAdapter { viewHolder.kaifuSuggest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mContext.startActivity(AddKaiFuActivity.Companion.getIntent(mContext, mOpenCalendarEntity)); + mContext.startActivity(AddKaiFuActivity.Companion.getIntent(mContext, + mOpenCalendarEntity, (ArrayList) mServerList)); // SuggestionActivity.startSuggestionActivity(mContext, 1, "service" // , StringUtils.buildString(gameName, ",", suggestTime, "开服信息有误:")); diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuActivity.kt b/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuActivity.kt index a58a8211f4..433baeb3a8 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuActivity.kt @@ -14,6 +14,7 @@ import com.bigkoo.pickerview.builder.TimePickerBuilder import com.bigkoo.pickerview.listener.OnTimeSelectListener import com.gh.base.BaseActivity import com.gh.base.OnViewClickListener +import com.gh.common.util.EntranceUtils import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ActivityKaifuAddBinding import com.gh.gamecenter.entity.KaiFuCalendarEntity @@ -37,7 +38,8 @@ class AddKaiFuActivity : BaseActivity() { // initViewModel mViewModel = ViewModelProviders.of(this).get(AddKaiFuViewModel::class.java) - mViewModel?.initData(intent.getParcelableExtra(KaiFuCalendarEntity.TAG)) + mViewModel?.initData(intent.getParcelableExtra(KaiFuCalendarEntity.TAG) + , intent.getParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST)) // initView mBinding = ActivityKaifuAddBinding.bind(mContentView) @@ -113,9 +115,10 @@ class AddKaiFuActivity : BaseActivity() { companion object { - fun getIntent(context: Context, entity: KaiFuCalendarEntity): Intent { + fun getIntent(context: Context, entity: KaiFuCalendarEntity, kaifuList: ArrayList): Intent { val intent = Intent(context, AddKaiFuActivity::class.java) intent.putExtra(KaiFuCalendarEntity.TAG, entity) + intent.putParcelableArrayListExtra(EntranceUtils.KEY_KAIFU_LIST, kaifuList) return intent } } diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuViewModel.kt b/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuViewModel.kt index 6052315309..a41af8b520 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/kaifu/add/AddKaiFuViewModel.kt @@ -12,7 +12,10 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application val calendarList = ArrayList() - fun initData(entity: KaiFuCalendarEntity) { + private var mAllKaifuList = ArrayList() + + fun initData(entity: KaiFuCalendarEntity, allKaifuList: ArrayList) { + mAllKaifuList = allKaifuList entity.setNote(entity.getNote() + "+") // 第一条 添加+(号) calendarList.add(entity) for (i in 0 until 5) { @@ -50,6 +53,12 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application fun post() { var isSuccess = true + + // 初始化标红提示 + for (i in 1 until calendarList.size) { + calendarList[i].setDataMark(0) + } + for (i in 1 until calendarList.size) { val entity = calendarList[i] if (entity.getTime() != 0L || !entity.remark.isNullOrEmpty() || !entity.getNote().isNullOrEmpty()) { @@ -64,6 +73,7 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application for (i in 1 until calendarList.size) { val entity = calendarList[i] if (!entity.remark.isNullOrEmpty() && entity.getTime() == 0L && entity.getNote().isNullOrEmpty()) { + entity.setDataMark(3) isSuccess = false } if (i == calendarList.size - 1 && !isSuccess) { @@ -76,6 +86,7 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application val entity = calendarList[i] if (entity.getTime() != 0L && entity.getNote().isNullOrEmpty() || entity.getTime() == 0L && !entity.getNote().isNullOrEmpty()) { isSuccess = false + entity.setDataMark(if (entity.getTime() != 0L) 1 else 2) } if (i == calendarList.size - 1 && !isSuccess) { toast(getApplication(), "时间和名字必须同时填写") @@ -87,10 +98,25 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application for (i in 1 until calendarList.size) { val entity = calendarList[i] if (entity.getTime() != 0L && !entity.getNote().isNullOrEmpty()) { - val splitTime = listJson.split("time:" + entity.getTime().toString()) - val splitName = listJson.split("note:" + entity.getNote()!!) + val splitTime = listJson.split("\"time\":" + entity.getTime().toString()) + val splitName = listJson.split("\"note\":" + "\"" + entity.getNote()!! + "\"") if (splitTime.size > 2 || splitName.size > 2) { isSuccess = false + entity.setDataMark(if (splitTime.size > 2) 1 else 2) + } + } + if (i == calendarList.size - 1 && !isSuccess) { + toast(getApplication(), "内容重复,请检查修改") + return + } + } + + for (i in 1 until calendarList.size) { + val entity = calendarList[i] + for (allEntity in mAllKaifuList) { + if (entity.getTime() == allEntity.getTime() && entity.getNote() == allEntity.getNote()) { + isSuccess = false + entity.setDataMark(4) } } if (i == calendarList.size - 1 && !isSuccess) { diff --git a/app/src/main/res/layout/kaifu_add_item.xml b/app/src/main/res/layout/kaifu_add_item.xml index d0b22fe700..5bf01f4638 100644 --- a/app/src/main/res/layout/kaifu_add_item.xml +++ b/app/src/main/res/layout/kaifu_add_item.xml @@ -34,23 +34,27 @@ android:paddingRight = "1dp" android:paddingTop = "1dp" > -