srctree

Robin Lindén parent 072325bd 2ee7a19d
Clean up the core module

inlinesplit
app/src/main/java/ltd/evilcorp/atox/ui/Util.kt added: 72, removed: 92, total 0
@@ -8,14 +8,14 @@ import ltd.evilcorp.core.vo.Contact
import ltd.evilcorp.core.vo.UserStatus
 
internal fun colorByStatus(resources: Resources, contact: Contact): Int {
if (contact.connectionStatus == ConnectionStatus.NONE) return ResourcesCompat.getColor(
if (contact.connectionStatus == ConnectionStatus.None) return ResourcesCompat.getColor(
resources,
R.color.statusOffline,
null
)
return when (contact.status) {
UserStatus.NONE -> ResourcesCompat.getColor(resources, R.color.statusAvailable, null)
UserStatus.AWAY -> ResourcesCompat.getColor(resources, R.color.statusAway, null)
UserStatus.BUSY -> ResourcesCompat.getColor(resources, R.color.statusBusy, null)
UserStatus.None -> ResourcesCompat.getColor(resources, R.color.statusAvailable, null)
UserStatus.Away -> ResourcesCompat.getColor(resources, R.color.statusAway, null)
UserStatus.Busy -> ResourcesCompat.getColor(resources, R.color.statusBusy, null)
}
}
 
app/src/main/java/ltd/evilcorp/atox/ui/chat/ChatFragment.kt added: 72, removed: 92, total 0
@@ -63,7 +63,7 @@ class ChatFragment : Fragment() {
 
viewModel.contact.observe(viewLifecycleOwner, Observer {
contactName = it.name
contactOnline = it.connectionStatus != ConnectionStatus.NONE
contactOnline = it.connectionStatus != ConnectionStatus.None
 
title.text = contactName
subtitle.text = if (it.typing) {
 
app/src/main/java/ltd/evilcorp/atox/ui/contactlist/ContactListFragment.kt added: 72, removed: 92, total 0
@@ -50,7 +50,7 @@ class ContactListFragment : Fragment(), NavigationView.OnNavigationItemSelectedL
profileStatusMessage.text = user.statusMessage
}
 
toolbar.subtitle = if (user.connectionStatus == ConnectionStatus.NONE) {
toolbar.subtitle = if (user.connectionStatus == ConnectionStatus.None) {
getText(R.string.connecting)
} else {
getText(R.string.connected)
@@ -73,7 +73,7 @@ class ContactListFragment : Fragment(), NavigationView.OnNavigationItemSelectedL
viewModel.contacts.observe(viewLifecycleOwner, Observer { contacts ->
contactAdapter.contacts = contacts.sortedWith(
compareBy(
{ contact -> contact.connectionStatus == ConnectionStatus.NONE },
{ contact -> contact.connectionStatus == ConnectionStatus.None },
Contact::lastMessage,
Contact::status
)
 
app/src/test/java/ltd/evilcorp/atox/ToxUtilTest.kt added: 72, removed: 92, total 0
@@ -23,7 +23,7 @@ class ToxUtilTest {
assertEquals(it.ordinal, it.toConnectionStatus().ordinal)
}
 
assertEquals(ToxConnection.NONE.ordinal, ConnectionStatus.NONE.ordinal)
assertEquals(ToxConnection.NONE.ordinal, ConnectionStatus.None.ordinal)
assertEquals(ToxConnection.UDP.ordinal, ConnectionStatus.UDP.ordinal)
assertEquals(ToxConnection.TCP.ordinal, ConnectionStatus.TCP.ordinal)
}
@@ -37,9 +37,9 @@ class ToxUtilTest {
assertEquals(it.ordinal, it.toUserStatus().ordinal)
}
 
assertEquals(ToxUserStatus.NONE.ordinal, UserStatus.NONE.ordinal)
assertEquals(ToxUserStatus.AWAY.ordinal, UserStatus.AWAY.ordinal)
assertEquals(ToxUserStatus.BUSY.ordinal, UserStatus.BUSY.ordinal)
assertEquals(ToxUserStatus.NONE.ordinal, UserStatus.None.ordinal)
assertEquals(ToxUserStatus.AWAY.ordinal, UserStatus.Away.ordinal)
assertEquals(ToxUserStatus.BUSY.ordinal, UserStatus.Busy.ordinal)
}
 
@Test
 
core/src/main/java/ltd/evilcorp/core/db/ContactDao.kt added: 72, removed: 92, total 0
@@ -26,5 +26,5 @@ internal interface ContactDao {
fun loadAll(): LiveData<List<Contact>>
 
@Query("UPDATE contacts SET connection_status = :status, typing = :typing")
fun resetTransientData(status: ConnectionStatus = ConnectionStatus.NONE, typing: Boolean = false)
fun resetTransientData(status: ConnectionStatus = ConnectionStatus.None, typing: Boolean = false)
}
 
core/src/main/java/ltd/evilcorp/core/di/DatabaseModule.kt added: 72, removed: 92, total 0
@@ -11,33 +11,24 @@ import javax.inject.Singleton
class DatabaseModule {
@Singleton
@Provides
fun provideDatabase(application: Application): Database {
return Room.databaseBuilder(application, Database::class.java, "core_db")
fun provideDatabase(application: Application): Database =
Room.databaseBuilder(application, Database::class.java, "core_db")
.fallbackToDestructiveMigration() // TODO(robinlinden): Delete this.
.build()
}
 
@Singleton
@Provides
internal fun provideContactDao(db: Database): ContactDao {
return db.contactDao()
}
internal fun provideContactDao(db: Database): ContactDao = db.contactDao()
 
@Singleton
@Provides
internal fun provideFriendRequestDao(db: Database): FriendRequestDao {
return db.friendRequestDao()
}
internal fun provideFriendRequestDao(db: Database): FriendRequestDao = db.friendRequestDao()
 
@Singleton
@Provides
internal fun provideMessageDao(db: Database): MessageDao {
return db.messageDao()
}
internal fun provideMessageDao(db: Database): MessageDao = db.messageDao()
 
@Singleton
@Provides
internal fun provideUserDao(db: Database): UserDao {
return db.userDao()
}
internal fun provideUserDao(db: Database): UserDao = db.userDao()
}
 
core/src/main/java/ltd/evilcorp/core/repository/ContactRepository.kt added: 72, removed: 92, total 0
@@ -10,31 +10,24 @@ import javax.inject.Singleton
class ContactRepository @Inject internal constructor(
private val contactDao: ContactDao
) {
fun exists(publicKey: String): Boolean {
return contactDao.exists(publicKey)
}
fun exists(publicKey: String): Boolean =
contactDao.exists(publicKey)
 
fun add(contact: Contact) {
fun add(contact: Contact) =
contactDao.save(contact)
}
 
fun update(contact: Contact) {
fun update(contact: Contact) =
contactDao.update(contact)
}
 
fun delete(contact: Contact) {
fun delete(contact: Contact) =
contactDao.delete(contact)
}
 
fun get(publicKey: String): LiveData<Contact> {
return contactDao.load(publicKey)
}
fun get(publicKey: String): LiveData<Contact> =
contactDao.load(publicKey)
 
fun getAll(): LiveData<List<Contact>> {
return contactDao.loadAll()
}
fun getAll(): LiveData<List<Contact>> =
contactDao.loadAll()
 
fun resetTransientData() {
fun resetTransientData() =
contactDao.resetTransientData()
}
}
 
core/src/main/java/ltd/evilcorp/core/repository/FriendRequestRepository.kt added: 72, removed: 92, total 0
@@ -10,15 +10,12 @@ import javax.inject.Singleton
class FriendRequestRepository @Inject internal constructor(
private val friendRequestDao: FriendRequestDao
) {
fun add(friendRequest: FriendRequest) {
fun add(friendRequest: FriendRequest) =
friendRequestDao.save(friendRequest)
}
 
fun delete(friendRequest: FriendRequest) {
fun delete(friendRequest: FriendRequest) =
friendRequestDao.delete(friendRequest)
}
 
fun getAll(): LiveData<List<FriendRequest>> {
return friendRequestDao.loadAll()
}
fun getAll(): LiveData<List<FriendRequest>> =
friendRequestDao.loadAll()
}
 
core/src/main/java/ltd/evilcorp/core/repository/MessageRepository.kt added: 72, removed: 92, total 0
@@ -10,15 +10,12 @@ import javax.inject.Singleton
class MessageRepository @Inject internal constructor(
private val messageDao: MessageDao
) {
fun add(message: Message) {
fun add(message: Message) =
messageDao.save(message)
}
 
fun get(conversation: String): LiveData<List<Message>> {
return messageDao.load(conversation)
}
fun get(conversation: String): LiveData<List<Message>> =
messageDao.load(conversation)
 
fun delete(conversation: String) {
fun delete(conversation: String) =
messageDao.delete(conversation)
}
}
 
core/src/main/java/ltd/evilcorp/core/repository/UserRepository.kt added: 72, removed: 92, total 0
@@ -11,23 +11,18 @@ import javax.inject.Singleton
class UserRepository @Inject internal constructor(
private val userDao: UserDao
) {
fun exists(publicKey: String): Boolean {
return userDao.exists(publicKey)
}
fun exists(publicKey: String): Boolean =
userDao.exists(publicKey)
 
fun add(user: User) {
fun add(user: User) =
userDao.save(user)
}
 
fun update(user: User) {
fun update(user: User) =
userDao.update(user)
}
 
fun updateConnection(publicKey: String, connectionStatus: ConnectionStatus) {
fun get(publicKey: String): LiveData<User> =
userDao.load(publicKey)
 
fun updateConnection(publicKey: String, connectionStatus: ConnectionStatus) =
userDao.updateConnection(publicKey, connectionStatus)
}
 
fun get(publicKey: String): LiveData<User> {
return userDao.load(publicKey)
}
}
 
core/src/main/java/ltd/evilcorp/core/vo/Contact.kt added: 72, removed: 92, total 0
@@ -6,15 +6,15 @@ import androidx.room.PrimaryKey
 
// These enums are 1:1 mappings of the enums in tox4j.
enum class ConnectionStatus {
NONE,
None,
TCP,
UDP,
}
 
enum class UserStatus {
NONE,
AWAY,
BUSY,
None,
Away,
Busy,
}
 
@Entity(tableName = "contacts")
@@ -22,16 +22,22 @@ data class Contact(
@PrimaryKey
@ColumnInfo(name = "public_key")
val publicKey: String,
 
@ColumnInfo(name = "name")
var name: String = "Unknown",
 
@ColumnInfo(name = "status_message")
var statusMessage: String = "...",
 
@ColumnInfo(name = "last_message")
var lastMessage: String = "Never",
 
@ColumnInfo(name = "status")
var status: UserStatus = UserStatus.NONE,
var status: UserStatus = UserStatus.None,
 
@ColumnInfo(name = "connection_status")
var connectionStatus: ConnectionStatus = ConnectionStatus.NONE,
var connectionStatus: ConnectionStatus = ConnectionStatus.None,
 
@ColumnInfo(name = "typing")
var typing: Boolean = false
)
 
core/src/main/java/ltd/evilcorp/core/vo/FriendRequest.kt added: 72, removed: 92, total 0
@@ -9,6 +9,7 @@ data class FriendRequest(
@PrimaryKey
@ColumnInfo(name = "public_key")
val publicKey: String,
 
@ColumnInfo(name = "message")
val message: String = ""
)
 
core/src/main/java/ltd/evilcorp/core/vo/User.kt added: 72, removed: 92, total 0
@@ -17,10 +17,10 @@ data class User(
var statusMessage: String = "Brought to you live, by aTox",
 
@ColumnInfo(name = "status")
var status: UserStatus = UserStatus.NONE,
var status: UserStatus = UserStatus.None,
 
@ColumnInfo(name = "connection_status")
var connectionStatus: ConnectionStatus = ConnectionStatus.NONE,
var connectionStatus: ConnectionStatus = ConnectionStatus.None,
 
@ColumnInfo(name = "password")
var password: String = ""