Skip to content

feat: 방향키 롱프레스 연속 이동 지원#14

Open
verlane wants to merge 1 commit into
AiOO:mainfrom
verlane:feat/arrow-key-repeat
Open

feat: 방향키 롱프레스 연속 이동 지원#14
verlane wants to merge 1 commit into
AiOO:mainfrom
verlane:feat/arrow-key-repeat

Conversation

@verlane

@verlane verlane commented Jun 28, 2026

Copy link
Copy Markdown

@AiOO 안녕하세요. #12 에서 논의한 대로, 편의 기능과 분리해 독립적으로 머지하기 쉬운 코어 단위부터 작게 올립니다. 🙂

개요

방향키(상/하/좌/우)를 길게 누르면 커서가 연속 이동하도록 지원합니다. 기존에 backspace가 길게 누르면 반복 삭제되던 것과 동일한 사용감을 방향키에도 적용했습니다.

변경 사항

  • 방향키 4개를 RepeatKeyTouchListener로 교체해 롱프레스 시 연속 이동
  • RepeatKeyTouchListener가 키를 람다(keyProvider)로 받도록 변경 → 선택 모드(SELECT_ARROW_*)도 누르는 시점에 평가해 대응
  • 고정 키 기존 호출부 호환용 보조 생성자 추가 (backspace 등 그대로 동작)
  • @VolatileTimer? 적용으로 타이머 누수와 스레드 가시성 문제 수정
  • ArrowView.onDetachedFromWindow()에서 방향키·백스페이스 타이머 정리

테스트

  • ./gradlew testDebugUnitTest 통과 (기존 한글 엔진 테스트 회귀 없음)
  • 실기기에서 방향키 롱프레스 연속 이동, 선택 모드 연속 이동, backspace 반복 삭제 동작 확인

UI/터치·타이머에 의존하는 코드라 별도 유닛 테스트는 추가하지 않았습니다 (프로젝트 기존 관례에 맞춤).

- 방향키(상/하/좌/우)를 RepeatKeyTouchListener로 교체해 꾹 누르면 연속 이동
- RepeatKeyTouchListener가 키를 람다(keyProvider)로 받도록 변경해 선택 모드(SELECT_ARROW_*) 대응
- 고정 키 기존 호출부 호환용 보조 생성자 추가
- @volatile 및 Timer? 적용으로 타이머 누수와 스레드 가시성 문제 수정
- ArrowView.onDetachedFromWindow()에서 방향키·백스페이스 타이머 정리
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.

1 participant