From b281f3d06fc4ce1c2a3f01457d544eb1223958b7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 2 Sep 2022 18:33:43 +0800 Subject: [PATCH] Fix permission bug --- .../tv/ui/activity/SearchActivity.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java index e49e73afc..8ec12a40e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java @@ -42,7 +42,7 @@ import okhttp3.Response; public class SearchActivity extends BaseActivity implements WordAdapter.OnClickListener, HistoryAdapter.OnClickListener, CustomKeyboard.Callback { - private final ActivityResultLauncher launcherString = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> onVoice()); + private final ActivityResultLauncher launcher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), this::startListening); private ActivitySearchBinding mBinding; private SpeechRecognizer mRecognizer; @@ -132,9 +132,7 @@ public class SearchActivity extends BaseActivity implements WordAdapter.OnClickL @Override public void onDataChanged(int size) { - int visible = size == 0 ? View.GONE : View.VISIBLE; - if (mBinding.historyLayout.getVisibility() == visible) return; - mBinding.historyLayout.setVisibility(visible); + mBinding.historyLayout.setVisibility(size == 0 ? View.GONE : View.VISIBLE); } @Override @@ -155,19 +153,21 @@ public class SearchActivity extends BaseActivity implements WordAdapter.OnClickL @Override public void onVoice() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { - launcherString.launch(Manifest.permission.RECORD_AUDIO); + launcher.launch(Manifest.permission.RECORD_AUDIO); } else { - startListening(); + startListening(true); } } - private void startListening() { - Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); - intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); - mBinding.keyboard.setVisibility(View.INVISIBLE); - mBinding.voice.setVisibility(View.VISIBLE); - mBinding.voice.startAnimation(mFlicker); - mRecognizer.startListening(intent); + private void startListening(boolean granted) { + if (granted) { + Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); + intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); + mBinding.keyboard.setVisibility(View.INVISIBLE); + mBinding.voice.setVisibility(View.VISIBLE); + mBinding.voice.startAnimation(mFlicker); + mRecognizer.startListening(intent); + } } private void stopListening() {