|
@@ -1,8 +1,14 @@
|
|
|
package com.edufound.reader.activity;
|
|
|
|
|
|
+import android.Manifest;
|
|
|
import android.animation.Animator;
|
|
|
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;
|
|
@@ -24,11 +30,15 @@ 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.orhanobut.logger.Logger;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
-import io.reactivex.rxjava3.annotations.Nullable;
|
|
|
+import androidx.annotation.Nullable;
|
|
|
+import androidx.core.app.ActivityCompat;
|
|
|
|
|
|
public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements RecordContract.View {
|
|
|
|
|
@@ -85,18 +95,35 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
|
|
|
}
|
|
|
});
|
|
|
addUiClickListener(mMikeIcon, o -> {
|
|
|
- if (EfunboxUtil.checkLogin(mActivity)) {
|
|
|
- if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
|
|
|
- if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
|
|
|
- if (isRecordNow) {
|
|
|
- refRecordStatus();
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
|
|
+ && checkSelfPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
|
|
|
+ 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")) {
|
|
|
+ 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)) {
|
|
|
+ if (Consts.getUmengChannel().equals(ChannelCodeEnum.BAIDU.getChannelCode())) {
|
|
|
+ if (Consts.getmConstsBaiDuUserBean().getUserInfo().getIsVip() == 1) {
|
|
|
+ if (isRecordNow) {
|
|
|
+ refRecordStatus();
|
|
|
+ } else {
|
|
|
+ startRecordStatus();
|
|
|
+ }
|
|
|
} else {
|
|
|
- startRecordStatus();
|
|
|
+ Toast.makeText(mActivity, "请购买会员后尝试", Toast.LENGTH_SHORT).show();
|
|
|
}
|
|
|
- } else {
|
|
|
- Toast.makeText(mActivity, "请购买会员后尝试", Toast.LENGTH_SHORT).show();
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -109,6 +136,11 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void onWindowFocusChanged(boolean hasFocus) {
|
|
|
+ super.onWindowFocusChanged(hasFocus);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public void onGetDisconnect() {
|
|
|
|
|
|
}
|
|
@@ -212,4 +244,21 @@ public class RecordActivity extends BaseMvpActivity<RecordPresenter> implements
|
|
|
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) {
|
|
|
+ Logger.e("grantResults[0]:" + grantResults[0]);
|
|
|
+ if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
|
|
+ //获取成功
|
|
|
+ MMKVUtil.getInstance().encode("record_granted", "1");
|
|
|
+ } else if (grantResults[0] == -1) {
|
|
|
+ //获取失败
|
|
|
+ MMKVUtil.getInstance().encode("record_granted", "-1");
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|