Browse Source

Create ChatActivity added

chat
N1CK145 5 years ago
parent
commit
644ce67804
  1. 17
      app/src/main/AndroidManifest.xml
  2. 2
      app/src/main/java/org/myhush/silentdragon/SendActivity.kt
  3. 54
      app/src/main/java/org/myhush/silentdragon/chat/AddContactActivity.kt
  4. 25
      app/src/main/java/org/myhush/silentdragon/chat/ChatActivity.kt
  5. 5
      app/src/main/java/org/myhush/silentdragon/chat/ChatItemFragment.kt
  6. 9
      app/src/main/java/org/myhush/silentdragon/chat/ConversationActivity.kt
  7. 117
      app/src/main/res/layout/activity_add_contact.xml
  8. 25
      app/src/main/res/layout/activity_chat.xml
  9. 1
      app/src/main/res/layout/content_chat_list.xml

17
app/src/main/AndroidManifest.xml

@ -17,8 +17,10 @@
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:allowBackup">
<activity android:name=".chat.ConversationActivity"
android:theme="@style/AppTheme.NoActionBar"/>
<activity android:name=".chat.AddContactActivity"></activity>
<activity
android:name=".chat.ConversationActivity"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".chat.ChatActivity"
android:label="@string/title_activity_chat" />
@ -32,18 +34,17 @@
android:value=".SendActivity" />
</activity>
<activity
android:name="org.myhush.silentdragon.AboutActivity"
android:name=".AboutActivity"
android:label="@string/title_activity_about"
android:parentActivityName="org.myhush.silentdragon.SendActivity"
android:parentActivityName=".SendActivity"
android:screenOrientation="portrait">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SendActivity" />
</activity>
<activity
android:name="org.myhush.silentdragon.QrReaderActivity"
android:screenOrientation="portrait"/>
android:name=".QrReaderActivity"
android:screenOrientation="portrait" />
<activity
android:name=".TxDetailsActivity"
android:label="@string/title_activity_tx_details"
@ -89,4 +90,4 @@
</activity>
</application>
</manifest>
</manifest>

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

@ -241,7 +241,7 @@ class SendActivity : AppCompatActivity() {
}
}
fun showErrorDialog(msg: String) {
private fun showErrorDialog(msg: String) {
val alertDialog = AlertDialog.Builder(this@SendActivity).create()
alertDialog.setTitle("Error Sending Transaction!")
alertDialog.setMessage(msg)

54
app/src/main/java/org/myhush/silentdragon/chat/AddContactActivity.kt

@ -0,0 +1,54 @@
package org.myhush.silentdragon.chat
import android.app.AlertDialog
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_add_contact.*
import org.myhush.silentdragon.R
class AddContactActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_contact)
buttonAddContact.setOnClickListener {
if (checkValueValidation()) {
var nickName = editText_NickName.text.toString()
var fullname = editText_FullName.text.toString()
var zAddr = editTextZAddress.text.toString()
Addressbook.contactList.add(Addressbook.Contact(fullname, nickName, zAddr))
this.finish()
}
}
}
private fun sendErrorDialog(msg: String) {
val alertDialog = AlertDialog.Builder(this@AddContactActivity).create()
alertDialog.setTitle("Error by add a new Contact!")
alertDialog.setMessage(msg)
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK") {
dialog, _ -> dialog.dismiss() }
alertDialog.show()
}
private fun checkValueValidation(): Boolean{
if (editText_FullName.text.length <= 1) {
sendErrorDialog("Pleas insert a name!")
return false
}
if (editText_NickName.text.length <= 1) {
sendErrorDialog("Pleas insert a nickname!")
return false
}
if (editTextZAddress.text.length <= 1) {
if(!editTextZAddress.text.startsWith('z', true)) {
sendErrorDialog("Pleas insert a z-address!")
return false
}
}
return true
}
}

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

