aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml26
4 files changed, 26 insertions, 21 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt
index aafd313..9c489b3 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ChatActivity.kt
@@ -26,6 +26,8 @@ import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
import com.example.brzodolokacije.chat.SignalRListener
import com.example.brzodolokacije.databinding.ActivityChatBinding
+import kotlinx.coroutines.MainScope
+import kotlinx.coroutines.launch
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
@@ -143,10 +145,11 @@ class ChatActivity : AppCompatActivity(), SwipeRefreshLayout.OnRefreshListener {
}
fun requestForChats(){
- var dbHelper= DBHelper.getInstance(this@ChatActivity)
- items=dbHelper.getContacts()
- adapterVar= items?.let { ChatPreviewsAdapter(it,this@ChatActivity) }
- setRecyclerView(setParams = false)
+ MainScope().launch{
+ var dbHelper= DBHelper.getInstance(this@ChatActivity)
+ items=dbHelper.getContacts()
+ setRecyclerView()
+ }
}
fun requestNewMessages(){
@@ -164,7 +167,8 @@ class ChatActivity : AppCompatActivity(), SwipeRefreshLayout.OnRefreshListener {
cal.time=message.timestamp
dbHelper.addMessage(
Message(message.senderId+message.timestamp,message.senderId,
- JWT(SharedPreferencesHelper.getValue("jwt",this@ChatActivity)!!).claims["id"]?.asString()!!,message.messagge,message.timestamp,cal),false)
+ JWT(SharedPreferencesHelper.getValue("jwt",this@ChatActivity)!!).claims["id"]?.asString()!!,message.messagge,message.timestamp,cal),false)
+
}
}
requestForChats()
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt
index 8354a90..5808aab 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/DBHelper.kt
@@ -215,14 +215,13 @@ class DBHelper :
return null
}
- fun getContacts(): MutableList<ChatPreview>? {
+ suspend fun getContacts(): MutableList<ChatPreview>? {
var mapChats:Map<Long,ChatPreview>
mapChats= mutableMapOf()
onCreate(db)
var sql="SELECT * FROM "+ CONTACTS_TABLE_NAME
var cursor=db?.rawQuery(sql,null)
if(cursor?.count!! >0){
- var contactList:MutableList<ChatPreview> =mutableListOf()
var userIdIndex=cursor.getColumnIndexOrThrow("userId")
var readIndex=cursor.getColumnIndexOrThrow("read")
var usernameIndex=cursor.getColumnIndexOrThrow("username")
@@ -230,10 +229,8 @@ class DBHelper :
var chat=ChatPreview(cursor.getString(userIdIndex),cursor.getInt(readIndex)==1,cursor.getString(usernameIndex))
var lastMessage=getLastMessage(chat.userId)?.usableTimeStamp!!.timeInMillis
mapChats[lastMessage]=chat
- contactList.add(chat)
}
var sorted=mapChats.toSortedMap(kotlin.Comparator { o1, o2 -> (o2-o1).toInt() })
- Log.d("main",contactList.size.toString())
return ArrayList<ChatPreview>(sorted.values).toMutableList()
}
return null
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt
index 627d7c0..35088a5 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/chat/SignalRListener.kt
@@ -82,7 +82,7 @@ class SignalRListener private constructor(val activity: Activity){
if(activity.clickedChat?.userId==message.senderId){
activity.clickedChat?.requestMessages()
}
- activity.requestNewMessages()
+ activity.onRefresh()
}
when {
ContextCompat.checkSelfPermission(activity,
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml
index 0b4a589..9815ce1 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_chat.xml
@@ -61,23 +61,27 @@
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeContainer"
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_marginTop="8dp"
+ android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/llHeader"
- app:layout_constraintVertical_bias="1.0"
- tools:layout_editor_absoluteX="-27dp">
+ app:layout_constraintTop_toBottomOf="@id/llHeader"
+ app:layout_constraintVertical_bias="0.0"
+ tools:layout_editor_absoluteX="0dp">
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/rvMain"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ android:layout_height="match_parent">
- </androidx.recyclerview.widget.RecyclerView>
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rvMain"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+ </androidx.recyclerview.widget.RecyclerView>
+ </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file