Initial commit retro music app
This commit is contained in:
parent
ab332473bc
commit
fe890632fd
932 changed files with 83126 additions and 0 deletions
|
@ -0,0 +1,46 @@
|
|||
package code.name.monkey.retromusic.volume;
|
||||
|
||||
import android.database.ContentObserver;
|
||||
import android.media.AudioManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
public class AudioVolumeContentObserver extends ContentObserver {
|
||||
|
||||
private final OnAudioVolumeChangedListener mListener;
|
||||
private final AudioManager mAudioManager;
|
||||
private final int mAudioStreamType;
|
||||
private int mLastVolume;
|
||||
|
||||
AudioVolumeContentObserver(@NonNull Handler handler, @NonNull AudioManager audioManager,
|
||||
int audioStreamType,
|
||||
@NonNull OnAudioVolumeChangedListener listener) {
|
||||
|
||||
super(handler);
|
||||
mAudioManager = audioManager;
|
||||
mAudioStreamType = audioStreamType;
|
||||
mListener = listener;
|
||||
mLastVolume = audioManager.getStreamVolume(mAudioStreamType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Depending on the handler this method may be executed on the UI thread
|
||||
*/
|
||||
@Override
|
||||
public void onChange(boolean selfChange, Uri uri) {
|
||||
if (mAudioManager != null && mListener != null) {
|
||||
int maxVolume = mAudioManager.getStreamMaxVolume(mAudioStreamType);
|
||||
int currentVolume = mAudioManager.getStreamVolume(mAudioStreamType);
|
||||
if (currentVolume != mLastVolume) {
|
||||
mLastVolume = currentVolume;
|
||||
mListener.onAudioVolumeChanged(currentVolume, maxVolume);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean deliverSelfNotifications() {
|
||||
return super.deliverSelfNotifications();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package code.name.monkey.retromusic.volume;
|
||||
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
public class AudioVolumeObserver {
|
||||
|
||||
private final Context mContext;
|
||||
private final AudioManager mAudioManager;
|
||||
private AudioVolumeContentObserver mAudioVolumeContentObserver;
|
||||
|
||||
public AudioVolumeObserver(@NonNull Context context) {
|
||||
mContext = context;
|
||||
mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
|
||||
}
|
||||
|
||||
public void register(int audioStreamType, @NonNull OnAudioVolumeChangedListener listener) {
|
||||
|
||||
Handler handler = new Handler();
|
||||
// with this handler AudioVolumeContentObserver#onChange()
|
||||
// will be executed in the main thread
|
||||
// To execute in another thread you can use a Looper
|
||||
// +info: https://stackoverflow.com/a/35261443/904907
|
||||
|
||||
mAudioVolumeContentObserver = new AudioVolumeContentObserver(
|
||||
handler,
|
||||
mAudioManager,
|
||||
audioStreamType,
|
||||
listener);
|
||||
|
||||
mContext.getContentResolver().registerContentObserver(
|
||||
android.provider.Settings.System.CONTENT_URI,
|
||||
true,
|
||||
mAudioVolumeContentObserver);
|
||||
}
|
||||
|
||||
public void unregister() {
|
||||
if (mAudioVolumeContentObserver != null) {
|
||||
mContext.getContentResolver().unregisterContentObserver(mAudioVolumeContentObserver);
|
||||
mAudioVolumeContentObserver = null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package code.name.monkey.retromusic.volume;
|
||||
|
||||
public interface OnAudioVolumeChangedListener {
|
||||
|
||||
void onAudioVolumeChanged(int currentVolume, int maxVolume);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue