From c1a33b16ae187a67a38362ad2c442b9ca061336d Mon Sep 17 00:00:00 2001 From: Eddy de Vink Date: Wed, 22 Jul 2026 21:06:50 +0200 Subject: [PATCH] fix: NotificationListener compile + gradle wrapper --- .../WhatsAppNotificationListener.kt | 4 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 48462 bytes .../gradle/wrapper/gradle-wrapper.properties | 4 + android-notification-listener/gradlew | 248 ++++++++++++++++++ android-notification-listener/gradlew.bat | 82 ++++++ 5 files changed, 336 insertions(+), 2 deletions(-) create mode 100644 android-notification-listener/gradle/wrapper/gradle-wrapper.jar create mode 100755 android-notification-listener/gradlew create mode 100644 android-notification-listener/gradlew.bat diff --git a/android-notification-listener/app/src/main/java/com/eddydevink/whatsapplistener/WhatsAppNotificationListener.kt b/android-notification-listener/app/src/main/java/com/eddydevink/whatsapplistener/WhatsAppNotificationListener.kt index a85d72b..0682088 100644 --- a/android-notification-listener/app/src/main/java/com/eddydevink/whatsapplistener/WhatsAppNotificationListener.kt +++ b/android-notification-listener/app/src/main/java/com/eddydevink/whatsapplistener/WhatsAppNotificationListener.kt @@ -26,11 +26,11 @@ class WhatsAppNotificationListener : NotificationListenerService() { val messagingStyle = NotificationCompat.MessagingStyle .extractMessagingStyleFromNotification(sbn.notification) ?: return - val chatId = messagingStyle.title ?: "Unknown" + val chatId = messagingStyle.conversationTitle?.toString() ?: "Unknown" val messages = messagingStyle.messages ?: return for (msg in messages) { - val senderName = msg.sender?.name?.toString() ?: "Unknown" + val senderName = msg.sender?.toString() ?: "Unknown" val text = msg.text?.toString() ?: "" val timestamp = msg.timestamp diff --git a/android-notification-listener/gradle/wrapper/gradle-wrapper.jar b/android-notification-listener/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..b1b8ef56b44f16b14dc800fa8103a6d89abb526f GIT binary patch literal 48462 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π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 literal 0 HcmV?d00001 diff --git a/android-notification-listener/gradle/wrapper/gradle-wrapper.properties b/android-notification-listener/gradle/wrapper/gradle-wrapper.properties index a595206..d889248 100644 --- a/android-notification-listener/gradle/wrapper/gradle-wrapper.properties +++ b/android-notification-listener/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +networkTimeout=10000 +retries=0 +retryBackOffMs=500 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/android-notification-listener/gradlew b/android-notification-listener/gradlew new file mode 100755 index 0000000..249efbb --- /dev/null +++ b/android-notification-listener/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# gradlew start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh gradlew +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/android-notification-listener/gradlew.bat b/android-notification-listener/gradlew.bat new file mode 100644 index 0000000..8508ef6 --- /dev/null +++ b/android-notification-listener/gradlew.bat @@ -0,0 +1,82 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem gradlew startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute gradlew +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL%