Browse Source

Commit

chat^2
N1CK145 4 years ago
parent
commit
54920eb1ab
  1. 36
      app/src/main/java/org/myhush/silentdragon/Addressbook.kt
  2. 27
      app/src/main/java/org/myhush/silentdragon/MainActivity.kt
  3. 3
      app/src/main/java/org/myhush/silentdragon/chat/ChatActivity.kt
  4. 1
      app/src/main/java/org/myhush/silentdragon/chat/ChatItemFragment.kt
  5. 19
      app/src/main/java/org/myhush/silentdragon/chat/ConversationActivity.kt
  6. 3
      app/src/main/java/org/myhush/silentdragon/chat/Message.kt

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

@ -4,44 +4,40 @@ import org.myhush.silentdragon.chat.Message
object Addressbook {
class Contact {
var fullname = ""
var nickname = ""
var address = ""
var addressIn = ""
var addressOut = ""
val messageList = ArrayList<Message>()
constructor(fullname: String, nickname: String) {
this.fullname = fullname
constructor(nickname: String, addressIn: String, addressOut: String) {
this.nickname = nickname
}
constructor(fullname: String, nickname: String, address: String) {
this.fullname = fullname
this.nickname = nickname
this.address = address
this.addressIn = addressIn
this.addressOut = addressOut
}
}
val contactList = ArrayList<Contact>()
fun addContact(fullname: String, nickname: String) {
contactList.add(Contact(fullname, nickname))
}
fun addContact(fullname: String, nickname: String, address: String) {
contactList.add(Contact(fullname, nickname, address))
fun addContact(nickname: String, addressIn: String, addressOut: String) {
contactList.add(Contact(nickname, addressIn, addressOut))
}
fun addContact(contact: Contact){
contactList.add(contact)
fun findContactByInAddress(address: String): Contact? {
contactList.forEach {
if(it.addressIn == address)
return it
}
return null
}
fun findContactByAddress(address: String): Contact? {
fun findContactByOutAddress(address: String): Contact? {
contactList.forEach {
if(it.address == address)
if (it.addressOut == address)
return it
}
return null
}
fun clear() {
contactList.clear()
}

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

@ -26,6 +26,7 @@ import org.myhush.silentdragon.DataModel.ConnectionStatus
import org.myhush.silentdragon.DataModel.connStatus
import org.myhush.silentdragon.chat.ChatActivity
import org.myhush.silentdragon.chat.Message
import org.myhush.silentdragon.chat.MessageType
import java.text.DecimalFormat
@ -229,7 +230,7 @@ class MainActivity : AppCompatActivity(),
// clear past messages
txns?.forEach {
Addressbook.findContactByAddress(it.addr)?.messageList?.clear()
Addressbook.findContactByInAddress(it.addr)?.messageList?.clear()
}
for (fr in supportFragmentManager.fragments) {
@ -244,6 +245,11 @@ class MainActivity : AppCompatActivity(),
return@runOnUiThread
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
val fixAdd= "zs12ehfu3pzj23z88up5wefn2psl5akc3m3ctpnmxmyxm4qx3vghlnq98dnu7sv0hdqgn3e20jq2rr"
val fixName = "Netterdon"
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Split all the transactions into confirmations = 0 and confirmations > 0
// Unconfirmed first
val unconfirmed = txns.filter { t -> t.confirmations == 0L }
@ -260,10 +266,14 @@ class MainActivity : AppCompatActivity(),
)
} else {
// test if contact exists
if(Addressbook.findContactByAddress(tx.addr) == null)
Addressbook.addContact("", tx.addr, tx.addr)
if(Addressbook.findContactByInAddress(tx.addr) == null)
Addressbook.addContact(fixName, tx.addr, fixAdd)
// add message
Addressbook.findContactByAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx))
if(tx.type == "send")
Addressbook.findContactByInAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx, MessageType.SEND))
else
Addressbook.findContactByInAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx, MessageType.RECIEVE))
}
}
@ -286,10 +296,13 @@ class MainActivity : AppCompatActivity(),
oddeven = if (oddeven == "odd") "even" else "odd"
} else {
// test if contact exists
if(Addressbook.findContactByAddress(tx.addr) == null)
Addressbook.addContact("", tx.addr, tx.addr)
if(Addressbook.findContactByInAddress(tx.addr) == null)
Addressbook.addContact(fixName, tx.addr, fixAdd)
// add message
Addressbook.findContactByAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx))
if(tx.type == "send")
Addressbook.findContactByInAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx, MessageType.SEND))
else
Addressbook.findContactByInAddress(tx.addr)!!.messageList.add(Message(tx.addr, tx, MessageType.RECIEVE))
}
}

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

@ -62,9 +62,8 @@ class ChatActivity : AppCompatActivity() {
val fragment = ChatItemFragment()
val fragTx: FragmentTransaction = supportFragmentManager.beginTransaction()
fragment.fullname = contact.fullname
fragment.nickname = contact.nickname
fragment.contactAddress = contact.address
fragment.contactAddress = contact.addressIn
fragTx.add(R.id.ChatTable, fragment)
fragTx.commit()

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

@ -11,7 +11,6 @@ import kotlinx.android.synthetic.main.content_receive.*
import org.myhush.silentdragon.R
class ChatItemFragment : Fragment() {
var fullname: String = ""
var nickname: String = ""
var lastMessage: String = ""
var contactAddress: String = ""

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

@ -1,16 +1,12 @@
package org.myhush.silentdragon.chat
import android.os.Build
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.annotation.RequiresApi
import android.support.v4.app.FragmentTransaction
import android.widget.EditText
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_conversation.*
import org.myhush.silentdragon.*
import java.time.LocalDateTime
import java.util.*
class ConversationActivity : AppCompatActivity() {
var displayName = ""
@ -22,11 +18,11 @@ class ConversationActivity : AppCompatActivity() {
val address = intent.extras.getString("contactAddress")
displayName = intent.extras.getString("displayName")
contact = Addressbook.findContactByAddress(address)
contact = Addressbook.findContactByInAddress(address)
findViewById<TextView>(R.id.textViewContactName2).text = displayName
findViewById<TextView>(R.id.textView_zAddress).text = contact?.address
findViewById<TextView>(R.id.textView_zAddress).text = contact?.addressIn
buttonSend.setOnClickListener{
sendMessage()
@ -35,9 +31,12 @@ class ConversationActivity : AppCompatActivity() {
restoreChat()
}
private fun sendMessage(){
// TODO
//val memo = findViewById<TextView>(R.id.userInput).text.toString()
private fun sendMessage() {
val memo = findViewById<TextView>(R.id.userInput).text.toString()
val tx = DataModel.TransactionItem("", 0, "0", memo, contact!!.addressOut, "0", 0)
DataModel.sendTx(tx)
findViewById<TextView>(R.id.userInput).text = ""
}
private fun restoreChat() {

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

@ -11,11 +11,12 @@ class Message {
var txID = ""
var txHeight: Int = -1
constructor(fromAddress: String, tx: DataModel.TransactionItem){
constructor(fromAddress: String, tx: DataModel.TransactionItem, messageType: MessageType){
this.memo = tx.memo.toString()
this.txID = tx.txid.toString()
this.dateTime = tx.datetime
this.toAddress = tx.addr
this.fromAddress = fromAddress
this.messageType = messageType
}
}
Loading…
Cancel
Save