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