-
Notifications
You must be signed in to change notification settings - Fork 1
SCRUM-270 SCRUM-271 feat: add terms webview #43
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
Merged
gdaegeun539
merged 14 commits into
project-lyrics:develop
from
gdaegeun539:feature/SCRUM-270-SCRUM-271
May 5, 2026
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
262f9f2
design: Add refresh icon
gdaegeun539 358ae8a
feat: add terms webview screen
gdaegeun539 c06adbf
chore: optimize import
gdaegeun539 8b1fea0
fix: Restore Notion WebView content
gdaegeun539 a8a8bdb
fix: Stabilize terms WebView rendering
gdaegeun539 28b161c
refactor: Rename setting's link enum
gdaegeun539 a799e03
design: rename ui text at faq menu
gdaegeun539 a8e55df
fix: Configure WebView darkening support
gdaegeun539 04f4d64
feat: change faq link
gdaegeun539 baacca4
chore: remove comment
gdaegeun539 8ef07ab
fix: Keep WebView navigation in app
gdaegeun539 585e5e2
design: modify webview refresh icon a11y text
gdaegeun539 e9db31a
refactor: Extract external browser launcher
gdaegeun539 e5c54e1
fix: Avoid WebView URL double decoding
gdaegeun539 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
app/src/main/java/com/lyrics/feelin/presentation/util/ExternalBrowserLauncher.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| package com.lyrics.feelin.presentation.util | ||
|
|
||
| import android.content.ActivityNotFoundException | ||
| import android.content.Context | ||
| import android.content.Intent | ||
| import android.util.Log | ||
| import android.widget.Toast | ||
| import androidx.core.net.toUri | ||
|
|
||
| private const val EXTERNAL_BROWSER_LAUNCHER_TAG = "ExternalBrowserLauncher" | ||
|
|
||
| fun Context.openExternalBrowser(url: String) { | ||
| runCatching { | ||
| startActivity(Intent(Intent.ACTION_VIEW, url.toUri())) | ||
| }.onFailure { throwable -> | ||
| if (throwable is ActivityNotFoundException) { | ||
| Log.w(EXTERNAL_BROWSER_LAUNCHER_TAG, "No browser found for url: $url", throwable) | ||
| Toast.makeText(this, "링크를 띄울 웹 브라우저를 설치해주세요.", Toast.LENGTH_SHORT).show() | ||
| } else { | ||
| throw throwable | ||
| } | ||
| } | ||
| } |
28 changes: 28 additions & 0 deletions
28
app/src/main/java/com/lyrics/feelin/presentation/view/mypage/setting/SettingInfoLink.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| package com.lyrics.feelin.presentation.view.mypage.setting | ||
|
|
||
| enum class SettingInfoLink( | ||
|
Member
Author
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. 도메인 요소로 보기는 뭐하고, 화면에 표시하는 요소는 맞아서 같은 디렉토리에 프레젠테이션 모델로 외부 링크 데이터를 두었어요. |
||
| val title: String, | ||
| val url: String, | ||
| val opensInternally: Boolean, | ||
| ) { | ||
| SERVICE_USAGE( | ||
| title = "서비스 이용 약관", | ||
| url = "https://zircon-taste-62f.notion.site/Feelin-424aa52fb951444fa95f3966672ec670", | ||
| opensInternally = true, | ||
| ), | ||
| PERSONAL_INFO( | ||
| title = "개인정보처리방침", | ||
| url = "https://zircon-taste-62f.notion.site/Feelin-2f586ef1b7c947d89ad8cac8a83b61d1", | ||
| opensInternally = true, | ||
| ), | ||
| FAQ( | ||
| title = "자주 묻는 질문", | ||
| url = "https://noon-spaghetti-8cf.notion.site/357546f268d580d18a56ded47121c7ab", | ||
| opensInternally = true | ||
| ), | ||
| SERVICE_INQUIRY( | ||
| title = "서비스 문의하기", | ||
| url = "https://docs.google.com/forms/d/1ottTpPuoiDfQnZaMYwwi75WXdEInq6KHN8jY4L9Qc00/viewform", | ||
| opensInternally = false, | ||
| ) | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Empty-URL fallback will silently load a blank WebView.
defaultValue = ""means any navigation to this destination without the URL argument (e.g., malformed deep link) givesInternalWebViewScreenan empty string, resulting in a blank, error-free WebView. Prefer explicit null handling so the screen can bail out early or show an error.🛡️ Proposed fix
navArgument(FeelinDestination.InternalWebView.UrlArgument) { type = NavType.StringType - defaultValue = "" + nullable = true + defaultValue = null }Then guard at the call site:
🤖 Prompt for AI Agents