AssistantActivity.java 6.08 KB
package com.ys.yslibrary.ui;


import android.app.Dialog;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.HorizontalScrollView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.ys.yslibrary.aiui.AIUIWrapper;
import com.ys.yslibrary.bean.AssistantContentBean;
import com.ys.yslibrary.bean.ChatMessageHandler;
import com.ys.yslibrary.callback.OnVoiceIdentifyResultListener;
import com.ys.yslibrary.R;
import com.ys.yslibrary.bean.RawMessage;
import com.ys.yslibrary.databinding.ActivityXiaojiaAssistantBinding;
import com.ys.yslibrary.ui.adapter.AssistantAdapter;
import com.ys.yslibrary.ui.custom.AssistantViewAdapter;
import com.ys.yslibrary.viewmodel.VoiceViewModel;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;

public class AssistantActivity extends BaseActivity {
    private VoiceViewModel mVoiceViewModel;
    private ActivityXiaojiaAssistantBinding binding;
    private ChatMessageHandler messageHandler;
    private AssistantAdapter assistantAdapter;
    private List<AssistantContentBean> list;

    @Override
    protected int getBindingLayoutId() {
        return R.layout.activity_xiaojia_assistant;
    }

    @Override
    void initViewModel() {
        mVoiceViewModel = (VoiceViewModel) getViewModel(VoiceViewModel.class);
    }

    @Override
    protected void init() {
        this.binding = (ActivityXiaojiaAssistantBinding) getBaseBinding();
        this.list = new ArrayList<>();
        assistantAdapter = new AssistantAdapter(this, list);

//        binding.rv.setLayoutManager(new LinearLayoutManager(this));
//        binding.rv.setAdapter(assistantAdapter);

        getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        messageHandler = new ChatMessageHandler();
//        AIUIWrapper.getInstance().startRecordAudio();
        AssistantContentBean assistantContentBean = new AssistantContentBean(AssistantContentBean.TYPE_WEATHER);
        assistantContentBean.setWeather("天气好");
        AssistantViewAdapter viewAdapter = new AssistantViewAdapter(this, assistantContentBean);

        binding.assistantView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(this, R.anim.layout_animation_fall_down));
        binding.assistantView.setAdapter(viewAdapter);
        binding.assistantView.setOnClickBlankBgListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                AssistantContentBean assistantContentBean = new AssistantContentBean(AssistantContentBean.TYPE_DIALOGUE);
                assistantContentBean.setDialogue("修奥对话");
                viewAdapter.setChangeData(assistantContentBean);
                viewAdapter.notifyAllChange();
            }
        }, 3000);

//                list.add(assistantContentBean);
////                assistantAdapter.notifyItemInserted(0);
//                //通过加载XML动画设置文件来创建一个Animation对象;
//                Animation animation = AnimationUtils.loadAnimation(AssistantActivity.this, R.anim.anim_bottom);
//                //得到一个LayoutAnimationController对象;
//                LayoutAnimationController lac = new LayoutAnimationController(animation);
//                binding.rv.setLayoutAnimation(lac);
//
//                assistantAdapter.notifyDataSetChanged();
//                binding.rv.scheduleLayoutAnimation();
//            }
//        }, 3000);
//        AIUIWrapper.getInstance().setVoiceIdentifyResultListener(new OnVoiceIdentifyResultListener() {
//            @Override
//            public void onResult(boolean isIATResult, RawMessage rawMessage) {
//                if (rawMessage != null) {
//                    if (rawMessage.isFromUser()) {
//                        binding.rv.setVisibility(View.INVISIBLE);
//                        binding.tvMsg.setText(isIATResult ? rawMessage.cacheContent : String.valueOf(rawMessage.msgData));
//                        if (!isIATResult) {
//                            Log.e("TAG", "onResult: " + new String(rawMessage.msgData));
//                        }
//                        //滑动到最后一位
//                        binding.hscroll.fullScroll(HorizontalScrollView.FOCUS_RIGHT);
//                    } else {
//                        binding.rv.setVisibility(View.VISIBLE);
//                        //非用户说的
//                        String result = messageHandler.getFormatMessage(rawMessage);
//                        list.clear();
//                        Animation animation = AnimationUtils.loadAnimation(AssistantActivity.this, R.anim.anim_bottom);
//                        //得到一个LayoutAnimationController对象;
//                        LayoutAnimationController lac = new LayoutAnimationController(animation);
//                        binding.rv.setLayoutAnimation(lac);
//
//                        AssistantContentBean assistantContentBean = new AssistantContentBean(AssistantContentBean.TYPE_WEATHER);
//                        assistantContentBean.setWeather(result);
//                        list.add(assistantContentBean);
//                        assistantAdapter.notifyDataSetChanged();
//                        binding.rv.scheduleLayoutAnimation();
//                    }
//
//                } else {
//                    binding.tvMsg.setText("什么也没说");
//                }
//            }
//        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        AIUIWrapper.getInstance().stopRecordAudio();
    }
}