feature #28: action to open notification panel

This commit is contained in:
Josia Pietsch 2024-09-06 13:32:38 +02:00
parent 9582113bcf
commit 25905f1116
Signed by: jrpie
GPG key ID: E70B571D66986A2D
6 changed files with 28 additions and 0 deletions

View file

@ -6,6 +6,7 @@
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" /> tools:ignore="QueryAllPackagesPermission" />
<uses-permission android:name="android.permission.ACCESS_HIDDEN_PROFILES" /> <uses-permission android:name="android.permission.ACCESS_HIDDEN_PROFILES" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<application <application

View file

@ -223,6 +223,19 @@ fun audioVolumeDown(activity: Activity) {
) )
} }
fun expandNotificationsPanel(activity: Activity) {
/* https://stackoverflow.com/a/15582509 */
try {
@Suppress("SpellCheckingInspection")
val statusBarService: Any? = activity.getSystemService("statusbar")
val statusBarManager = Class.forName("android.app.StatusBarManager")
val showStatusBar = statusBarManager.getMethod("expandNotificationsPanel")
showStatusBar.invoke(statusBarService)
} catch (e: Exception) {
Toast.makeText(activity, activity.getString(R.string.alert_cant_expand_notifications_panel), Toast.LENGTH_LONG).show()
}
}
/* --- */ /* --- */
fun getUserFromId(user: Int?, context: Context): UserHandle? { fun getUserFromId(user: Int?, context: Context): UserHandle? {

View file

@ -0,0 +1,2 @@
package de.jrpie.android.launcher

View file

@ -6,6 +6,7 @@ import de.jrpie.android.launcher.audioNextTrack
import de.jrpie.android.launcher.audioPreviousTrack import de.jrpie.android.launcher.audioPreviousTrack
import de.jrpie.android.launcher.audioVolumeDown import de.jrpie.android.launcher.audioVolumeDown
import de.jrpie.android.launcher.audioVolumeUp import de.jrpie.android.launcher.audioVolumeUp
import de.jrpie.android.launcher.expandNotificationsPanel
import de.jrpie.android.launcher.openAppsList import de.jrpie.android.launcher.openAppsList
import de.jrpie.android.launcher.openSettings import de.jrpie.android.launcher.openSettings
@ -24,6 +25,10 @@ enum class LauncherAction(val id: String, val label: Int, val icon: Int, val lau
TRACK_PREV("launcher:previousTrack", TRACK_PREV("launcher:previousTrack",
R.string.list_other_track_previous, R.string.list_other_track_previous,
R.drawable.baseline_skip_previous_24, ::audioPreviousTrack), R.drawable.baseline_skip_previous_24, ::audioPreviousTrack),
EXPAND_NOTIFICATIONS_PANEL("launcher:expandNotificationsPanel",
R.string.list_other_expand_notifications_panel,
R.drawable.baseline_notifications_24,
::expandNotificationsPanel),
NOP("launcher:nop", R.string.list_other_nop, R.drawable.baseline_not_interested_24, {}); NOP("launcher:nop", R.string.list_other_nop, R.drawable.baseline_not_interested_24, {});
companion object { companion object {

View file

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#FFFFFF" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View file

@ -157,6 +157,7 @@
<string name="list_other_volume_down">Music: Quieter</string> <string name="list_other_volume_down">Music: Quieter</string>
<string name="list_other_track_next">Music: Next</string> <string name="list_other_track_next">Music: Next</string>
<string name="list_other_track_previous">Music: Previous</string> <string name="list_other_track_previous">Music: Previous</string>
<string name="list_other_expand_notifications_panel">Expand notifications panel</string>
<string name="list_other_nop">Do nothing</string> <string name="list_other_nop">Do nothing</string>
<!-- <!--
@ -188,5 +189,6 @@
<string name="settings">Settings</string> <string name="settings">Settings</string>
<string name="ic_menu_alt">More options</string> <string name="ic_menu_alt">More options</string>
<string name="swipe" translatable="false"><![CDATA[>>>>>>]]></string> <string name="swipe" translatable="false"><![CDATA[>>>>>>]]></string>
<string name="alert_cant_expand_notifications_panel">Error: Can\'t expand status bar.\nThis action is using functionality that is not part of the published Android API. Unfortunately, it does not seem to work on your device.</string>
</resources> </resources>