Skip to content

Instantly share code, notes, and snippets.

@hrbullon
Last active February 28, 2022 00:11
Show Gist options
  • Save hrbullon/d249f305ffaa6d7a29d98ede189690af to your computer and use it in GitHub Desktop.
Save hrbullon/d249f305ffaa6d7a29d98ede189690af to your computer and use it in GitHub Desktop.
##Launching Fragment with args
val fragment = EditStoreFragment()
if(args != null) fragment.arguments = args
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.add(R.id.containerMain, fragment)
fragmentTransaction.addToBackStack(null)
fragmentTransaction.commit()
##Get Arguments
val id = arguments?.getLong(getString(R.string.arg_id),0)
if(id != null && id !=0L){
Toast.makeText(view.context, id.toString(), Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(view.context, id.toString(), Toast.LENGTH_SHORT).show()
}
##End Launching Fragment
##########################################################################
=======================Room==================================
#############TableEntity with Room######################
@Entity(tableName = "StoreEntity")
data class StoreEntity(
@PrimaryKey(autoGenerate = true) var id: Long = 0,
var name: String,
var phone: String = "",
var website: String = "",
var photoUrl: String = "",
var isFavorite: Boolean = false
)
#################End Room Codes########################
################ Dialog builder########################
MaterialAlertDialogBuilder(this)
.setTitle(R.string.dialog_delete_title)
.setPositiveButton(getString(R.string.delete_confirm), { dialog, which ->
doAsync {
StoreApplication.database.storeDao().deleteStore(storeEntity)
uiThread {
mAdapter.delete(storeEntity)
}
}
})
.setNegativeButton(getString(R.string.delete_cancel), null)
.show()
================Options=======================
val items = arrayOf("Delete","Call","Go to WebSite")
MaterialAlertDialogBuilder(this)
.setItems(items, { dialog, which ->
when(which){
0 -> confirmDelete(storeEntity)
1 -> Toast.makeText(this, "Llamar", Toast.LENGTH_SHORT).show()
2 -> Toast.makeText(this, "Website", Toast.LENGTH_SHORT).show()
}
})
.show()
#############End Dialog Builder########################
################Intent ################################
=================Calling or Dial======================
val callIntent = Intent().apply {
action = Intent.ACTION_DIAL
data = Uri.parse("tel:$phone")
}
if(callIntent.resolveActivity(packageManager) != null){
startActivity(callIntent)
}else{
Toast.makeText(this, getString(R.string.erro_no_compatible_apps), Toast.LENGTH_LONG).show()
}
=================WebSite===============================
val websiteIntent = Intent().apply {
action = Intent.ACTION_VIEW
data = Uri.parse(website)
}
if(websiteIntent.resolveActivity(packageManager) != null){
startActivity(websiteIntent)
}else{
Toast.makeText(this, getString(R.string.erro_no_compatible_apps), Toast.LENGTH_LONG).show()
}
==============Settings Intentds en Manifest=================
<intent>
<action android:name="android.intent.action.DIAL"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW"/>
<data android:scheme="https"/>
<category android:name="android.intent.category.BROWSABLE" />
</intent>
#############ITEMS OTIONS ARRAY RESOURCES####################
<resources>
<string-array name="array_options_item">
<item>Delete</item>
<item>Call</item>
<item>Go to Website</item>
</string-array>
</resources>
val items = resources.getStringArray(R.array.array_options_item)
#############END ITEMS OTIONS ARRAY RESOURCES####################
###############Navigation Bottom#############################
private fun setupBottomNav(){
val homeFragment = HomeFragment()
val addFragment = AddFragment()
val profileFragment = ProfileFragment()
mFragmentManager = supportFragmentManager
mFragmentManager.beginTransaction().add(R.id.hostFragment,profileFragment,
ProfileFragment::class.java.name)
.hide(profileFragment)
.commit()
mFragmentManager.beginTransaction().add(R.id.hostFragment,addFragment,
AddFragment::class.java.name)
.hide(addFragment)
.commit()
mFragmentManager.beginTransaction().add(R.id.hostFragment,homeFragment,
HomeFragment::class.java.name)
.commit()
mBinding.bottomNav.setOnItemSelectedListener {
when(it.itemId){
R.id.action_home -> {
mFragmentManager.beginTransaction().hide(mActiveFragment).show(homeFragment).commit()
mActiveFragment = homeFragment
true
}
R.id.action_add -> {
mFragmentManager.beginTransaction().hide(mActiveFragment).show(addFragment).commit()
mActiveFragment = addFragment
true
}
R.id.action_profile -> {
mFragmentManager.beginTransaction().hide(mActiveFragment).show(profileFragment).commit()
mActiveFragment = profileFragment
true
}
else -> false
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment