Skip to content

Instantly share code, notes, and snippets.

@jetaggart
Created June 29, 2020 18:43
Show Gist options
  • Save jetaggart/ec1b900cf1bcf5c12bbdb32eef33ff69 to your computer and use it in GitHub Desktop.
Save jetaggart/ec1b900cf1bcf5c12bbdb32eef33ff69 to your computer and use it in GitHub Desktop.
// android/app/src/main/java/io/getstream/thestream/ChannelActivity.kt:17
class ChannelActivity : AppCompatActivity(), MessageInputView.PermissionRequestListener {
private lateinit var binding: ActivityChannelBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val channelType = intent.getStringExtra(EXTRA_CHANNEL_TYPE)!!
val channelId = intent.getStringExtra(EXTRA_CHANNEL_ID)!!
binding = DataBindingUtil.setContentView(this, R.layout.activity_channel)
binding.lifecycleOwner = this
initViewModel(channelType, channelId)
}
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
super.onActivityResult(requestCode, resultCode, data)
binding.messageInput.captureMedia(requestCode, resultCode, data)
}
override fun onRequestPermissionsResult(
requestCode: Int, permissions: Array<String?>,
grantResults: IntArray
) {
binding.messageInput.permissionResult(requestCode, permissions, grantResults)
}
override fun openPermissionRequest() {
PermissionChecker.permissionCheck(this, null)
}
private fun initViewModel(
channelType: String,
channelId: String
) {
val viewModelFactory = ChannelViewModelFactory(application, channelType, channelId)
val viewModel = ViewModelProvider(this, viewModelFactory).get(ChannelViewModel::class.java)
viewModel.initialized.observe(this, Observer {
binding.viewModel = viewModel
binding.messageList.setViewModel(viewModel, this)
binding.messageInput.setViewModel(viewModel, this)
binding.channelHeader.setViewModel(viewModel, this)
binding.messageInput.setPermissionRequestListener(this)
})
}
// ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment