|
@@ -10,11 +10,14 @@ import android.os.Bundle;
|
|
|
import android.os.Handler;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
+import android.widget.SeekBar;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
|
|
|
import com.bigkoo.pickerview.view.OptionsPickerView;
|
|
|
import com.cooleshow.base.ui.activity.BaseActivity;
|
|
|
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
|
|
|
+import com.cooleshow.metronome.Utils.VolumeManager;
|
|
|
import com.cooleshow.metronome.adapter.MetronomeAdapter;
|
|
|
import com.cooleshow.metronome.constants.MetronomeConfig;
|
|
|
import com.cooleshow.metronome.constants.MetronomeType;
|
|
@@ -22,12 +25,11 @@ import com.cooleshow.metronome.databinding.ActivityMetronomeLayoutBinding;
|
|
|
import com.cooleshow.metronome.widget.CircularSeekBar;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
|
|
-public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBinding> implements View.OnClickListener {
|
|
|
+public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBinding> implements View.OnClickListener, VolumeManager.VolumeChangeListener {
|
|
|
public MetronomeType currentBeatType;
|
|
|
public int currentBeatRate = MetronomeConfig.DEFAULT_PLAY_RATE;
|
|
|
private SoundPool soundPool;
|
|
@@ -64,6 +66,7 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
private List<MetronomeType> beatSymbolLists;
|
|
|
private int currentSelectPosition;
|
|
|
private MetronomeAdapter mMetronomeAdapter;
|
|
|
+ private VolumeManager mVolumeManager;
|
|
|
|
|
|
public static void start(Context context) {
|
|
|
Intent intent = new Intent(context, MetronomeActivity.class);
|
|
@@ -73,14 +76,17 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
+ QMUIStatusBarHelper.setStatusBarLightMode(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
protected void initView() {
|
|
|
+ initMidTitleToolBar(viewBinding.toolbarInclude.toolbar,"节拍器");
|
|
|
viewBinding.toolbarInclude.toolbar.setBackgroundColor(Color.TRANSPARENT);
|
|
|
updateSpeedText();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private void updateSpeedText() {
|
|
|
viewBinding.tvSpeed.setText(String.valueOf(currentBeatRate));
|
|
|
}
|
|
@@ -145,6 +151,29 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
beatSymbolLists.add(MetronomeType.METRONOME_44_TYPE);
|
|
|
beatSymbolLists.add(MetronomeType.METRONOME_38_TYPE);
|
|
|
beatSymbolLists.add(MetronomeType.METRONOME_68_TYPE);
|
|
|
+ mVolumeManager = new VolumeManager(this);
|
|
|
+ mVolumeManager.setVolumeChangeListener(this);
|
|
|
+ mVolumeManager.registerReceiver();
|
|
|
+ int streamVolume = mVolumeManager.getCurrentMusicVolume();
|
|
|
+ int maxStreamVolume = mVolumeManager.getMaxMusicVolume();
|
|
|
+ viewBinding.volumeSeekBar.setMax(maxStreamVolume);
|
|
|
+ viewBinding.volumeSeekBar.setProgress(streamVolume);
|
|
|
+ viewBinding.volumeSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
|
|
+ mVolumeManager.setCurrentMusicVolume(progress);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onStartTrackingTouch(SeekBar seekBar) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onStopTrackingTouch(SeekBar seekBar) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private void play() {
|
|
@@ -297,6 +326,7 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
public void onDestroy() {
|
|
|
super.onDestroy();
|
|
|
try {
|
|
|
+ mVolumeManager.unregisterReceiver();
|
|
|
soundPool.release();
|
|
|
soundPool = null;
|
|
|
mHandler.removeCallbacksAndMessages(null);
|
|
@@ -332,14 +362,23 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
|
|
|
private void updateAnim(int value) {
|
|
|
int progress = viewBinding.cirSeekbar.getProgress();
|
|
|
- Log.i("qwer","当前progress:"+progress);
|
|
|
+ Log.i("qwer", "当前progress:" + progress);
|
|
|
progress += value;
|
|
|
if (progress >= MetronomeConfig.MAX_RATE_PROGRESS) {
|
|
|
progress = 0;
|
|
|
}
|
|
|
if (progress < 0) {
|
|
|
- progress = MetronomeConfig.MAX_RATE_PROGRESS+value;
|
|
|
+ progress = MetronomeConfig.MAX_RATE_PROGRESS + value;
|
|
|
}
|
|
|
viewBinding.cirSeekbar.setProgress(progress);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onVolumeChanged(int volume) {
|
|
|
+ if (!checkActivityExist()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ viewBinding.volumeSeekBar.setProgress(volume);
|
|
|
+ }
|
|
|
+
|
|
|
}
|