Add Network Callback
This commit is contained in:
parent
85b838acfd
commit
4d39c5b2fd
@ -2,6 +2,7 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.unifiedpush.distributor.nextpush" >
|
package="org.unifiedpush.distributor.nextpush" >
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
@ -43,13 +43,13 @@ class RegisterBroadcastReceiver : BroadcastReceiver() {
|
|||||||
ACTION_UNREGISTER ->{
|
ACTION_UNREGISTER ->{
|
||||||
Log.i(TAG,"UNREGISTER")
|
Log.i(TAG,"UNREGISTER")
|
||||||
val connectorToken = intent.getStringExtra(EXTRA_TOKEN)?: ""
|
val connectorToken = intent.getStringExtra(EXTRA_TOKEN)?: ""
|
||||||
val application = intent.getStringExtra(EXTRA_APPLICATION)?: return
|
val application = getDb(context!!).getPackageName(connectorToken)
|
||||||
if (application.isBlank()) {
|
if (application.isBlank()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (connectorToken !in delQueue) {
|
if (connectorToken !in delQueue) {
|
||||||
delQueue.add(connectorToken)
|
delQueue.add(connectorToken)
|
||||||
sendUnregistered(context!!.applicationContext, connectorToken)
|
sendUnregistered(context.applicationContext, connectorToken)
|
||||||
ApiUtils().deleteApp(context.applicationContext, connectorToken) {
|
ApiUtils().deleteApp(context.applicationContext, connectorToken) {
|
||||||
val db = getDb(context.applicationContext)
|
val db = getDb(context.applicationContext)
|
||||||
db.unregisterApp(connectorToken)
|
db.unregisterApp(connectorToken)
|
||||||
|
@ -33,6 +33,15 @@ fun createForegroundNotification(context: Context): Notification {
|
|||||||
notificationManager.createNotificationChannel(channel)
|
notificationManager.createNotificationChannel(channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val notificationIntent = Intent(context, MainActivity::class.java)
|
||||||
|
|
||||||
|
notificationIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||||
|
|
||||||
|
val intent = PendingIntent.getActivity(
|
||||||
|
context, 0,
|
||||||
|
notificationIntent, 0
|
||||||
|
)
|
||||||
|
|
||||||
val builder: Notification.Builder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) Notification.Builder(
|
val builder: Notification.Builder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) Notification.Builder(
|
||||||
context,
|
context,
|
||||||
notificationChannelId
|
notificationChannelId
|
||||||
@ -44,6 +53,7 @@ fun createForegroundNotification(context: Context): Notification {
|
|||||||
.setSmallIcon(R.drawable.ic_launcher_notification)
|
.setSmallIcon(R.drawable.ic_launcher_notification)
|
||||||
.setTicker(context.getString(R.string.listening_notif_ticker))
|
.setTicker(context.getString(R.string.listening_notif_ticker))
|
||||||
.setPriority(Notification.PRIORITY_LOW) // for under android 26 compatibility
|
.setPriority(Notification.PRIORITY_LOW) // for under android 26 compatibility
|
||||||
|
.setContentIntent(intent)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +75,7 @@ fun createWarningNotification(context: Context) {
|
|||||||
notificationManager.createNotificationChannel(channel)
|
notificationManager.createNotificationChannel(channel)
|
||||||
}
|
}
|
||||||
|
|
||||||
val notificationIntent: Intent = Intent(context, MainActivity::class.java)
|
val notificationIntent = Intent(context, MainActivity::class.java)
|
||||||
|
|
||||||
notificationIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
notificationIntent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||||
|
|
||||||
|
@ -16,7 +16,15 @@ import com.nextcloud.android.sso.ui.UiExceptionManager
|
|||||||
import org.unifiedpush.distributor.nextpush.api.ApiUtils
|
import org.unifiedpush.distributor.nextpush.api.ApiUtils
|
||||||
import org.unifiedpush.distributor.nextpush.account.ssoAccount
|
import org.unifiedpush.distributor.nextpush.account.ssoAccount
|
||||||
|
|
||||||
|
import android.net.Network
|
||||||
|
|
||||||
|
import android.net.ConnectivityManager
|
||||||
|
import android.net.ConnectivityManager.NetworkCallback
|
||||||
|
import java.lang.Exception
|
||||||
|
|
||||||
|
|
||||||
private const val TAG = "StartService"
|
private const val TAG = "StartService"
|
||||||
|
var isServiceStarted = false
|
||||||
|
|
||||||
fun startListener(context: Context){
|
fun startListener(context: Context){
|
||||||
Log.d(TAG, "Starting the Listener")
|
Log.d(TAG, "Starting the Listener")
|
||||||
@ -30,7 +38,6 @@ fun startListener(context: Context){
|
|||||||
|
|
||||||
class StartService: Service(){
|
class StartService: Service(){
|
||||||
|
|
||||||
private var isServiceStarted = false
|
|
||||||
private var wakeLock: PowerManager.WakeLock? = null
|
private var wakeLock: PowerManager.WakeLock? = null
|
||||||
private var api = ApiUtils()
|
private var api = ApiUtils()
|
||||||
|
|
||||||
@ -46,6 +53,7 @@ class StartService: Service(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
|
registerNetworkCallback()
|
||||||
startService()
|
startService()
|
||||||
// by returning this we make sure the service is restarted if the system kills the service
|
// by returning this we make sure the service is restarted if the system kills the service
|
||||||
return START_STICKY
|
return START_STICKY
|
||||||
@ -77,5 +85,25 @@ class StartService: Service(){
|
|||||||
|
|
||||||
api.sync(this)
|
api.sync(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun registerNetworkCallback() {
|
||||||
|
try {
|
||||||
|
val connectivityManager =
|
||||||
|
this.getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||||
|
connectivityManager.registerDefaultNetworkCallback(object : NetworkCallback() {
|
||||||
|
override fun onAvailable(network: Network) {
|
||||||
|
Log.d(TAG, "Network is CONNECTED")
|
||||||
|
startService()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onLost(network: Network) {
|
||||||
|
Log.d(TAG, "Network is DISCONNECTED")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user