Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ceriosrey.chattrbox
- import android.content.Context
- import android.content.Intent
- import android.graphics.Color
- import android.media.MediaPlayer
- import android.net.Uri
- import android.os.AsyncTask
- import android.support.v7.app.AppCompatActivity
- import android.os.Bundle
- import android.support.v7.widget.GridLayoutManager
- import android.support.v7.widget.RecyclerView
- import android.util.Log
- import android.view.*
- import android.widget.Adapter
- import com.squareup.picasso.Picasso
- import io.realm.Realm
- import io.realm.RealmQuery
- import io.realm.RealmResults
- import kotlinx.android.synthetic.main.activity_people.*
- import kotlinx.android.synthetic.main.people_cell_layout.view.*
- import java.io.File
- import java.io.FileInputStream
- import java.io.IOException
- import java.net.URI
- class PeopleActivity : AppCompatActivity(), MediaPlayer.OnCompletionListener, PeopleAdapter.OnCellClickListener, MediaPlayer.OnErrorListener {
- var player: MediaPlayer? = null
- var itemList: MutableList<ChattRBoxItems> = ArrayList()
- var result: RealmResults<ChattRItem>? = null
- val category = "People"
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_people)
- Realm.init(this)
- recyclerView_people.layoutManager = GridLayoutManager(this, 3)
- // recyclerView_people.adapter = PeopleAdapter()
- AsyncTask.execute {
- category.let {
- loadFromRealm(it)
- }
- }
- this.runOnUiThread {
- itemList.let {
- recyclerView_people.adapter = PeopleAdapter(it, this)
- }
- }
- }
- override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- val inflater: MenuInflater = menuInflater
- inflater.inflate(R.menu.people_activity_menu, menu)
- return super.onCreateOptionsMenu(menu)
- }
- override fun onOptionsItemSelected(item: MenuItem?): Boolean {
- val intent: Intent?
- when (item?.itemId) {
- R.id.essentials_menuItem -> {
- intent = Intent(this, EssentialsActivity::class.java)
- startActivity(intent)
- }
- R.id.addItem_menuItem -> {
- intent = Intent(this, AddItemActivity::class.java)
- startActivity(intent)
- }
- }
- return super.onOptionsItemSelected(item)
- }
- override fun onCompletion(mp: MediaPlayer?) {
- }
- override fun onError(mp: MediaPlayer?, what: Int, extra: Int): Boolean {
- println(what)
- return true
- }
- override fun onCellClick(chattRItem: ChattRBoxItems) {
- // play(chattRItem.itemAudioFileName)
- playAudio(chattRItem.itemAudioFileName)
- }
- private fun playAudio(audioFileName: String) {
- val path: File = filesDir
- val file = File(path.absolutePath + "/" + audioFileName + ".3gp")
- val fileUri = Uri.fromFile(file)
- try {
- player = MediaPlayer.create(this, fileUri )
- player?.start()
- player = null
- } catch (e: IOException) {
- Log.e("Error in player", e.toString())
- return
- }
- }
- // private fun play(audioFileName: String) {
- //
- //
- // player = MediaPlayer()
- // player?.setOnCompletionListener(this)
- // player?.setOnErrorListener(this)
- // try {
- // val path: File = filesDir
- //
- // val file = File(path.absolutePath + "/" + audioFileName + ".3gp")
- // if (file.exists()) {
- // file.createNewFile()
- // }
- // val fis = FileInputStream(file)
- //// val fileUri: Uri = Uri.fromFile(file)
- //// /data/user/0/com.ceriosrey.chattrbox/files/5fc33f24-daff-4372-8353-ffd433e039f6_blue bottle_audio
- //// player?.setDataSource(fis.fd)
- // player?.setDataSource(fis.fd)
- // } catch (e: IOException) {
- // Log.d("Player error", "Error in player:", e)
- // }
- // try {
- // player?.prepare()
- // } catch (e: IOException) {
- // Log.d("Player error", "Player Error:", e)
- // }
- // player?.start()
- // player = null
- // }
- private fun loadFromRealm(category: String){
- val realm = Realm.getDefaultInstance()
- try {
- val query: RealmQuery<ChattRItem>? = realm.where(ChattRItem::class.java).equalTo("itemCategory", category)
- result = query?.findAll()
- result?.let {
- for (i in it) {
- val itemId = i.itemId
- val itemName = i.itemName
- val itemCategory = i.itemCategory
- val itemImageFileName = i.itemImageFileName
- val itemAudioFileName = i.itemAudioFileName
- val chattRItem = ChattRBoxItems(itemId, itemName, itemCategory, itemImageFileName, itemAudioFileName)
- itemList.add(chattRItem)
- }
- }
- } finally {
- realm.close()
- }
- }
- }
- class PeopleAdapter(private val itemList: MutableList<ChattRBoxItems>, private val listener: OnCellClickListener): RecyclerView.Adapter<PeopleAdapter.PeopleViewHolder>() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PeopleViewHolder {
- val layoutInflater = LayoutInflater.from(parent.context)
- val cellForRow = layoutInflater.inflate(R.layout.people_cell_layout, parent, false)
- return PeopleViewHolder(cellForRow)
- }
- override fun getItemCount(): Int {
- return itemList.size
- }
- override fun onBindViewHolder(holder: PeopleViewHolder, position: Int) {
- val chattRItem: ChattRBoxItems = itemList.get(position)
- holder.bind(chattRItem)
- }
- interface OnCellClickListener {
- fun onCellClick(chattRItem: ChattRBoxItems)
- }
- inner class PeopleViewHolder(private val view: View/*, private var chattRItem: ChattRBoxItems? = null*/): RecyclerView.ViewHolder(view) {
- fun bind(chattRItem: ChattRBoxItems) {
- itemView.textView_people.text = chattRItem.itemName
- //set pass data to onClick interface
- view.setOnClickListener {
- listener.onCellClick(chattRItem)
- }
- //loading image here
- val context = itemView.context
- val path: String = context.filesDir.absolutePath
- val file = File(path, chattRItem.itemImageFileName )
- Picasso.get().load(file).into(itemView.imageView_people)
- }
- // init {
- // view.setOnClickListener {
- // chattRItem?.let {
- // listener.onCellClick(it)
- // }
- // }
- // }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement