diff options
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 |