Browse Source

Merge pull request #54 from N1CK145/chat

Added some usefull stuff
chat
Duke Leto 5 years ago
committed by GitHub
parent
commit
09da932ce3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      app/src/main/java/org/myhush/silentdragon/Addressbook.kt
  2. 2
      app/src/main/java/org/myhush/silentdragon/MainActivity.kt
  3. 27
      app/src/main/java/org/myhush/silentdragon/chat/Addressbook.kt
  4. 30
      app/src/main/java/org/myhush/silentdragon/chat/ChatActivity.kt
  5. 11
      app/src/main/java/org/myhush/silentdragon/chat/ChatItemFragment.kt
  6. 42
      app/src/main/java/org/myhush/silentdragon/chat/ConversationActivity.kt
  7. 22
      app/src/main/java/org/myhush/silentdragon/chat/Message.kt
  8. 6
      app/src/main/java/org/myhush/silentdragon/chat/MessageType.kt
  9. 5
      app/src/main/java/org/myhush/silentdragon/conversation_item_recive.kt
  10. 4
      app/src/main/java/org/myhush/silentdragon/conversation_item_send.kt
  11. 31
      app/src/main/res/layout/activity_conversation.xml
  12. 14
      app/src/main/res/layout/fragment_conversation_item_recive.xml
  13. 1
      app/src/main/res/layout/fragment_conversation_item_send.xml

7
app/src/main/java/org/myhush/silentdragon/Addressbook.kt

@ -1,7 +0,0 @@
package org.myhush.silentdragon
object Addressbook {
class Contact(){ var firstName = ""; var lastName = ""; var zAddress = "" }
val contactList = ArrayList<Contact>()
}

2
app/src/main/java/org/myhush/silentdragon/MainActivity.kt

@ -3,6 +3,7 @@ package org.myhush.silentdragon
import android.annotation.SuppressLint
import android.app.Activity
import android.app.AlertDialog
import android.content.*
import android.net.Uri
import android.os.Bundle
@ -105,6 +106,7 @@ class MainActivity : AppCompatActivity(),
}
loadSharedPref()
updateUI(false)
}

27
app/src/main/java/org/myhush/silentdragon/chat/Addressbook.kt

@ -0,0 +1,27 @@
package org.myhush.silentdragon.chat
object Addressbook {
class Contact {
var addressList: ArrayList<String> = ArrayList()
val messageList: ArrayList<Message> = ArrayList()
var fullname = ""
var nickname = ""
constructor(fullname: String, nickname: String){
this.fullname = fullname
this.nickname = nickname
}
constructor(fullname: String, nickname: String, address: String){
this.fullname = fullname
this.nickname = nickname
this.addressList.add(address)
}
constructor(fullname: String, nickname: String, addressList: ArrayList<String>){
this.fullname = fullname
this.nickname = nickname
this.addressList = addressList
}
}
val contactList = ArrayList<Contact>()
}

30
app/src/main/java/org/myhush/silentdragon/chat/ChatActivity.kt

