-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Feature]#72 홈 화면의 복사한 링크 저장하기 기능 구현 #75
Changes from 4 commits
e3f45dd
c59582f
64f5f09
8785dcd
cb98dc8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package pokitmons.pokit.home.model | ||
|
||
import kotlinx.coroutines.CoroutineScope | ||
import kotlinx.coroutines.Dispatchers | ||
import kotlinx.coroutines.launch | ||
import pokitmons.pokit.core.feature.flow.EventFlow | ||
import pokitmons.pokit.core.feature.flow.MutableEventFlow | ||
import pokitmons.pokit.core.feature.flow.asEventFlow | ||
import java.util.Locale | ||
import java.util.regex.Pattern | ||
|
||
object ClipboardLinkManager { | ||
private val _clipboardLinkUrl: MutableEventFlow<String> = MutableEventFlow() | ||
val clipboardLinkUrl: EventFlow<String> = _clipboardLinkUrl.asEventFlow() | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. EventFlow가 뭔가 전역적으로 처리하는 그런 기능인가여? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 내부적으로 SharedFlow를 가지고 있는 Flow 구현체인데, SharedFlow 대신 EventFlow를 쓴 이유는 복사한 링크 이벤트에 대해서 막연하게 중복으로 이벤트가 collect되면 안되다는 생각이었는데, 다시 살펴보니까 이 부분에서는 EventFlow 말고 SharedFlow 사용해도 문제 없을 둣! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 음 그러면 StateFlow도 사용해도 될 것 같은데, Flow마다 처리 방법을 좀 더 봐야겠담 |
||
|
||
fun setClipboardLink(linkUrl: String) { | ||
CoroutineScope(Dispatchers.IO).launch { | ||
_clipboardLinkUrl.emit(linkUrl) | ||
} | ||
} | ||
|
||
fun checkUrlIsValid(url: String): Boolean { | ||
val urlPattern = ( | ||
"^(http://|https://)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}" + | ||
"(:[0-9]{1,5})?(/.*)?$" | ||
) | ||
|
||
val pattern = Pattern.compile(urlPattern) | ||
val matcher = pattern.matcher(url.lowercase(Locale.getDefault())) | ||
|
||
return matcher.matches() | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. url 확인정도면 정규식 말구 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 부분은 그냥 url이니까 정규식 사용해야지~ 하고 크게 고민없이 작성했는데 "http_asdfjklasjdklfjsalkdf" 이런 문자 복사하고 들어오면 이것도 링크로 인식할 수는 있겠지만, |
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
package pokitmons.pokit.home.model | ||
|
||
data class LinkAddToastMessage(val linkUrl: String) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 현재 클립된 데이터를 지우는 이유가 있나영?.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
클립보드 복사 -> 홈 화면 진입 -> 링크 추가 화면 진입 및 링크 추가 -> 다시 홈 화면 복귀 -> 홈 버튼 누른 후 앱 재진입
위 케이스에서 이미 저장한 클립 데이터가 남아있어서 다시 toast 메세지가 표시되는 현상이 있었어!
그래서 복사된 링크를 한번 설정하면 해당 링크로는 다시 toast 메세지가 발생하지 않게끔 하려는게 주 목적이었어
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아하 요건 그러면 파이 이상에서만 발생하는 건가?.?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
어 그러네 파이 미만부분이 아예 처리가 안되어있었구나
수정완!