diff --git a/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt b/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt
index 4c05e19..166c1ac 100644
--- a/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt
+++ b/app/src/main/java/sushi/hardcore/aira/ChatActivity.kt
@@ -148,7 +148,7 @@ class ChatActivity : ServiceBoundActivity() {
if (airaService.contacts.contains(sessionId)) {
lastLoadedMessageOffset += 1
}
- airaService.isAppInBackground
+ !airaService.isAppInBackground
} else {
false
}
@@ -204,17 +204,15 @@ class ChatActivity : ServiceBoundActivity() {
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.chat_activity, menu)
val contact = airaService.contacts[sessionId]
- if (contact == null){
- menu.findItem(R.id.delete_conversation).isVisible = false
- menu.findItem(R.id.set_as_contact).isVisible = true
- menu.findItem(R.id.remove_contact).isVisible = false
+ menu.findItem(R.id.delete_conversation).isVisible = contact != null
+ menu.findItem(R.id.set_as_contact).isVisible = contact == null
+ menu.findItem(R.id.remove_contact).isVisible = contact != null
+ if (contact == null) {
menu.findItem(R.id.verify).isVisible = false
} else {
- menu.findItem(R.id.delete_conversation).isVisible = true
- menu.findItem(R.id.set_as_contact).isVisible = false
- menu.findItem(R.id.remove_contact).isVisible = true
menu.findItem(R.id.verify).isVisible = !contact.verified
}
+ menu.findItem(R.id.refresh_name).isEnabled = airaService.isOnline(sessionId)
return true
}
@@ -303,6 +301,10 @@ class ChatActivity : ServiceBoundActivity() {
.show()
true
}
+ R.id.refresh_name -> {
+ airaService.sendTo(sessionId, Protocol.askName())
+ true
+ }
else -> super.onOptionsItemSelected(item)
}
}
diff --git a/app/src/main/java/sushi/hardcore/aira/background_service/AIRAService.kt b/app/src/main/java/sushi/hardcore/aira/background_service/AIRAService.kt
index e315e8f..2cad914 100644
--- a/app/src/main/java/sushi/hardcore/aira/background_service/AIRAService.kt
+++ b/app/src/main/java/sushi/hardcore/aira/background_service/AIRAService.kt
@@ -421,7 +421,7 @@ class AIRAService : Service() {
override fun onCreate() {
HandlerThread("", THREAD_PRIORITY_BACKGROUND).apply {
start()
- serviceHandler = object : Handler(looper){
+ serviceHandler = object : Handler(looper) {
override fun handleMessage(msg: Message) {
try {
when (msg.what) {
@@ -438,15 +438,16 @@ class AIRAService : Service() {
}
MESSAGE_CONNECT_TO -> {
msg.data.getString("ip")?.let { ip ->
- try {
- val socket = SocketChannel.open()
- if (socket.connect(InetSocketAddress(ip, Constants.port))) {
- handleNewSocket(socket, true)
+ Thread {
+ try {
+ val socket = SocketChannel.open()
+ if (socket.connect(InetSocketAddress(ip, Constants.port))) {
+ handleNewSocket(socket, true)
+ }
+ } catch (e: ConnectException) {
+ Log.w("Connect failed", "$ip: "+e.message)
}
- } catch (e: ConnectException) {
- Log.w("Connect failed", e.message.toString())
- return
- }
+ }.start()
}
}
MESSAGE_CANCEL_FILE_TRANSFER -> {
@@ -483,18 +484,18 @@ class AIRAService : Service() {
}
}
}
- val contactList = AIRADatabase.loadContacts()
- if (contactList == null) {
- contacts = HashMap(0)
- } else {
- contacts = HashMap(contactList.size)
- for (contact in contactList) {
- contacts[sessionCounter] = contact
- if (!contact.seen) {
- notSeen.add(sessionCounter)
- }
- sessionCounter++
+ }
+ val contactList = AIRADatabase.loadContacts()
+ if (contactList == null) {
+ contacts = HashMap(0)
+ } else {
+ contacts = HashMap(contactList.size)
+ for (contact in contactList) {
+ contacts[sessionCounter] = contact
+ if (!contact.seen) {
+ notSeen.add(sessionCounter)
}
+ sessionCounter++
}
}
}
diff --git a/app/src/main/res/menu/chat_activity.xml b/app/src/main/res/menu/chat_activity.xml
index 81d9ea7..cbab399 100644
--- a/app/src/main/res/menu/chat_activity.xml
+++ b/app/src/main/res/menu/chat_activity.xml
@@ -32,4 +32,9 @@
android:icon="@drawable/ic_info"
android:title="@string/details"/>
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bb78981..85b3cb8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -80,4 +80,5 @@
Identity
About
AIRA version
+ Refresh name
diff --git a/build.gradle b/build.gradle
index 0cbb05a..7a2fb21 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.1.3'
+ classpath 'com.android.tools.build:gradle:4.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 67e827d..5b34074 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip