Skip to content

Commit

Permalink
update debug code
Browse files Browse the repository at this point in the history
  • Loading branch information
jrfeng committed Apr 24, 2021
1 parent 4f74806 commit b9173bf
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 2 deletions.
2 changes: 2 additions & 0 deletions debug/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}
2 changes: 2 additions & 0 deletions debug/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
android:name="androidx.multidex.MultiDexApplication"
android:allowBackup="true"
Expand Down
81 changes: 81 additions & 0 deletions debug/src/main/java/snow/player/debug/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
package snow.player.debug;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.ViewModelProvider;

import android.Manifest;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v4.media.MediaMetadataCompat;
import android.support.v4.media.session.MediaControllerCompat;
import android.support.v4.media.session.PlaybackStateCompat;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import com.permissionx.guolindev.PermissionX;
import com.permissionx.guolindev.callback.RequestCallback;

import java.util.List;

import snow.player.Player;
import snow.player.PlayerClient;
Expand All @@ -21,13 +31,19 @@
import snow.player.lifecycle.PlayerViewModel;
import snow.player.audio.MusicItem;
import snow.player.playlist.Playlist;
import snow.player.util.AudioScanner;

public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private TextView tvMediaSessionState;

private PlayerClient mPlayerClient;

private AudioScanner<AudioScanner.AudioItem> mAudioScanner;
private boolean mStartScannerOnGranted;

private ProgressBar mScannerProgress;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -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;
Expand Down Expand Up @@ -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<String> grantedList, List<String> 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();
Expand Down Expand Up @@ -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<AudioScanner.AudioItem>() {
@Override
public void onStart() {
mScannerProgress.setProgress(0);
}

@Override
public void onProgressUpdate(int progress) {
mScannerProgress.setProgress(progress);
}

@Override
public void onEnd(@NonNull List<AudioScanner.AudioItem> 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() {
Expand Down
45 changes: 43 additions & 2 deletions debug/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">

<data>

Expand All @@ -12,7 +13,6 @@
</data>

<ScrollView
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity"
Expand Down Expand Up @@ -506,6 +506,47 @@

</LinearLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:text="AudioScanner:"
android:textSize="16sp"
android:textStyle="bold" />

<ProgressBar
android:id="@+id/scanner_progress"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:max="100" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/btn_start_scanner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Start Audio Scanner"
android:textAllCaps="false" />

<Button
android:id="@+id/btn_cancel_scanner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Cancel Audio Scanner"
android:textAllCaps="false" />

</LinearLayout>

</LinearLayout>

</ScrollView>
Expand Down

0 comments on commit b9173bf

Please sign in to comment.