diff --git a/app/src/main/java/com/finnmglas/launcher/Functions.kt b/app/src/main/java/com/finnmglas/launcher/Functions.kt
index f7a899c..f071af9 100644
--- a/app/src/main/java/com/finnmglas/launcher/Functions.kt
+++ b/app/src/main/java/com/finnmglas/launcher/Functions.kt
@@ -12,8 +12,10 @@ import android.media.AudioManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
+import android.os.SystemClock
import android.provider.Settings
import android.util.DisplayMetrics
+import android.view.KeyEvent
import android.view.View
import android.view.Window
import android.view.WindowManager
@@ -23,6 +25,7 @@ import android.widget.Button
import android.widget.ImageView
import android.widget.Switch
import android.widget.Toast
+import androidx.annotation.RequiresApi
import com.finnmglas.launcher.list.ListActivity
import com.finnmglas.launcher.list.apps.AppInfo
import com.finnmglas.launcher.list.apps.AppsRecyclerAdapter
@@ -219,6 +222,8 @@ fun launch(
"choose" -> openAppsList(activity)
"volumeUp" -> audioVolumeUp(activity)
"volumeDown" -> audioVolumeDown(activity)
+ "nextTrack" -> audioNextTrack(activity)
+ "previousTrack" -> audioPreviousTrack(activity)
"tutorial" -> openTutorial(activity)
}
else launchApp(data, activity) // app
@@ -226,6 +231,38 @@ fun launch(
activity.overridePendingTransition(animationIn, animationOut)
}
+/* Media player actions */
+
+fun audioNextTrack(activity: Activity) {
+ if (Build.VERSION.SDK_INT >= 19) { // requires Android KitKat +
+ val mAudioManager = activity.getSystemService(Context.AUDIO_SERVICE) as AudioManager
+
+ val eventTime: Long = SystemClock.uptimeMillis()
+
+ val downEvent =
+ KeyEvent(eventTime, eventTime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT, 0)
+ mAudioManager.dispatchMediaKeyEvent(downEvent)
+
+ val upEvent = KeyEvent(eventTime, eventTime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT, 0)
+ mAudioManager.dispatchMediaKeyEvent(upEvent)
+ }
+}
+
+fun audioPreviousTrack(activity: Activity) {
+ if (Build.VERSION.SDK_INT >= 19) { // requires Android KitKat +
+ val mAudioManager = activity.getSystemService(Context.AUDIO_SERVICE) as AudioManager
+
+ val eventTime: Long = SystemClock.uptimeMillis()
+
+ val downEvent =
+ KeyEvent(eventTime, eventTime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0)
+ mAudioManager.dispatchMediaKeyEvent(downEvent)
+
+ val upEvent = KeyEvent(eventTime, eventTime, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS, 0)
+ mAudioManager.dispatchMediaKeyEvent(upEvent)
+ }
+}
+
fun audioVolumeUp(activity: Activity) {
val audioManager =
activity.getSystemService(Context.AUDIO_SERVICE) as AudioManager
@@ -248,6 +285,8 @@ fun audioVolumeDown(activity: Activity) {
)
}
+/* --- */
+
fun launchApp(packageName: String, context: Context) {
val intent = getIntent(packageName, context)
diff --git a/app/src/main/java/com/finnmglas/launcher/list/other/OtherRecyclerAdapter.kt b/app/src/main/java/com/finnmglas/launcher/list/other/OtherRecyclerAdapter.kt
index cc94637..6e6aad9 100644
--- a/app/src/main/java/com/finnmglas/launcher/list/other/OtherRecyclerAdapter.kt
+++ b/app/src/main/java/com/finnmglas/launcher/list/other/OtherRecyclerAdapter.kt
@@ -74,9 +74,16 @@ class OtherRecyclerAdapter(val activity: Activity):
OtherInfo(activity.getString(R.string.list_other_volume_down),
"launcher:volumeDown",
activity.getString(R.string.fas_minus)))
+ othersList.add(
+ OtherInfo(activity.getString(R.string.list_other_track_next),
+ "launcher:nextTrack",
+ activity.getString(R.string.fas_forward)))
+ othersList.add(
+ OtherInfo(activity.getString(R.string.list_other_track_previous),
+ "launcher:previousTrack",
+ activity.getString(R.string.fas_back)))
}
- /* */
private fun returnChoiceIntent(forAction: String, value: String) {
val returnIntent = Intent()
returnIntent.putExtra("value", value)
diff --git a/app/src/main/java/com/finnmglas/launcher/settings/actions/SettingsFragmentActionsRecycler.kt b/app/src/main/java/com/finnmglas/launcher/settings/actions/SettingsFragmentActionsRecycler.kt
index f0395c4..120de2b 100644
--- a/app/src/main/java/com/finnmglas/launcher/settings/actions/SettingsFragmentActionsRecycler.kt
+++ b/app/src/main/java/com/finnmglas/launcher/settings/actions/SettingsFragmentActionsRecycler.kt
@@ -108,6 +108,10 @@ class ActionsRecyclerAdapter(val activity: Activity):
viewHolder.fontAwesome.text = activity.getString(R.string.fas_plus)
"volumeDown" ->
viewHolder.fontAwesome.text = activity.getString(R.string.fas_minus)
+ "nextTrack" ->
+ viewHolder.fontAwesome.text = activity.getString(R.string.fas_forward)
+ "previousTrack" ->
+ viewHolder.fontAwesome.text = activity.getString(R.string.fas_back)
}
} else {
// Set image icon (by packageName)
diff --git a/app/src/main/res/values/icons.xml b/app/src/main/res/values/icons.xml
index 2a1a2f5..ad26c1b 100644
--- a/app/src/main/res/values/icons.xml
+++ b/app/src/main/res/values/icons.xml
@@ -13,10 +13,13 @@
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 324b85a..ebb17c1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -146,6 +146,8 @@
Launcher AppsList
Increase Volume
Decrease Volume
+ Music: Next Track
+ Music: Previous Track