From 089d05050e78ee0ccf17dfd766bd58f998364095 Mon Sep 17 00:00:00 2001 From: Isabel Lally Date: Tue, 9 Feb 2021 03:06:56 -0500 Subject: [PATCH 1/5] timestamp works slightly --- Habitica/res/layout/system_chat_message.xml | 11 +++++++++ .../adapter/social/ChatRecyclerViewAdapter.kt | 24 +++++++++++++++++-- habitica.properties.example | 18 -------------- habitica.resources.example | 3 --- 4 files changed, 33 insertions(+), 23 deletions(-) delete mode 100644 habitica.properties.example delete mode 100644 habitica.resources.example diff --git a/Habitica/res/layout/system_chat_message.xml b/Habitica/res/layout/system_chat_message.xml index 17c4fa78f..595f3647d 100644 --- a/Habitica/res/layout/system_chat_message.xml +++ b/Habitica/res/layout/system_chat_message.xml @@ -19,4 +19,15 @@ android:textColor="@color/text_brand_neon" tools:text="System message" style="@style/Body1"/> + \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt index 011a033c5..9958c1a90 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt @@ -1,8 +1,10 @@ package com.habitrpg.android.habitica.ui.adapter.social +import android.os.Build import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.annotation.RequiresApi import androidx.recyclerview.widget.RecyclerView import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.extensions.inflate @@ -14,6 +16,8 @@ import com.habitrpg.android.habitica.ui.viewHolders.ChatRecyclerMessageViewHolde import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject +import java.time.Instant +import java.time.ZoneId class ChatRecyclerViewAdapter(user: User?, private val isTavern: Boolean) : BaseRecyclerViewAdapter() { internal var user = user @@ -45,7 +49,10 @@ class ChatRecyclerViewAdapter(user: User?, private val isTavern: Boolean) : Base override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { if (data[position].isSystemMessage) { - (holder as? SystemChatMessageViewHolder)?.bind(data[position]) + val sysChatHolder = holder as? SystemChatMessageViewHolder ?: return + sysChatHolder.bind(data[position], + expandedMessageId == data[position].id) + sysChatHolder.onShouldExpand = { expandMessage(data[position].id, position)} } else { val chatHolder = holder as? ChatRecyclerMessageViewHolder ?: return val message = data[position] @@ -103,9 +110,22 @@ class ChatRecyclerViewAdapter(user: User?, private val isTavern: Boolean) : Base class SystemChatMessageViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { private val textView: TextView = itemView.findViewById(R.id.text_view) + private val timestamp: TextView = itemView.findViewById(R.id.system_message_timestamp) + private val dateTime = java.text.SimpleDateFormat("MMM dd, hh:mm aaa") - fun bind(chatMessage: ChatMessage?) { + var onShouldExpand: (() -> Unit)? = null + + init{ + textView.setOnClickListener { + onShouldExpand?.invoke() + } + } + + fun bind(chatMessage: ChatMessage?, isExpanded: Boolean) { textView.text = chatMessage?.text?.removePrefix("`")?.removeSuffix("`") + if(isExpanded) { + timestamp.text = dateTime.format(chatMessage?.timestamp?.let { java.util.Date(it) }) + } } } \ No newline at end of file diff --git a/habitica.properties.example b/habitica.properties.example deleted file mode 100644 index 0c783067a..000000000 --- a/habitica.properties.example +++ /dev/null @@ -1,18 +0,0 @@ -# Habitica Server Port -# local instance -# PORT=3000 -PORT=80 - -# Genymotion -# BASE_URL=http://10.0.3.2:3000 - -# Android Emulator -# see: http://developer.android.com/tools/help/emulator.html#networkaddresses -# BASE_URL=http://10.0.2.2:3000 - -# Production -BASE_URL=https://habitica.com - -STAGING_KEY= -ANDROID_TESTING_UUID= -APPLE_AUTH_CLIENT_ID= diff --git a/habitica.resources.example b/habitica.resources.example deleted file mode 100644 index 989a5322f..000000000 --- a/habitica.resources.example +++ /dev/null @@ -1,3 +0,0 @@ -fabric_key=CHANGE_ME -facebook_app_id=CHANGE_ME -amplitude_app_id=CHANGE_ME From de4422a6cbb5e7a0994135aca6e44480072542c7 Mon Sep 17 00:00:00 2001 From: Isabel Lally Date: Tue, 9 Feb 2021 04:15:23 -0500 Subject: [PATCH 2/5] Timestamp works, but 1 warning --- Habitica/res/layout/system_chat_message.xml | 1 + .../ui/adapter/social/ChatRecyclerViewAdapter.kt | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Habitica/res/layout/system_chat_message.xml b/Habitica/res/layout/system_chat_message.xml index 595f3647d..68a806d31 100644 --- a/Habitica/res/layout/system_chat_message.xml +++ b/Habitica/res/layout/system_chat_message.xml @@ -21,6 +21,7 @@ style="@style/Body1"/> Unit)? = null @@ -123,9 +126,13 @@ class SystemChatMessageViewHolder(itemView: View) : RecyclerView.ViewHolder(item fun bind(chatMessage: ChatMessage?, isExpanded: Boolean) { textView.text = chatMessage?.text?.removePrefix("`")?.removeSuffix("`") + timestamp.text = dateTime.format(chatMessage?.timestamp?.let { java.util.Date(it) }) if(isExpanded) { - timestamp.text = dateTime.format(chatMessage?.timestamp?.let { java.util.Date(it) }) + binding.systemMessageTimestamp.visibility = View.VISIBLE } + else{ + binding.systemMessageTimestamp.visibility = View.GONE + } } } \ No newline at end of file From 9056178146d9ace805ac6acacd35b0fea54a145b Mon Sep 17 00:00:00 2001 From: Isabel Lally Date: Tue, 9 Feb 2021 04:48:37 -0500 Subject: [PATCH 3/5] clean up imports --- .../habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt index 17c848cc9..b70332c6e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt @@ -18,8 +18,6 @@ import com.habitrpg.android.habitica.ui.viewHolders.ChatRecyclerMessageViewHolde import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.subjects.PublishSubject -import java.time.Instant -import java.time.ZoneId class ChatRecyclerViewAdapter(user: User?, private val isTavern: Boolean) : BaseRecyclerViewAdapter() { internal var user = user From 3052deb0f180229a59896b16000e60e2ae545610 Mon Sep 17 00:00:00 2001 From: Isabel Lally Date: Tue, 9 Feb 2021 11:04:24 -0500 Subject: [PATCH 4/5] added .example files back in --- habitica.properties.example | 18 ++++++++++++++++++ habitica.resources.example | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 habitica.properties.example create mode 100644 habitica.resources.example diff --git a/habitica.properties.example b/habitica.properties.example new file mode 100644 index 000000000..0c783067a --- /dev/null +++ b/habitica.properties.example @@ -0,0 +1,18 @@ +# Habitica Server Port +# local instance +# PORT=3000 +PORT=80 + +# Genymotion +# BASE_URL=http://10.0.3.2:3000 + +# Android Emulator +# see: http://developer.android.com/tools/help/emulator.html#networkaddresses +# BASE_URL=http://10.0.2.2:3000 + +# Production +BASE_URL=https://habitica.com + +STAGING_KEY= +ANDROID_TESTING_UUID= +APPLE_AUTH_CLIENT_ID= diff --git a/habitica.resources.example b/habitica.resources.example new file mode 100644 index 000000000..989a5322f --- /dev/null +++ b/habitica.resources.example @@ -0,0 +1,3 @@ +fabric_key=CHANGE_ME +facebook_app_id=CHANGE_ME +amplitude_app_id=CHANGE_ME From a69276379a0e8834afba90af739577da2a2932be Mon Sep 17 00:00:00 2001 From: Isabel Lally Date: Sun, 28 Feb 2021 15:38:37 -0500 Subject: [PATCH 5/5] Fix formatting of if/else statement --- .../habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt index b70332c6e..bf72d73c9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.kt @@ -127,8 +127,7 @@ class SystemChatMessageViewHolder(itemView: View) : RecyclerView.ViewHolder(item timestamp.text = dateTime.format(chatMessage?.timestamp?.let { java.util.Date(it) }) if(isExpanded) { binding.systemMessageTimestamp.visibility = View.VISIBLE - } - else{ + } else { binding.systemMessageTimestamp.visibility = View.GONE } }