Skip to content

Instantly share code, notes, and snippets.

@devrath
Created October 5, 2022 06:00
Show Gist options
  • Save devrath/c45acdd33722ad95618f2ad65bb98cb0 to your computer and use it in GitHub Desktop.
Save devrath/c45acdd33722ad95618f2ad65bb98cb0 to your computer and use it in GitHub Desktop.
Registering and un-registering in dynamic recievers
package com.droid.code.demos.dynamic_receiver.reciever
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.net.ConnectivityManager
import android.widget.Toast
const val KEY_AIRPLANE_MODE = "state"
class CustomDynamicBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent) {
val isTheAirplaneModeEnabled = intent?.getBooleanExtra(KEY_AIRPLANE_MODE,false) ?: return
if (isTheAirplaneModeEnabled) {
Toast.makeText(context, "Airplane mode enabled", Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(context, "Airplane mode disabled", Toast.LENGTH_SHORT).show()
}
}
}
package com.droid.code.demos.dynamic_receiver
import android.content.Intent
import android.content.IntentFilter
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.droid.code.databinding.ActivityDynamicRecieverBinding
import com.droid.code.demos.dynamic_receiver.reciever.CustomDynamicBroadcastReceiver
class DynamicReceiverActivity : AppCompatActivity() {
private lateinit var binding: ActivityDynamicRecieverBinding
lateinit var receiver : CustomDynamicBroadcastReceiver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityDynamicRecieverBinding.inflate(layoutInflater)
setContentView(binding.root)
registerReceiver()
}
override fun onDestroy() {
super.onDestroy()
unRegisterReceiver()
}
private fun registerReceiver() {
receiver = CustomDynamicBroadcastReceiver()
IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED).also { registerReceiver(receiver,it) }
}
private fun unRegisterReceiver() {
unregisterReceiver(receiver)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment