update 粉丝团相关

This commit is contained in:
2023-07-31 16:28:42 +08:00
parent 92d4130c45
commit c53b9a6064
31 changed files with 494 additions and 15 deletions

View File

@@ -58,6 +58,7 @@ import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.adapter.ViewPagerAdapter;
import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.ChatRemarksBean;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.IMLoginModel;
@@ -107,6 +108,7 @@ import com.yunbao.live.utils.LiveStorge;
import com.yunbao.live.views.ChatListViewHolder;
import com.yunbao.main.R;
import com.yunbao.main.adapter.FullAdToBannerTransition;
import com.yunbao.main.dialog.AnchorStartLiveNotifyDialog;
import com.yunbao.main.dialog.MainStartDialogFragment;
import com.yunbao.main.dialog.ReturnUserDialog;
import com.yunbao.main.dialog.SigninDialog;
@@ -194,6 +196,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
private boolean isfloatBannernet = true, isFirst = true;
private View floatRedPacket;
private List<AnchorStartLiveBean> startListNotifyList = new ArrayList<>();
@Override
@@ -1019,6 +1022,18 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNotifyAnchorLive(AnchorStartLiveBean bean) {
if (!IMLoginManager.get(mContext).isLiveNotifySettings()) return;
if (startListNotifyList.isEmpty()) {
startListNotifyList.add(bean);
notifyLiveFlot();
} else {
startListNotifyList.add(bean);
}
}
@Override
public void onBackPressed() {
if (isTabClose && isWebClose) {
@@ -1039,6 +1054,20 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
}
}
private void notifyLiveFlot() {
if (startListNotifyList.iterator().hasNext()) {
AnchorStartLiveBean bean = startListNotifyList.iterator().next();
new AnchorStartLiveNotifyDialog(mContext, bean)
.setOnDismissListener(dialog -> {
startListNotifyList.remove(bean);
if (startListNotifyList.iterator().hasNext()) {
notifyLiveFlot();
}
})
.showDialog();
}
}
private void loadPageData(int position, boolean needlLoadData) {
if (mViewHolders == null) {

View File

@@ -66,6 +66,7 @@ public class SettingActivity extends AbsActivity implements OnItemClickListener<
private Handler mHandler;
private SettingAdapter mAdapter;
private ImageView studioGiftEffects, studioRideEffects, upSlideSettings, appWindow, systemWindow;
private ImageView liveNotifySettings;
private boolean giftEffect, mountEffect, slide, isFloat;
private TextView systemHit, reward;
@@ -81,6 +82,7 @@ public class SettingActivity extends AbsActivity implements OnItemClickListener<
studioGiftEffects = findViewById(R.id.studio_gift_effects);
studioRideEffects = findViewById(R.id.studio_ride_effects);
upSlideSettings = findViewById(R.id.up_slide_settings);
liveNotifySettings = findViewById(R.id.live_notify_settings);
appWindow = findViewById(R.id.app_window);
reward = findViewById(R.id.reward);
systemHit = findViewById(R.id.system_hit);
@@ -237,6 +239,15 @@ public class SettingActivity extends AbsActivity implements OnItemClickListener<
});
}
);
ViewClicksAntiShake.clicksAntiShake(liveNotifySettings, () -> {
boolean isTrue = IMLoginManager.get(mContext).isLiveNotifySettings();
if (isTrue) {
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_off, liveNotifySettings);
} else {
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_on, liveNotifySettings);
}
IMLoginManager.get(mContext).setLiveNotifySettings(!isTrue);
});
SpannableStringBuilder builder = new SpannableStringBuilder(getString(com.yunbao.common.R.string.system_window_hint));
String goTo = getString(com.yunbao.common.R.string.to_open_the);
int star = builder.length();
@@ -274,6 +285,11 @@ public class SettingActivity extends AbsActivity implements OnItemClickListener<
} else {
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_on, studioRideEffects);
}
if(IMLoginManager.get(mContext).isLiveNotifySettings()){
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_on, liveNotifySettings);
}else{
ImgLoader.display(mContext, com.yunbao.common.R.mipmap.special_icon_off, liveNotifySettings);
}
}

View File

@@ -0,0 +1,107 @@
package com.yunbao.main.dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Looper;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.alibaba.fastjson.JSON;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.enums.PopupAnimation;
import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.custom.RatioRoundImageView;
import com.yunbao.common.dialog.AbsDialogPositionPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import com.yunbao.main.R;
public class AnchorStartLiveNotifyDialog extends AbsDialogPositionPopupWindow {
private AnchorStartLiveBean liveBean;
private DialogInterface.OnDismissListener onDismissListener;
private TextView anchorName;
private RatioRoundImageView avatar;
public AnchorStartLiveNotifyDialog(@NonNull Context context) {
super(context);
}
public AnchorStartLiveNotifyDialog(@NonNull Context context, AnchorStartLiveBean bean) {
super(context);
this.liveBean = bean;
}
public AnchorStartLiveNotifyDialog setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
return this;
}
@Override
public void buildDialog(XPopup.Builder builder) {
builder.positionByWindowCenter(true);
builder.moveUpToKeyboard(false);
builder.dismissOnTouchOutside(false);
builder.dismissOnBackPressed(false);
builder.isTouchThrough(true);
builder.isClickThrough(true);
builder.isCenterHorizontal(true);
builder.hasShadowBg(false);
builder.animationDuration(500);
builder.popupAnimation(PopupAnimation.ScaleAlphaFromCenter);
builder.offsetY(DpUtil.dp2px(60));
}
@Override
public int bindLayoutId() {
return R.layout.view_funs_live_anchor_start_notify;
}
@Override
protected void onCreate() {
super.onCreate();
findViewById(R.id.liveGo).setOnClickListener(v -> {
LiveHttpUtil.getLiveInfo(liveBean.getRoomId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
@Override
public void onCheckError(String contextError) {
}
});
}
}
});
});
avatar = findViewById(R.id.avatar);
anchorName = findViewById(R.id.anchorName);
ImgLoader.display(mContext, liveBean.getAvatar(), avatar);
anchorName.setText(liveBean.getAnchorName());
new Handler(Looper.getMainLooper()).postDelayed(() -> {
dismiss();
if (onDismissListener != null) {
onDismissListener.onDismiss(null);
}
}, 5000);
}
}

View File

@@ -1,16 +1,12 @@
package com.yunbao.main.views;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.main.R;
import com.yunbao.main.activity.RedPacketListActivity;
/**
* Created by cxf on 2018/9/22.

View File

@@ -368,6 +368,35 @@
android:layout_marginEnd="26.33dp"
android:src="@mipmap/special_icon_off" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="13.67dp"
android:paddingBottom="11dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:text="@string/live_notify_settings"
android:textColor="#1E1F20"
android:textSize="16sp" />
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<ImageView
android:id="@+id/live_notify_settings"
android:layout_width="46.67dp"
android:layout_height="23.33dp"
android:layout_marginEnd="26.33dp"
android:src="@mipmap/special_icon_off" />
</LinearLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView