diff --git a/app/build.gradle b/app/build.gradle index 1f8fe4e88b..ecc13dbe79 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -247,7 +247,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'com.contrarywind:Android-PickerView:4.1.3' + implementation 'com.contrarywind:Android-PickerView:4.1.8' implementation "com.scwang.smartrefresh:SmartRefreshLayout:${smartRefreshLayout}" implementation "net.cachapa.expandablelayout:expandablelayout:${expandableLayout}" diff --git a/app/src/main/java/com/gh/common/util/HaloWheelViewAdapter.java b/app/src/main/java/com/gh/common/util/HaloWheelViewAdapter.java new file mode 100644 index 0000000000..64c21cd642 --- /dev/null +++ b/app/src/main/java/com/gh/common/util/HaloWheelViewAdapter.java @@ -0,0 +1,37 @@ +package com.gh.common.util; + +import com.contrarywind.adapter.WheelAdapter; + +/** + * 注意:选择后的数据其实是dates的position,需要在回调时对返回的date数据进行转换 + * + * 例子请见: + * {@link com.gh.gamecenter.servers.add.AddKaiFuActivity} + */ +public class HaloWheelViewAdapter implements WheelAdapter { + private int[] dates; + + + public HaloWheelViewAdapter(int[] dates) { + this.dates = dates; + } + + @Override + public Object getItem(int index) { + return dates[index]; + } + + @Override + public int getItemsCount() { + return dates.length; + } + + @Override + public int indexOf(Object o) { + try { + return (int) o; + } catch (Exception e) { + return -1; + } + } +} diff --git a/app/src/main/java/com/gh/common/util/PostCommentUtils.java b/app/src/main/java/com/gh/common/util/PostCommentUtils.java index 81bf18a7b4..573018db53 100644 --- a/app/src/main/java/com/gh/common/util/PostCommentUtils.java +++ b/app/src/main/java/com/gh/common/util/PostCommentUtils.java @@ -1,6 +1,7 @@ package com.gh.common.util; import android.content.Context; +import android.os.Build; import android.text.TextUtils; import com.gh.gamecenter.R; @@ -9,6 +10,7 @@ import com.gh.gamecenter.retrofit.JSONObjectResponse; import com.gh.gamecenter.retrofit.Response; import com.gh.gamecenter.retrofit.RetrofitManager; import com.lightgame.utils.Utils; +import com.walkud.rom.checker.RomIdentifier; import org.json.JSONObject; @@ -25,10 +27,25 @@ import retrofit2.HttpException; */ public class PostCommentUtils { - public static void addCommentData(final Context context, final String newsId, final String content, + public static void addCommentData(final Context context, final String newsId, final JSONObject content, final CommentEntity commentEntity, final PostCommentListener listener) { - RequestBody body = RequestBody.create(MediaType.parse("application/json"), content); + + if (commentEntity == null) { + try { + JSONObject device = new JSONObject(); + device.put("os", "Android"); + device.put("model", Build.MODEL); + device.put("manufacturer", Build.MANUFACTURER); + device.put("android_version", android.os.Build.VERSION.RELEASE); + device.put("rom", RomIdentifier.getRom().name() + " " + RomIdentifier.getRom().getVersionName()); + content.put("device", device); + } catch (Exception e) { + e.printStackTrace(); + } + } + + RequestBody body = RequestBody.create(MediaType.parse("application/json"), content.toString()); Observable observable; if (commentEntity != null) { observable = RetrofitManager.getInstance(context).getApi().postReplyComment(commentEntity.getId(), body); diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index b0353ff852..75d05ceaac 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -472,11 +472,7 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.itemView.setPadding(0, DisplayUtils.dip2px(mContext, 30), 0, 0); viewHolder.hint.setText(R.string.comment_empty); } else { - if (mNormalCommentList.size() > 10) { - viewHolder.hint.setText(R.string.comment_nomore); - } else { - viewHolder.hint.setText(""); - } + viewHolder.hint.setText(R.string.comment_nomore); viewHolder.loading.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java index 02a002a4c7..9df6abf78d 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java @@ -321,7 +321,7 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa newsId = mConcernEntity.getId(); } - PostCommentUtils.addCommentData(getContext(), newsId, jsonObject.toString(), mCommentEntity, new PostCommentUtils.PostCommentListener() { + PostCommentUtils.addCommentData(getContext(), newsId, jsonObject, mCommentEntity, new PostCommentUtils.PostCommentListener() { @Override public void postSuccess(JSONObject response) { mSendingDialog.dismiss(); diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt index d3413ed5cd..1d16f937d0 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftAdapter.kt @@ -1,7 +1,6 @@ package com.gh.gamecenter.qa.article.draft import android.content.Context -import androidx.recyclerview.widget.RecyclerView import android.text.TextUtils import android.view.View import android.view.ViewGroup @@ -25,6 +24,12 @@ class ArticleDraftAdapter(context: Context return oldItem == newItem } + override fun getItemViewType(position: Int): Int { + return if (position == itemCount - 1) { + ItemViewType.ITEM_FOOTER + } else ItemViewType.ITEM_BODY + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): androidx.recyclerview.widget.RecyclerView.ViewHolder { val view: View return when (viewType) { @@ -59,7 +64,7 @@ class ArticleDraftAdapter(context: Context } override fun getItemCount(): Int { - return mEntityList.size + return if (mEntityList == null || mEntityList.isEmpty()) 0 else mEntityList.size + FOOTER_ITEM_COUNT } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt index 0ec090fcd0..7914ce9917 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteAdapter.kt @@ -64,7 +64,6 @@ open class QuestionsInviteAdapter(context: Context, when (getItemViewType(position)) { ItemViewType.ITEM_FOOTER -> { val footerViewHolder = holder as FooterViewHolder - footerViewHolder.initItemPadding() footerViewHolder.initFooterViewHolder(mIsLoading, mIsNetworkError, mIsOver, R.string.invite_more_players) } ItemViewType.ITEM_BODY -> { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt index c0a3c5ae23..9e4ea847f5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteFragment.kt @@ -94,6 +94,18 @@ class QuestionsInviteFragment : ListFragment() { val reset = layout.findViewById(R.id.reset) val complete = layout.findViewById(R.id.complete) val contentContainer = layout.findViewById(R.id.content_container) - val fillBackground = layout.findViewById(R.id.fill_background) reset.background = DrawableView.getStrokeDrawable(R.color.text_cccccc) complete.background = DrawableView.getOvalDrawable(R.color.theme) @@ -146,7 +145,10 @@ class GameServersPublishFragment : BaseFragment() { contentContainer.addView(view) } - fillBackground.setOnClickListener { + contentContainer.setOnClickListener { + popupWindow.dismiss() + } + layout.setOnClickListener { popupWindow.dismiss() } reset.setOnClickListener { @@ -210,7 +212,6 @@ class GameServersPublishFragment : BaseFragment() { val today = layout.findViewById(R.id.today) val tomorrow = layout.findViewById(R.id.tomorrow) val after = layout.findViewById(R.id.after) - val fillBackground = layout.findViewById(R.id.fill_background) val hourContainer = layout.findViewById(R.id.hour_container) val hourScrollView = layout.findViewById(R.id.hour_scrollview) @@ -282,7 +283,7 @@ class GameServersPublishFragment : BaseFragment() { tomorrow.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_333333, R.color.theme)) after.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_333333, R.color.theme)) - fillBackground.setOnClickListener { + layout.setOnClickListener { popupWindow.dismiss() } all.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt index f068125e60..97944baf01 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersTestFragment.kt @@ -73,7 +73,6 @@ class GameServersTestFragment : BaseFragment() { val publishServer = layout.findViewById(R.id.publish_server) val notDeleteServer = layout.findViewById(R.id.not_delete_server) val deleteServer = layout.findViewById(R.id.delete_server) - val fillBackground = layout.findViewById(R.id.fill_background) when (mType) { "开测" -> all.setTextColor(R.color.theme.toColor()) @@ -82,7 +81,7 @@ class GameServersTestFragment : BaseFragment() { "删档内测" -> deleteServer.setTextColor(R.color.theme.toColor()) } - fillBackground.setOnClickListener { + layout.setOnClickListener { popupWindow.dismiss() } all.setOnClickListener { @@ -135,7 +134,6 @@ class GameServersTestFragment : BaseFragment() { val today = layout.findViewById(R.id.today) val tomorrow = layout.findViewById(R.id.tomorrow) val after = layout.findViewById(R.id.after) - val fillBackground = layout.findViewById(R.id.fill_background) val hourContainer = layout.findViewById(R.id.hour_container) val line = layout.findViewById(R.id.line) @@ -166,7 +164,7 @@ class GameServersTestFragment : BaseFragment() { tomorrow.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_333333, R.color.theme)) after.setTextColor(DrawableView.getSelectorColorStyle(R.color.text_333333, R.color.theme)) - fillBackground.setOnClickListener { + layout.setOnClickListener { popupWindow.dismiss() } all.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt index cccd922196..22eddac584 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt @@ -18,9 +18,11 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProviders import com.bigkoo.pickerview.builder.TimePickerBuilder import com.bigkoo.pickerview.listener.OnTimeSelectListener +import com.contrarywind.view.WheelView import com.gh.base.OnViewClickListener import com.gh.base.ToolBarActivity import com.gh.common.util.EntranceUtils +import com.gh.common.util.HaloWheelViewAdapter import com.gh.gamecenter.R import com.gh.gamecenter.databinding.ActivityKaifuAddBinding import com.gh.gamecenter.entity.ServerCalendarEntity @@ -32,6 +34,8 @@ import java.util.* class AddKaiFuActivity : ToolBarActivity() { private val TWO_MONTH_TIME = 5184000000 + private val mPickerMinutes = intArrayOf(0, 5, 10, 30) + private var mBinding: ActivityKaifuAddBinding? = null private var mViewModel: AddKaiFuViewModel? = null @@ -75,6 +79,7 @@ class AddKaiFuActivity : ToolBarActivity() { } else if (view.id == R.id.kaifu_add_time) { showDataPicker(mViewModel?.calendarList!![position].getTime(), OnTimeSelectListener { data: Date?, _ -> run { + data?.minutes = mPickerMinutes.get(data?.minutes?:0) mViewModel?.calendarList!![position].setTime(if (data == null) 0 else data.time / 1000) } }) @@ -122,6 +127,12 @@ class AddKaiFuActivity : ToolBarActivity() { .build() val dialog = pvTime.dialog + +// 强制更改 MinuteWheelView 的内容 +// 注意:选择后的数据minute其实是mPickerMinutes的position,需要在回调时对返回的date数据进行转换 + val minuteWheelView = dialog.findViewById(R.id.min) + minuteWheelView.adapter = HaloWheelViewAdapter(mPickerMinutes) + if (dialog != null) { val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.BOTTOM) diff --git a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt index bb6fe87d7c..00075e18f8 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuViewModel.kt @@ -41,7 +41,7 @@ class AddKaiFuViewModel(application: Application) : AndroidViewModel(application fun copyTimeToNext() { for (i in 0 until calendarList.size) { if (i != calendarList.size - 1 && calendarList[i].getTime() != 0L && calendarList[i + 1].getTime() == 0L) { - calendarList[i + 1].setTime(calendarList[i].getTime() + (24 * 60 * 60)) + calendarList[i + 1].setTime(calendarList[i].getTime()) break } } diff --git a/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java b/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java index a5d1330e55..c921251198 100644 --- a/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/comment/CommentDetailFragment.java @@ -169,7 +169,7 @@ public class CommentDetailFragment extends NormalFragment implements OnCommentCa return; } - PostCommentUtils.addCommentData(getContext(), null, jsonObject.toString(), mCommentEntity, + PostCommentUtils.addCommentData(getContext(), null, jsonObject, mCommentEntity, new PostCommentUtils.PostCommentListener() { @Override public void postSuccess(JSONObject response) { diff --git a/app/src/main/res/layout/popup_server_status.xml b/app/src/main/res/layout/popup_server_status.xml index 279bb356c0..2547d463c8 100644 --- a/app/src/main/res/layout/popup_server_status.xml +++ b/app/src/main/res/layout/popup_server_status.xml @@ -6,6 +6,7 @@ android:orientation="vertical"> 已连续签到 %1$d 天]]> %1$d]]> 著作权归作者所有©光环助手 - 操作说明:\n1.第1行是当前开服表上最新的开服信息,仅供参考\n2.点击第1行的内容,会自动在下方表格填入对应的内容\n3.自动填入内容时,时间会自动加1天,名字会自动按数字加1 + 操作说明:\n1.第1行是当前开服表上最新的开服信息,仅供参考\n2.点击第1行的内容,会自动在下方表格填入对应的内容\n3.自动填入内容时,时间保留当天,名字会自动按数 专栏 找不到图片管理器 个人主页