Pulse no longer shows popup if disallowed by system

This commit is contained in:
partisan 2025-06-04 22:52:37 +02:00
parent 660637626e
commit 09de3785b9
5 changed files with 17 additions and 21 deletions

View file

@ -83,24 +83,24 @@ In the “Add App” screen:
1. Add the following URL: https://weforge.xyz/partisan/Pulse
2. In **Override Source**, select **Forgejo (Codeberg)**
3. Tap the “Add” button at the very top, and youre done!
3. Tap the “Add” button at the very top, and you're done!
## Install directly
Go to the [Releases page](https://weforge.xyz/partisan/Pulse/releases) and download the latest file with the following format: `app-release.apk`.
Install it, and youre done!
Install it, and you're done!
_Please note that when installing directly, the app will not receive automatic updates._
# Permissions
- `ACCESS_NETWORK_STATE` check connectivity
- `CALL_PHONE` make a call via messenger
- `READ_CONTACTS` check if contact has a messenger
- `READ_PHONE_NUMBERS` detect outgoing call
- `SYSTEM_ALERT_WINDOW` show redirecting popup and launch from background
- `INTERNET` check connectivity and verify donates
- `ACCESS_NETWORK_STATE` - check connectivity
- `CALL_PHONE` - make a call via messenger
- `READ_CONTACTS` - check if contact has a messenger
- `READ_PHONE_NUMBERS` - detect outgoing call
- `SYSTEM_ALERT_WINDOW` - show redirecting popup and launch from background
- `INTERNET` - check connectivity and verify donates
Currently all of the permissions are required.

View file

@ -11,8 +11,8 @@ android {
applicationId = "partisan.weforge.xyz.pulse"
minSdk = 29
targetSdk = 34
versionCode = 16
versionName = "2.0.2"
versionCode = 17
versionName = "2.0.3"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

View file

@ -94,12 +94,6 @@ class CallRedirectionService : CallRedirectionService() {
return
}
if (!allowInteractiveResponse) {
Log.d("Redirection", "Aborting: interactive response not allowed by system")
placeCallUnmodified()
return
}
if (prefs.redirectIfRoaming && !isOutsideHomeCountry()) {
Log.d("Redirection", "Aborting: redirect only while roaming, but we're inside home country")
placeCallUnmodified()
@ -146,7 +140,9 @@ class CallRedirectionService : CallRedirectionService() {
Log.d("Redirection", "Redirecting call to: ${record.mimetype}${record.uri}")
if (prefs.popupEnabled) {
Log.d("Redirection", "Popup ${if (allowInteractiveResponse) "allowed" else "not allowed"} by system; ${if (prefs.popupEnabled) "enabled" else "disabled"} in prefs")
if (allowInteractiveResponse && prefs.popupEnabled) {
window.show(record.uri, MIMETYPE_TO_DST_NAME[record.mimetype] ?: return)
} else {
window.call(record.uri)

View file

@ -51,8 +51,8 @@ class MainFragment : Fragment() {
emitter =
Emitter(duration = 100, TimeUnit.MILLISECONDS)
.perSecond(100),
speed = 30f,
maxSpeed = 40f,
speed = 25f,
maxSpeed = 30f,
damping = 0.85f,
spread = 360,
position = Position.Relative(0.5, 0.5)

View file

@ -38,8 +38,8 @@ class Preferences(private val context: Context) {
val isEnabled: Boolean
get() = isServiceEnabledByUser &&
hasGeneralPermissions(context) &&
hasDrawOverlays(context) &&
hasCallRedirectionRole(context)
hasCallRedirectionRole(context) &&
(popupEnabled.not() || hasDrawOverlays(context))
enum class PopupEffect {
NONE, FADE, SCALE, BOUNCE, FLOP, MATRIX, SLIDE_SNAP, GAMER_MODE, RANDOM