Skip to content

Instantly share code, notes, and snippets.

@mohitkumarsoni
Created December 29, 2023 12:38
Show Gist options
  • Select an option

  • Save mohitkumarsoni/182d5ab6e5f2dcf2468dad2c7af43272 to your computer and use it in GitHub Desktop.

Select an option

Save mohitkumarsoni/182d5ab6e5f2dcf2468dad2c7af43272 to your computer and use it in GitHub Desktop.
Share, Load, Send Email, Call. (Implicit Intent)
package com.example.sender_intent
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.sender_intent.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
binding.apply {
binding.callButton.setOnClickListener { call() }
binding.emailButton.setOnClickListener { sendEmail() }
binding.webButton.setOnClickListener { loadWeb() }
binding.shareButton.setOnClickListener { shareText() }
}
}
private fun shareText() {
val intent = Intent(Intent.ACTION_SEND)
intent.type = "text/plain"
intent.putExtra(Intent.EXTRA_TEXT, binding.nameEt.text.toString())
intent.putExtra(Intent.EXTRA_PHONE_NUMBER, binding.nameEt.text.toString())
startActivity(Intent.createChooser(intent, "whatsApp"))
}
private fun loadWeb() {
val url : String = "https://"+binding.websiteEt.text.toString()
val intent = Intent( Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
}
private fun sendEmail() {
val intent = Intent(Intent.ACTION_SEND)
intent.type = "message/rfc822"
intent.putExtra(Intent.EXTRA_EMAIL, arrayOf("[email protected]"))
intent.putExtra(Intent.EXTRA_SUBJECT, binding.nameEt.text.toString() )
intent.putExtra(Intent.EXTRA_TEXT, binding.websiteEt.text.toString()+"_"+binding.numberEt.text.toString() )
startActivity(Intent.createChooser(intent,"Send Email"))
}
private fun call() {
val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel: ${binding.numberEt.text }"))
startActivity(intent)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment