diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index f45a1c66..9dab1066 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -333,9 +333,12 @@ public class Action returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.pause)); break; case "3": - returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.previous)); + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.stop)); break; case "4": + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.previous)); + break; + case "5": returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.next)); break; default: diff --git a/app/src/main/java/com/jens/automation2/Actions.java b/app/src/main/java/com/jens/automation2/Actions.java index 90753a06..3454deb3 100644 --- a/app/src/main/java/com/jens/automation2/Actions.java +++ b/app/src/main/java/com/jens/automation2/Actions.java @@ -1483,70 +1483,54 @@ public class Actions keyCode = KeyEvent.KEYCODE_MEDIA_PAUSE; break; case 3: - keyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS; + keyCode = KeyEvent.KEYCODE_MEDIA_STOP; break; case 4: + keyCode = KeyEvent.KEYCODE_MEDIA_PREVIOUS; + break; + case 5: keyCode = KeyEvent.KEYCODE_MEDIA_NEXT; break; } - AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - - KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode); - mAudioManager.dispatchMediaKeyEvent(event); - +// AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); // if (mAudioManager.isMusicActive()) // { - -// keyEvent = new KeyEvent(KeyEvent.ACTION_UP, keyCode); -// intent = new Intent(Intent.ACTION_MEDIA_BUTTON); - - /*switch (choice) - { - case play_pause: - return KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE; - case play: - return KeyEvent.KEYCODE_MEDIA_PLAY; - case pause: - return KeyEvent.KEYCODE_MEDIA_PAUSE; - case previous: - return KeyEvent.KEYCODE_MEDIA_PREVIOUS; - case next: - return KeyEvent.KEYCODE_MEDIA_NEXT; - default: - throw new IllegalAccessError();*/ -// } - -// Intent.CATEGORY_APP_MUSIC -// Intent i = new Intent("com.android.music.musicservicecommand"); - - - // if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // return controlMediaPlaybackFromApi21(keyCode); // else // { -// KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode); -// Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON); -// intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent); -// context.sendOrderedBroadcast(intent, null); -// -// keyEvent = new KeyEvent(KeyEvent.ACTION_UP, keyCode); -// intent = new Intent(Intent.ACTION_MEDIA_BUTTON); -// intent.putExtra(Intent.EXTRA_KEY_EVENT, keyCode); -// -// context.sendOrderedBroadcast(intent, null); -// // AutomationService.getInstance().sendBroadcast(i); -// -// -// return true; + return controlMediaByDispatch(keyCode); +// return controlMediaPlaybackByBroadcast(keyCode); // } + } + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + static boolean controlMediaByDispatch(int keyCode) + { + AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode); + mAudioManager.dispatchMediaKeyEvent(event); return true; - } + } -// return false; -// } + static boolean controlMediaPlaybackByBroadcast(int keyCode) + { + KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode); + Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON); + intent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent); + context.sendOrderedBroadcast(intent, null); + + keyEvent = new KeyEvent(KeyEvent.ACTION_UP, keyCode); + intent = new Intent(Intent.ACTION_MEDIA_BUTTON); + intent.putExtra(Intent.EXTRA_KEY_EVENT, keyCode); + + context.sendOrderedBroadcast(intent, null); + AutomationService.getInstance().sendBroadcast(intent); + + return true; + } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) static boolean controlMediaPlaybackFromApi21(int keyCode) diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index 936ca552..da340576 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -2034,7 +2034,14 @@ public class ActivityManageRule extends Activity { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setTitle(myContext.getResources().getString(R.string.selectCommand)); - final String choices[] = { myContext.getString(R.string.playPause), myContext.getString(R.string.play), myContext.getString(R.string.pause), myContext.getString(R.string.previous), myContext.getString(R.string.next) }; + final String choices[] = { + myContext.getString(R.string.playPause), + myContext.getString(R.string.play), + myContext.getString(R.string.pause), + myContext.getString(R.string.stop), + myContext.getString(R.string.previous), + myContext.getString(R.string.next) + }; alertDialogBuilder.setItems(choices, new DialogInterface.OnClickListener() { @Override diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 344303b0..e5a06480 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -783,4 +783,5 @@ previous next Control media + stop \ No newline at end of file