diff --git a/android_crop_lib/build.gradle b/android_crop_lib/build.gradle
index ce6b7de3c..2cc1a9fe5 100644
--- a/android_crop_lib/build.gradle
+++ b/android_crop_lib/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
- compileSdkVersion 30
+ compileSdkVersion 31
defaultConfig {
minSdkVersion 21
diff --git a/app/build.gradle b/app/build.gradle
index 91e98ab28..bf9c3bbc4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,7 +10,7 @@ apply plugin: 'android-junk-code'
def onlyArm64 = Boolean.parseBoolean(only_arm64)
android {
- compileSdkVersion 30
+ compileSdkVersion 31
defaultConfig {
applicationId "com.voice.magic"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 81773d268..5ea8b06fb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -945,11 +945,11 @@
+ android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
+ android:windowSoftInputMode="stateAlwaysHidden|adjustNothing" />
diff --git a/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java b/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java
index 95753ea20..b74ce2fbd 100644
--- a/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java
+++ b/app/src/main/java/com/mango/moshen/ui/im/InputPanel.java
@@ -28,12 +28,14 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSONObject;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.effective.android.panel.PanelSwitchHelper;
+import com.effective.android.panel.interfaces.ContentScrollMeasurer;
import com.effective.android.panel.interfaces.PanelHeightMeasurer;
import com.effective.android.panel.interfaces.listener.OnPanelChangeListener;
import com.effective.android.panel.view.panel.IPanelView;
@@ -105,6 +107,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private static final int SHOW_LAYOUT_DELAY = 0;
private final List selectPhotos = new ArrayList<>();
+ private final boolean inRoom;
+ private int unfilledHeight = 0;
protected Container container;
protected View view;
protected Handler uiHandler;
@@ -130,7 +134,6 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private boolean cancelled = false;
private boolean touched = false; // 是否按着
private boolean isKeyboardShowed = false; // 是否显示键盘
- private boolean isTextAudioSwitchShow; // 是否展示左侧语音按钮
// adapter
private List actions;
// data
@@ -220,19 +223,15 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
}
};
- public InputPanel(Container container, View view, List actions, boolean isTextAudioSwitchShow) {
+ public InputPanel(Container container, View view, List actions, boolean inRoom) {
this.container = container;
this.view = view;
this.actions = actions;
this.uiHandler = new Handler();
- this.isTextAudioSwitchShow = isTextAudioSwitchShow;
+ this.inRoom = inRoom;
init();
}
- public InputPanel(Container container, View view, List actions) {
- this(container, view, actions, true);
- }
-
// 上滑取消录音判断
private static boolean isCancelled(View view, MotionEvent event) {
int[] location = new int[2];
@@ -348,9 +347,39 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
return R.id.emoji_button;
}
})
+ .addContentScrollMeasurer(new ContentScrollMeasurer() {
+ @Override
+ public int getScrollDistance(int defaultDistance) {
+ return defaultDistance - unfilledHeight;
+ }
+
+ @Override
+ public int getScrollViewId() {
+ return R.id.messageListView;
+ }
+ })
.logTrack(false)//output log
.build();
messageListView.setPanelSwitchHelper(mHelper);
+ messageListView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
+ super.onScrolled(recyclerView, dx, dy);
+ RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
+ if (layoutManager instanceof LinearLayoutManager) {
+ int childCount = recyclerView.getChildCount();
+ if (childCount > 0) {
+ View lastChildView = recyclerView.getChildAt(childCount - 1);
+ int bottom = lastChildView.getBottom();
+ int listHeight = messageListView.getHeight() - messageListView.getPaddingBottom();
+ unfilledHeight = listHeight - bottom;
+ }
+ }
+ }
+ });
+ if (inRoom) {
+ container.activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
+ }
}
}
@@ -446,12 +475,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
// 文本录音按钮切换布局
textAudioSwitchLayout = view.findViewById(R.id.switchLayout);
- if (isTextAudioSwitchShow) {
- textAudioSwitchLayout.setVisibility(View.VISIBLE);
- } else {
- textAudioSwitchLayout.setVisibility(View.GONE);
- }
-
+ textAudioSwitchLayout.setVisibility(View.GONE);
messageListView = view.findViewById(R.id.messageListView);
ivImage = view.findViewById(R.id.iv_image);
ivCamera = view.findViewById(R.id.iv_camera);
@@ -537,15 +561,12 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
});
// 不展示右侧按钮时需要添加edit间距
- if (!isTextAudioSwitchShow) {
- try {
- ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) messageEditText.getLayoutParams();
- layoutParams.setMarginStart(SizeUtils.dp2px(view.getContext(), 12));
- messageEditText.requestLayout();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
-
+ try {
+ ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) messageEditText.getLayoutParams();
+ layoutParams.setMarginStart(SizeUtils.dp2px(view.getContext(), 12));
+ messageEditText.requestLayout();
+ } catch (Exception ex) {
+ ex.printStackTrace();
}
}
diff --git a/app/src/main/java/com/mango/moshen/ui/im/fragment/MessageFragment.java b/app/src/main/java/com/mango/moshen/ui/im/fragment/MessageFragment.java
index 04b717abd..6af4e76f2 100644
--- a/app/src/main/java/com/mango/moshen/ui/im/fragment/MessageFragment.java
+++ b/app/src/main/java/com/mango/moshen/ui/im/fragment/MessageFragment.java
@@ -18,6 +18,7 @@ import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import com.mango.core.UriProvider;
@@ -131,6 +132,14 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
}
};
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments()!=null){
+ inRoom =getArguments().getBoolean(IN_ROOM);
+ }
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -219,7 +228,7 @@ public class MessageFragment extends TFragment implements ModuleProxy, MessageLi
}
if (inputPanel == null) {
- inputPanel = new InputPanel(container, rootView, getActionList());
+ inputPanel = new InputPanel(container, rootView, getActionList(),inRoom);
inputPanel.setCustomization(customization);
inputPanel.setLimitLevel(isChat, hintText);
} else {
diff --git a/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java b/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java
index 655bd4e91..38b6bf263 100644
--- a/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java
+++ b/app/src/main/java/com/mango/moshen/ui/webview/JSInterface.java
@@ -548,6 +548,7 @@ public class JSInterface {
//拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.path = "pages/index/index?pub_ticket=" + AuthModel.get().getTicket() +
"&tarotChargeProdId=" + jsonObject.getString("tarotChargeProdId") +
+ "&luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId") +
"&cardList=" + jsonObject.getString("cardList") +
"&payType=" + jsonObject.getString("payType") +
"&pub_uid=" + AuthModel.get().getCurrentUid() +
@@ -558,7 +559,7 @@ public class JSInterface {
"&app=" + XChatConstants.APP_MARK;
req.miniprogramType = BuildConfig.DEBUG ? WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST : WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);
- TarotPayWebViewActivity.start(mActivity, UriProvider.JAVA_WEB_URL + "yinyou/modules/tarot/payment_result.html?chargeRecordId=" + jsonObject.getString("chargeRecordId"));
+ TarotPayWebViewActivity.start(mActivity, UriProvider.JAVA_WEB_URL + "yinyou/modules/tarot/payment_result.html?luckyTarotRecordId=" + jsonObject.getString("luckyTarotRecordId"));
}
/**
diff --git a/app/src/main/java/com/mango/moshen/ui/webview/TarotPayWebViewActivity.java b/app/src/main/java/com/mango/moshen/ui/webview/TarotPayWebViewActivity.java
index 352f2f56d..ce450bac9 100644
--- a/app/src/main/java/com/mango/moshen/ui/webview/TarotPayWebViewActivity.java
+++ b/app/src/main/java/com/mango/moshen/ui/webview/TarotPayWebViewActivity.java
@@ -16,7 +16,7 @@ import com.mango.moshen.R;
*/
public class TarotPayWebViewActivity extends CommonWebViewActivity {
- public static void start(Context context, String url ) {
+ public static void start(Context context, String url) {
Intent intent = new Intent(context, TarotPayWebViewActivity.class);
intent.putExtra("url", url);
context.startActivity(intent);
@@ -26,7 +26,7 @@ public class TarotPayWebViewActivity extends CommonWebViewActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setFinishOnTouchOutside(false);
- getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,ScreenUtil.dip2px(150));
+ getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.dip2px(150));
getWindow().setGravity(Gravity.CENTER);
layoutTitleBar.setVisibility(View.GONE);
}
diff --git a/app/src/main/res/values-v31/styles.xml b/app/src/main/res/values-v31/styles.xml
new file mode 100644
index 000000000..f8426fd52
--- /dev/null
+++ b/app/src/main/res/values-v31/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/app/src/module_room_chat/java/com/mango/moshen/room_chat/activity/RoomMsgActivity.java b/app/src/module_room_chat/java/com/mango/moshen/room_chat/activity/RoomMsgActivity.java
index 62e439248..30f232993 100644
--- a/app/src/module_room_chat/java/com/mango/moshen/room_chat/activity/RoomMsgActivity.java
+++ b/app/src/module_room_chat/java/com/mango/moshen/room_chat/activity/RoomMsgActivity.java
@@ -63,7 +63,7 @@ public class RoomMsgActivity extends BaseActivity implements CarMagicIndicator.O
tabInfoList.add(new TabInfo(i, titles[i]));
}
viewpager.setOffscreenPageLimit(2);
- viewpager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), getFragment(), titles));
+ //viewpager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), getFragment(), titles));
viewIndicator.setViewPager(viewpager, titles, this, getFragment());
IMNetEaseManager.get().getChatRoomEventObservable()
diff --git a/core/build.gradle b/core/build.gradle
index 6965b000b..cd8b0fd9e 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'kotlin-android'
apply from: '../mob.gradle'
android {
- compileSdkVersion 30
+ compileSdkVersion 31
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
diff --git a/core/src/main/java/com/mango/core/initial/bean/InitInfo.java b/core/src/main/java/com/mango/core/initial/bean/InitInfo.java
index dfcd9906f..b4df3ee55 100644
--- a/core/src/main/java/com/mango/core/initial/bean/InitInfo.java
+++ b/core/src/main/java/com/mango/core/initial/bean/InitInfo.java
@@ -158,5 +158,7 @@ public class InitInfo implements Serializable {
private List officialMsgUids;
+ private List officialAccountUids;
+
private boolean twelveStarSwitch;
}
diff --git a/core/src/main/java/com/mango/core/utils/SystemUidUtil.java b/core/src/main/java/com/mango/core/utils/SystemUidUtil.java
index 11ac02a1d..62cb920af 100644
--- a/core/src/main/java/com/mango/core/utils/SystemUidUtil.java
+++ b/core/src/main/java/com/mango/core/utils/SystemUidUtil.java
@@ -17,8 +17,12 @@ public class SystemUidUtil {
initInfo.getOfficialMsgUids().contains(uid)) {
return true;
}
- return XChatConstants.SECRETARY_UID.equals(uid)
- || XChatConstants.SYSTEM_MESSAGE_UID.equals(uid)
- || XChatConstants.MATCH_UID.equals(uid);
+
+ if (initInfo != null &&
+ !ListUtils.isListEmpty(initInfo.getOfficialAccountUids()) &&
+ initInfo.getOfficialAccountUids().contains(uid)) {
+ return true;
+ }
+ return false;
}
}
diff --git a/library/build.gradle b/library/build.gradle
index 55a8fab6d..533a34493 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
- compileSdkVersion 30
+ compileSdkVersion 31
defaultConfig {
minSdkVersion 21
targetSdkVersion 29