Commit b86849771513cd183071e5dd5e156a5894be102e

Authored by 吴奎庆
1 parent 9610bf97

处理默认

app/src/main/java/com/cnlive/strike/debug/MainActivity.java
@@ -66,8 +66,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe @@ -66,8 +66,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
66 case R.id.tv_media: 66 case R.id.tv_media:
67 //打开相册 67 //打开相册
68 new ImagePicker.Builder() 68 new ImagePicker.Builder()
69 - .maxNum(5)  
70 - .setSelectGif(false) 69 + .maxNum(1)
  70 + .setSelectGif(true)
71 .maxImageSize(25 * 1024 * 1024) 71 .maxImageSize(25 * 1024 * 1024)
72 .maxVideoSize(100*1024*1024) 72 .maxVideoSize(100*1024*1024)
73 .isReturnUri(AndroidQUtil.isAndroidQ()) 73 .isReturnUri(AndroidQUtil.isAndroidQ())
lib_media/src/main/java/com/cnlive/media/frame/view/RecordFragmentView.java
@@ -59,6 +59,8 @@ public class RecordFragmentView implements MvpView, PLRecordStateListener { @@ -59,6 +59,8 @@ public class RecordFragmentView implements MvpView, PLRecordStateListener {
59 } 59 }
60 60
61 public void initView() { 61 public void initView() {
  62 +
  63 + Log.e("启动流程","initView");
62 if (getActivity().mOptions == null) { 64 if (getActivity().mOptions == null) {
63 showMesage("数据异常"); 65 showMesage("数据异常");
64 mFragment.getActivity().finish(); 66 mFragment.getActivity().finish();
@@ -110,6 +112,7 @@ public class RecordFragmentView implements MvpView, PLRecordStateListener { @@ -110,6 +112,7 @@ public class RecordFragmentView implements MvpView, PLRecordStateListener {
110 videoCaceDirPath = getActivity().mOptions.getCachePath(); 112 videoCaceDirPath = getActivity().mOptions.getCachePath();
111 } 113 }
112 } 114 }
  115 + Log.e("启动流程","initView2");
113 getActivity().mOptions.setCachePath(videoCaceDirPath); 116 getActivity().mOptions.setCachePath(videoCaceDirPath);
114 recordSetting.setVideoCacheDir(videoCaceDirPath); 117 recordSetting.setVideoCacheDir(videoCaceDirPath);
115 118
lib_media/src/main/java/com/cnlive/media/frame/view/RecordView.java
@@ -33,6 +33,7 @@ public class RecordView implements MvpView { @@ -33,6 +33,7 @@ public class RecordView implements MvpView {
33 33
34 RecordActivity mActivity; 34 RecordActivity mActivity;
35 35
  36 +
36 public RecordView(RecordActivity mActivity) { 37 public RecordView(RecordActivity mActivity) {
37 this.mActivity = mActivity; 38 this.mActivity = mActivity;
38 } 39 }
@@ -68,7 +69,11 @@ public class RecordView implements MvpView { @@ -68,7 +69,11 @@ public class RecordView implements MvpView {
68 hasPermissions = mActivity.getPresenter().checkPermissions(mActivity, mActivity.permissionsRecordNoAudio, mActivity.PERMISISSION_CODE_ASK, true); 69 hasPermissions = mActivity.getPresenter().checkPermissions(mActivity, mActivity.permissionsRecordNoAudio, mActivity.PERMISISSION_CODE_ASK, true);
69 } 70 }
70 if (hasPermissions) { 71 if (hasPermissions) {
71 - mActivity.getSupportFragmentManager().beginTransaction().replace(R.id.pre_frame, RecordFragment.newInstance()).addToBackStack("").commit(); 72 + if ( mActivity.getSupportFragmentManager().getFragments()==null|| mActivity.getSupportFragmentManager().getFragments().size()==0){
  73 + mActivity.isInit=true;
  74 + mActivity.getSupportFragmentManager().beginTransaction().replace(R.id.pre_frame, RecordFragment.newInstance()).addToBackStack("").commit();
  75 +
  76 + }
72 } 77 }
73 78
74 } 79 }
lib_media/src/main/java/com/cnlive/media/ui/activity/RecordActivity.java
@@ -7,6 +7,8 @@ import android.content.Intent; @@ -7,6 +7,8 @@ import android.content.Intent;
7 import android.graphics.Bitmap; 7 import android.graphics.Bitmap;
8 import android.graphics.Color; 8 import android.graphics.Color;
9 import android.os.Bundle; 9 import android.os.Bundle;
  10 +import android.os.PersistableBundle;
  11 +import android.util.Log;
10 12
11 import androidx.annotation.NonNull; 13 import androidx.annotation.NonNull;
12 import androidx.fragment.app.Fragment; 14 import androidx.fragment.app.Fragment;
@@ -42,7 +44,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -42,7 +44,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
42 44
43 45
44 public ImagePickerOptions mOptions; 46 public ImagePickerOptions mOptions;
45 - 47 + public boolean isInit = false;
46 public Bitmap preBitmap; 48 public Bitmap preBitmap;
47 public String videoPath; 49 public String videoPath;
48 public int resultCode; 50 public int resultCode;
@@ -57,7 +59,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -57,7 +59,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
57 // 是否需要录音权限 59 // 是否需要录音权限
58 public boolean isNeedAudio = true; 60 public boolean isNeedAudio = true;
59 public static String[] permissionsRecord = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; 61 public static String[] permissionsRecord = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
60 - public static String[] permissionsRecordNoAudio = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO,Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; 62 + public static String[] permissionsRecordNoAudio = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
61 63
62 public static void newInstance(Context context, ImagePickerOptions mOptions) { 64 public static void newInstance(Context context, ImagePickerOptions mOptions) {
63 Intent intent = new Intent(); 65 Intent intent = new Intent();
@@ -77,12 +79,21 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -77,12 +79,21 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
77 this.getWindow().getDecorView().setBackgroundColor(Color.TRANSPARENT); 79 this.getWindow().getDecorView().setBackgroundColor(Color.TRANSPARENT);
78 StatusBarUtil2.setTransparentForWindow(this); 80 StatusBarUtil2.setTransparentForWindow(this);
79 StatusBarUtil2.addTranslucentView(this, 0); 81 StatusBarUtil2.addTranslucentView(this, 0);
  82 + Log.e("启动流程:","onCreate"+savedInstanceState);
80 QiniuVideoUtil.chcekInitState(this, isInit -> { 83 QiniuVideoUtil.chcekInitState(this, isInit -> {
81 if (isInit) { 84 if (isInit) {
82 - resultCode = getIntent().getIntExtra(PickerConfig.RESULT_CODE, 0);  
83 - isJumpCamera = getIntent().getBooleanExtra(PickerConfig.WHERE_JUMP_CAMERA, false);  
84 - selectMedia = getIntent().getParcelableArrayListExtra(PickerConfig.WHERE_JUMP_CAMERA_SELECTS);  
85 - mOptions = getIntent().getParcelableExtra(PickerConfig.INTENT_KEY_OPTIONS); 85 +
  86 + if (savedInstanceState != null) {
  87 + mOptions = savedInstanceState.getParcelable(PickerConfig.INTENT_KEY_OPTIONS);
  88 + resultCode = savedInstanceState.getInt(PickerConfig.RESULT_CODE, resultCode);
  89 + isJumpCamera = savedInstanceState.getBoolean(PickerConfig.WHERE_JUMP_CAMERA, isJumpCamera);
  90 + } else {
  91 + resultCode = getIntent().getIntExtra(PickerConfig.RESULT_CODE, 0);
  92 + isJumpCamera = getIntent().getBooleanExtra(PickerConfig.WHERE_JUMP_CAMERA, false);
  93 + selectMedia = getIntent().getParcelableArrayListExtra(PickerConfig.WHERE_JUMP_CAMERA_SELECTS);
  94 + mOptions = getIntent().getParcelableExtra(PickerConfig.INTENT_KEY_OPTIONS);
  95 + }
  96 +
86 MeidaResultObservable.getInstance().addObserver(this); 97 MeidaResultObservable.getInstance().addObserver(this);
87 if (mOptions != null) { 98 if (mOptions != null) {
88 if (mOptions.getJumpCameraMode() == PickerConfig.CAMERA_MODE_PIC) { 99 if (mOptions.getJumpCameraMode() == PickerConfig.CAMERA_MODE_PIC) {
@@ -103,8 +114,20 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -103,8 +114,20 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
103 } 114 }
104 115
105 }); 116 });
  117 + }
106 118
107 119
  120 + @Override
  121 + public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {
  122 + super.onSaveInstanceState(outState, outPersistentState);
  123 + if (outState != null) {
  124 + if (mOptions != null) outState.putParcelable(PickerConfig.INTENT_KEY_OPTIONS, mOptions);
  125 + outState.putInt(PickerConfig.RESULT_CODE, resultCode);
  126 + outState.putBoolean(PickerConfig.WHERE_JUMP_CAMERA, isJumpCamera);
  127 + if (selectMedia != null)
  128 + outState.putParcelableArrayList(PickerConfig.WHERE_JUMP_CAMERA_SELECTS, selectMedia);
  129 + }
  130 +
108 } 131 }
109 132
110 public void showPreViewImg(Bitmap plbitMap) { 133 public void showPreViewImg(Bitmap plbitMap) {
@@ -132,6 +155,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -132,6 +155,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
132 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, 155 public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
133 @NonNull int[] grantResults) { 156 @NonNull int[] grantResults) {
134 super.onRequestPermissionsResult(requestCode, permissions, grantResults); 157 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  158 + Log.e("启动流程:","onRequestPermissionsResult"+isNeverAsk);
135 if (requestCode == PERMISISSION_CODE_ASK) { 159 if (requestCode == PERMISISSION_CODE_ASK) {
136 160
137 boolean[] hasPermissions = getPresenter().onRequestPermissionsResult(this, requestCode, permissions, grantResults); 161 boolean[] hasPermissions = getPresenter().onRequestPermissionsResult(this, requestCode, permissions, grantResults);
@@ -153,11 +177,21 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -153,11 +177,21 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
153 177
154 } 178 }
155 179
  180 + @Override
  181 + protected void onNewIntent(Intent intent) {
  182 + super.onNewIntent(intent);
  183 + Log.e("启动流程:","onNewIntent"+isNeverAsk);
  184 + }
156 185
157 @Override 186 @Override
158 protected void onResume() { 187 protected void onResume() {
159 super.onResume(); 188 super.onResume();
160 - 189 + Log.e("启动流程:","onResume"+isNeverAsk);
  190 + if (isNeverAsk) {
  191 + isNeverAsk = false;
  192 + //永久拒绝后,返回页面时检测权限并初始化
  193 + getMvpView().checkPermisssion();
  194 + }
161 } 195 }
162 196
163 @Override 197 @Override
@@ -168,6 +202,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent @@ -168,6 +202,7 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent
168 @Override 202 @Override
169 protected void onDestroy() { 203 protected void onDestroy() {
170 super.onDestroy(); 204 super.onDestroy();
  205 + Log.e("启动流程:","onDestroy"+isNeverAsk);
171 MeidaResultObservable.getInstance().deleteObserver(this); 206 MeidaResultObservable.getInstance().deleteObserver(this);
172 if (preBitmap != null) { 207 if (preBitmap != null) {
173 // glide 加载维护了 bitmap 回收 208 // glide 加载维护了 bitmap 回收
lib_media/src/main/java/com/cnlive/media/ui/fragment/RecordFragment.java
@@ -3,6 +3,7 @@ package com.cnlive.media.ui.fragment; @@ -3,6 +3,7 @@ package com.cnlive.media.ui.fragment;
3 import android.graphics.Bitmap; 3 import android.graphics.Bitmap;
4 import android.os.Bundle; 4 import android.os.Bundle;
5 import android.text.TextUtils; 5 import android.text.TextUtils;
  6 +import android.util.Log;
6 import android.view.View; 7 import android.view.View;
7 8
8 import androidx.activity.OnBackPressedCallback; 9 import androidx.activity.OnBackPressedCallback;
@@ -10,6 +11,7 @@ import androidx.annotation.Nullable; @@ -10,6 +11,7 @@ import androidx.annotation.Nullable;
10 11
11 import com.cnlive.libs.base.frame.fragment.MvpBindingFragment; 12 import com.cnlive.libs.base.frame.fragment.MvpBindingFragment;
12 import com.cnlive.libs.base.util.DoublePressed; 13 import com.cnlive.libs.base.util.DoublePressed;
  14 +import com.cnlive.media.PickerConfig;
13 import com.cnlive.media.R; 15 import com.cnlive.media.R;
14 import com.cnlive.media.databinding.FragmentRecordBinding; 16 import com.cnlive.media.databinding.FragmentRecordBinding;
15 import com.cnlive.media.frame.presenter.RecordFragmentPresenter; 17 import com.cnlive.media.frame.presenter.RecordFragmentPresenter;
@@ -69,14 +71,20 @@ public class RecordFragment extends MvpBindingFragment<RecordFragmentView, Recor @@ -69,14 +71,20 @@ public class RecordFragment extends MvpBindingFragment<RecordFragmentView, Recor
69 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 71 public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
70 super.onViewCreated(view, savedInstanceState); 72 super.onViewCreated(view, savedInstanceState);
71 RecordCameraViewObservable.newInstance().addObserver(this); 73 RecordCameraViewObservable.newInstance().addObserver(this);
  74 + Log.e("启动流程:","onViewCreated"+savedInstanceState);
72 if (getMvpView() != null) getMvpView().initView(); 75 if (getMvpView() != null) getMvpView().initView();
73 requireActivity().getOnBackPressedDispatcher().addCallback(this, callback); 76 requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
74 } 77 }
75 78
  79 + @Override
  80 + public void onSaveInstanceState(Bundle outState) {
  81 + super.onSaveInstanceState(outState);
  82 + }
76 83
77 @Override 84 @Override
78 public void onResume() { 85 public void onResume() {
79 super.onResume(); 86 super.onResume();
  87 + Log.e("启动流程:","FragmentonResume");
80 if (isFlash && getMvpView() != null) getMvpView().processFlash(isFlash); 88 if (isFlash && getMvpView() != null) getMvpView().processFlash(isFlash);
81 if (plShortVideoRecorder != null) plShortVideoRecorder.resume(); 89 if (plShortVideoRecorder != null) plShortVideoRecorder.resume();
82 plShortVideoRecorder.deleteLastSection(); 90 plShortVideoRecorder.deleteLastSection();