Witam, mam problem ze zmiana zmiennej powiadamiaj. niby wszystko się dobrze zmienia ( logcat tak pokazuje ), ale w metodzien onChildAdded w funkcji ladowanieListy zmienna po pierwszym przejsciu w pauze caly czas zostane na true i nigdy nie chce wrocic na false. chcialbym zrobic powiadomienia ktore przychodza tylko jak opuscilo sie glowna activity aplikacji. W czym jest problem?
class test : AppCompatActivity() {
var powiadamiaj = false
lateinit var notificationManager : NotificationManager
lateinit var notificationChannel : NotificationChannel
lateinit var builder : Notification.Builder
private val channelId = "test"
private val description = "test"
override fun onPause() {
super.onPause()
powiadamiaj = true
Log.d("eloczo", "var from z Onpause: "+powiadamiaj)
}
override fun onResume() {
super.onResume()
powiadamiaj = false
Log.d("eloczo", "var from z OnResume: "+powiadamiaj)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
recyclerAdmin.layoutManager = LinearLayoutManager(applicationContext)
ladowanieListy(adminid)
}
private fun ladowanieListy(idAdma:String){
val base = FirebaseDatabase.getInstance().getReference("ListaUserow/")
base.addChildEventListener(object : ChildEventListener {
override fun onCancelled(p0: DatabaseError) {
}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {
}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {
}
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
val zamowienieKZA = p0.getValue(Zamowienie::class.java)
if(zamowienieKZA != null){
tablicaZamowien.add(zamowienieKZA)
tablicaZamowien.sortBy {
it.numer
}
recyclerAdmin.adapter = kolejkaAdapter(tablicaZamowien, applicationContext, idAdma)
}
if(powiadamiaj){
powiadomienie()
}
}
override fun onChildRemoved(p0: DataSnapshot) {
}
})
}
private fun powiadomienie(){
Log.d("eloczo", "var from z powiadomienie(): "+powiadamiaj)
// Powiadomienie
notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val intent = Intent(applicationContext, Kolejka_zamowien_admin::class.java)
intent.putExtra("idRestauracjiAdmin", idRestauracjiTwojejAdminie)
val pendingIntent = PendingIntent.getActivity(applicationContext,0,intent, PendingIntent.FLAG_UPDATE_CURRENT)
val contentView = RemoteViews(packageName,R.layout.notification_layout)
contentView.setTextViewText(R.id.tv_title,"test")
contentView.setTextViewText(R.id.tv_content,"test")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationChannel = NotificationChannel(channelId,description,
NotificationManager.IMPORTANCE_HIGH)
notificationChannel.enableLights(true)
notificationChannel.lightColor = Color.GREEN
notificationChannel.enableVibration(true)
notificationChannel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
notificationManager.createNotificationChannel(notificationChannel)
builder = Notification.Builder(applicationContext,channelId)
.setContent(contentView)
.setVisibility(Notification.VISIBILITY_PUBLIC)
.setSmallIcon(R.drawable.logo_apki_powiadomienie)
.setContentTitle("test")
.setContentText("test")
.setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.logo_apki_powiadomienie))
.setContentIntent(pendingIntent)
}else{
builder = Notification.Builder(applicationContext)
.setVisibility(Notification.VISIBILITY_PUBLIC)
.setSmallIcon(R.drawable.logo_apki_powiadomienie)
.setContentTitle("test")
.setContentText("test")
.setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.logo_apki_powiadomienie))
.setContentIntent(pendingIntent)
}
notificationManager.notify(1234,builder.build())
// Koniec powiadomienia
}
}