haijiang
2018-09-19 82cc6c94fdc08b1814fbf7195e88cf335eed3e8d
app/src/main/java/com/moral/yunfushao/activity/VoiceSetActivity.java
@@ -1,21 +1,36 @@
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.ble.BLECommon;
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;
@@ -24,34 +39,77 @@
 * 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 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("铃声设置成功");
                EventMessage eventMessage = new EventMessage();
                eventMessage.setType(AppConfig.SET_VOICE);
                EventBus.getDefault().post(eventMessage);
            }
        }
    }
    @Override
    protected void onLoadMore() {
    }
@@ -64,7 +122,7 @@
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if(mp!=null&&mp.isPlaying()){
        if (mp != null && mp.isPlaying()) {
            mp.stop();
            mp.release();
        }
@@ -83,16 +141,23 @@
    @Override
    protected void initData() {
        setNormalView();
        int index = MainApp.theApp.sharedPreferencesUtil.getLoginInfo().getVideo();
        voiceList.get(index).setSet(true);
        adapter.notifyDataSetChanged();
        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;
        }
@@ -106,20 +171,33 @@
    @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()) {
                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();
@@ -127,17 +205,14 @@
    @Override
    public void setClick(int position) {
        update("video",position+"");
        for (VoiceBean voice :voiceList){
            voice.setSet(false);
        }
        VoiceBean voiceBean = voiceList.get(position);
        voiceBean.setSet(true);
        adapter.notifyDataSetChanged();
        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
     */
@@ -164,7 +239,7 @@
            }
            @Override
            public void onFail(int errno,String s) {
            public void onFail(int errno, String s) {
                mToatUtils.showSingletonToast(s);
                if (progressDialog.isShowing()) {
                    progressDialog.dismiss();
@@ -172,4 +247,45 @@
            }
        });
    }
    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));
        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;
        }
    }
}