@ -6,7 +6,11 @@ import android.support.v4.app.FragmentTransaction
import android.support.v7.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.widget.LinearLayout
import android.widget.TableLayout
import kotlinx.android.synthetic.main.activity_chat.*
import kotlinx.android.synthetic.main.content_chat_list.view.*
import org.myhush.silentdragon.*
class ChatActivity : AppCompatActivity() {
@ -16,6 +20,11 @@ class ChatActivity : AppCompatActivity() {
initListener()
restoreLastChats()
swiperefreshChat.setOnRefreshListener {
refresh()
swiperefreshChat.isRefreshing = false
}
}
private fun restoreLastChats() {
@ -24,10 +33,7 @@ class ChatActivity : AppCompatActivity() {
// ADD CHAT BY ADDRESS
}
}
Addressbook.contactList.forEach {
addChat(it)
}
refresh()
}
private fun initListener(){
@ -56,6 +62,14 @@ class ChatActivity : AppCompatActivity() {
}
}
fun refresh(){
findViewById<LinearLayout>(R.id.ChatTable).removeAllViews()
Addressbook.contactList.forEach {
addChat(it)
}
}
private fun addChat(contact: Addressbook.Contact){
val fragment = ChatItemFragment()
val fragTx: FragmentTransaction = supportFragmentManager.beginTransaction()
@ -77,7 +91,8 @@ class ChatActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_addChat -> {
// TODO: Create "createContactActivity"
val intent = Intent(this, AddContactActivity::class.java)
startActivity(intent)
return true
}
else -> super.onOptionsItemSelected(item)

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

@ -20,6 +20,7 @@ class ChatItemFragment : Fragment() {
v = inflater.inflate(R.layout.fragment_chat_item, container, false)
updateData()
initListener()
return v!!
}
@ -28,14 +29,14 @@ class ChatItemFragment : Fragment() {
v?.setOnClickListener {
val intent = Intent(activity, ConversationActivity::class.java)
intent.putExtra("displayName", "$fullname $nickname") // Send some information
intent.putExtra("displayName", nickname) // Send some information
startActivity(intent)
}
}
fun updateData(){
v!!.findViewById<TextView>(R.id.textViewContactName).text = "$fullname $nickname"
v!!.findViewById<TextView>(R.id.textViewContactName).text = nickname
v!!.findViewById<TextView>(R.id.textViewLastMessage).text = lastMessage
}

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

@ -1,8 +1,13 @@
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.widget.TextView
import kotlinx.android.synthetic.main.activity_chat.*
import org.myhush.silentdragon.R
import org.myhush.silentdragon.conversation_item_recive
import org.myhush.silentdragon.conversation_item_send
@ -15,7 +20,9 @@ class ConversationActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_conversation)
displayName = intent.extras.get("displayName").toString()
displayName = intent.extras.getString("displayName")
findViewById<TextView>(R.id.textViewContactName2).text = displayName
restoreChat()
}

117
app/src/main/res/layout/activity_add_contact.xml

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".chat.AddContactActivity">
<EditText
android:id="@+id/editTextZAddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:ems="10"
android:gravity="start|top"
android:hint="Addresses"
android:inputType="textMultiLine"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider7" />
<View
android:id="@+id/divider5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?android:attr/listDivider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView15" />
<View
android:id="@+id/divider8"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?android:attr/listDivider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextZAddress" />
<View
android:id="@+id/divider7"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="?android:attr/listDivider"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText_NickName" />
<EditText
android:id="@+id/editText_FullName"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:ems="10"
android:hint="Fullname"
android:inputType="textPersonName"
app:layout_constraintEnd_toStartOf="@+id/divider9"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider5" />
<EditText
android:id="@+id/editText_NickName"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:ems="10"
android:hint="Nickname"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/divider9"
app:layout_constraintTop_toBottomOf="@+id/divider5" />
<Button
android:id="@+id/buttonAddContact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Create Contact"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider8" />
<TextView
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Add a new Contact"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/divider9"
android:layout_width="1dp"
android:layout_height="0dp"
android:background="?android:attr/listDivider"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@+id/divider7"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/divider5" />
</android.support.constraint.ConstraintLayout>

25
app/src/main/res/layout/activity_chat.xml

@ -5,15 +5,28 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/include"
layout="@layout/content_chat_list"
android:layout_width="0dp"
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swiperefreshChat"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/nav_view"
app:layout_constraintBottom_toTopOf="@+id/bottomNav"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/imageView2">
<include
android:id="@+id/include"
layout="@layout/content_chat_list"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/nav_view"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.v4.widget.SwipeRefreshLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/nav_view"

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

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"

Loading…
Cancel
Save