From b9173bf89b97886a9fd9efae4686577f6c1b0afe Mon Sep 17 00:00:00 2001 From: jrfeng Date: Sat, 24 Apr 2021 15:40:36 +0800 Subject: [PATCH] update debug code --- debug/build.gradle | 2 + debug/src/main/AndroidManifest.xml | 2 + .../java/snow/player/debug/MainActivity.java | 81 +++++++++++++++++++ debug/src/main/res/layout/activity_main.xml | 45 ++++++++++- 4 files changed, 128 insertions(+), 2 deletions(-) diff --git a/debug/build.gradle b/debug/build.gradle index 23c69777..b173154d 100644 --- a/debug/build.gradle +++ b/debug/build.gradle @@ -45,4 +45,6 @@ dependencies { implementation 'com.google.android.exoplayer:exoplayer-hls:2.11.7' implementation 'com.android.support:multidex:1.0.3' + + implementation 'com.permissionx.guolindev:permissionx:1.4.0' } diff --git a/debug/src/main/AndroidManifest.xml b/debug/src/main/AndroidManifest.xml index d1efa548..576bfaf9 100644 --- a/debug/src/main/AndroidManifest.xml +++ b/debug/src/main/AndroidManifest.xml @@ -8,6 +8,8 @@ + + mAudioScanner; + private boolean mStartScannerOnGranted; + + private ProgressBar mScannerProgress; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -39,6 +55,9 @@ protected void onCreate(Bundle savedInstanceState) { tvMediaSessionState = binding.tvMediaSessionState; + mAudioScanner = new AudioScanner<>(this, new AudioScanner.AudioItemConverter()); + mScannerProgress = findViewById(R.id.scanner_progress); + if (playerViewModel.isInitialized()) { mPlayerClient = playerViewModel.getPlayerClient(); return; @@ -70,6 +89,26 @@ public void onTimerEnd() { }); } + private void requestPermission() { + PermissionX.init(this) + .permissions(Manifest.permission.READ_EXTERNAL_STORAGE) + .request(new RequestCallback() { + @Override + public void onResult(boolean allGranted, List grantedList, List deniedList) { + if (deniedList.contains(Manifest.permission.READ_EXTERNAL_STORAGE)) { + Toast.makeText(MainActivity.this, + "Need permission: READ_EXTERNAL_STORAGE", + Toast.LENGTH_SHORT).show(); + return; + } + + if (mStartScannerOnGranted) { + startAudioScanner(); + } + } + }); + } + @SuppressLint("SetTextI18n") public void onClick(View view) { int id = view.getId(); @@ -100,7 +139,49 @@ public void onConnected(boolean success) { if (id == R.id.btnSetPlaylist) { mPlayerClient.setPlaylist(createPlaylist()); + return; + } + + if (id == R.id.btn_start_scanner) { + if (!PermissionX.isGranted(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { + mStartScannerOnGranted = true; + requestPermission(); + return; + } + + startAudioScanner(); + return; } + + if (id == R.id.btn_cancel_scanner) { + mAudioScanner.cancel(); + } + } + + private void startAudioScanner() { + mAudioScanner.scan(new AudioScanner.OnProgressUpdateListener() { + @Override + public void onStart() { + mScannerProgress.setProgress(0); + } + + @Override + public void onProgressUpdate(int progress) { + mScannerProgress.setProgress(progress); + } + + @Override + public void onEnd(@NonNull List audioList, boolean cancelled) { + // DEBUG + Log.d("DEBUG", "***************************************************"); + Log.d("DEBUG", "cancelled: " + cancelled); + Log.d("DEBUG", "size : " + audioList.size()); + for (AudioScanner.AudioItem audioItem : audioList) { + Log.d("DEBUG", "item : " + audioItem.toString()); + } + Log.d("DEBUG", "***************************************************"); + } + }); } private Playlist createPlaylist() { diff --git a/debug/src/main/res/layout/activity_main.xml b/debug/src/main/res/layout/activity_main.xml index 5d485490..c59f2600 100644 --- a/debug/src/main/res/layout/activity_main.xml +++ b/debug/src/main/res/layout/activity_main.xml @@ -1,5 +1,6 @@ - + @@ -12,7 +13,6 @@ + + + + + + +