Merge remote-tracking branch 'origin/master' into pdlive_samsung

# Conflicts:
#	config.gradle
#	main/src/main/java/com/yunbao/main/activity/GoogleFragment.java
This commit is contained in:
hch
2023-12-19 09:41:04 +08:00
28 changed files with 339 additions and 141 deletions

View File

@@ -1,8 +1,18 @@
package com.yunbao.common.bean;
public class CoolConfig extends BaseModel {
private int rate=1;
private String ticketCount="0" ;
private int rate = 1;
private String ticketCount = "0";
private String yuanbao = "0";
public String getYuanbao() {
return yuanbao;
}
public CoolConfig setYuanbao(String yuanbao) {
this.yuanbao = yuanbao;
return this;
}
public String getTicketCount() {
return ticketCount;

View File

@@ -1,24 +1,34 @@
package com.yunbao.common.dialog;
import static android.content.Context.INPUT_METHOD_SERVICE;
import android.content.Context;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.lxj.xpopup.core.CenterPopupView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.R;
import com.yunbao.common.bean.CoolConfig;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.math.BigDecimal;
public class CinemaTicketPopupWindow extends CenterPopupView {
private CoolConfig mCoolConfig;
private TextView cinemaTicket, ticketsPlusMinus, quantityNeed;
private TextView cinemaTicket, quantityNeed, quantityNeed2;
private EditText ticketsPlusMinus;
private int ticket = 1;
private CinemaTicketPopupWindowCallBack mCinemaTicketPopupWindowCallBack;
@@ -41,9 +51,30 @@ public class CinemaTicketPopupWindow extends CenterPopupView {
cinemaTicket = findViewById(R.id.cinema_ticket);
ticketsPlusMinus = findViewById(R.id.tickets_plus_minus);
quantityNeed = findViewById(R.id.quantity_need);
cinemaTicket.setText(new BigDecimal(ticket).add(new BigDecimal(mCoolConfig.getTicketCount())).toString());
quantityNeed2 = findViewById(R.id.quantity_need2);
cinemaTicket.setText(mCoolConfig.getTicketCount());
ticketsPlusMinus.setText(String.valueOf(ticket));
quantityNeed.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).toString());
quantityNeed2.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).floatValue()+"");
quantityNeed.setText(mCoolConfig.getYuanbao());
ticketsPlusMinus.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (!TextUtils.isEmpty(charSequence.toString())) {
ticket = new BigDecimal(charSequence.toString()).intValue();
quantityNeed2.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).floatValue()+"");
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.cinema_ticket_close), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
@@ -56,9 +87,8 @@ public class CinemaTicketPopupWindow extends CenterPopupView {
if (ticket > 1) {
ticket = ticket - 1;
cinemaTicket.setText(new BigDecimal(ticket).add(new BigDecimal(mCoolConfig.getTicketCount())).toString());
ticketsPlusMinus.setText(String.valueOf(ticket));
quantityNeed.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).toString());
quantityNeed2.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).floatValue()+"");
}
}
});
@@ -66,33 +96,42 @@ public class CinemaTicketPopupWindow extends CenterPopupView {
@Override
public void onClick(View view) {
ticket = ticket + 1;
cinemaTicket.setText(new BigDecimal(ticket).add(new BigDecimal(mCoolConfig.getTicketCount())).toString());
ticketsPlusMinus.setText(String.valueOf(ticket));
quantityNeed.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).toString());
quantityNeed2.setText(new BigDecimal(ticket).multiply(new BigDecimal(mCoolConfig.getRate())).floatValue()+"");
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.cinema_ticket_exchange), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
LiveNetManager.get(getContext())
.buyTicket(String.valueOf(ticket), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (ticket>=1&&ticket<=9999){
LiveNetManager.get(getContext())
.buyTicket(String.valueOf(ticket), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (mCinemaTicketPopupWindowCallBack != null) {
mCinemaTicketPopupWindowCallBack.onCallBack(data);
if (mCinemaTicketPopupWindowCallBack != null) {
mCinemaTicketPopupWindowCallBack.onCallBack(data);
}
dialog.dismiss();
}
dialog.dismiss();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}else {
ToastUtil.show(WordUtil.isNewZh() ? "兌換數量區間為[1 - 9999]" : "The exchange quantity range is [1-9999]");
}
InputMethodManager inputMethodManager = (InputMethodManager)ticketsPlusMinus.getContext().getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(ticketsPlusMinus.getWindowToken(), 0);
MobclickAgent.onEvent(getContext(), "dj_exchange", "兑换按钮点");
}
});
InputMethodManager inputMethodManager = (InputMethodManager)ticketsPlusMinus.getContext().getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(ticketsPlusMinus.getWindowToken(), 0);
}
public interface CinemaTicketPopupWindowCallBack {

View File

@@ -481,6 +481,7 @@ public class LiveNetManager {
* @param liveUid
*/
public void leaveRoomNew(String stream, String liveUid, HttpCallback<String> callback) {
Log.e("观看时长","leaveRoomNew-----------------------"+liveUid);
API.get().pdLiveApi(mContext)
.leaveRoomNew("g" + liveUid, stream)
.subscribeOn(Schedulers.io())

View File

@@ -183,6 +183,7 @@ public class OpenAdManager {
if (model.getShowModel() == OpenAdModel.SHOW_DIY) {
String nextTime= String.valueOf(System.currentTimeMillis() + (Long.parseLong(model.getSection()) * 60 * 1000));
SpUtil.setStringValue("open_ad_popup_time_" + model.getId(), nextTime);
showMap.remove(model.getId());
}
if (model.getModel() == OpenAdModel.MODEL_BOTTOM) {
new OpenAdBottomDialogPopup(CommonAppContext.getTopActivity(), model).setListener((bean, position) -> {

View File

@@ -185,6 +185,19 @@ public class GoogleUtils {
}
}
public boolean getGoogleService() {
boolean flag;
try {
Class<?> clz = mActivity.getClassLoader().loadClass("com.shayu.lib_google.utils.GoogleBillingManage");
googlePay = clz.getConstructor(Activity.class).newInstance(mActivity);
flag = (boolean) googlePay.getClass().getMethod("getGoogleService").invoke(googlePay);
} catch (Exception e) {
throw new RuntimeException(e);
}
return flag;
}
public void setFirebaseTokenListener(Activity activity, FirebaseTokenListener firebaseTokenListener) {
Timer timer = new Timer();
TimerTask task = new TimerTask() {

View File

@@ -3,6 +3,7 @@ package com.yunbao.common.views;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
@@ -114,7 +115,7 @@ public class APKUpdateCustomPopup extends CenterPopupView {
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
//华为
//todo
launchAppDetail(mContext, "com.pdlive.shayu", "com.pdlive.shayu");
launchAppDetail(mContext, "com.pdlive.shayu", "com.huawei.appmarket");
} else {
versionImmediateUse.setVisibility(GONE);
updateLine.setVisibility(VISIBLE);
@@ -129,19 +130,31 @@ public class APKUpdateCustomPopup extends CenterPopupView {
});
}
public static boolean isAppStoreExist(Context context) {
try {
PackageManager packageManager = context.getPackageManager();
packageManager.getPackageInfo("com.huawei.appmarket", PackageManager.GET_ACTIVITIES);
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
public static void launchAppDetail(Context mContext, String appPkg, String marketPkg) {
try {
if (TextUtils.isEmpty(appPkg)) {
return;
}
Uri uri = Uri.parse("market://details?id=" + appPkg);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (!TextUtils.isEmpty(marketPkg)) {
intent.setPackage(marketPkg);
if (isAppStoreExist(mContext)) {
Uri uri = Uri.parse("appmarket://details?id=" + appPkg);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (!TextUtils.isEmpty(marketPkg)) {
intent.setPackage(marketPkg);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -32,6 +32,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:inputType="number"
android:textColor="#DFEAFF"
android:textSize="15sp" />
@@ -68,12 +69,14 @@
android:layout_height="match_parent"
android:layout_weight="1" />
<TextView
<EditText
android:id="@+id/tickets_plus_minus"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:background="@null"
android:gravity="center"
android:inputType="number"
android:singleLine="true"
android:text="0"
android:textColor="#000000"
@@ -86,6 +89,20 @@
android:layout_weight="1" />
</LinearLayout>
<TextView
android:id="@+id/quantity_need2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="7dp"
android:textColor="#DFEAFF"
android:textSize="12sp" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="3dp"
android:src="@mipmap/icon_collectibles2" />
</LinearLayout>
<LinearLayout
@@ -95,20 +112,23 @@
android:layout_marginTop="13dp"
android:gravity="center">
<TextView
android:id="@+id/quantity_need"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/conversion_quantity_need"
android:textColor="#DFEAFF"
android:textSize="12sp" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginStart="3dp"
android:src="@mipmap/icon_collectibles2" />
</LinearLayout>
<ImageButton

View File

@@ -1388,7 +1388,7 @@ Limited ride And limited avatar frame</string>
<string name="room_sill500_m">Above 500 coins</string>
<string name="combo">combo X</string>
<string name="conversion_quantity">Exchange quantity:</string>
<string name="conversion_quantity_need">Need %s</string>
<string name="conversion_quantity_need">Balance %s</string>
<string name="conversion_quantity_need_of_use">Exchange&amp;Usage Rules:</string>
<string name="conversion_quantity_need_of_use1">1.One star coin can be exchanged for one ticket. You can customize the exchange quantity according to your needs. Once the ticket is exchanged, it cannot be revoked. Please confirm in advance;</string>
<string name="conversion_quantity_need_of_use2">2.One ticket can be used to watch one episode of a short drama. After successful redemption, you can return to the viewing page and use the ticket to continue watching the movie;</string>

View File

@@ -1385,9 +1385,9 @@
<string name="room_sill500_m">500以上星幣</string>
<string name="combo">連擊×</string>
<string name="conversion_quantity">兌換數量:</string>
<string name="conversion_quantity_need">需要 %s</string>
<string name="conversion_quantity_need">余额 %s</string>
<string name="conversion_quantity_need_of_use">兌換&amp;使用規則:</string>
<string name="conversion_quantity_need_of_use1">1.1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">2.1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">3.觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
<string name="conversion_quantity_need_of_use1">一、1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">二、1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">三、觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
</resources>

View File

@@ -1159,7 +1159,7 @@
<string name="live_vote_close_yes"></string>
<string name="live_vote_close_no"></string>
<string name="live_vote_hide_text">投票中</string>
<string name="live_room_vote_over_tip">%s <br/> 問答框%s秒后消失</string>
<string name="live_room_vote_over_tip">%s <br /> 問答框%s秒后消失</string>
<string name="live_anchor_vote_tip">請完整填寫</string>
<string name="complete_information_consumable">填寫“*”的選項可完成</string>
<string name="love_powder">真愛粉\n頭像框(7天)</string>
@@ -1384,9 +1384,9 @@
<string name="room_sill500_m">500以上星幣</string>
<string name="combo">連擊×</string>
<string name="conversion_quantity">兌換數量:</string>
<string name="conversion_quantity_need">需要 %s</string>
<string name="conversion_quantity_need">余额 %s</string>
<string name="conversion_quantity_need_of_use">兌換&amp;使用規則:</string>
<string name="conversion_quantity_need_of_use1">1.1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">2.1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">3.觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
<string name="conversion_quantity_need_of_use1">一、1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">二、1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">三、觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
</resources>

View File

@@ -1384,10 +1384,10 @@
<string name="room_sill500_m">500以上星幣</string>
<string name="combo">連擊×</string>
<string name="conversion_quantity">兌換數量:</string>
<string name="conversion_quantity_need">需要 %s</string>
<string name="conversion_quantity_need">余额 %s</string>
<string name="conversion_quantity_need_of_use">兌換&amp;使用規則:</string>
<string name="conversion_quantity_need_of_use1">1.1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">2.1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">3.觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
<string name="conversion_quantity_need_of_use1">一、1星幣兌換1張觀影券您可以根據需求自定義兌換數量觀影券一經兌換不可撤銷請提前確認</string>
<string name="conversion_quantity_need_of_use2">二、1張觀影券可觀看一集短劇兌換成功後即可返回觀影頁面使用觀影券繼續觀看影片</string>
<string name="conversion_quantity_need_of_use3">三、觀影券禁止線下交易、收購等不正當行為PDLIVE將對各類以盈利為目的的交易行為進行嚴厲打擊。</string>
</resources>

View File

@@ -1391,7 +1391,7 @@ Limited ride And limited avatar frame</string>
<string name="room_sill500_m">Above 500 coins</string>
<string name="combo">combo X</string>
<string name="conversion_quantity">Exchange quantity:</string>
<string name="conversion_quantity_need">Need %s</string>
<string name="conversion_quantity_need">Balance %s</string>
<string name="conversion_quantity_need_of_use">Exchange&amp;Usage Rules:</string>
<string name="conversion_quantity_need_of_use1">1.One star coin can be exchanged for one ticket. You can customize the exchange quantity according to your needs. Once the ticket is exchanged, it cannot be revoked. Please confirm in advance;</string>
<string name="conversion_quantity_need_of_use2">2.One ticket can be used to watch one episode of a short drama. After successful redemption, you can return to the viewing page and use the ticket to continue watching the movie;</string>