123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- package com.edufound.reader.activity;
- import android.Manifest;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.drawable.AnimationDrawable;
- import android.net.Uri;
- import android.os.Build;
- import android.provider.Settings;
- import android.view.ViewGroup;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.edufound.reader.R;
- import com.edufound.reader.activity.payactivity.EventPayActivity;
- import com.edufound.reader.annotation.BindView;
- import com.edufound.reader.application.EApplication;
- import com.edufound.reader.base.BaseMvpActivity;
- import com.edufound.reader.bean.ChannelCodeEnum;
- import com.edufound.reader.bean.ThroughType;
- import com.edufound.reader.contract.RecordContract;
- import com.edufound.reader.cusview.RvListJzvdStd;
- import com.edufound.reader.presenter.RecordPresenter;
- import com.edufound.reader.util.Consts;
- import com.edufound.reader.util.EfunboxUtil;
- import com.edufound.reader.util.MMKVUtil;
- import com.edufound.reader.util.PermissionsUtil;
- import com.edufound.reader.util.ThroughUtil;
- import com.orhanobut.logger.Logger;
- import androidx.annotation.NonNull;
- public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements RecordContract.View {
- Activity mActivity;
- @BindView(id = R.id.player_frame)
- FrameLayout mPlayerFrame;
- @BindView(id = R.id.activity_record_jzvideo)
- RvListJzvdStd mJzVideoViwe;
- @BindView(id = R.id.activity_record_back)
- ImageView mBack;
- @BindView(id = R.id.activity_record_mike_icon)
- ImageView mMikeIcon;
- @BindView(id = R.id.activity_record_mike_status)
- TextView mRecordStatus;
- @BindView(id = R.id.activity_record_demonstration)
- FrameLayout mDemonsFrame;
- @BindView(id = R.id.activity_record_demonstration_icon)
- ImageView mDemonsIcon;
- boolean isRecordNow = false;
- AnimationDrawable mMikeAnim;
- @Override
- public int getLayoutId() {
- return R.layout.activity_record;
- }
- @Override
- public void initView() {
- mActivity = this;
- mPresenter = new RecordPresenter();
- mPresenter.attachView(this);
- mPresenter.bindRecordServices();
- mPresenter.createVideoPlayer();
- mPresenter.getReadInfo(getIntent());
- mJzVideoViwe.setCanPause(false);
- mJzVideoViwe.setHideAllUI(true);
- addUiClickListener(mBack, o -> {
- if (ThroughUtil.mThroughTypeBean != null && ThroughUtil.mThroughTypeBean.getmThroughType().equals(ThroughType.TYPEA.getTypeCode())) {
- if (mPresenter.getBackModel() == null || mPresenter.getBackModel().equals("") || mPresenter.getBackModel().equals("home")) {
- EApplication.reloadApp(-1);
- } else if (mPresenter.getBackModel().equals("app")) {
- EApplication.killAppProcess(Consts.getmApplicAtion());
- }
- } else {
- mActivity.finish();
- }
- });
- addUiClickListener(mMikeIcon, o -> {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
- && checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
- // CusToast.getInstance(mActivity).show("未获得录音权限", 2000);
- Toast.makeText(mActivity, "未获得录音权限", Toast.LENGTH_SHORT).show();
- String isgranted = MMKVUtil.getInstance().decodeString("record_granted");
- if (isgranted == null || isgranted.equals("")) {
- //一次都没有出来过
- PermissionsUtil.verifyAudioPermissions(this);
- } else if (isgranted.equals("-1")) {
- if (Consts.getUMengChannel().equals(ChannelCodeEnum.MISOUND.getChannelCode())) {
- PermissionsUtil.verifyAudioPermissions(this);
- } else {
- Uri packageURI = Uri.parse("package:" + mActivity.getPackageName());
- Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);
- startActivity(intent);
- }
- }
- return;
- } else {
- if (EfunboxUtil.checkLogin(mActivity, getRootView())) {
- if (EfunboxUtil.checkIsVip()) {
- if (isRecordNow) {
- refRecordStatus();
- } else {
- startRecordStatus();
- }
- } else {
- if (Consts.isIsHaveFlowerEvent()) {
- Intent intent = new Intent(getActivity(), EventPayActivity.class);
- getActivity().startActivity(intent);
- } else {
- EfunboxUtil.userPay(getActivity());
- }
- }
- }
- }
- });
- addUiClickListener(mDemonsFrame, o -> {
- Animation animation = AnimationUtils.loadAnimation(this, R.anim.activity_record_demonstration_anim);
- mDemonsIcon.startAnimation(animation);
- mPresenter.clickExampleUI();
- });
- }
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- super.onWindowFocusChanged(hasFocus);
- }
- @Override
- public void onGetDisconnect() {
- }
- @Override
- public void onGetMobileConnect() {
- }
- @Override
- public void onGetWifiConnect() {
- }
- @Override
- public void onLoginSuccess() {
- }
- @Override
- public void showLoading() {
- }
- @Override
- public void hideLoading() {
- }
- @Override
- public void onError(String errMessage) {
- }
- @Override
- public Activity getActivity() {
- return mActivity;
- }
- @Override
- protected void onDestroy() {
- mPresenter.activityDestroy();
- mPresenter.attachView(this);
- getRootView().removeAllViews();
- mJzVideoViwe = null;
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- mPresenter.activityPause();
- super.onPause();
- }
- @Override
- protected void onResume() {
- mPresenter.activityResume();
- super.onResume();
- }
- @Override
- public ViewGroup getRootView() {
- return findViewById(android.R.id.content);
- }
- @Override
- public void refRecordStatus() {
- //正在朗读
- if (mMikeAnim != null) {
- mMikeAnim.stop();
- mMikeAnim = null;
- }
- mMikeIcon.setBackgroundResource(R.drawable.to_record_icon_mike);
- isRecordNow = false;
- mRecordStatus.setText("开始朗读");
- mPresenter.stopRecord();
- Logger.e("重新刷新录音状态,停止之前的录音,并且显示弹窗");
- }
- @Override
- public void startRecordStatus() {
- //没有朗读
- mMikeIcon.setBackgroundResource(R.drawable.activity_record_start_anim);
- mMikeAnim = (AnimationDrawable) mMikeIcon.getBackground();
- mMikeAnim.start();
- isRecordNow = true;
- mRecordStatus.setText("配音中");
- mPresenter.startRecord();
- }
- @Override
- public void getReadVideoInfoSuccess() {
- }
- @Override
- public RvListJzvdStd getJZVideoView() {
- return mJzVideoViwe;
- }
- @Override
- public void hasShowOtherUI(int visibility) {
- mBack.setVisibility(visibility);
- ((ViewGroup) mDemonsFrame.getParent()).setVisibility(visibility);
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if (requestCode == PermissionsUtil.GET_RECODE_AUDIO) {
- if (grantResults == null || grantResults.length == 0) {
- return;
- }
- if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- //获取成功
- MMKVUtil.getInstance().encode("record_granted", "1");
- } else if (grantResults[0] == -1) {
- //获取失败
- MMKVUtil.getInstance().encode("record_granted", "-1");
- }
- }
- }
- }
|