From c5bf501d8b507d1e3e79541e7ac9b45910860b4d Mon Sep 17 00:00:00 2001 From: 陈奇 <1650699704@qq.com> Date: Wed, 29 May 2019 16:17:07 +0800 Subject: [PATCH] 添加新功能 --- app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 203 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java b/app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java index 97b0bb8..9a8bd29 100644 --- a/app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java +++ b/app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java @@ -1,55 +1,133 @@ package com.moral.yunfushao.activity; +import android.content.Intent; import android.content.res.AssetManager; import android.media.MediaPlayer; +import android.net.Uri; import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; import android.view.View; +import com.afollestad.materialdialogs.DialogAction; +import com.afollestad.materialdialogs.MaterialDialog; +import com.lzy.okgo.cache.CacheMode; import com.moral.andbrickslib.baseadapter.headandfooter.DividerItemDecoration; +import com.moral.andbrickslib.baseadapter.recyclerview.MultiItemTypeAdapter; +import com.moral.andbrickslib.utils.FastJsonTools; +import com.moral.andbrickslib.utils.dialog.MaterialDialogUtils; +import com.moral.yunfushao.MainApp; import com.moral.yunfushao.R; import com.moral.yunfushao.adapter.VoiceAdapter; import com.moral.yunfushao.base.BaseListActivity; +import com.moral.yunfushao.common.API; +import com.moral.yunfushao.common.AppConfig; +import com.moral.yunfushao.httputils.HttpCallBack; +import com.moral.yunfushao.httputils.HttpUtils; +import com.moral.yunfushao.model.EventMessage; import com.moral.yunfushao.model.VoiceBean; +import org.greenrobot.eventbus.EventBus; + +import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; /** * Created by haijiang on 2017/7/12. */ -public class VoiceSetActivity extends BaseListActivity implements VoiceAdapter.OnBtnClickListener{ +public class VoiceSetActivity extends BaseListActivity implements VoiceAdapter.OnBtnClickListener { private VoiceAdapter adapter; private ArrayList<VoiceBean> voiceList = new ArrayList<>(); AssetManager am; MediaPlayer mp; + + private MaterialDialog resetDialog; + private int oldType = 0; + + private void showReset() { + resetDialog = MaterialDialogUtils.showCallBaclDialog(this, "������������", "���������������������������?", new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + reset(); + resetDialog.dismiss(); + } + }, new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + resetDialog.dismiss(); + } + }); + resetDialog.show(); + } + @Override protected void initOtherView() { tv_title.setText("������������"); - VoiceBean voiceBean = new VoiceBean(); - voiceBean.setId(0); - voiceBean.setRes(R.raw.music); - voiceBean.setName("music"); - voiceList.add(voiceBean); - voiceBean = new VoiceBean(); - voiceBean.setId(1); - voiceBean.setRes(R.raw.music1); - voiceBean.setName("music1"); - voiceList.add(voiceBean); + tv_right.setText("������"); DividerItemDecoration line = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST); mRecyclerView.addItemDecoration(line); adapter = new VoiceAdapter(mRecyclerView, R.layout.list_item_voice, voiceList); adapter.setOnBtnClickListener(this); mRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new MultiItemTypeAdapter.OnItemClickListener() { + @Override + public void onItemClick(View view, RecyclerView.ViewHolder holder, int position) { + + } + + @Override + public boolean onItemLongClick(View view, RecyclerView.ViewHolder holder, int position) { + return false; + } + }); + + + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 111) { + if (resultCode == RESULT_OK && data != null) { + int index = data.getIntExtra("position", 0); + String url = data.getStringExtra("url"); + String name = data.getStringExtra("name"); + voiceList.get(index).setDefaultMusic(false); + voiceList.get(index).setSetMusic(url); + voiceList.get(index).setVoiceName(name); + MainApp.theApp.sharedPreferencesUtil.saveVideoList(FastJsonTools.toJson(voiceList)); + adapter.notifyDataSetChanged(); + mToatUtils.showSingleLongToast("������������������"); + oldType = MainApp.theApp.sharedPreferencesUtil.getVoiceType(); + MainApp.theApp.sharedPreferencesUtil.saveVoiceType(3); + EventMessage eventMessage = new EventMessage(); + eventMessage.setType(AppConfig.SET_VOICE); + EventBus.getDefault().post(eventMessage); + } + } } @Override protected void onLoadMore() { + } @Override protected void onRefresh() { + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (mp != null && mp.isPlaying()) { + mp.stop(); + mp.release(); + } } @Override @@ -65,14 +143,23 @@ @Override protected void initData() { setNormalView(); - + ArrayList<VoiceBean> temp = (ArrayList<VoiceBean>) FastJsonTools.getArrayJson(MainApp.theApp.sharedPreferencesUtil.getVideoList(), VoiceBean.class); + if (temp != null) { + voiceList.addAll(temp); + adapter.notifyDataSetChanged(); + } else { + reset(); + } } @Override protected void processClick(View view) { - switch (view.getId()){ + switch (view.getId()) { case R.id.tv_left: finish(); + break; + case R.id.tv_right: + showReset(); break; } @@ -86,20 +173,35 @@ @Override public void playClick(int position) { VoiceBean voiceBean = voiceList.get(position); - if(voiceBean.isPlay()){ + if (voiceBean.isPlay()) { mp.stop(); voiceBean.setPlay(false); - }else{ - if(mp!=null&&mp.isPlaying()){ + } else { + if (mp != null && mp.isPlaying()) { mp.stop(); mp.release(); - for (VoiceBean voice :voiceList){ + for (VoiceBean voice : voiceList) { voice.setPlay(false); } adapter.notifyDataSetChanged(); } - mp = MediaPlayer.create(this, voiceBean.getRes()); - mp.start(); + if (voiceBean.isDefaultMusic()) { + if (voiceBean.getRes() != null) { + mp = MediaPlayer.create(this, Uri.parse(voiceBean.getRes())); + mp.start(); + } + } else { + mp = new MediaPlayer(); + try { + mp.setDataSource(voiceBean.getSetMusic()); + mp.prepare(); + mp.start(); + voiceBean.setPlay(true); + } catch (IOException e) { + e.printStackTrace(); + } + } + voiceBean.setPlay(true); } adapter.notifyDataSetChanged(); @@ -107,6 +209,88 @@ @Override public void setClick(int position) { + Intent intent = new Intent(VoiceSetActivity.this, ChooseSongActivity.class); + intent.putExtra("position", position); + startActivityForResult(intent, 111); + } + /** + * ������������������������������������['refresh_frequency', 'video', 'is_open_upload'] + * + * @param field + * @param value + */ + private void update(String field, final String value) { + Map<String, String> params = new HashMap<>(); + params.put("user_id", MainApp.userId); + params.put("field", field); + params.put("value", value); + String url = API.UPDATEUSERINFO; + HttpUtils.doPost(url, params, CacheMode.DEFAULT, true, new HttpCallBack() { + @Override + public void onSuccess(String res, String msg) { + mToatUtils.showSingletonToast(msg); + MainApp.theApp.sharedPreferencesUtil.setVideo(Integer.parseInt(value)); + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + + @Override + public void showLoadingDialog() { + progressDialog.setTitleText("���������..."); + progressDialog.show(); + } + + @Override + public void onFail(int errno, String s) { + mToatUtils.showSingletonToast(s); + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + } + }); + } + + private void reset() { + voiceList.clear(); + VoiceBean voiceBean = new VoiceBean(); + voiceBean.setId(0); + voiceBean.setRes(AppConfig.voideUrl1); + voiceBean.setName("������������������"); + voiceBean.setVoiceName("������"); + voiceList.add(voiceBean); + voiceBean = new VoiceBean(); + voiceBean.setId(1); + voiceBean.setRes(AppConfig.voideUrl2); + voiceBean.setName("������������������"); + voiceBean.setVoiceName("������"); + voiceList.add(voiceBean); + voiceBean = new VoiceBean(); + voiceBean.setId(2); + voiceBean.setRes(AppConfig.voideUrl3); + voiceBean.setName("������������������"); + voiceBean.setVoiceName("������"); + voiceList.add(voiceBean); + MainApp.theApp.sharedPreferencesUtil.saveVideoList(FastJsonTools.toJson(voiceList)); + MainApp.theApp.sharedPreferencesUtil.saveVoiceType(oldType); + adapter.notifyDataSetChanged(); + EventMessage eventMessage = new EventMessage(); + eventMessage.setType(AppConfig.SET_VOICE); + EventBus.getDefault().post(eventMessage); + } + + @Override + protected void onPause() { + super.onPause(); + if (mp != null && mp.isPlaying()) { + mp.stop(); + mp.release(); + for (VoiceBean voice : voiceList) { + voice.setPlay(false); + } + adapter.notifyDataSetChanged(); + mp = null; + } } } -- Gitblit v1.8.0