Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Without login button #128

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.example.speechbuddy.data.local.models.SymbolMapper
import com.example.speechbuddy.data.remote.MySymbolRemoteSource
import com.example.speechbuddy.data.remote.ProxyImageDownloader
import com.example.speechbuddy.data.remote.RealImageDownloader
import com.example.speechbuddy.data.remote.RemoveImage
import com.example.speechbuddy.data.remote.models.MySymbolDtoMapper
import com.example.speechbuddy.domain.SessionManager
import com.example.speechbuddy.domain.utils.Converters
Expand Down Expand Up @@ -145,7 +146,8 @@ class MySymbolSettingsScreenTest {
symbolMapper = SymbolMapper(),
categoryMapper = CategoryMapper(),
sessionManager = SessionManager(),
responseHandler = ResponseHandler()
responseHandler = ResponseHandler(),
removeImage = RemoveImage(context)
),
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.example.speechbuddy.data.local.models.SymbolMapper
import com.example.speechbuddy.data.remote.MySymbolRemoteSource
import com.example.speechbuddy.data.remote.ProxyImageDownloader
import com.example.speechbuddy.data.remote.RealImageDownloader
import com.example.speechbuddy.data.remote.RemoveImage
import com.example.speechbuddy.data.remote.models.MySymbolDtoMapper
import com.example.speechbuddy.domain.SessionManager
import com.example.speechbuddy.domain.utils.Converters
Expand Down Expand Up @@ -117,7 +118,8 @@ class SymbolCreationScreenTest {
symbolMapper = SymbolMapper(),
categoryMapper = CategoryMapper(),
sessionManager = SessionManager(),
responseHandler = ResponseHandler()
responseHandler = ResponseHandler(),
removeImage = RemoveImage(context)
),
weightTableRepository = WeightTableRepository(
symbolDao = symbolDao,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import com.example.speechbuddy.data.local.models.SymbolMapper
import com.example.speechbuddy.data.remote.MySymbolRemoteSource
import com.example.speechbuddy.data.remote.ProxyImageDownloader
import com.example.speechbuddy.data.remote.RealImageDownloader
import com.example.speechbuddy.data.remote.RemoveImage
import com.example.speechbuddy.data.remote.models.MySymbolDtoMapper
import com.example.speechbuddy.domain.SessionManager
import com.example.speechbuddy.domain.utils.Converters
Expand Down Expand Up @@ -125,7 +126,8 @@ class SymbolSelectionScreenTest {
symbolMapper = SymbolMapper(),
categoryMapper = CategoryMapper(),
sessionManager = SessionManager(),
responseHandler = ResponseHandler()
responseHandler = ResponseHandler(),
removeImage = RemoveImage(context)
),
weightTableRepository = WeightTableRepository(
symbolDao = symbolDao,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ fun LandingScreen(
text = stringResource(id = R.string.start_guest_mode),
onClick = { viewModel.enterGuestMode() }
)
ButtonUi(text = stringResource(id = R.string.do_login), onClick = onLoginClick)
// ButtonUi(text = stringResource(id = R.string.do_login), onClick = onLoginClick)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ fun Copyright(
text = stringResource(R.string.copyright),
style = MaterialTheme.typography.bodyMedium
)

Spacer(modifier = modifier.height(20.dp))

Text(
text = stringResource(R.string.bird_img_copyright),
style = MaterialTheme.typography.bodyMedium
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ import androidx.compose.ui.zIndex
import androidx.hilt.navigation.compose.hiltViewModel
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.request.RequestOptions
import com.example.speechbuddy.R
import com.example.speechbuddy.compose.symbolselection.SymbolSearchTextField
import com.example.speechbuddy.compose.utils.NoRippleInteractionSource
Expand Down Expand Up @@ -264,7 +266,14 @@ fun MySymbolUi(
model = filepath.plus("symbol_${symbol.id}.png"),
contentDescription = symbol.text,
modifier = Modifier.height(90.dp),
contentScale = ContentScale.FillHeight
contentScale = ContentScale.FillHeight,
requestBuilderTransform = { requestBuilder ->
requestBuilder.apply(
RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
)
}
)

Box(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.bumptech.glide.integration.compose.ExperimentalGlideComposeApi
import com.bumptech.glide.integration.compose.GlideImage
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.request.RequestOptions
import com.example.speechbuddy.R
import com.example.speechbuddy.domain.models.Symbol
import com.example.speechbuddy.utils.Constants.Companion.DEFAULT_SYMBOL_COUNT
Expand Down Expand Up @@ -98,7 +100,14 @@ fun SymbolUi(
model = filepath.plus("symbol_${symbol.id}.png"),
contentDescription = symbol.text,
modifier = Modifier.height(90.dp),
contentScale = ContentScale.FillHeight
contentScale = ContentScale.FillHeight,
requestBuilderTransform = { requestBuilder ->
requestBuilder.apply(
RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
)
}
)

Box(
Expand All @@ -119,4 +128,4 @@ fun SymbolUi(
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.example.speechbuddy.data.remote


import android.content.Context
import com.example.speechbuddy.domain.models.Symbol
import kotlinx.coroutines.runBlocking
import javax.inject.Inject
import javax.inject.Singleton

@Singleton
class RemoveImage @Inject constructor(
private val context: Context
) {
fun checkImage(symbolList: List<Symbol>): List<String> {
val internalDir = context.filesDir
val removeList = mutableListOf<String>()
for (symbol in symbolList.drop(499)) { // compare after 500
internalDir.listFiles()?.forEach { file ->
// Check if the file matches your criteria
if (file.name == "symbol_${symbol.id}.png") {
removeList.add(file.name)
}
}
}
return removeList
}

fun removeImage(filename: String) {
runBlocking {
context.deleteFile(filename)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.example.speechbuddy.di

import android.content.Context
import com.example.speechbuddy.data.remote.ImageDownloader
import com.example.speechbuddy.data.remote.ProxyImageDownloader
import com.example.speechbuddy.data.remote.RealImageDownloader
import com.example.speechbuddy.data.remote.RemoveImage
import com.example.speechbuddy.service.BackupService
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton


@Module
@InstallIn(SingletonComponent::class)
class RemoveImageModule {
@Singleton
@Provides
fun provideRemoveImage(
@ApplicationContext context: Context,
): RemoveImage {
return RemoveImage(context)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.example.speechbuddy.data.local.models.SymbolEntity
import com.example.speechbuddy.data.local.models.SymbolMapper
import com.example.speechbuddy.data.remote.MySymbolRemoteSource
import com.example.speechbuddy.data.remote.ProxyImageDownloader
import com.example.speechbuddy.data.remote.RemoveImage
import com.example.speechbuddy.data.remote.models.MySymbolDtoMapper
import com.example.speechbuddy.domain.SessionManager
import com.example.speechbuddy.domain.models.Category
Expand Down Expand Up @@ -39,13 +40,29 @@ class SymbolRepository @Inject constructor(
private val sessionManager: SessionManager,
private val symbolMapper: SymbolMapper,
private val categoryMapper: CategoryMapper,
private val proxyImageDownloader: ProxyImageDownloader
private val proxyImageDownloader: ProxyImageDownloader,
private val removeImage: RemoveImage
) {

fun checkImages() {
runBlocking { proxyImageDownloader.checkImage(getAllSymbols().first()) }
}

fun removeImages() {
runBlocking {
val removeList = removeImage.checkImage(getAllSymbols().first())
for (removeItem in removeList) {
removeImage.removeImage(removeItem)
}
}
}

fun removeSelectedImage(symbol: Symbol) {
runBlocking {
removeImage.removeImage("symbol_${symbol.id}.png")
}
}

fun getSymbols(query: String) =
if (query.isBlank()) getAllSymbols()
else symbolDao.getSymbolsByQuery(query).map { symbolEntities ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class AccountSettingsViewModel @Inject internal constructor(
private val settingsRepository: SettingsRepository,
private val weightTableRepository: WeightTableRepository,
private val symbolRepository: SymbolRepository,
private val userRepository: UserRepository
private val userRepository: UserRepository,
) : ViewModel() {

private val _uiState = MutableStateFlow(AccountSettingsUiState())
Expand Down Expand Up @@ -72,6 +72,7 @@ class AccountSettingsViewModel @Inject internal constructor(
ResponseCode.SUCCESS.value -> {
settingsRepository.resetSettings()
weightTableRepository.resetAllWeightRows()
symbolRepository.removeImages()
symbolRepository.resetSymbolsAndFavorites()
userRepository.deleteUserInfo()
hideAlert()
Expand All @@ -93,6 +94,7 @@ class AccountSettingsViewModel @Inject internal constructor(
ResponseCode.SUCCESS.value -> {
settingsRepository.resetSettings()
weightTableRepository.resetAllWeightRows()
symbolRepository.removeImages()
symbolRepository.resetSymbolsAndFavorites()
userRepository.deleteUserInfo()
hideAlert()
Expand All @@ -110,6 +112,7 @@ class AccountSettingsViewModel @Inject internal constructor(
viewModelScope.launch {
settingsRepository.resetSettings()
weightTableRepository.resetAllWeightRows()
symbolRepository.removeImages()
symbolRepository.resetSymbolsAndFavorites()
userRepository.deleteUserInfo()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ class MySymbolSettingsViewModel @Inject internal constructor(
val checkedSymbols = _checkedSymbols.toList()
for (symbol in checkedSymbols) {
symbolRepository.deleteSymbol(symbol)
symbolRepository.removeSelectedImage(symbol)
weightTableRepository.updateWeightTableForDeletedSymbol(symbol)
}
_checkedSymbols.clear()
Expand Down
1 change: 1 addition & 0 deletions frontend/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@
<!-- Copyright Info -->
<string name="copyright_info">저작권 정보</string>
<string name="copyright">본 서비스의 그림상징은 \'한국형 보완대체의사소통용 기본상징 체계집\'의 일부로 박은혜, 김영태(이화여자대학교), 홍기형(성신여자대학교)에게 저작권이 있습니다.\n자료의 무단 사용 및 2차 가공, 배포, 상업적 용도로 사용하는 것을 금합니다.</string>
<string name="bird_img_copyright">앱에서 사용된 새 아이콘은 Flaticon에서 Mihimihi가 제작했습니다</string>

<!-- Guide Screen -->
<string name="guide_screen_bottom_navigation_bar">하단 아이콘을 눌러 원하는 기능을 이용하세요\n① 상징으로 말하기\n② 음성으로 말하기\n③ 새 상징 만들기\n④ 설정</string>
Expand Down