@ -1,32 +1,33 @@
package org.myhush.silentdragon.chat
import android.app.AlertDialog
import android.content.Intent
import android.os.Bundle
import android.support.v4.app.FragmentTransaction
import android.support.v7.app.AppCompatActivity
import android.text.InputType
import android.view.Menu
import android.view.MenuItem
import android.widget.EditText
import kotlinx.android.synthetic.main.activity_chat.*
import org.myhush.silentdragon.MainActivity
import org.myhush.silentdragon.R
import org.myhush.silentdragon.ReceiveActivity
import org.myhush.silentdragon.SendActivity
import org.myhush.silentdragon.*
class ChatActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_chat)
initListener()
restoreSoonChats() // TODO: @N1CK145
restoreLastChats()
}
private fun restoreSoonChats() {
addChat("Nil", "Armstrong")
private fun restoreLastChats() {
DataModel.transactions?.forEach { tx ->
if (!tx.memo.isNullOrEmpty()){
// ADD CHAT BY ADDRESS
}
}
Addressbook.contactList.forEach {
addChat(it)
}
}
private fun initListener(){
@ -55,12 +56,13 @@ class ChatActivity : AppCompatActivity() {
}
}
private fun addChat(firstName: String, lastName: String){
private fun addChat(contact: Addressbook.Contact){
val fragment = ChatItemFragment()
val fragTx: FragmentTransaction = supportFragmentManager.beginTransaction()
fragment.firstName = firstName
fragment.lastName = lastName
fragment.fullname = contact.fullname
fragment.nickname = contact.nickname
fragment.lastMessage = contact.addressList[0]
fragTx.add(R.id.ChatTable, fragment)
fragTx.commit()

11
app/src/main/java/org/myhush/silentdragon/chat/ChatItemFragment.kt

@ -7,13 +7,12 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import org.myhush.silentdragon.DataModel
import org.myhush.silentdragon.R
class ChatItemFragment : Fragment() {
var firstName: String = ""
var lastName: String = ""
var lastMessage: String = "No messages..."
var fullname: String = ""
var nickname: String = ""
var lastMessage: String = ""
var v: View? = null
override fun onCreateView (inflater: LayoutInflater, container: ViewGroup?,
@ -29,14 +28,14 @@ class ChatItemFragment : Fragment() {
v?.setOnClickListener {
val intent = Intent(activity, ConversationActivity::class.java)
intent.putExtra("displayName", "$firstName $lastName") // Send some information
intent.putExtra("displayName", "$fullname $nickname") // Send some information
startActivity(intent)
}
}
fun updateData(){
v!!.findViewById<TextView>(R.id.textViewContactName).text = "$firstName $lastName"
v!!.findViewById<TextView>(R.id.textViewContactName).text = "$fullname $nickname"
v!!.findViewById<TextView>(R.id.textViewLastMessage).text = lastMessage
}

42
app/src/main/java/org/myhush/silentdragon/chat/ConversationActivity.kt

@ -1,21 +1,15 @@
package org.myhush.silentdragon.chat
import android.content.Context
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v4.app.FragmentTransaction
import android.util.AttributeSet
import android.view.View
import android.view.Window
import android.widget.TextView
import kotlinx.android.synthetic.main.fragment_conversation_item_send.*
import org.myhush.silentdragon.R
import org.myhush.silentdragon.conversation_item_recive
import org.myhush.silentdragon.conversation_item_send
class ConversationActivity : AppCompatActivity() {
var displayName = ""
var messages = HashMap<Boolean, String>()
var contact: Addressbook.Contact? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -26,27 +20,27 @@ class ConversationActivity : AppCompatActivity() {
restoreChat()
}
private fun restoreChat(){
//addMessage("Lorem Ipsum", true)
//addMessage("Lorem Ipsum", true)
//addMessage("Lorem Ipsum", false)
//addMessage("Lorem Ipsum", true)
private fun restoreChat() {
contact?.messageList?.forEach {
attachMessage(it)
}
}
fun addMessage(message: String, recived: Boolean){
fun attachMessage(message: Message){
val fragTx: FragmentTransaction = supportFragmentManager.beginTransaction()
if(recived){
val fragment = conversation_item_recive()
fragment.message.text = message
fragTx.add(R.id.MessageList, fragment)
}else{
val fragment = conversation_item_send()
fragment.message.text = message
fragTx.add(R.id.MessageList, fragment)
when (message.messageType){
MessageType.SEND -> {
val fragment = conversation_item_send()
fragment.msg = message
fragTx.add(R.id.MessageList, fragment)
}
MessageType.RECIEVE -> {
val fragment = conversation_item_recive()
fragment.msg = message
fragTx.add(R.id.MessageList, fragment)
}
}
fragTx.commit()
}

22
app/src/main/java/org/myhush/silentdragon/chat/Message.kt

@ -0,0 +1,22 @@
package org.myhush.silentdragon.chat
import org.myhush.silentdragon.DataModel
class Message {
var memo = ""
var fromAddress = ""
var toAddress = ""
var messageType = MessageType.SEND
var dateTime: Long = 0
var txID = ""
var txHeight: Int = -1
constructor(fromAddress: String, tx: DataModel.TransactionItem){
this.memo = tx.memo.toString()
this.txID = tx.txid.toString()
this.dateTime = tx.datetime
this.toAddress = tx.addr
this.fromAddress = fromAddress
}
}

6
app/src/main/java/org/myhush/silentdragon/chat/MessageType.kt

@ -0,0 +1,6 @@
package org.myhush.silentdragon.chat
enum class MessageType {
SEND,
RECIEVE
}

5
app/src/main/java/org/myhush/silentdragon/conversation_item_recive.kt

@ -5,13 +5,18 @@ import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import org.myhush.silentdragon.chat.Message
class conversation_item_recive : Fragment() {
var msg: Message? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
var v: View = inflater.inflate(R.layout.fragment_conversation_item_recive, container, false)
v.findViewById<TextView>(R.id.message).text = msg?.memo
return v
}
}

4
app/src/main/java/org/myhush/silentdragon/conversation_item_send.kt

@ -5,13 +5,17 @@ import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import org.myhush.silentdragon.chat.Message
class conversation_item_send : Fragment() {
var msg: Message? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
var v: View = inflater.inflate(R.layout.fragment_conversation_item_send, container, false)
v.findViewById<TextView>(R.id.message).text = msg?.memo
return v
}
}

31
app/src/main/res/layout/activity_conversation.xml

@ -54,36 +54,7 @@
android:id="@+id/MessageList"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<fragment
android:id="@+id/fragment3"
android:name="org.myhush.silentdragon.conversation_item_recive"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_conversation_item_recive" />
<fragment
android:id="@+id/fragment4"
android:name="org.myhush.silentdragon.conversation_item_send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_conversation_item_send" />
<fragment
android:id="@+id/fragment2"
android:name="org.myhush.silentdragon.conversation_item_recive"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_conversation_item_recive" />
<fragment
android:id="@+id/fragment"
android:name="org.myhush.silentdragon.conversation_item_send"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:layout="@layout/fragment_conversation_item_send" />
</LinearLayout>
android:orientation="vertical"/>
</ScrollView>
<android.support.constraint.ConstraintLayout

14
app/src/main/res/layout/fragment_conversation_item_recive.xml

@ -7,15 +7,29 @@
tools:context=".conversation_item_send" >
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="9dp"
android:layout_marginTop="10dp"
android:background="@drawable/chat_background_recive"
android:maxWidth="260sp"
android:minWidth="80sp"
android:padding="10sp"
android:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr"
android:textColor="@color/message_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/time2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10sp"
android:layout_marginBottom="5dp"
android:text="10:15 AM"
android:textColor="@color/message_text"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@+id/message"
app:layout_constraintEnd_toEndOf="@+id/message" />
</android.support.constraint.ConstraintLayout>

1
app/src/main/res/layout/fragment_conversation_item_send.xml

@ -14,6 +14,7 @@
android:layout_marginEnd="9dp"
android:background="@drawable/chat_background_send"
android:maxWidth="260sp"
android:minWidth="80sp"
android:paddingLeft="10sp"
android:paddingTop="10sp"
android:paddingRight="5sp"

Loading…
Cancel
Save