Hide instant delivery icons and text for F-Droid

This commit is contained in:
Philipp Heckel 2022-01-12 23:31:37 -05:00
parent ddb83cbea9
commit ca217d8275
6 changed files with 46 additions and 22 deletions

View file

@ -4,7 +4,10 @@ import android.app.*
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.*
import android.os.Build
import android.os.IBinder
import android.os.PowerManager
import android.os.SystemClock
import android.util.Log
import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat
@ -17,7 +20,9 @@ import io.heckel.ntfy.msg.ApiService
import io.heckel.ntfy.msg.NotificationDispatcher
import io.heckel.ntfy.ui.MainActivity
import io.heckel.ntfy.util.topicUrl
import kotlinx.coroutines.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import java.util.concurrent.ConcurrentHashMap
@ -80,7 +85,11 @@ class SubscriberService : Service() {
Log.d(TAG, "Subscriber service has been created")
val title = getString(R.string.channel_subscriber_notification_title)
val text = getString(R.string.channel_subscriber_notification_text)
val text = if (BuildConfig.FIREBASE_AVAILABLE) {
getString(R.string.channel_subscriber_notification_instant_text)
} else {
getString(R.string.channel_subscriber_notification_noinstant_text)
}
notificationManager = createNotificationChannel()
serviceNotification = createNotification(title, text)
@ -184,12 +193,22 @@ class SubscriberService : Service() {
if (connections.size > 0) {
synchronized(this) {
val title = getString(R.string.channel_subscriber_notification_title)
val text = when (instantSubscriptions.size) {
1 -> getString(R.string.channel_subscriber_notification_text_one)
2 -> getString(R.string.channel_subscriber_notification_text_two)
3 -> getString(R.string.channel_subscriber_notification_text_three)
4 -> getString(R.string.channel_subscriber_notification_text_four)
else -> getString(R.string.channel_subscriber_notification_text_more, instantSubscriptions.size)
val text = if (BuildConfig.FIREBASE_AVAILABLE) {
when (instantSubscriptions.size) {
1 -> getString(R.string.channel_subscriber_notification_instant_text_one)
2 -> getString(R.string.channel_subscriber_notification_instant_text_two)
3 -> getString(R.string.channel_subscriber_notification_instant_text_three)
4 -> getString(R.string.channel_subscriber_notification_instant_text_four)
else -> getString(R.string.channel_subscriber_notification_instant_text_more, instantSubscriptions.size)
}
} else {
when (instantSubscriptions.size) {
1 -> getString(R.string.channel_subscriber_notification_noinstant_text_one)
2 -> getString(R.string.channel_subscriber_notification_noinstant_text_two)
3 -> getString(R.string.channel_subscriber_notification_noinstant_text_three)
4 -> getString(R.string.channel_subscriber_notification_noinstant_text_four)
else -> getString(R.string.channel_subscriber_notification_noinstant_text_more, instantSubscriptions.size)
}
}
serviceNotification = createNotification(title, text)
notificationManager?.notify(NOTIFICATION_SERVICE_ID, serviceNotification)

View file

@ -23,14 +23,11 @@ import io.heckel.ntfy.BuildConfig
import io.heckel.ntfy.R
import io.heckel.ntfy.app.Application
import io.heckel.ntfy.data.Notification
import io.heckel.ntfy.util.topicShortUrl
import io.heckel.ntfy.util.topicUrl
import io.heckel.ntfy.firebase.FirebaseMessenger
import io.heckel.ntfy.msg.ApiService
import io.heckel.ntfy.msg.NotificationService
import io.heckel.ntfy.service.SubscriberServiceManager
import io.heckel.ntfy.util.fadeStatusBarColor
import io.heckel.ntfy.util.formatDateShort
import io.heckel.ntfy.util.*
import kotlinx.coroutines.*
import java.util.*
import kotlin.random.Random
@ -401,7 +398,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
} else {
enableInstantItem?.isVisible = false
disableInstantItem?.isVisible = false
instantInfoItem?.isVisible = true
instantInfoItem?.isVisible = BuildConfig.FIREBASE_AVAILABLE
}
}
}

View file

@ -8,6 +8,7 @@ import android.widget.TextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import io.heckel.ntfy.BuildConfig
import io.heckel.ntfy.R
import io.heckel.ntfy.data.ConnectionState
import io.heckel.ntfy.data.Repository
@ -89,7 +90,7 @@ class MainAdapter(private val repository: Repository, private val onClick: (Subs
dateView.visibility = if (isUnifiedPush) View.GONE else View.VISIBLE
notificationDisabledUntilImageView.visibility = if (showMutedUntilIcon) View.VISIBLE else View.GONE
notificationDisabledForeverImageView.visibility = if (showMutedForeverIcon) View.VISIBLE else View.GONE
instantImageView.visibility = if (subscription.instant) View.VISIBLE else View.GONE
instantImageView.visibility = if (subscription.instant && BuildConfig.FIREBASE_AVAILABLE) View.VISIBLE else View.GONE
if (isUnifiedPush || subscription.newCount == 0) {
newItemsView.visibility = View.GONE
} else {

View file

@ -184,3 +184,4 @@ fun formatBytes(bytes: Long, decimals: Int = 1): String {
fun supportedImage(mimeType: String?): Boolean {
return listOf("image/jpeg", "image/png").contains(mimeType)
}

View file

@ -13,12 +13,18 @@
<string name="channel_notifications_max_name">Notifications (Max Priority)</string>
<string name="channel_subscriber_service_name">Subscription Service</string>
<string name="channel_subscriber_notification_title">Listening for incoming notifications</string>
<string name="channel_subscriber_notification_text">You are subscribed to instant delivery topics</string>
<string name="channel_subscriber_notification_text_one">You are subscribed to one instant delivery topic</string>
<string name="channel_subscriber_notification_text_two">You are subscribed to two instant delivery topics</string>
<string name="channel_subscriber_notification_text_three">You are subscribed to three instant delivery topics</string>
<string name="channel_subscriber_notification_text_four">You are subscribed to four instant delivery topics</string>
<string name="channel_subscriber_notification_text_more">You are subscribed to %1$d instant delivery topics</string>
<string name="channel_subscriber_notification_instant_text">You are subscribed to instant delivery topics</string>
<string name="channel_subscriber_notification_instant_text_one">You are subscribed to one instant delivery topic</string>
<string name="channel_subscriber_notification_instant_text_two">You are subscribed to two instant delivery topics</string>
<string name="channel_subscriber_notification_instant_text_three">You are subscribed to three instant delivery topics</string>
<string name="channel_subscriber_notification_instant_text_four">You are subscribed to four instant delivery topics</string>
<string name="channel_subscriber_notification_instant_text_more">You are subscribed to %1$d instant delivery topics</string>
<string name="channel_subscriber_notification_noinstant_text">You are subscribed to topics</string>
<string name="channel_subscriber_notification_noinstant_text_one">You are subscribed to one topic</string>
<string name="channel_subscriber_notification_noinstant_text_two">You are subscribed to two topics</string>
<string name="channel_subscriber_notification_noinstant_text_three">You are subscribed to three topics</string>
<string name="channel_subscriber_notification_noinstant_text_four">You are subscribed to four topics</string>
<string name="channel_subscriber_notification_noinstant_text_more">You are subscribed to %1$d topics</string>
<!-- Common refresh toasts -->
<string name="refresh_message_result">%1$d notification(s) received</string>

View file

@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:4.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.10' // This is removed in the "fdroid" flavor