test dependencies

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-07-16 22:21:33 +02:00 committed by Marcel Hibbe
parent d3ff2e9ee9
commit 5d73b65a31
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
6 changed files with 90 additions and 21 deletions

View File

@ -333,6 +333,11 @@ dependencies {
implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation(platform("androidx.compose:compose-bom:2024.06.00"))
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
}
tasks.register('installGitHooks', Copy) {

View File

@ -52,6 +52,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -61,13 +62,12 @@ import androidx.compose.ui.unit.sp
import androidx.lifecycle.ViewModelProvider
import autodagger.AutoInjector
import coil.compose.AsyncImage
import coil.request.ImageRequest
import coil.transform.CircleCropTransformation
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
import com.nextcloud.talk.openconversations.ListOpenConversationsActivity
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.bundle.BundleKeys
import javax.inject.Inject
@ -78,6 +78,9 @@ class ContactsActivityCompose : ComponentActivity() {
lateinit var viewModelFactory: ViewModelProvider.Factory
private lateinit var contactsViewModel: ContactsViewModel
@Inject
lateinit var viewThemeUtils: ViewThemeUtils
@SuppressLint("UnrememberedMutableState")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -85,7 +88,9 @@ class ContactsActivityCompose : ComponentActivity() {
contactsViewModel = ViewModelProvider(this, viewModelFactory)[ContactsViewModel::class.java]
setContent {
MaterialTheme {
MaterialTheme(
colorScheme = viewThemeUtils.getColorScheme(this)
) {
val context = LocalContext.current
Scaffold(
topBar = {
@ -205,15 +210,10 @@ fun ContactItemRow(contact: AutocompleteUser, contactsViewModel: ContactsViewMod
verticalAlignment = Alignment.CenterVertically
) {
val imageUri = contact.id?.let { contactsViewModel.getImageUri(it, true) }
val imageRequest = ImageRequest.Builder(context)
.data(imageUri)
.transformations(CircleCropTransformation())
.error(R.drawable.account_circle_96dp)
.placeholder(R.drawable.account_circle_96dp)
.build()
val errorPlaceholderImage: Int = R.drawable.account_circle_96dp
val loadedImage = loadImage(imageUri, context, errorPlaceholderImage)
AsyncImage(
model = imageRequest,
model = loadedImage,
contentDescription = stringResource(R.string.user_avatar),
modifier = Modifier.size(width = 45.dp, height = 45.dp)
)
@ -288,7 +288,8 @@ fun ConversationCreationOptions(context: Context) {
.height(40.dp)
.padding(8.dp),
painter = painterResource(R.drawable.baseline_chat_bubble_outline_24),
contentDescription = stringResource(R.string.new_conversation_creation_icon)
contentDescription = stringResource(R.string.new_conversation_creation_icon),
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onSurface)
)
Text(
modifier = Modifier
@ -296,7 +297,8 @@ fun ConversationCreationOptions(context: Context) {
.wrapContentHeight(),
text = stringResource(R.string.nc_create_new_conversation),
maxLines = 1,
fontSize = 16.sp
fontSize = 16.sp,
color = MaterialTheme.colorScheme.onSurface
)
}
Row(
@ -314,7 +316,8 @@ fun ConversationCreationOptions(context: Context) {
.height(40.dp)
.padding(8.dp),
painter = painterResource(R.drawable.baseline_format_list_bulleted_24),
contentDescription = stringResource(R.string.join_open_conversations_icon)
contentDescription = stringResource(R.string.join_open_conversations_icon),
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onSurface)
)
Text(
modifier = Modifier

View File

@ -0,0 +1,24 @@
/*
* Nextcloud Talk - Android Client
*
* SPDX-FileCopyrightText: 2024 Sowjanya Kota <sowjanya.kch@email.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.nextcloud.talk.contacts
import android.content.Context
import androidx.compose.runtime.Composable
import coil.request.ImageRequest
import coil.transform.CircleCropTransformation
@Composable
fun loadImage(imageUri: String?, context: Context, errorPlaceholderImage: Int): ImageRequest {
val imageRequest = ImageRequest.Builder(context)
.data(imageUri)
.transformations(CircleCropTransformation())
.error(errorPlaceholderImage)
.placeholder(errorPlaceholderImage)
.build()
return imageRequest
}

View File

@ -0,0 +1,35 @@
/*
* Nextcloud Talk - Android Client
*
* SPDX-FileCopyrightText: 2024 Your Name <your@email.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
package com.nextcloud.talk.contacts
import android.app.Application
import coil.ImageLoader
import coil.ImageLoaderFactory
import coil.disk.DiskCache
import coil.memory.MemoryCache
import coil.util.DebugLogger
class MyApplication : Application(), ImageLoaderFactory {
override fun newImageLoader(): ImageLoader {
val imageLoader = ImageLoader.Builder(this)
.memoryCache {
MemoryCache.Builder(this)
.maxSizePercent(0.1)
.build()
}
.diskCache {
DiskCache.Builder()
.maxSizePercent(0.02)
.directory(cacheDir)
.build()
}
.logger(DebugLogger())
.build()
return imageLoader
}
}

View File

@ -17,6 +17,7 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
@ -38,23 +39,24 @@ fun DisplaySearch(text: String, onTextChange: (String) -> Unit, contactsViewMode
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.background(Color.White)
) {
val keyboardController = LocalSoftwareKeyboardController.current
TextField(
modifier = Modifier
.fillMaxWidth(),
.fillMaxWidth()
.background(MaterialTheme.colorScheme.surface),
value = text,
onValueChange = { onTextChange(it) },
placeholder = {
Text(
text = stringResource(R.string.nc_search),
color = Color.DarkGray
color = MaterialTheme.colorScheme.onSurfaceVariant
)
},
textStyle = TextStyle(
color = Color.Black,
color = MaterialTheme.colorScheme.onSurface,
fontSize = 16.sp
),
singleLine = true,
@ -68,7 +70,7 @@ fun DisplaySearch(text: String, onTextChange: (String) -> Unit, contactsViewMode
Icon(
imageVector = Icons.AutoMirrored.Default.ArrowBack,
contentDescription = stringResource(R.string.back_button),
tint = Color.Black
tint = MaterialTheme.colorScheme.onSurface
)
}
},
@ -83,7 +85,7 @@ fun DisplaySearch(text: String, onTextChange: (String) -> Unit, contactsViewMode
Icon(
imageVector = Icons.Default.Close,
contentDescription = stringResource(R.string.close_icon),
tint = Color.Black
tint = MaterialTheme.colorScheme.onSurface
)
}
}

View File

@ -5982,7 +5982,7 @@
<ignored-keys>
<ignored-key id="DB0597E3144342256BC81E3EC727D053C4481CF5" reason="PGP verification failed"/>
</ignored-keys>
<sha256 value="8359ad51e0476c8e0df7188a43f16d49733c4a428fb45e99794b783f01b97520" origin="Generated by Gradle" reason="PGP signature verification failed!"/>
<sha256 value="9a4f5e5674366c156c90391662f03ed7c5971d6aa63832df74a271da6ff82e96" origin="Generated by Gradle" reason="PGP signature verification failed!"/>
</artifact>
</component>
<component group="org.xerial" name="sqlite-jdbc" version="3.41.2.2">