mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 06:15:12 +00:00
test dependencies
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
d3ff2e9ee9
commit
5d73b65a31
@ -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) {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -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">
|
||||
|
Loading…
Reference in New Issue
Block a user