Skip to content

Conversation

@Ethran
Copy link
Owner

@Ethran Ethran commented Feb 9, 2026

No description provided.

@Ethran Ethran changed the title fixed selection and added setting to disable QuickNav fixed selection and added setting to disable QuickNav + separated setting into multiple files Feb 9, 2026
@Ethran Ethran requested a review from Copilot February 9, 2026 22:58
@Ethran Ethran linked an issue Feb 9, 2026 that may be closed by this pull request
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the Settings screen into separate composables/files, adds a setting to disable the three-finger QuickNav gesture, and extracts selection visual rendering into a dedicated composable to improve selection handling/render layering.

Changes:

  • Added an enableQuickNav setting (UI toggle + runtime gate) for the three-finger QuickNav gesture.
  • Split Settings tab contents into separate component files and extracted shared Settings UI elements.
  • Moved selection visual cue rendering into a standalone SelectionVisualCues composable.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
app/src/main/res/values/strings.xml Adds new user-facing string for QuickNav enable setting.
app/src/main/res/values-pl/strings.xml Adds Polish translation for the new QuickNav enable setting label.
app/src/main/java/com/ethran/notable/ui/views/Settings.kt Wires Settings tabs to new separated composables.
app/src/main/java/com/ethran/notable/ui/components/SettingsUIElements.kt Introduces shared UI rows/dividers for Settings pages.
app/src/main/java/com/ethran/notable/ui/components/GesturesSettings.kt Implements gesture settings UI and adds QuickNav enable toggle.
app/src/main/java/com/ethran/notable/ui/components/GeneralSettings.kt Moves general settings UI into its own file.
app/src/main/java/com/ethran/notable/ui/components/DebugSettings.kt Moves debug settings UI into its own file.
app/src/main/java/com/ethran/notable/ui/Router.kt Gates three-finger QuickNav gesture detection based on new setting.
app/src/main/java/com/ethran/notable/editor/ui/selectionVisualCues.kt Adds a dedicated composable for selection overlay rendering.
app/src/main/java/com/ethran/notable/editor/ui/EditorGestureReceiver.kt Uses SelectionVisualCues instead of inline selection drawing.
app/src/main/java/com/ethran/notable/data/datastore/AppSettings.kt Adds enableQuickNav to AppSettings and reorganizes fields by section.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +91 to +94
value = GlobalAppSettings.current.enableQuickNav,
onToggle = { isChecked ->
kv.setAppSettings( GlobalAppSettings.current.copy(enableQuickNav = isChecked))
})
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s an extra space after setAppSettings( which is inconsistent with Kotlin formatting used elsewhere in the codebase; please run formatting / remove the stray space.

Copilot uses AI. Check for mistakes.
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.MaterialTheme
import androidx.compose.material.TabRowDefaults.Divider
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SettingsDivider imports TabRowDefaults.Divider, which is intended for TabRow defaults and is easy to confuse with the standard Material Divider. Prefer importing/using androidx.compose.material.Divider here for clarity since this divider is not specific to a TabRow.

Suggested change
import androidx.compose.material.TabRowDefaults.Divider
import androidx.compose.material.Divider

Copilot uses AI. Check for mistakes.
Comment on lines 27 to 33
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.ethran.notable.data.datastore.AppSettings
import com.ethran.notable.data.datastore.GlobalAppSettings
import com.ethran.notable.editor.canvas.CanvasEventBus
import com.ethran.notable.editor.EditorControlTower
import com.ethran.notable.editor.canvas.CanvasEventBus
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zIndex is imported but not used in this file after moving the selection rendering into SelectionVisualCues. Please remove the unused import (and any other now-unused imports) to avoid lint/CI failures in setups that treat unused imports as errors.

Copilot uses AI. Check for mistakes.
) {
SelectorRow(
label = title, options = listOf(
null to "None",
Copy link

Copilot AI Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The selector options include a hardcoded "None" label. Since the rest of the gesture action labels are localized via stringResource, this should also be a string resource so it can be translated consistently.

Suggested change
null to "None",
null to stringResource(R.string.gesture_action_none),

Copilot uses AI. Check for mistakes.
Ethran and others added 2 commits February 10, 2026 00:09
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@Ethran Ethran merged commit 428251c into main Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Option to disable QuickNav

1 participant