package com.weishitech.qmmfchangkge.dialog;
import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.weishitech.qmmfchangkge.R;
public class CustomBottomDialog extends BottomSheetDialog {
private TextView tvTitle,tvName,tv_like;
private ImageView ivImag,ivKg,ivQc,iv_like;
private Button btnConfirm;
private Button btnCancel;
private LinearLayout like,download,phone,linear;
private OnDownloadClickListener onDownloadClickListener;
private OnLikeClickListener onLikeClickListener;
private OnPhoneClickListener onPhoneClickListener;
private OnKgClickListener onKgClickListener;
private OnQcClickListener onQcClickListener;
public CustomBottomDialog(Context context) {
super(context);
setContentView(R.layout.custom_bottom_dialog);
tvTitle = findViewById(R.id.tv_title);
tvName = findViewById(R.id.tv_name);
phone = findViewById(R.id.phone);
ivImag = findViewById(R.id.tv_imag);
ivKg = findViewById(R.id.iv_kg);
ivQc = findViewById(R.id.iv_qc);
iv_like = findViewById(R.id.iv_like);
tv_like = findViewById(R.id.tv_like);
like = findViewById(R.id.like);
download = findViewById(R.id.download);
linear = findViewById(R.id.linear);
btnConfirm = findViewById(R.id.btn_confirm);
btnCancel = findViewById(R.id.btn_cancel);
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onDownloadClickListener != null) {
onDownloadClickListener.onDownloadClick();
}
}
});
like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onLikeClickListener != null) {
onLikeClickListener.onLikeClick();
// 更新收藏状态显示
updateLikeStatus();
}
}
});
phone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onPhoneClickListener != null) {
onPhoneClickListener.onPhoneClick();
}
// dismiss();
}
});
ivKg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onKgClickListener != null) {
onKgClickListener.onKgClick();
}
}
});
ivQc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onQcClickListener != null) {
onQcClickListener.onQcClick();
}
}
});
}
public void setTitle(String title,String name,int img,int type,boolean isCollected) {
tvTitle.setText(title);
tvName.setText(name);
if(img == 1){
ivImag.setImageResource(R.mipmap.song1);
}else if(img == 2){
ivImag.setImageResource(R.mipmap.song2);
}else if(img == 3){
ivImag.setImageResource(R.mipmap.song3);
}else if(img == 4){
ivImag.setImageResource(R.mipmap.song4);
}else if(img == 5){
ivImag.setImageResource(R.mipmap.song5);
}else if(img == 6){
ivImag.setImageResource(R.mipmap.song6);
}else if(img == 7){
ivImag.setImageResource(R.mipmap.song7);
}else if(img == 8){
ivImag.setImageResource(R.mipmap.song8);
}else if(img == 9){
ivImag.setImageResource(R.mipmap.song9);
}else if(img == 10){
ivImag.setImageResource(R.mipmap.song10);
}else {
ivImag.setImageResource(R.mipmap.song11);
}
if (type == 0) {
phone.setVisibility(View.GONE);
linear.setVisibility(View.VISIBLE);
}else {
phone.setVisibility(View.VISIBLE);
linear.setVisibility(View.GONE);
}
// 根据收藏状态更新显示
updateLikeStatus(isCollected);
}
public void updateLikeStatus(boolean isCollected) {
if (isCollected) {
iv_like.setImageResource(R.mipmap.img_home_like_u);
tv_like.setText("取消收藏");
tv_like.setTextColor(ContextCompat.getColor(getContext(), R.color.tab_select));
} else {
iv_like.setImageResource(R.mipmap.img_home_like);
tv_like.setText("收藏");
tv_like.setTextColor(ContextCompat.getColor(getContext(), R.color.black));
}
}
private void updateLikeStatus() {
// 这里可以根据实际情况获取歌曲的收藏状态
// 假设通过某种方式获取到歌曲的收藏状态
boolean isCollected = true; // 替换为实际的获取逻辑
updateLikeStatus(isCollected);
}
public void setOnDownloadClickListener(OnDownloadClickListener listener) {
this.onDownloadClickListener = listener;
}
public void setOnLikeClickListener(OnLikeClickListener listener) {
this.onLikeClickListener = listener;
}
public void setOnPhoneClickListener(OnPhoneClickListener listener) {
this.onPhoneClickListener = listener;
}
public void setOnKgClickListener(OnKgClickListener listener) {
this.onKgClickListener = listener;
}
public void setOnQcClickListener(OnQcClickListener listener) {
this.onQcClickListener = listener;
}
public interface OnDownloadClickListener {
void onDownloadClick();
}
public interface OnLikeClickListener {
void onLikeClick();
}
public interface OnPhoneClickListener {
void onPhoneClick();
}
public interface OnKgClickListener {
void onKgClick();
}
public interface OnQcClickListener {
void onQcClick();
}
}
package com.weishitech.qmmfchangkge.fragment.home;
import android.Manifest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.anythink.core.api.ATAdConst;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.ATNetworkConfirmInfo;
import com.anythink.core.api.ATShowConfig;
import com.anythink.core.api.AdError;
import com.anythink.rewardvideo.api.ATRewardVideoAd;
import com.anythink.rewardvideo.api.ATRewardVideoAutoAd;
import com.anythink.rewardvideo.api.ATRewardVideoAutoEventListener;
import com.anythink.rewardvideo.api.ATRewardVideoAutoLoadListener;
import com.anythink.rewardvideo.api.ATRewardVideoExListener;
import com.hfd.common.base.BaseFragment;
import com.hfd.common.net.JsonUtil;
import com.hfd.common.net.Url;
import com.hfd.common.util.SPUtils;
import com.hfd.common.util.ToastUtil;
import com.weishitech.qmmfchangkge.LCAppcation;
import com.weishitech.qmmfchangkge.MainActivity;
import com.weishitech.qmmfchangkge.R;
import com.weishitech.qmmfchangkge.ad.AdConst;
import com.weishitech.qmmfchangkge.ad.util.SDKUtil;
import com.weishitech.qmmfchangkge.bean.CloseSong;
import com.weishitech.qmmfchangkge.bean.SongBean;
import com.weishitech.qmmfchangkge.dialog.CustomBottomDialog;
import com.weishitech.qmmfchangkge.dialog.PermissionDialog;
import com.weishitech.qmmfchangkge.fragment.Adapter.SongAdapter;
import com.weishitech.qmmfchangkge.utils.LocalData;
import com.weishitech.qmmfchangkge.utils.PermissionUtils;
import com.weishitech.qmmfchangkge.utils.RingtoneHelper;
import com.weishitech.qmmfchangkge.utils.TimeUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import pub.devrel.easypermissions.EasyPermissions;
public class DataFragment extends BaseFragment implements SongAdapter.OnButtonClickListener,SongAdapter.OnIvClickListener,EasyPermissions.PermissionCallbacks {
private static final String TAG = DataFragment.class.getSimpleName();
private static final String ARG_DATA = "data";
private static final String ARG_POSITION = "position";
private static final String ARG_TYPE = "type";
private ArrayList<SongBean> songBeanList;
private int homePosition;//tab下标
private int savePosition;//下载下标
private int type;//区分弹框显示
RecyclerView rv;
boolean topStart = false; // 条目播放器状态
private MediaPlayer mediaTopPlayer; // 条目播音
private int page = 0;
private int pos;//音乐列表下标
private List<SongBean> songBeans;
private List<SongBean> songBeans1;
private List<SongBean> songBeans2;
private List<SongBean> songBeans3;
private List<SongBean> currentSongBeans;
private AlertDialog progressDialog;
private static final String[] PERMS_CAMERA = new String[] {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE}; // 需要请求的权限数组
private static final int RC_CAMERA_PERM = 123; // 请求码,唯一标识
private static final int REQUEST_CODE_WRITE_SETTINGS = 101;
//激励广告
private boolean onRewardedVideoAdPlayEnd = false;//激励视频是否播放完
private final Map<String, Boolean> mAutoLoadPlacementIdMap = new HashMap<>();
private ATRewardVideoAd mRewardVideoAd;
private int ringtones;
public static DataFragment newInstance(ArrayList<SongBean> data, int position,int type) {
DataFragment fragment = new DataFragment();
Bundle args = new Bundle();
args.putParcelableArrayList(ARG_DATA, data);
args.putInt(ARG_POSITION, position);
args.putInt(ARG_TYPE, type);
fragment.setArguments(args);
return fragment;
}
@Override
protected int setLayout() {
return R.layout.data_fragment;
}
@Override
protected void initView() {
rv = fvbi(R.id.rv);
if (getArguments() != null) {
songBeanList = getArguments().getParcelableArrayList(ARG_DATA);
homePosition = getArguments().getInt(ARG_POSITION);
type = getArguments().getInt(ARG_TYPE);
songBeans = new ArrayList<>();
for (int i = 0; i < MainActivity.songBeans.size(); i++) {
if (i > 6) {
songBeans.add(MainActivity.songBeans.get(i));
}
}
songBeans1 = new ArrayList<>();
for (int i = 0; i < MainActivity.songBeans.size(); i++) {
if (i > 4) {
songBeans1.add(MainActivity.songBeans.get(i));
}
}
songBeans2 = new ArrayList<>();
for (int i = 0; i < MainActivity.songBeans.size(); i++) {
if (i > 9) {
songBeans2.add(MainActivity.songBeans.get(i));
}
}
songBeans3 = new ArrayList<>();
for (int i = 0; i < MainActivity.songBeans.size(); i++) {
if (i > 5) {
songBeans3.add(MainActivity.songBeans.get(i));
}
}
currentSongBeans = new ArrayList<>();
if (homePosition == 0) {
currentSongBeans = songBeans;
} else if (homePosition == 1) {
currentSongBeans = songBeans1;
} else if (homePosition == 2) {
currentSongBeans = songBeans2;
} else if (homePosition == 3) {
currentSongBeans = songBeans3;
} else {
currentSongBeans = songBeanList;
}
SongAdapter songAdapter = new SongAdapter(getActivity(), currentSongBeans);
rv.setLayoutManager(new LinearLayoutManager(getActivity()));
rv.setAdapter(songAdapter);
songAdapter.setOnButtonClickListener(this); // 设置监听器
songAdapter.setOnIvClickListener(this);
rv.setNestedScrollingEnabled(false);
initSongBeans();
// EventBus.getDefault().register(this);
}
}
@Override
protected void initClick() {
}
@Override
protected void initData() {
}
private void prepareMediaPlayer(int pos) {
if (mediaTopPlayer != null) {
if (mediaTopPlayer.isPlaying()) {
mediaTopPlayer.stop();
}
mediaTopPlayer.reset();
mediaTopPlayer.release();
}
mediaTopPlayer = new MediaPlayer();
try {
List<SongBean> currentSongBeans;
if (homePosition == 0) {
currentSongBeans = songBeans;
} else if (homePosition == 1) {
currentSongBeans = songBeans1;
} else if (homePosition == 2) {
currentSongBeans = songBeans2;
} else if (homePosition == 3) {
currentSongBeans = songBeans3;
} else {
currentSongBeans = songBeanList;
}
AssetFileDescriptor afd = getActivity().getAssets().openFd(currentSongBeans.get(pos).getSongFilePath());
mediaTopPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mediaTopPlayer.prepare();
} catch (IOException e) {
Log.e("MusicMetadataHelper", "Failed to get MP3 file", e);
}
}
@Override
public void onButtonClick(int position, ImageView iv_bf) {
pos = position;
if (topStart) {
iv_bf.setImageResource(R.mipmap.img_home_stop);
topStart = false;
if (mediaTopPlayer != null && mediaTopPlayer.isPlaying()) {
mediaTopPlayer.pause();
}
} else {
iv_bf.setImageResource(R.mipmap.img_home_start);
topStart = true;
if (mediaTopPlayer == null ||!mediaTopPlayer.isPlaying()) {
prepareMediaPlayer(pos);
mediaTopPlayer.start();
}
}
}
// @Subscribe(threadMode = ThreadMode.MAIN,sticky = true)
@Override
public void onIvClick(int position, ImageView iv_gd) {
iv_gd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CustomBottomDialog dialog = new CustomBottomDialog(getActivity());
dialog.setTitle(currentSongBeans.get(position).getSingName(),currentSongBeans.get(position).getSongName(),currentSongBeans.get(position).getIcon(),type,currentSongBeans.get(position).isCollected());
//下载点击
dialog.setOnDownloadClickListener(new CustomBottomDialog.OnDownloadClickListener() {
@Override
public void onDownloadClick() {
savePosition = position;
getSavePermissions();
}
});
//收藏点击
dialog.setOnLikeClickListener(new CustomBottomDialog.OnLikeClickListener() {
@Override
public void onLikeClick() {
Toast.makeText(getActivity(), "收藏点击", Toast.LENGTH_SHORT).show();
List<SongBean> songBeanList = LocalData.getInstance().getOratoriList();
SongBean songBean = new SongBean();
songBean.setSongName(currentSongBeans.get(position).getSongName());
songBean.setSingName(currentSongBeans.get(position).getSingName());
songBean.setSingTime(currentSongBeans.get(position).getSingTime());
songBean.setCreatTime(currentSongBeans.get(position).getCreatTime());
songBean.setSongFilePath(currentSongBeans.get(position).getSongFilePath());
songBean.setIcon(currentSongBeans.get(position).getIcon());
songBean.setLrcPath(currentSongBeans.get(position).getLrcPath());
songBean.setCollected(!currentSongBeans.get(position).isCollected()); // 更新收藏状态
if(null == songBeanList){
songBeanList = new ArrayList<>();
}
songBeanList.add(songBean);
SPUtils.setParam(Url.oratoriInfo, JsonUtil.toJson(songBeanList));
saveCollectedStatus(songBean); // 保存收藏状态
dialog.updateLikeStatus(songBean.isCollected());
//EventBus.getDefault().post(new CloseSong());
}
});
//设置铃声点击
dialog.setOnPhoneClickListener(new CustomBottomDialog.OnPhoneClickListener() {
@Override
public void onPhoneClick() {
Toast.makeText(getActivity(), "设置铃声点击", Toast.LENGTH_SHORT).show();
ringtones = position;
getPermissions();
}
});
//K歌点击
dialog.setOnKgClickListener(new CustomBottomDialog.OnKgClickListener() {
@Override
public void onKgClick() {
Toast.makeText(getActivity(), "K歌点击", Toast.LENGTH_SHORT).show();
if (homePosition == 0) {
Bundle bundle = new Bundle();
bundle.putInt("index",position+7);
toClass(SingActivity.class,bundle);
}else if (homePosition == 1){
Bundle bundle = new Bundle();
bundle.putInt("index",position+5);
toClass(SingActivity.class,bundle);
}else if (homePosition == 2){
Bundle bundle = new Bundle();
bundle.putInt("index",position+10);
toClass(SingActivity.class,bundle);
}else if (homePosition == 3){
Bundle bundle = new Bundle();
bundle.putInt("index",position+6);
toClass(SingActivity.class,bundle);
}else {
Bundle bundle = new Bundle();
bundle.putInt("index",position);
toClass(SingActivity.class,bundle);
}
}
});
//清唱点击
dialog.setOnQcClickListener(new CustomBottomDialog.OnQcClickListener() {
@Override
public void onQcClick() {
Toast.makeText(getActivity(), "清唱点击", Toast.LENGTH_SHORT).show();
if (homePosition == 0) {
Bundle bundle = new Bundle();
bundle.putInt("index",position+7);
toClass(SingActivitys.class,bundle);
}else if (homePosition == 1){
Bundle bundle = new Bundle();
bundle.putInt("index",position+5);
toClass(SingActivitys.class,bundle);
}else if (homePosition == 2){
Bundle bundle = new Bundle();
bundle.putInt("index",position+10);
toClass(SingActivitys.class,bundle);
}else if (homePosition == 3){
Bundle bundle = new Bundle();
bundle.putInt("index",position+6);
toClass(SingActivitys.class,bundle);
}else {
Bundle bundle = new Bundle();
bundle.putInt("index",position);
toClass(SingActivitys.class,bundle);
}
}
});
dialog.show();
}
});
}
private void saveCollectedStatus(SongBean songBean) {
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("SongCollection", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(songBean.getSongName(), songBean.isCollected());
editor.apply();
}
private void initSongBeans() {
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("SongCollection", Context.MODE_PRIVATE);
for (SongBean songBean : currentSongBeans) {
boolean isCollected = sharedPreferences.getBoolean(songBean.getSongName(), false);
songBean.setCollected(isCollected);
}
}
//保存歌曲到本地
private void save(int position) {
// 显示正在保存的弹框
showProgressDialog(getActivity());
new SaveTask(position).execute();
}
private void showProgressDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("正在保存...");
builder.setCancelable(false);
progressDialog = builder.create();
progressDialog.show();
}
private class SaveTask extends AsyncTask<Void, Void, Boolean> {
private int position;
private String targetPath;
SaveTask(int position) {
this.position = position;
}
@Override
protected Boolean doInBackground(Void... voids) {
targetPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).getPath() + "/" + currentSongBeans.get(position).getSongName() + ".mp3";
try {
InputStream inputStream = getActivity().getAssets().open(currentSongBeans.get(position).getSongFilePath());
FileOutputStream outStream = new FileOutputStream(new File(targetPath));
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outStream.write(buffer, 0, length);
}
outStream.flush();
outStream.close();
inputStream.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
protected void onPostExecute(Boolean success) {
// 关闭弹框
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
if (success) {
Toast.makeText(getActivity(), "音乐保存到本地成功" + targetPath, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "音乐保存到本地失败", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mediaTopPlayer != null) {
if (mediaTopPlayer.isPlaying()) {
mediaTopPlayer.stop();
}
mediaTopPlayer.release();
mediaTopPlayer = null;
}
// EventBus.getDefault().unregister(this);
}
/**
* 检查并请求权限
*/
private void getPermissions(){
// 检查并请求权限
if (!EasyPermissions.hasPermissions(getContext(), PERMS_CAMERA)) {
new PermissionDialog(getActivity(),"权限说明:由于设置铃声,需要相应的存储权限以及系统设置权限。拒绝将无法使用此功能").show();
EasyPermissions.requestPermissions(DataFragment.this, "需要相应的存储权限以及系统设置权限", RC_CAMERA_PERM, PERMS_CAMERA);
} else {
setRing();
}
}
private void getSavePermissions(){
// 检查并请求权限
if (!PermissionUtils.hasStoragePermissions(getActivity())) {
new PermissionDialog(getActivity(),"权限说明:由于设置铃声,需要相应的存储权限以及系统设置权限。拒绝将无法使用此功能").show();
// EasyPermissions.requestPermissions(this, "需要相应的存储权限以及系统设置权限", RC_CAMERA_PERM, PERMS_CAMERA);
PermissionUtils.requestStoragePermissions(getActivity(),RC_CAMERA_PERM);
} else {
save(savePosition);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
if(requestCode == RC_CAMERA_PERM){
setRing();
}
}
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
}
private boolean checkWriteSettingsPermission() {
if (!Settings.System.canWrite(getActivity())) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getActivity().getPackageName()));
startActivityForResult(intent, REQUEST_CODE_WRITE_SETTINGS);
return false;
}
return true;
}
private void setRing(){
if (checkWriteSettingsPermission()) {
onRewardedVideoAdPlayEnd = false;
if(LCAppcation.getInstance().isShowAd(53)){
initJlAutoLoad();
initJlRewardVideoAd(LCAppcation.rewardVideoAdId);
isJlAdReady();
new Handler().postDelayed(() -> {
ATRewardVideoAd.entryAdScenario(LCAppcation.rewardVideoAdId, AdConst.SCENARIO_ID.REWARD_VIDEO_AD_SCENARIO);
if (mRewardVideoAd != null && mRewardVideoAd.isAdReady()) {
showJlAd();
} else {
//printLogOnUI(getString(R.string.anythink_ad_status_not_load));
}
}, 1000); // 延时2000毫秒(2秒)后跳转
}else{
RingtoneHelper.setRingtone(getActivity(),ringtones);
}
}
}
//激励广告
private ATShowConfig getJlATShowConfig() {
ATShowConfig.Builder builder = new ATShowConfig.Builder();
builder.scenarioId(AdConst.SCENARIO_ID.REWARD_VIDEO_AD_SCENARIO);
builder.showCustomExt(AdConst.SHOW_CUSTOM_EXT.REWARD_VIDEO_AD_SHOW_CUSTOM_EXT);
return builder.build();
}
private void initJlRewardVideoAd(String placementId) {
mRewardVideoAd = new ATRewardVideoAd(getActivity(), placementId);
mRewardVideoAd.setAdRevenueListener(new com.weishitech.qmmfchangkge.ad.base.BaseActivity.AdRevenueListenerImpl());
mRewardVideoAd.setAdListener(new ATRewardVideoExListener() {
@Override
public void onDeeplinkCallback(ATAdInfo adInfo, boolean isSuccess) {
Log.i(TAG, "onDeeplinkCallback:" + adInfo.toString() + "--status:" + isSuccess);
}
@Override
public void onDownloadConfirm(Context context, ATAdInfo adInfo, ATNetworkConfirmInfo networkConfirmInfo) {
Log.i(TAG, "onDownloadConfirm: " + adInfo.toString());
}
//-------------------------- Only for CSJ --------------------------
@Override
public void onRewardedVideoAdAgainPlayStart(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdAgainPlayStart:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdAgainPlayEnd(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdAgainPlayEnd:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdAgainPlayFailed(AdError errorCode, ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdAgainPlayFailed error: " + errorCode.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdAgainPlayClicked(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdAgainPlayClicked: " + entity.toString());
}
@Override
public void onAgainReward(ATAdInfo entity) {
Log.i(TAG, "onAgainReward:\n" + entity.toString());
printRewardInfo("onAgainReward rewardInfo", entity);
}
@Override
public void onAgainRewardFailed(ATAdInfo entity) {
Log.i(TAG, "onAgainRewardFailed:\n" + entity.toString());
printRewardInfo("onAgainRewardFailed rewardInfo", entity);
}
//-------------------------- Only for CSJ --------------------------
@Override
public void onRewardedVideoAdLoaded() {
Log.i(TAG, "onRewardedVideoAdLoaded");
}
@Override
public void onRewardedVideoAdFailed(AdError errorCode) {
Log.i(TAG, "onRewardedVideoAdFailed error:" + errorCode.getFullErrorInfo());
}
@Override
public void onRewardedVideoAdPlayStart(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayStart:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdPlayEnd(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayEnd:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdPlayFailed(AdError errorCode, ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayFailed:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdClosed(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdClosed:\n" + entity.toString());
}
@Override
public void onRewardedVideoAdPlayClicked(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayClicked:\n" + entity.toString());
}
@Override
public void onReward(ATAdInfo entity) {
Log.e(TAG, "onReward:\n" + entity.toString());
printRewardInfo("onReward rewardInfo", entity);
}
@Override
public void onRewardFailed(ATAdInfo entity) {
Log.i(TAG, "onRewardFailed:\n" + entity.toString());
printRewardInfo("onRewardFailed rewardInfo", entity);
}
});
mRewardVideoAd.setAdSourceStatusListener(new com.weishitech.qmmfchangkge.ad.base.BaseActivity.ATAdSourceStatusListenerImpl());
}
final ATRewardVideoAutoEventListener autoEventListener = new ATRewardVideoAutoEventListener() {
@Override
public void onRewardedVideoAdPlayStart(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdPlayStart:\n" + adInfo.toString());
MainActivity.reportInfo(adInfo);
}
@Override
public void onRewardedVideoAdPlayEnd(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdPlayEnd1:\n" + adInfo.toString());
onRewardedVideoAdPlayEnd = true;
}
@Override
public void onRewardedVideoAdPlayFailed(AdError errorCode, ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdPlayFailed:\n" + adInfo.toString());
}
@Override
public void onRewardedVideoAdClosed(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdClosed:\n" + adInfo.toString());
if(onRewardedVideoAdPlayEnd){
RingtoneHelper.setRingtone(getActivity(),ringtones);
}
}
@Override
public void onRewardedVideoAdPlayClicked(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdPlayClicked:\n" + adInfo.toString());
}
@Override
public void onReward(ATAdInfo adInfo) {
Log.e(TAG, "onReward:\n" + adInfo.toString());
printRewardInfo("onReward rewardInfo", adInfo);
}
@Override
public void onRewardFailed(ATAdInfo adInfo) {
Log.e(TAG, "onRewardFailed:\n" + adInfo.toString());
printRewardInfo("onRewardFailed rewardInfo", adInfo);
}
public void onDeeplinkCallback(ATAdInfo adInfo, boolean isSuccess) {
Log.i(TAG, "onDeeplinkCallback:\n" + adInfo.toString() + "| isSuccess:" + isSuccess);
}
public void onDownloadConfirm(Context context, ATAdInfo adInfo, ATNetworkConfirmInfo networkConfirmInfo) {
Log.i(TAG, "onDownloadConfirm:\n" + adInfo.toString());
}
//again listener
public void onRewardedVideoAdAgainPlayStart(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdAgainPlayStart:\n" + adInfo.toString());
}
public void onRewardedVideoAdAgainPlayEnd(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdAgainPlayEnd:\n" + adInfo.toString());
}
public void onRewardedVideoAdAgainPlayFailed(AdError adError, ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdAgainPlayFailed:\n" + adInfo.toString() + "|error:" + adError.getFullErrorInfo());
}
public void onRewardedVideoAdAgainPlayClicked(ATAdInfo adInfo) {
Log.i(TAG, "onRewardedVideoAdAgainPlayClicked:\n" + adInfo.toString());
}
public void onAgainReward(ATAdInfo adInfo) {
Log.i(TAG, "onAgainReward:\n" + adInfo.toString());
printRewardInfo("onAgainReward rewardInfo", adInfo);
}
@Override
public void onAgainRewardFailed(ATAdInfo adInfo) {
Log.i(TAG, "onAgainRewardFailed:\n" + adInfo.toString());
printRewardInfo("onAgainRewardFailed rewardInfo", adInfo);
}
};
private void initJlAutoLoad() {
ATRewardVideoAutoAd.init(getActivity(), null, autoLoadListener);
mAutoLoadPlacementIdMap.put(LCAppcation.rewardVideoAdId, true);
ATRewardVideoAutoAd.addPlacementId(LCAppcation.rewardVideoAdId);
}
private void loadAd() {
SDKUtil.initSDK(getActivity());
if (mRewardVideoAd == null) {
return;
}
String userid = "test_userid_001";
String userdata = "test_userdata_001";
Map<String, Object> localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.USER_ID, userid);
localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
mRewardVideoAd.setLocalExtra(localMap);
mRewardVideoAd.load();
}
private void isJlAdReady() {
if (mRewardVideoAd == null) {
return;
}
ATRewardVideoAutoAd.isAdReady(LCAppcation.rewardVideoAdId);
}
private void showJlAd() {
//mRewardVideoAd.show(RewardVideoAdActivity.this);
//mRewardVideoAd.show(OratoriEndActivity.this, getATShowConfig());
ATRewardVideoAutoAd.show(getActivity(), LCAppcation.rewardVideoAdId, getJlATShowConfig(), autoEventListener, new com.weishitech.qmmfchangkge.ad.base.BaseActivity.AdRevenueListenerImpl());
}
public static void initPlacementIdLocalExtra(String placementId) {
String userid = "test_userid_001";
String userdata = "test_userdata_001_" + placementId + "_" + System.currentTimeMillis();
Map<String, Object> localMap = new HashMap<>();
localMap.put(ATAdConst.KEY.USER_ID, userid);
localMap.put(ATAdConst.KEY.USER_CUSTOM_DATA, userdata);
Log.i(TAG, "Set PlacementId:" + placementId + ": UserId:" + userid + "| userdata:" + userdata);
ATRewardVideoAutoAd.setLocalExtra(placementId, localMap);
}
public final ATRewardVideoAutoLoadListener autoLoadListener = new ATRewardVideoAutoLoadListener() {
@Override
public void onRewardVideoAutoLoaded(String placementId) {
placementId = LCAppcation.rewardVideoAdId;
initPlacementIdLocalExtra(placementId);
Log.i(TAG, "PlacementId:" + placementId + ": onRewardVideoAutoLoaded");
}
@Override
public void onRewardVideoAutoLoadFail(String placementId, AdError adError) {
Log.i(TAG, "PlacementId:" + placementId + ": onRewardVideoAutoLoadFail:\n" + adError.getFullErrorInfo());
}
};
private static void printRewardInfo(String msg, ATAdInfo entity) {
Map<String, Object> extInfoMap = entity.getExtInfoMap();
if (extInfoMap != null) {
Object rewardInfoObj = extInfoMap.get(ATAdConst.REWARD_EXTRA.REWARD_INFO);
if (rewardInfoObj instanceof Map) {
Map<String, Object> rewardMap = (Map<String, Object>) rewardInfoObj;
for (Map.Entry<String, Object> stringObjectEntry : rewardMap.entrySet()) {
String key = stringObjectEntry.getKey();
Object value = stringObjectEntry.getValue();
Log.e(TAG, msg + ": key=" + key + ", value=" + value);
}
}
}
}
}
如上代码我想修改 //收藏点击
dialog.setOnLikeClickListener(new CustomBottomDialog.OnLikeClickListener() {
@Override
public void onLikeClick() {
Toast.makeText(getActivity(), "收藏点击", Toast.LENGTH_SHORT).show();
List<SongBean> songBeanList = LocalData.getInstance().getOratoriList();
SongBean songBean = new SongBean();
songBean.setSongName(currentSongBeans.get(position).getSongName());
songBean.setSingName(currentSongBeans.get(position).getSingName());
songBean.setSingTime(currentSongBeans.get(position).getSingTime());
songBean.setCreatTime(currentSongBeans.get(position).getCreatTime());
songBean.setSongFilePath(currentSongBeans.get(position).getSongFilePath());
songBean.setIcon(currentSongBeans.get(position).getIcon());
songBean.setLrcPath(currentSongBeans.get(position).getLrcPath());
songBean.setCollected(!currentSongBeans.get(position).isCollected()); // 更新收藏状态
if(null == songBeanList){
songBeanList = new ArrayList<>();
}
songBeanList.add(songBean);
SPUtils.setParam(Url.oratoriInfo, JsonUtil.toJson(songBeanList));
saveCollectedStatus(songBean); // 保存收藏状态
dialog.updateLikeStatus(songBean.isCollected());
//EventBus.getDefault().post(new CloseSong());
}
});可以再次点击实现取消收藏功能,并删除收藏的数据刷新收藏的状态
最新发布