|  | @@ -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);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 |