diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBMusicControlReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBMusicControlReceiver.java index 150aa8b0b..fbfc3726f 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBMusicControlReceiver.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBMusicControlReceiver.java @@ -3,6 +3,7 @@ package nodomain.freeyourgadget.gadgetbridge; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.media.AudioManager; import android.os.SystemClock; import android.view.KeyEvent; @@ -16,7 +17,9 @@ public class GBMusicControlReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { GBDeviceCommandMusicControl.Command musicCmd = GBDeviceCommandMusicControl.Command.values()[intent.getIntExtra("command", 0)]; - int keyCode; + int keyCode = -1; + int volumeAdjust = AudioManager.ADJUST_LOWER; + switch (musicCmd) { case NEXT: keyCode = KeyEvent.KEYCODE_MEDIA_NEXT; @@ -33,20 +36,30 @@ public class GBMusicControlReceiver extends BroadcastReceiver { case PLAYPAUSE: keyCode = KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; break; + case VOLUMEUP: + // change default and fall through, :P + volumeAdjust = AudioManager.ADJUST_RAISE; + case VOLUMEDOWN: + AudioManager audioManager = + (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, volumeAdjust, 0); + break; default: return; } - long eventtime = SystemClock.uptimeMillis(); + if (keyCode != -1) { + long eventtime = SystemClock.uptimeMillis(); - Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); - KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, keyCode, 0); - downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); - context.sendOrderedBroadcast(downIntent, null); + Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); + KeyEvent downEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_DOWN, keyCode, 0); + downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent); + context.sendOrderedBroadcast(downIntent, null); - Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); - KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, keyCode, 0); - upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); - context.sendOrderedBroadcast(upIntent, null); + Intent upIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null); + KeyEvent upEvent = new KeyEvent(eventtime, eventtime, KeyEvent.ACTION_UP, keyCode, 0); + upIntent.putExtra(Intent.EXTRA_KEY_EVENT, upEvent); + context.sendOrderedBroadcast(upIntent, null); + } } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PBWReader.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PBWReader.java index cd186cc20..dcce0a2b1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PBWReader.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/pebble/PBWReader.java @@ -42,7 +42,7 @@ public class PBWReader { try { while ((ze = zis.getNextEntry()) != null) { String fileName = ze.getName(); - if (fileName.equals("pebble-app.bin") || fileName.equals("pebble-worker.bin") || fileName.equals("app_resources.pbpack")) { + if (fileName.equals("pebble-app.bin") || fileName.equals("pebble-worker.bin") || fileName.equals("app_resources.pbpack") || fileName.equals("")) { filesToInstall.add(fileName); // FIXME: do not hardcode filenames above } else if (fileName.equals("appinfo.json")) { long bytes = ze.getSize(); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceCommandMusicControl.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceCommandMusicControl.java index 4ffe6b33e..e637d76bf 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceCommandMusicControl.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/GBDeviceCommandMusicControl.java @@ -15,5 +15,7 @@ public class GBDeviceCommandMusicControl extends GBDeviceCommand { PLAYPAUSE, NEXT, PREVIOUS, + VOLUMEUP, + VOLUMEDOWN, } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java index e136b8bf2..717935402 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/protocol/PebbleProtocol.java @@ -390,6 +390,12 @@ public class PebbleProtocol extends GBDeviceProtocol { case MUSICCONTROL_PLAYPAUSE: musicCmd.command = GBDeviceCommandMusicControl.Command.PLAYPAUSE; break; + case MUSICCONTROL_VOLUMEUP: + musicCmd.command = GBDeviceCommandMusicControl.Command.VOLUMEUP; + break; + case MUSICCONTROL_VOLUMEDOWN: + musicCmd.command = GBDeviceCommandMusicControl.Command.VOLUMEDOWN; + break; default: break; }