update notifications

This commit is contained in:
2025-07-06 14:38:13 +02:00
parent 179c44574c
commit e2ff790b16
5 changed files with 51 additions and 66 deletions

View File

@@ -16,6 +16,7 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- android:icon="@mipmap/ic_launcher"-->
<!-- android:roundIcon="@mipmap/ic_launcher_round"-->
<application

View File

@@ -13,10 +13,16 @@ import android.os.Build
import android.os.IBinder
import android.util.Log
import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission
import androidx.core.app.ActivityCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.location.LocationManagerCompat
import java.util.jar.Manifest
class BLEConnectionService : Service() {
val CHANNEL_DEFAULT_IMPORTANCE = "1"
val BLE_SERVICE_ID = 111
val ONGOING_NOTIFICATION_ID = 2
var bleController: BLEController? = null
var deviceAddress: String? = null
@@ -57,6 +63,7 @@ class BLEConnectionService : Service() {
}
@RequiresPermission(android.Manifest.permission.POST_NOTIFICATIONS)
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d("DEBUG", "onStartCommand of BLE Connection Service")
@@ -81,39 +88,37 @@ class BLEConnectionService : Service() {
PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_IMMUTABLE)
}
val myIntent = Intent(this, MainActivity::class.java).apply {
var flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
// working (before)
// val notification: Notification = Notification.Builder(this, channel_id)
// .setContentTitle("Oil-Check")
// .setContentText("running")
// .setSmallIcon(R.drawable.icon)
// .setContentIntent(serviceIntent)
// .build()
//
// startForeground(101, notification)
// new notification
// tap action
val intentActivity = Intent(this, MainActivity::class.java)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
val pendingActivity: PendingIntent = PendingIntent.getActivity(this, 0, intentActivity, PendingIntent.FLAG_IMMUTABLE)
// add stop button
val buttonStop = Intent(this, BLEConnectionService::class.java).apply {
action = "STOPService"
}
val activityIntent = Intent(this, MainActivity::class.java)
// val contentIntent: PendingIntent = PendingIntent.getActivity(this, 0, myIntent, PendingIntent.FLAG_IMMUTABLE)
val contentIntent = PendingIntent.getActivity(this, 0, activityIntent, PendingIntent.FLAG_MUTABLE);
// create stop button
// val intent = Intent(this, BLEConnectionService::class.java)
// .setAction("STOPService")
// val stopIntent = PendingIntent.getBroadcast(this, 0, intent, 0)
val notification: Notification = Notification.Builder(this, channel_id)
val buttonStopPendingIntent : PendingIntent = PendingIntent.getService(this, 0, buttonStop, PendingIntent.FLAG_IMMUTABLE)
var builder = NotificationCompat.Builder(this, channel_id)
.setSmallIcon(R.drawable.draw_icon_blue)
.setContentTitle("Oil-Check")
.setContentText("running")
.setSmallIcon(R.drawable.icon)
.setContentIntent(serviceIntent)
// .setContentIntent(contentIntent)
// .setTicker(getText(R.string.ticker_text))
// .addAction(R.drawable.icon, "Stop", contentIntent)
.build()
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setContentIntent(pendingActivity)
.addAction(0, getString(R.string.stop), buttonStopPendingIntent)
startForeground(101, notification)
// startService(Intent(this, NLService::class.java)
// .setAction("StartNLService")
// )
NotificationManagerCompat.from(this).notify(BLE_SERVICE_ID, builder.build())
val nlServiceIntent: PendingIntent = Intent(this, NLService::class.java).let { notificationIntent ->
@@ -122,38 +127,21 @@ class BLEConnectionService : Service() {
}
val nlNotification: Notification = Notification.Builder(this, channel_id)
.setContentTitle("Oil-Check")
.setContentText("running")
.setContentTitle("Oil-Check2")
.setContentText("Listener")
.setSmallIcon(R.drawable.icon)
.setContentIntent(nlServiceIntent)
// .addAction(R.drawable.icon, "Stop", contentIntent)
// .setTicker(getText(R.string.ticker_text))
.build()
startForeground(101, nlNotification)
// setup notification listener
// val nlServiceIntent: PendingIntent = Intent(this, NLService::class.java).let { notificationIntent ->
// PendingIntent.getActivity(this, 0, notificationIntent,
// PendingIntent.FLAG_IMMUTABLE)
// }
//
// val nlNotification: Notification = Notification.Builder(this, channel_id)
// .setContentTitle("Oil-Check")
// .setContentText("running")
// .setSmallIcon(R.drawable.icon)
// .setContentIntent(nlServiceIntent)
//// .setTicker(getText(R.string.ticker_text))
// .build()
// startForeground(101, nlNotification)
} else if (intent?.action.equals("STOPService")){
Log.d("DEBUG", "Stopflag set")
stopForeground(true)
stopSelfResult(101)
// stopSelfResult(101)
val notificationManager: NotificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.cancel(BLE_SERVICE_ID)
notificationManager.cancel(101)
stopSelf()
} else if (intent?.action.equals("StartNLService")) {
@@ -219,6 +207,12 @@ class BLEConnectionService : Service() {
service.createNotificationChannel(chan)
return channelId
}
// private fun createNotificationChannel(){
// if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
// val name = getString(R.string.channel_name) // TODO
//
// }
// }
override fun onBind(p0: Intent?): IBinder? {
// TODO("Not yet implemented")
return null;

View File

@@ -198,7 +198,7 @@ class BLEController(ctx: Context) : BLEControllerListener{
// "30:83:98:00:89:86" KTM
return null != (device!!.address.startsWith("94:B9:7E:C0:53:FE")
or device!!.address.startsWith("30:83:98:00:89:86")
or device!!.address.startsWith("EC:DA:3B:BF:E2:A2"))
or device!!.address.startsWith("EC:DA:3B:BF:E2:A2")) // testdevice
}
private fun deviceFound(device: BluetoothDevice) {

View File

@@ -17,14 +17,6 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// var location = Location("52.3759", "9.7320")
// var calculator = SunriseSunsetCalculator(location, "GMT+0200")
//
// var sunrise = calculator.getOfficialSunsetForDate(Calendar.getInstance())
//
// Log.d("Debug", sunrise)
findViewById<Button>(R.id.btnStop)
.setOnClickListener{
Log.d("Debug", "stop clicked")
@@ -75,9 +67,5 @@ class MainActivity : AppCompatActivity() {
Intent(this, BLEConnectionService::class.java)
.setAction("STARTService")
)
}
}

View File

@@ -1,3 +1,5 @@
<resources>
<string name="app_name">OilCheckKotlin</string>
<string name="channel_name">Oil-Nachricht</string>
<string name="stop">Stop</string>
</resources>