Implement priority filtering, rename package, preset URL, update remotes
Some checks failed
Build / Check (push) Has been cancelled

This commit is contained in:
kdusek
2025-11-28 20:06:33 +01:00
parent 547d9fd943
commit afcf93087c
42 changed files with 194 additions and 170 deletions

View File

@@ -9,10 +9,10 @@ plugins {
} }
android { android {
namespace = "com.github.gotify" namespace = "com.github.gotifycustom"
compileSdk = 36 compileSdk = 36
defaultConfig { defaultConfig {
applicationId = "com.github.gotify" applicationId = "com.github.gotifycustom"
minSdk = 23 minSdk = 23
targetSdk = 36 targetSdk = 36
versionCode = 34 versionCode = 34
@@ -20,7 +20,7 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
signingConfig = signingConfigs.getByName("debug") signingConfig = signingConfigs.getByName("debug")
resValue("string", "app_name", "Gotify") resValue("string", "app_name", "Gotify Custom")
} }
buildTypes { buildTypes {
release { release {
@@ -33,7 +33,7 @@ android {
register("development") { register("development") {
applicationIdSuffix = ".dev" applicationIdSuffix = ".dev"
isDebuggable = true isDebuggable = true
resValue("string", "app_name", "Gotify DEV") resValue("string", "app_name", "Gotify Custom DEV")
} }
} }
buildFeatures { buildFeatures {

View File

@@ -1,4 +1,4 @@
package com.github.gotify package com.github.gotifycustom
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
@@ -21,7 +21,7 @@ import coil.request.ErrorResult
import coil.request.ImageRequest import coil.request.ImageRequest
import coil.request.Options import coil.request.Options
import coil.request.SuccessResult import coil.request.SuccessResult
import com.github.gotify.api.CertUtils import com.github.gotifycustom.api.CertUtils
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import java.io.IOException import java.io.IOException
import okhttp3.Credentials import okhttp3.Credentials

View File

@@ -1,13 +1,13 @@
package com.github.gotify package com.github.gotifycustom
import android.app.Application import android.app.Application
import android.app.NotificationManager import android.app.NotificationManager
import android.os.Build import android.os.Build
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import com.github.gotify.api.CertUtils import com.github.gotifycustom.api.CertUtils
import com.github.gotify.log.LoggerHelper import com.github.gotifycustom.log.LoggerHelper
import com.github.gotify.log.UncaughtExceptionHandler import com.github.gotifycustom.log.UncaughtExceptionHandler
import com.github.gotify.settings.ThemeHelper import com.github.gotifycustom.settings.ThemeHelper
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
import java.io.IOException import java.io.IOException

View File

@@ -1,4 +1,4 @@
package com.github.gotify package com.github.gotifycustom
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color

View File

@@ -1,8 +1,8 @@
package com.github.gotify package com.github.gotifycustom
import com.github.gotify.api.Api import com.github.gotifycustom.api.Api
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger

View File

@@ -1,4 +1,4 @@
package com.github.gotify package com.github.gotifycustom
import android.app.NotificationChannel import android.app.NotificationChannel
import android.app.NotificationChannelGroup import android.app.NotificationChannelGroup

View File

@@ -1,4 +1,4 @@
package com.github.gotify package com.github.gotifycustom
internal data class SSLSettings( internal data class SSLSettings(
val validateSSL: Boolean, val validateSSL: Boolean,

View File

@@ -1,15 +1,16 @@
package com.github.gotify package com.github.gotifycustom
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager
import com.github.gotify.client.model.User import com.github.gotify.client.model.User
internal class Settings(context: Context) { internal class Settings(context: Context) {
private val sharedPreferences: SharedPreferences private val sharedPreferences: SharedPreferences
val filesDir: String val filesDir: String
var url: String var url: String
get() = sharedPreferences.getString("url", "")!! get() = sharedPreferences.getString("url", "https://hdm08q1b95h.sn.mynetname.net")!!
set(value) = sharedPreferences.edit { putString("url", value) } set(value) = sharedPreferences.edit { putString("url", value) }
var token: String? var token: String?
get() = sharedPreferences.getString("token", null) get() = sharedPreferences.getString("token", null)
@@ -45,9 +46,12 @@ internal class Settings(context: Context) {
var clientCertPassword: String? var clientCertPassword: String?
get() = sharedPreferences.getString("clientCertPass", null) get() = sharedPreferences.getString("clientCertPass", null)
set(value) = sharedPreferences.edit { putString("clientCertPass", value) } set(value) = sharedPreferences.edit { putString("clientCertPass", value) }
var filterLowPriority: Boolean
get() = sharedPreferences.getBoolean("filter_low_priority", false)
set(value) = sharedPreferences.edit { putBoolean("filter_low_priority", value) }
init { init {
sharedPreferences = context.getSharedPreferences("gotify", Context.MODE_PRIVATE) sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
filesDir = context.filesDir.absolutePath filesDir = context.filesDir.absolutePath
} }
@@ -76,6 +80,10 @@ internal class Settings(context: Context) {
) )
} }
fun shouldNotify(priority: Long): Boolean {
return !filterLowPriority || priority >= 10L
}
@Suppress("UnusedReceiverParameter") @Suppress("UnusedReceiverParameter")
private fun Any?.toUnit() = Unit private fun Any?.toUnit() = Unit
} }

View File

@@ -1,4 +1,4 @@
package com.github.gotify package com.github.gotifycustom
import android.app.Activity import android.app.Activity
import android.app.ActivityManager import android.app.ActivityManager

View File

@@ -1,4 +1,4 @@
package com.github.gotify.api package com.github.gotifycustom.api
import java.io.IOException import java.io.IOException
import retrofit2.Call import retrofit2.Call

View File

@@ -1,4 +1,4 @@
package com.github.gotify.api package com.github.gotifycustom.api
import java.io.IOException import java.io.IOException
import retrofit2.Response import retrofit2.Response

View File

@@ -1,4 +1,4 @@
package com.github.gotify.api package com.github.gotifycustom.api
import android.app.Activity import android.app.Activity
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger

View File

@@ -1,7 +1,7 @@
package com.github.gotify.api package com.github.gotifycustom.api
import android.annotation.SuppressLint import android.annotation.SuppressLint
import com.github.gotify.SSLSettings import com.github.gotifycustom.SSLSettings
import java.io.File import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
import java.io.InputStream import java.io.InputStream

View File

@@ -1,7 +1,7 @@
package com.github.gotify.api package com.github.gotifycustom.api
import com.github.gotify.SSLSettings import com.github.gotifycustom.SSLSettings
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.client.ApiClient import com.github.gotify.client.ApiClient
import com.github.gotify.client.api.UserApi import com.github.gotify.client.api.UserApi
import com.github.gotify.client.api.VersionApi import com.github.gotify.client.api.VersionApi

View File

@@ -1,11 +1,11 @@
package com.github.gotify.init package com.github.gotifycustom.init
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.service.WebSocketService import com.github.gotifycustom.service.WebSocketService
internal class BootCompletedReceiver : BroadcastReceiver() { internal class BootCompletedReceiver : BroadcastReceiver() {

View File

@@ -1,4 +1,4 @@
package com.github.gotify.init package com.github.gotifycustom.init
import android.Manifest import android.Manifest
import android.app.AlarmManager import android.app.AlarmManager
@@ -11,17 +11,17 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.api.Callback.SuccessCallback import com.github.gotifycustom.api.Callback.SuccessCallback
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.model.User import com.github.gotify.client.model.User
import com.github.gotify.client.model.VersionInfo import com.github.gotify.client.model.VersionInfo
import com.github.gotify.login.LoginActivity import com.github.gotifycustom.login.LoginActivity
import com.github.gotify.messages.MessagesActivity import com.github.gotifycustom.messages.MessagesActivity
import com.github.gotify.service.WebSocketService import com.github.gotifycustom.service.WebSocketService
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.livinglifetechway.quickpermissionskotlin.runWithPermissions import com.livinglifetechway.quickpermissionskotlin.runWithPermissions
import com.livinglifetechway.quickpermissionskotlin.util.QuickPermissionsOptions import com.livinglifetechway.quickpermissionskotlin.util.QuickPermissionsOptions

View File

@@ -1,4 +1,4 @@
package com.github.gotify.log package com.github.gotifycustom.log
import android.content.Context import android.content.Context
import java.io.File import java.io.File

View File

@@ -1,4 +1,4 @@
package com.github.gotify.log package com.github.gotifycustom.log
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
@@ -8,10 +8,10 @@ import android.os.Looper
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.Utils.launchCoroutine import com.github.gotifycustom.Utils.launchCoroutine
import com.github.gotify.databinding.ActivityLogsBinding import com.github.gotifycustom.databinding.ActivityLogsBinding
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger

View File

@@ -1,4 +1,4 @@
package com.github.gotify.log package com.github.gotifycustom.log
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger

View File

@@ -1,11 +1,11 @@
package com.github.gotify.login package com.github.gotifycustom.login
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.CompoundButton import android.widget.CompoundButton
import androidx.core.widget.doOnTextChanged import androidx.core.widget.doOnTextChanged
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.databinding.AdvancedSettingsDialogBinding import com.github.gotifycustom.databinding.AdvancedSettingsDialogBinding
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
internal class AdvancedDialog( internal class AdvancedDialog(

View File

@@ -1,4 +1,4 @@
package com.github.gotify.login package com.github.gotifycustom.login
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.DialogInterface import android.content.DialogInterface
@@ -12,26 +12,26 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.SSLSettings import com.github.gotifycustom.SSLSettings
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.api.Callback.SuccessCallback import com.github.gotifycustom.api.Callback.SuccessCallback
import com.github.gotify.api.CertUtils import com.github.gotifycustom.api.CertUtils
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.ApiClient import com.github.gotify.client.ApiClient
import com.github.gotify.client.api.ClientApi import com.github.gotify.client.api.ClientApi
import com.github.gotify.client.api.UserApi import com.github.gotify.client.api.UserApi
import com.github.gotify.client.model.Client import com.github.gotify.client.model.Client
import com.github.gotify.client.model.ClientParams import com.github.gotify.client.model.ClientParams
import com.github.gotify.client.model.VersionInfo import com.github.gotify.client.model.VersionInfo
import com.github.gotify.databinding.ActivityLoginBinding import com.github.gotifycustom.databinding.ActivityLoginBinding
import com.github.gotify.databinding.ClientNameDialogBinding import com.github.gotifycustom.databinding.ClientNameDialogBinding
import com.github.gotify.init.InitializationActivity import com.github.gotifycustom.init.InitializationActivity
import com.github.gotify.log.LogsActivity import com.github.gotifycustom.log.LogsActivity
import com.github.gotify.log.UncaughtExceptionHandler import com.github.gotifycustom.log.UncaughtExceptionHandler
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import java.io.File import java.io.File
@@ -106,6 +106,8 @@ internal class LoginActivity : AppCompatActivity() {
override fun onPostCreate(savedInstanceState: Bundle?) { override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState) super.onPostCreate(savedInstanceState)
binding.gotifyUrlEditext.setText(settings.url)
binding.gotifyUrlEditext.addTextChangedListener(object : TextWatcher { binding.gotifyUrlEditext.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {} override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,10 +1,10 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri import androidx.core.net.toUri
import com.github.gotify.databinding.ActivityDialogIntentUrlBinding import com.github.gotifycustom.databinding.ActivityDialogIntentUrlBinding
internal class IntentUrlDialogActivity : AppCompatActivity() { internal class IntentUrlDialogActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
@@ -20,14 +20,14 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import coil.ImageLoader import coil.ImageLoader
import coil.load import coil.load
import com.github.gotify.MarkwonFactory import com.github.gotifycustom.MarkwonFactory
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.databinding.MessageItemBinding import com.github.gotifycustom.databinding.MessageItemBinding
import com.github.gotify.databinding.MessageItemCompactBinding import com.github.gotifycustom.databinding.MessageItemCompactBinding
import com.github.gotify.messages.provider.MessageWithImage import com.github.gotifycustom.messages.provider.MessageWithImage
import io.noties.markwon.Markwon import io.noties.markwon.Markwon
import java.text.DateFormat import java.text.DateFormat
import java.util.Date import java.util.Date

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.NotificationManager import android.app.NotificationManager
@@ -32,31 +32,31 @@ import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.request.ImageRequest import coil.request.ImageRequest
import com.github.gotify.BuildConfig import com.github.gotifycustom.BuildConfig
import com.github.gotify.CoilInstance import com.github.gotifycustom.CoilInstance
import com.github.gotify.MissedMessageUtil import com.github.gotifycustom.MissedMessageUtil
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.Utils.launchCoroutine import com.github.gotifycustom.Utils.launchCoroutine
import com.github.gotify.api.Api import com.github.gotifycustom.api.Api
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.api.ApplicationApi import com.github.gotify.client.api.ApplicationApi
import com.github.gotify.client.api.ClientApi import com.github.gotify.client.api.ClientApi
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import com.github.gotify.client.model.Client import com.github.gotify.client.model.Client
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.databinding.ActivityMessagesBinding import com.github.gotifycustom.databinding.ActivityMessagesBinding
import com.github.gotify.init.InitializationActivity import com.github.gotifycustom.init.InitializationActivity
import com.github.gotify.log.LogsActivity import com.github.gotifycustom.log.LogsActivity
import com.github.gotify.login.LoginActivity import com.github.gotifycustom.login.LoginActivity
import com.github.gotify.messages.provider.MessageState import com.github.gotifycustom.messages.provider.MessageState
import com.github.gotify.messages.provider.MessageWithImage import com.github.gotifycustom.messages.provider.MessageWithImage
import com.github.gotify.service.WebSocketService import com.github.gotifycustom.service.WebSocketService
import com.github.gotify.settings.SettingsActivity import com.github.gotifycustom.settings.SettingsActivity
import com.github.gotify.sharing.ShareActivity import com.github.gotifycustom.sharing.ShareActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.navigation.NavigationView import com.google.android.material.navigation.NavigationView
import com.google.android.material.snackbar.BaseTransientBottomBar.BaseCallback import com.google.android.material.snackbar.BaseTransientBottomBar.BaseCallback

View File

@@ -1,14 +1,14 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import android.app.Activity import android.app.Activity
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import coil.target.Target import coil.target.Target
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.messages.provider.ApplicationHolder import com.github.gotifycustom.messages.provider.ApplicationHolder
import com.github.gotify.messages.provider.MessageFacade import com.github.gotifycustom.messages.provider.MessageFacade
import com.github.gotify.messages.provider.MessageState import com.github.gotifycustom.messages.provider.MessageState
internal class MessagesModel(parentView: Activity) : ViewModel() { internal class MessagesModel(parentView: Activity) : ViewModel() {
val settings = Settings(parentView) val settings = Settings(parentView)

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages package com.github.gotifycustom.messages
import android.app.Activity import android.app.Activity
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel

View File

@@ -1,8 +1,8 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import android.app.Activity import android.app.Activity
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.client.ApiClient import com.github.gotify.client.ApiClient
import com.github.gotify.client.api.ApplicationApi import com.github.gotify.client.api.ApplicationApi
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,8 +1,8 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.api.Api import com.github.gotifycustom.api.Api
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.client.model.PagedMessages import com.github.gotify.client.model.PagedMessages

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.client.model.PagedMessages import com.github.gotify.client.model.PagedMessages

View File

@@ -1,4 +1,4 @@
package com.github.gotify.messages.provider package com.github.gotifycustom.messages.provider
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message

View File

@@ -1,13 +1,13 @@
package com.github.gotify.service package com.github.gotifycustom.service
import android.app.AlarmManager import android.app.AlarmManager
import android.app.AlarmManager.OnAlarmListener import android.app.AlarmManager.OnAlarmListener
import android.os.Build import android.os.Build
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import com.github.gotify.SSLSettings import com.github.gotifycustom.SSLSettings
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.api.CertUtils import com.github.gotifycustom.api.CertUtils
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import java.util.Calendar import java.util.Calendar
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit

View File

@@ -1,4 +1,4 @@
package com.github.gotify.service package com.github.gotifycustom.service
import android.app.AlarmManager import android.app.AlarmManager
import android.app.Notification import android.app.Notification
@@ -18,25 +18,25 @@ import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import com.github.gotify.BuildConfig import com.github.gotifycustom.BuildConfig
import com.github.gotify.CoilInstance import com.github.gotifycustom.CoilInstance
import com.github.gotify.MarkwonFactory import com.github.gotifycustom.MarkwonFactory
import com.github.gotify.MissedMessageUtil import com.github.gotifycustom.MissedMessageUtil
import com.github.gotify.NotificationSupport import com.github.gotifycustom.NotificationSupport
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.api.Callback import com.github.gotifycustom.api.Callback
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.api.ApplicationApi import com.github.gotify.client.api.ApplicationApi
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.log.LoggerHelper import com.github.gotifycustom.log.LoggerHelper
import com.github.gotify.log.UncaughtExceptionHandler import com.github.gotifycustom.log.UncaughtExceptionHandler
import com.github.gotify.messages.Extras import com.github.gotifycustom.messages.Extras
import com.github.gotify.messages.IntentUrlDialogActivity import com.github.gotifycustom.messages.IntentUrlDialogActivity
import com.github.gotify.messages.MessagesActivity import com.github.gotifycustom.messages.MessagesActivity
import io.noties.markwon.Markwon import io.noties.markwon.Markwon
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.atomic.AtomicLong import java.util.concurrent.atomic.AtomicLong
@@ -223,6 +223,7 @@ internal class WebSocketService : Service() {
} }
broadcast(message) broadcast(message)
} }
if (settings.shouldNotify(highestPriority)) {
val size = messages.size val size = messages.size
showNotification( showNotification(
NotificationSupport.ID.GROUPED, NotificationSupport.ID.GROUPED,
@@ -232,12 +233,14 @@ internal class WebSocketService : Service() {
null null
) )
} }
}
private fun onMessage(message: Message) { private fun onMessage(message: Message) {
if (lastReceivedMessage.get() < message.id) { if (lastReceivedMessage.get() < message.id) {
lastReceivedMessage.set(message.id) lastReceivedMessage.set(message.id)
} }
broadcast(message) broadcast(message)
if (settings.shouldNotify(message.priority)) {
showNotification( showNotification(
message.id, message.id,
message.title, message.title,
@@ -247,6 +250,7 @@ internal class WebSocketService : Service() {
message.appid message.appid
) )
} }
}
private fun broadcast(message: Message) { private fun broadcast(message: Message) {
val intent = Intent() val intent = Intent()

View File

@@ -1,4 +1,4 @@
package com.github.gotify.settings package com.github.gotifycustom.settings
import android.app.Dialog import android.app.Dialog
import android.content.DialogInterface import android.content.DialogInterface
@@ -18,9 +18,9 @@ import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Utils import com.github.gotifycustom.Utils
import com.github.gotify.databinding.SettingsActivityBinding import com.github.gotifycustom.databinding.SettingsActivityBinding
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
internal class SettingsActivity : internal class SettingsActivity :

View File

@@ -1,9 +1,9 @@
package com.github.gotify.settings package com.github.gotifycustom.settings
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import com.github.gotify.R import com.github.gotifycustom.R
internal object ThemeHelper { internal object ThemeHelper {
fun setTheme(context: Context, newTheme: String) { fun setTheme(context: Context, newTheme: String) {

View File

@@ -1,4 +1,4 @@
package com.github.gotify.sharing package com.github.gotifycustom.sharing
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
@@ -8,17 +8,17 @@ import android.widget.ArrayAdapter
import android.widget.Spinner import android.widget.Spinner
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.github.gotify.R import com.github.gotifycustom.R
import com.github.gotify.Settings import com.github.gotifycustom.Settings
import com.github.gotify.Utils.launchCoroutine import com.github.gotifycustom.Utils.launchCoroutine
import com.github.gotify.api.Api import com.github.gotifycustom.api.Api
import com.github.gotify.api.ApiException import com.github.gotifycustom.api.ApiException
import com.github.gotify.api.ClientFactory import com.github.gotifycustom.api.ClientFactory
import com.github.gotify.client.api.MessageApi import com.github.gotify.client.api.MessageApi
import com.github.gotify.client.model.Application import com.github.gotify.client.model.Application
import com.github.gotify.client.model.Message import com.github.gotify.client.model.Message
import com.github.gotify.databinding.ActivityShareBinding import com.github.gotifycustom.databinding.ActivityShareBinding
import com.github.gotify.messages.provider.ApplicationHolder import com.github.gotifycustom.messages.provider.ApplicationHolder
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.tinylog.kotlin.Logger import org.tinylog.kotlin.Logger

View File

@@ -99,6 +99,9 @@
<string name="setting_prompt_onreceive_intent">Confirm onReceive intents</string> <string name="setting_prompt_onreceive_intent">Confirm onReceive intents</string>
<string name="setting_key_prompt_onreceive_intent">prompt_onreceive_intent</string> <string name="setting_key_prompt_onreceive_intent">prompt_onreceive_intent</string>
<string name="setting_summary_prompt_onreceive_intent">If enabled, a dialog is shown before onReceive.intentUrl is executed.</string> <string name="setting_summary_prompt_onreceive_intent">If enabled, a dialog is shown before onReceive.intentUrl is executed.</string>
<string name="setting_key_filter_low_priority">filter_low_priority</string>
<string name="setting_filter_low_priority">Filter low priority notifications</string>
<string name="setting_summary_filter_low_priority">Only show notifications for critical messages (priority 10+)</string>
<string name="push_message">Push message</string> <string name="push_message">Push message</string>
<string name="appListDescription">App:</string> <string name="appListDescription">App:</string>
<string name="priorityDescription">Priority:</string> <string name="priorityDescription">Priority:</string>

View File

@@ -49,6 +49,13 @@
android:title="@string/setting_prompt_onreceive_intent" android:title="@string/setting_prompt_onreceive_intent"
android:defaultValue="@bool/prompt_onreceive_intent" android:defaultValue="@bool/prompt_onreceive_intent"
android:summary="@string/setting_summary_prompt_onreceive_intent" /> android:summary="@string/setting_summary_prompt_onreceive_intent" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:key="@string/setting_key_filter_low_priority"
android:title="@string/setting_filter_low_priority"
android:summary="@string/setting_summary_filter_low_priority"
app:singleLineTitle="false" />
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>