Skip to content

Instantly share code, notes, and snippets.

@alamsyahh15
Created September 27, 2019 02:57
Show Gist options
  • Save alamsyahh15/b2da1e56f77fa57377dd840defe9c35f to your computer and use it in GitHub Desktop.
Save alamsyahh15/b2da1e56f77fa57377dd840defe9c35f to your computer and use it in GitHub Desktop.
package com.example.manjuaapp.list_produk.bottom_sheet
import android.annotation.SuppressLint
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.manjuaapp.R
import com.example.manjuaapp.list_produk.ListProdukActivity
import com.example.manjuaapp.utama.fragment.home.data.ProdukItem
import com.example.manjuaapp.utils.ChangeFormat
import com.example.manjuaapp.utils.KeranjangManager
import com.example.manjuaapp.utils.SessionManager
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.layout_bottom_sheet.*
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.support.v4.alert
import org.jetbrains.anko.support.v4.startActivity
/**
* A simple [Fragment] subclass.
*/
class BottomSheetFragment : BottomSheetDialogFragment(), BottomSheetView{
private var count = 1
private lateinit var bottomSheetPresenter: BottomSheetPresenter
private lateinit var sesi : SessionManager
private lateinit var keranjang : KeranjangManager
private var total : Double = 0.0
private var id : String? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.layout_bottom_sheet, container, false)
}
@SuppressLint("SetTextI18n")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
id = arguments?.getString("id","")
val data = arguments?.getSerializable("data") as ProdukItem
bottomName.text = data.produkNama
bottomPrice.text = "Rp. + ${ChangeFormat.toRupiahFormat2(data.produkHarga ?: "")}"
bottomSheetPresenter = BottomSheetPresenter(this)
sesi = SessionManager(activity)
keranjang = KeranjangManager(activity)
total = data.produkHarga?.toDouble() ?: 0.0
bottomKeranjang.onClick {
if (keranjang.isLogin){
total = keranjang.total.toDouble().plus(total)
keranjang.total = "$total"
bottomSheetPresenter.addKeranjang(keranjang.idOrder,
"${data.produkId}",
"$count",
data.produkHarga ?: "")
} else {
bottomSheetPresenter.order(
sesi.idUser,
"$total",
"${data.produkId}",
"$count",
"${data.produkHarga}"
)
}
}
bottomCount.addTextChangedListener(object : TextWatcher{
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(p0: CharSequence?, start: Int, before: Int, count: Int) {
val total = p0.toString().toDouble().times(data.produkHarga?.toDouble() ?: 0.0)
bottomKeranjang.text = "Tambah Keranjang : Rp. "+ChangeFormat.toRupiahFormat2("$total")
}
})
bottomPlus.onClick {
count += 1
if (count > 1){
bottomMinus.isEnabled = true
}
bottomCount.text = "$count"
}
bottomMinus.onClick {
if(count != 1)
count -=1
if(count == 1 ){
bottomMinus.isEnabled = false
} else {
count -= 1
bottomCount.text = "$count"
}
}
}
override fun onSuccess(idOrder: String, msg: String?) {
keranjang.createLoginSession("15052001")
keranjang.idOrder = idOrder
keranjang.total = "$total"
startActivity<ListProdukActivity>("id" to id)
}
override fun onSuccessKeranjang(msg: String?) {
startActivity<ListProdukActivity>("id" to id)
}
override fun onError(msg: String?) {
Log.d("Error Bottom", "Error Bottom")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment