refactor: 修改Repo层和ViewModel层
修改Repo层和ViewModel层为kotlin语言
This commit is contained in:
parent
3a15994c48
commit
614e0af3ba
@ -1,11 +1,14 @@
|
|||||||
package com.kaixed.kchat.model.search
|
package com.kaixed.kchat.model.search
|
||||||
|
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/9/22 22:59
|
* @Date: 2024/9/22 22:59
|
||||||
*/
|
*/
|
||||||
|
@Serializable
|
||||||
data class SearchFriends(
|
data class SearchFriends(
|
||||||
val code: String,
|
val code: String,
|
||||||
val msg: String,
|
val msg: String,
|
||||||
val data: User
|
val `data`: User
|
||||||
)
|
)
|
||||||
|
@ -2,11 +2,14 @@ package com.kaixed.kchat.model.search
|
|||||||
|
|
||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/9/22 22:58
|
* @Date: 2024/9/22 22:58
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@Serializable
|
||||||
data class User(
|
data class User(
|
||||||
val username: String,
|
val username: String,
|
||||||
val nickname: String,
|
val nickname: String,
|
||||||
|
@ -5,11 +5,16 @@ import com.google.gson.Gson
|
|||||||
import com.kaixed.kchat.database.UserManager
|
import com.kaixed.kchat.database.UserManager
|
||||||
import com.kaixed.kchat.model.friend.AcceptContactRequest
|
import com.kaixed.kchat.model.friend.AcceptContactRequest
|
||||||
import com.kaixed.kchat.model.friend.ContactRequestResponse
|
import com.kaixed.kchat.model.friend.ContactRequestResponse
|
||||||
|
import com.kaixed.kchat.model.friend.FriendItem
|
||||||
|
import com.kaixed.kchat.model.friend.FriendResponse
|
||||||
import com.kaixed.kchat.model.response.ApplyFriend
|
import com.kaixed.kchat.model.response.ApplyFriend
|
||||||
|
import com.kaixed.kchat.model.search.SearchFriends
|
||||||
import com.kaixed.kchat.network.NetworkInterface.ACCEPT_CONTACT_REQUEST
|
import com.kaixed.kchat.network.NetworkInterface.ACCEPT_CONTACT_REQUEST
|
||||||
import com.kaixed.kchat.network.NetworkInterface.ADD_FRIEND
|
import com.kaixed.kchat.network.NetworkInterface.ADD_FRIEND
|
||||||
|
import com.kaixed.kchat.network.NetworkInterface.FRIEND_LIST
|
||||||
import com.kaixed.kchat.network.NetworkInterface.FRIEND_REQUEST_LIST
|
import com.kaixed.kchat.network.NetworkInterface.FRIEND_REQUEST_LIST
|
||||||
import com.kaixed.kchat.network.NetworkInterface.SERVER_URL
|
import com.kaixed.kchat.network.NetworkInterface.SERVER_URL
|
||||||
|
import com.kaixed.kchat.network.NetworkInterface.USER_LIST
|
||||||
import com.kaixed.kchat.network.NetworkRequest
|
import com.kaixed.kchat.network.NetworkRequest
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.Call
|
import okhttp3.Call
|
||||||
@ -121,4 +126,50 @@ class ContactRepo {
|
|||||||
return mutableLiveData
|
return mutableLiveData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun searchContact(username: String): MutableLiveData<SearchFriends?> {
|
||||||
|
val listMutableLiveData = MutableLiveData<SearchFriends?>()
|
||||||
|
|
||||||
|
NetworkRequest().getAsync("$SERVER_URL$USER_LIST$username", object : Callback {
|
||||||
|
override fun onFailure(call: Call, e: IOException) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Throws(IOException::class)
|
||||||
|
override fun onResponse(call: Call, response: Response) {
|
||||||
|
response.body?.string()?.let { responseBody ->
|
||||||
|
val searchFriends = Json.decodeFromString<SearchFriends>(responseBody)
|
||||||
|
listMutableLiveData.postValue(searchFriends)
|
||||||
|
} ?: run {
|
||||||
|
listMutableLiveData.postValue(null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return listMutableLiveData
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getContactList(username: String): MutableLiveData<List<FriendItem>?> {
|
||||||
|
val applyFriendMutableLiveData = MutableLiveData<List<FriendItem>?>()
|
||||||
|
|
||||||
|
val requestBody = FormBody.Builder()
|
||||||
|
.add("userId", username)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
NetworkRequest().postAsync(SERVER_URL + FRIEND_LIST, requestBody, object : Callback {
|
||||||
|
override fun onFailure(call: Call, e: IOException) {
|
||||||
|
applyFriendMutableLiveData.postValue(null)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResponse(call: Call, response: Response) {
|
||||||
|
if (response.isSuccessful && response.body != null) {
|
||||||
|
val responseBody = response.body!!.string()
|
||||||
|
val friendList = Gson().fromJson(responseBody, FriendResponse::class.java)
|
||||||
|
applyFriendMutableLiveData.postValue(friendList.data)
|
||||||
|
} else {
|
||||||
|
applyFriendMutableLiveData.postValue(null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return applyFriendMutableLiveData
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,47 +0,0 @@
|
|||||||
package com.kaixed.kchat.repository
|
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
|
||||||
import com.google.gson.Gson
|
|
||||||
import com.kaixed.kchat.model.friend.FriendItem
|
|
||||||
import com.kaixed.kchat.model.friend.FriendResponse
|
|
||||||
import com.kaixed.kchat.network.NetworkInterface.FRIEND_LIST
|
|
||||||
import com.kaixed.kchat.network.NetworkInterface.SERVER_URL
|
|
||||||
import com.kaixed.kchat.network.NetworkRequest
|
|
||||||
import okhttp3.Call
|
|
||||||
import okhttp3.Callback
|
|
||||||
import okhttp3.FormBody
|
|
||||||
import okhttp3.Response
|
|
||||||
import java.io.IOException
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: kaixed
|
|
||||||
* @Date: 2024/10/17 21:53
|
|
||||||
*/
|
|
||||||
class FriendListRepo {
|
|
||||||
fun getFriendList(username: String): MutableLiveData<List<FriendItem>?> {
|
|
||||||
val applyFriendMutableLiveData = MutableLiveData<List<FriendItem>?>()
|
|
||||||
|
|
||||||
val requestBody = FormBody.Builder()
|
|
||||||
.add("userId", username)
|
|
||||||
.build()
|
|
||||||
|
|
||||||
NetworkRequest().postAsync(SERVER_URL + FRIEND_LIST, requestBody, object : Callback {
|
|
||||||
override fun onFailure(call: Call, e: IOException) {
|
|
||||||
applyFriendMutableLiveData.postValue(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResponse(call: Call, response: Response) {
|
|
||||||
if (response.isSuccessful && response.body != null) {
|
|
||||||
val responseBody = response.body!!.string()
|
|
||||||
val friendList = Gson().fromJson(responseBody, FriendResponse::class.java)
|
|
||||||
applyFriendMutableLiveData.postValue(friendList.data)
|
|
||||||
} else {
|
|
||||||
applyFriendMutableLiveData.postValue(null)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return applyFriendMutableLiveData
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
package com.kaixed.kchat.repository;
|
|
||||||
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.SERVER_URL;
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.USER_LOGIN;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.kaixed.kchat.model.login.Login;
|
|
||||||
import com.kaixed.kchat.network.NetworkRequest;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import okhttp3.Call;
|
|
||||||
import okhttp3.Callback;
|
|
||||||
import okhttp3.FormBody;
|
|
||||||
import okhttp3.RequestBody;
|
|
||||||
import okhttp3.Response;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author hui
|
|
||||||
*/
|
|
||||||
public class LoginRepository {
|
|
||||||
|
|
||||||
public MutableLiveData<Login> login(String username, String password) {
|
|
||||||
MutableLiveData<Login> loginResult = new MutableLiveData<>();
|
|
||||||
|
|
||||||
RequestBody requestBody = new FormBody.Builder()
|
|
||||||
.add("username", username)
|
|
||||||
.add("password", password)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
new NetworkRequest().postAsync(SERVER_URL + USER_LOGIN, requestBody, new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
|
||||||
loginResult.postValue(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
|
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
|
||||||
String responseBody = response.body().string();
|
|
||||||
Login login = new Gson().fromJson(responseBody, Login.class);
|
|
||||||
loginResult.postValue(login);
|
|
||||||
} else {
|
|
||||||
loginResult.postValue(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return loginResult;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package com.kaixed.kchat.repository;
|
|
||||||
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.SERVER_URL;
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.USER_LIST;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.kaixed.kchat.model.search.SearchFriends;
|
|
||||||
import com.kaixed.kchat.network.NetworkRequest;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import okhttp3.Call;
|
|
||||||
import okhttp3.Callback;
|
|
||||||
import okhttp3.Response;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: kaixed
|
|
||||||
* @Date: 2024/6/1 20:53
|
|
||||||
*/
|
|
||||||
public class SearchFriendsRepository {
|
|
||||||
public MutableLiveData<SearchFriends> searchFriends(String username) {
|
|
||||||
|
|
||||||
MutableLiveData<SearchFriends> listMutableLiveData = new MutableLiveData<>();
|
|
||||||
|
|
||||||
new NetworkRequest().getAsync(SERVER_URL + USER_LIST + username, new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
|
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
|
||||||
String responseBody = response.body().string();
|
|
||||||
SearchFriends searchFriends = new Gson().fromJson(responseBody, SearchFriends.class);
|
|
||||||
listMutableLiveData.postValue(searchFriends);
|
|
||||||
} else {
|
|
||||||
listMutableLiveData.postValue(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return listMutableLiveData;
|
|
||||||
}
|
|
||||||
}
|
|
65
app/src/main/java/com/kaixed/kchat/repository/UserRepo.kt
Normal file
65
app/src/main/java/com/kaixed/kchat/repository/UserRepo.kt
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
package com.kaixed.kchat.repository
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import com.google.gson.Gson
|
||||||
|
import com.kaixed.kchat.model.login.Login
|
||||||
|
import com.kaixed.kchat.model.user.UserList
|
||||||
|
import com.kaixed.kchat.network.NetworkInterface.SERVER_URL
|
||||||
|
import com.kaixed.kchat.network.NetworkInterface.USER_LIST
|
||||||
|
import com.kaixed.kchat.network.NetworkInterface.USER_LOGIN
|
||||||
|
import com.kaixed.kchat.network.NetworkRequest
|
||||||
|
import okhttp3.Call
|
||||||
|
import okhttp3.Callback
|
||||||
|
import okhttp3.FormBody
|
||||||
|
import okhttp3.Response
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: kaixed
|
||||||
|
* @Date: 2024/10/23 20:21
|
||||||
|
*/
|
||||||
|
class UserRepo {
|
||||||
|
fun login(username: String, password: String): MutableLiveData<Login?> {
|
||||||
|
val loginMutableLiveData = MutableLiveData<Login?>()
|
||||||
|
|
||||||
|
val requestBody = FormBody.Builder()
|
||||||
|
.add("username", username)
|
||||||
|
.add("password", password)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
NetworkRequest().postAsync(
|
||||||
|
"$SERVER_URL$USER_LOGIN",
|
||||||
|
requestBody,
|
||||||
|
object : Callback {
|
||||||
|
override fun onFailure(call: Call, e: IOException) {
|
||||||
|
loginMutableLiveData.postValue(null)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResponse(call: Call, response: Response) {
|
||||||
|
response.body?.string()?.let { responseBody ->
|
||||||
|
val login = Gson().fromJson(responseBody, Login::class.java)
|
||||||
|
loginMutableLiveData.postValue(login)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return loginMutableLiveData
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getUserListByNickname(username: String): MutableLiveData<UserList> {
|
||||||
|
val listMutableLiveData = MutableLiveData<UserList>()
|
||||||
|
NetworkRequest().getAsync("$SERVER_URL$USER_LIST$username", object : Callback {
|
||||||
|
override fun onFailure(call: Call, e: IOException) {
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResponse(call: Call, response: Response) {
|
||||||
|
response.body?.string()?.let { responseBody ->
|
||||||
|
val userList = Gson().fromJson(responseBody, UserList::class.java)
|
||||||
|
listMutableLiveData.postValue(userList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return listMutableLiveData
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,47 +0,0 @@
|
|||||||
package com.kaixed.kchat.repository;
|
|
||||||
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.SERVER_URL;
|
|
||||||
import static com.kaixed.kchat.network.NetworkInterface.USER_LIST;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.kaixed.kchat.model.user.UserList;
|
|
||||||
import com.kaixed.kchat.network.NetworkRequest;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import okhttp3.Call;
|
|
||||||
import okhttp3.Callback;
|
|
||||||
import okhttp3.Response;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: kaixed
|
|
||||||
* @Date: 2024/6/13 12:34
|
|
||||||
*/
|
|
||||||
public class UserRepository {
|
|
||||||
public MutableLiveData<UserList> getUserListByNickname(String username) {
|
|
||||||
|
|
||||||
MutableLiveData<UserList> listMutableLiveData = new MutableLiveData<>();
|
|
||||||
|
|
||||||
new NetworkRequest().getAsync(SERVER_URL + USER_LIST + username, new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
|
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
|
||||||
String responseBody = response.body().string();
|
|
||||||
UserList userList = new Gson().fromJson(responseBody, UserList.class);
|
|
||||||
listMutableLiveData.postValue(userList);
|
|
||||||
} else {
|
|
||||||
listMutableLiveData.postValue(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return listMutableLiveData;
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.kaixed.kchat.utils
|
||||||
|
|
||||||
|
import android.graphics.Canvas
|
||||||
|
import android.graphics.Paint
|
||||||
|
import android.graphics.drawable.Drawable
|
||||||
|
import android.text.style.ImageSpan
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: kaixed
|
||||||
|
* @Date: 2024/10/23 18:07
|
||||||
|
*/
|
||||||
|
internal class CenteredImageSpan(drawable: Drawable?) :
|
||||||
|
ImageSpan(drawable!!, ALIGN_BASELINE) {
|
||||||
|
override fun draw(
|
||||||
|
canvas: Canvas,
|
||||||
|
text: CharSequence?,
|
||||||
|
start: Int,
|
||||||
|
end: Int,
|
||||||
|
x: Float,
|
||||||
|
top: Int,
|
||||||
|
y: Int,
|
||||||
|
bottom: Int,
|
||||||
|
paint: Paint
|
||||||
|
) {
|
||||||
|
val drawable = drawable
|
||||||
|
val fm = paint.fontMetricsInt
|
||||||
|
val transY = (y + fm.descent + y + fm.ascent) / 2 - drawable.bounds.bottom / 2
|
||||||
|
canvas.save()
|
||||||
|
canvas.translate(x, transY.toFloat())
|
||||||
|
drawable.draw(canvas)
|
||||||
|
canvas.restore()
|
||||||
|
}
|
||||||
|
}
|
@ -16,7 +16,6 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/5/30 19:47
|
* @Date: 2024/5/30 19:47
|
||||||
@ -48,9 +47,10 @@ public class ImageSpanUtil {
|
|||||||
if (emojiMap.containsKey(matcher.group())) {
|
if (emojiMap.containsKey(matcher.group())) {
|
||||||
Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), emojiMap.get(matcher.group()), null);
|
Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), emojiMap.get(matcher.group()), null);
|
||||||
assert drawable != null;
|
assert drawable != null;
|
||||||
drawable.setBounds(0, 0, textSize, textSize);
|
int newSize = (int) (textSize * 1.2);
|
||||||
ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
|
drawable.setBounds(0, 0, newSize, newSize);
|
||||||
spannableString.setSpan(imageSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
CenteredImageSpan centeredImageSpan = new CenteredImageSpan(drawable);
|
||||||
|
spannableString.setSpan(centeredImageSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return spannableString;
|
return spannableString;
|
||||||
@ -64,10 +64,12 @@ public class ImageSpanUtil {
|
|||||||
if (emojiMap.containsKey(emojiStr)) {
|
if (emojiMap.containsKey(emojiStr)) {
|
||||||
Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), emojiMap.get(emojiStr), null);
|
Drawable drawable = ResourcesCompat.getDrawable(context.getResources(), emojiMap.get(emojiStr), null);
|
||||||
if (drawable != null) {
|
if (drawable != null) {
|
||||||
drawable.setBounds(0, 0, textSize, textSize);
|
int newSize = (int) (textSize * 1.2);
|
||||||
ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
|
drawable.setBounds(0, 0, newSize, newSize);
|
||||||
|
CenteredImageSpan centeredImageSpan = new CenteredImageSpan(drawable);
|
||||||
|
// ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_CENTER);
|
||||||
// 应用ImageSpan到Editable对象
|
// 应用ImageSpan到Editable对象
|
||||||
editable.setSpan(imageSpan, index, index + emojiStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
editable.setSpan(centeredImageSpan, index, index + emojiStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ class FriendListActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private fun getFriendList(username: String) {
|
private fun getFriendList(username: String) {
|
||||||
friendListViewModel.getFriendList(username).observe(this) { value ->
|
friendListViewModel.getFriendList(username).observe(this) { value ->
|
||||||
if (value != null) {
|
value?.let {
|
||||||
friendList.addAll(value)
|
friendList.addAll(value)
|
||||||
binding.recycleFriendList.adapter?.notifyDataSetChanged()
|
binding.recycleFriendList.adapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
|
@ -26,15 +26,15 @@ class ProfileActivity : AppCompatActivity() {
|
|||||||
binding.rlSetting.setOnClickListener {
|
binding.rlSetting.setOnClickListener {
|
||||||
// val intent = Intent(this, SettingActivity::class.java)
|
// val intent = Intent(this, SettingActivity::class.java)
|
||||||
// startActivity(intent)
|
// startActivity(intent)
|
||||||
supportFragmentManager
|
// supportFragmentManager
|
||||||
.beginTransaction()
|
// .beginTransaction()
|
||||||
.replace(
|
// .replace(
|
||||||
binding.fragmentContainer.id,
|
// binding.fragmentContainer.id,
|
||||||
SettingsFragment()
|
// SettingsFragment()
|
||||||
) // fragment_container 是你的布局中的容器ID
|
// ) // fragment_container 是你的布局中的容器ID
|
||||||
.commit()
|
// .commit()
|
||||||
binding.clProfile.visibility = View.GONE
|
// binding.clProfile.visibility = View.GONE
|
||||||
binding.llSettingItems.visibility = View.GONE
|
// binding.llSettingItems.visibility = View.GONE
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
package com.kaixed.kchat.viewmodel;
|
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: kaixed
|
|
||||||
* @Date: 2024/6/1 20:52
|
|
||||||
*/
|
|
||||||
public class AddFriendViewModel extends ViewModel {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -4,11 +4,8 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.kaixed.kchat.model.friend.AcceptContactRequest
|
import com.kaixed.kchat.model.friend.AcceptContactRequest
|
||||||
import com.kaixed.kchat.model.friend.ContactRequestResponse
|
import com.kaixed.kchat.model.friend.ContactRequestResponse
|
||||||
import com.kaixed.kchat.model.friend.FriendRequestItem
|
|
||||||
import com.kaixed.kchat.model.friend.FriendResponse
|
|
||||||
import com.kaixed.kchat.model.search.SearchFriends
|
import com.kaixed.kchat.model.search.SearchFriends
|
||||||
import com.kaixed.kchat.repository.ContactRepo
|
import com.kaixed.kchat.repository.ContactRepo
|
||||||
import com.kaixed.kchat.repository.SearchFriendsRepository
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
@ -16,17 +13,19 @@ import com.kaixed.kchat.repository.SearchFriendsRepository
|
|||||||
*/
|
*/
|
||||||
class ContactViewModel : ViewModel() {
|
class ContactViewModel : ViewModel() {
|
||||||
private val contactRepo = ContactRepo()
|
private val contactRepo = ContactRepo()
|
||||||
private val searchFriendsRepo = SearchFriendsRepository()
|
|
||||||
|
|
||||||
|
|
||||||
fun getContactRequestList(username: String): MutableLiveData<ContactRequestResponse?> =
|
fun getContactRequestList(username: String): MutableLiveData<ContactRequestResponse?> =
|
||||||
contactRepo.getContactRequestList(username)
|
contactRepo.getContactRequestList(username)
|
||||||
|
|
||||||
|
|
||||||
fun searchFriends(username: String): MutableLiveData<SearchFriends>? =
|
fun searchFriends(username: String): MutableLiveData<SearchFriends?> =
|
||||||
searchFriendsRepo.searchFriends(username)
|
contactRepo.searchContact(username)
|
||||||
|
|
||||||
fun acceptContactRequest(username: String, contactId: String): MutableLiveData<AcceptContactRequest?> =
|
fun acceptContactRequest(
|
||||||
|
username: String,
|
||||||
|
contactId: String
|
||||||
|
): MutableLiveData<AcceptContactRequest?> =
|
||||||
contactRepo.acceptContactRequest(username, contactId)
|
contactRepo.acceptContactRequest(username, contactId)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
package com.kaixed.kchat.viewmodel
|
package com.kaixed.kchat.viewmodel
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.kaixed.kchat.repository.FriendListRepo
|
import com.kaixed.kchat.model.friend.FriendItem
|
||||||
|
import com.kaixed.kchat.repository.ContactRepo
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/10/17 22:02
|
* @Date: 2024/10/17 22:02
|
||||||
*/
|
*/
|
||||||
class FriendListViewModel : ViewModel() {
|
class FriendListViewModel : ViewModel() {
|
||||||
private val friendListRepo = FriendListRepo()
|
private val contactRepo = ContactRepo()
|
||||||
|
|
||||||
fun getFriendList(username: String) = friendListRepo.getFriendList(username)
|
fun getFriendList(username: String): MutableLiveData<List<FriendItem>?> =
|
||||||
|
contactRepo.getContactList(username)
|
||||||
|
|
||||||
}
|
}
|
@ -1,24 +1,18 @@
|
|||||||
package com.kaixed.kchat.viewmodel;
|
package com.kaixed.kchat.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel
|
||||||
|
import com.kaixed.kchat.model.login.Login
|
||||||
import com.kaixed.kchat.model.login.Login;
|
import com.kaixed.kchat.repository.UserRepo
|
||||||
import com.kaixed.kchat.repository.LoginRepository;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/5/27 9:29
|
* @Date: 2024/10/23 20:19
|
||||||
*/
|
*/
|
||||||
public class LoginViewModel extends ViewModel {
|
class LoginViewModel : ViewModel() {
|
||||||
private final LoginRepository loginRepository;
|
private val userRepo: UserRepo = UserRepo()
|
||||||
|
|
||||||
public LoginViewModel() {
|
fun login(username: String, password: String): MutableLiveData<Login?> =
|
||||||
loginRepository = new LoginRepository();
|
userRepo.login(username, password)
|
||||||
}
|
|
||||||
|
|
||||||
public MutableLiveData<Login> login(String username, String password) {
|
}
|
||||||
return loginRepository.login(username, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -3,16 +3,16 @@ package com.kaixed.kchat.viewmodel
|
|||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import com.kaixed.kchat.model.search.SearchFriends
|
import com.kaixed.kchat.model.search.SearchFriends
|
||||||
import com.kaixed.kchat.repository.SearchFriendsRepository
|
import com.kaixed.kchat.repository.ContactRepo
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/9/22 23:04
|
* @Date: 2024/9/22 23:04
|
||||||
*/
|
*/
|
||||||
class SearchFriendsViewModel : ViewModel() {
|
class SearchFriendsViewModel : ViewModel() {
|
||||||
private var searchFriendsRepo: SearchFriendsRepository = SearchFriendsRepository()
|
private var contactRepo: ContactRepo = ContactRepo()
|
||||||
|
|
||||||
fun searchFriends(username: String): MutableLiveData<SearchFriends>? =
|
fun searchFriends(username: String): MutableLiveData<SearchFriends?> =
|
||||||
searchFriendsRepo.searchFriends(username)
|
contactRepo.searchContact(username)
|
||||||
|
|
||||||
}
|
}
|
@ -1,23 +1,18 @@
|
|||||||
package com.kaixed.kchat.viewmodel;
|
package com.kaixed.kchat.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel
|
||||||
|
import com.kaixed.kchat.model.user.UserList
|
||||||
import com.kaixed.kchat.model.user.UserList;
|
import com.kaixed.kchat.repository.UserRepo
|
||||||
import com.kaixed.kchat.repository.UserRepository;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: kaixed
|
* @Author: kaixed
|
||||||
* @Date: 2024/6/13 12:49
|
* @Date: 2024/10/23 20:14
|
||||||
*/
|
*/
|
||||||
public class UserViewModel extends ViewModel {
|
class UserViewModel : ViewModel() {
|
||||||
private final UserRepository userRepository;
|
private val userRepo: UserRepo = UserRepo()
|
||||||
|
|
||||||
public UserViewModel() {
|
fun getUserListByNickname(username: String): MutableLiveData<UserList> =
|
||||||
this.userRepository = new UserRepository();
|
userRepo.getUserListByNickname(username)
|
||||||
}
|
|
||||||
|
|
||||||
public MutableLiveData<UserList> getUserListByNickname(String username) {
|
}
|
||||||
return userRepository.getUserListByNickname(username);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user