Commit 28e24bd3 authored by feihuaduo's avatar feihuaduo

聊天室地址变更

列表不在底部时有其他人的新消息不滑下去
聊天信息框边距加宽
parent f8dbbd05
...@@ -17,7 +17,7 @@ buildscript { ...@@ -17,7 +17,7 @@ buildscript {
} }
ext { ext {
compileSdkVersion = 30 compileSdkVersion = 31
//buildToolsVersion = compileSdkVersion+".0.0" //buildToolsVersion = compileSdkVersion+".0.0"
supportVersion = "30.0.0" supportVersion = "30.0.0"
} }
......
...@@ -121,7 +121,7 @@ dependencies { ...@@ -121,7 +121,7 @@ dependencies {
implementation 'com.nightonke:boommenu:2.1.0' implementation 'com.nightonke:boommenu:2.1.0'
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
//dialog库 //dialog库
implementation 'com.github.feihuaduo:DialogUtils:1.8.9.20' implementation 'com.github.feihuaduo:DialogUtils:1.8.9.23'
//recyclerview的adapter库 //recyclerview的adapter库
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4' implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.appcompat:appcompat:1.2.0'
......
...@@ -48,7 +48,7 @@ public class TextSelectAdapter<T extends TextSelect> extends BaseQuickAdapter<T, ...@@ -48,7 +48,7 @@ public class TextSelectAdapter<T extends TextSelect> extends BaseQuickAdapter<T,
@SuppressLint("ResourceType") @SuppressLint("ResourceType")
@Override @Override
protected void convert(BaseViewHolder helper, T item) { protected void convert(BaseViewHolder helper, T item) {
int position = helper.getAdapterPosition(); int position = getItemPosition(item);
helper.setText(R.id.tv_name, item.getName()); helper.setText(R.id.tv_name, item.getName());
if (isManySelect) { if (isManySelect) {
......
...@@ -6,7 +6,6 @@ import android.view.View; ...@@ -6,7 +6,6 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -20,9 +19,9 @@ import com.ourygo.assistant.util.Util; ...@@ -20,9 +19,9 @@ import com.ourygo.assistant.util.Util;
import cn.garymb.ygomobile.base.BaseFragemnt; import cn.garymb.ygomobile.base.BaseFragemnt;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.home.HomeActivity; import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.mycard.MycardFragment;
import cn.garymb.ygomobile.ui.mycard.mcchat.adapter.ChatAdapter; import cn.garymb.ygomobile.ui.mycard.mcchat.adapter.ChatAdapter;
import cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement; import cn.garymb.ygomobile.ui.mycard.mcchat.management.ServiceManagement;
import cn.garymb.ygomobile.ui.mycard.mcchat.management.UserManagement;
import cn.garymb.ygomobile.utils.YGOUtil; import cn.garymb.ygomobile.utils.YGOUtil;
public class MycardChatFragment extends BaseFragemnt implements ChatListener { public class MycardChatFragment extends BaseFragemnt implements ChatListener {
...@@ -95,7 +94,10 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener { ...@@ -95,7 +94,10 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener {
@Override @Override
public void addChatMessage(ChatMessage message) { public void addChatMessage(ChatMessage message) {
boolean isSmooth = YGOUtil.isVisBottom(main_rec) || message.getName().equals(UserManagement.getUserName());
cadp.sx(); cadp.sx();
//如果在底部新消息来了或者消息是自己发送才滑到最下面,最后一个item有显示才算在底部
if (isSmooth)
main_rec.smoothScrollToPosition(serviceManagement.getData().size() - 1); main_rec.smoothScrollToPosition(serviceManagement.getData().size() - 1);
} }
......
...@@ -20,6 +20,7 @@ import org.jxmpp.jid.parts.Resourcepart; ...@@ -20,6 +20,7 @@ import org.jxmpp.jid.parts.Resourcepart;
import org.jxmpp.stringprep.XmppStringprepException; import org.jxmpp.stringprep.XmppStringprepException;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -215,7 +216,7 @@ public class ServiceManagement { ...@@ -215,7 +216,7 @@ public class ServiceManagement {
.setXmppDomain("mycard.moe") .setXmppDomain("mycard.moe")
.setKeystoreType(null) .setKeystoreType(null)
.setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible) .setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible)
.setHost("chat.mycard.moe") .setHostAddress(InetAddress.getByName("mchat.moecube.com"))
.build(); .build();
con = new XMPPTCPConnection(config); con = new XMPPTCPConnection(config);
return con; return con;
......
...@@ -12,6 +12,8 @@ import android.view.inputmethod.InputMethodManager; ...@@ -12,6 +12,8 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.Toast; import android.widget.Toast;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.ourygo.assistant.util.PermissionUtil; import com.ourygo.assistant.util.PermissionUtil;
import com.ourygo.assistant.util.Util; import com.ourygo.assistant.util.Util;
...@@ -120,6 +122,27 @@ public class YGOUtil { ...@@ -120,6 +122,27 @@ public class YGOUtil {
cmb.setPrimaryClip(ClipData.newPlainText(null, message));//复制命令 cmb.setPrimaryClip(ClipData.newPlainText(null, message));//复制命令
} }
public static boolean isVisBottom(RecyclerView recyclerView){
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
//屏幕中最后一个可见子项的position
int lastVisibleItemPosition = layoutManager.findLastCompletelyVisibleItemPosition();
//当前屏幕所看到的子项个数
int visibleItemCount = layoutManager.getChildCount();
//当前RecyclerView的所有子项个数
int totalItemCount = layoutManager.getItemCount();
//RecyclerView的滑动状态
int state = recyclerView.getScrollState();
final int offset = recyclerView.computeVerticalScrollOffset();
final int range = recyclerView.computeVerticalScrollRange() - recyclerView.computeVerticalScrollExtent();
Log.e("MycardFragment",(visibleItemCount > 0 )+" "+( lastVisibleItemPosition >= (totalItemCount - 3 ))+" "+( state == recyclerView.SCROLL_STATE_IDLE)+"高度"+(totalItemCount-3)+" "+lastVisibleItemPosition+" "+(range-offset));
if(visibleItemCount > 0 && lastVisibleItemPosition >= totalItemCount - 3 && state == recyclerView.SCROLL_STATE_IDLE){
return true;
} else {
return false;
}
}
public static void startDuelService(Context context) { public static void startDuelService(Context context) {
// if (AppsSettings.get().isServiceDuelAssistant()) { // if (AppsSettings.get().isServiceDuelAssistant()) {
// if (!Util.startDuelService(context)) { // if (!Util.startDuelService(context)) {
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/ic_avatar" android:layout_alignTop="@id/ic_avatar"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="55dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:layout_toRightOf="@id/ic_avatar" android:layout_toRightOf="@id/ic_avatar"
android:background="@drawable/radius" android:background="@drawable/radius"
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/icm_avatar" android:layout_alignTop="@id/icm_avatar"
android:layout_marginLeft="10dp" android:layout_marginLeft="55dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:layout_toLeftOf="@id/icm_avatar" android:layout_toLeftOf="@id/icm_avatar"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment