1005 Commits
Author SHA1 Message Date
harukin-expo-dev-env ff8313ee42 feat: 音声案内テキストの全角スペースを適切な読点に置換し、発車時刻表の表示を改善 2026-07-30 08:12:22 +00:00
harukin-expo-dev-env 22ce82a799 feat: りっかちゃん音声案内基盤を拡張 2026-07-29 05:31:35 +00:00
harukin-expo-dev-env 37c3a80483 Merge commit '5df00c8b1766969c3c71154733dc4fa098fd8468' into experimental/station-announce-tools 2026-07-15 08:04:41 +00:00
harukin-expo-dev-env 0d5c66c15e fix: 通過駅のフィルタリングロジックを改善し、列車データの取得処理を最適化 2026-07-15 08:04:05 +00:00
harukin-expo-dev-env a89c896012 fix: 列車情報の時間フィルタリングロジックを改善し、再生中の基準時刻を追加 2026-07-14 10:49:31 +00:00
harukin-expo-dev-env b97531d5b4 feat: 列車タイプのラッピング処理を追加し、表示ロジックを改善 2026-07-14 05:57:05 +00:00
harukin-expo-dev-env bb6873eb10 feat: JR-WEST-PLUSフォントの調整と表示領域の正規化を実施 2026-07-14 04:26:38 +00:00
harukin-expo-dev-env 2e6586260c feat: JR-WEST-PLUSフォントを追加し、フォント設定を最適化 2026-07-14 02:51:41 +00:00
harukin-expo-dev-env ca045ca3a3 feat: Implement X投稿向け運行情報画像セット generation in ndView.tsx
- Added functionality to generate a set of images for posting to X (formerly Twitter) with multiple images.
- Introduced a new button for creating X投稿向け画像, which generates up to 4 PNG images.
- The first image serves as a cover with a route map and summary, while subsequent images contain detailed operation information.
- Ensured images maintain a fixed size of 1080 x 1440 px and follow specific naming conventions.
- Implemented error handling for image generation failures and ensured compatibility with existing sharing features.
- Updated UI elements and styles for the new functionality, including button states and layout adjustments.
- Added necessary TypeScript type checks and validation for the new features.
2026-07-12 19:01:51 +00:00
harukin-expo-dev-env 092590bc3d 型定義を改善し、originalStationListの使用を最適化 2026-07-12 15:35:00 +00:00
harukin-expo-dev-env 3ead0cbe10 各種機能の改善と最適化、ナビゲーションの明示的なターゲット設定を追加 2026-07-08 14:39:15 +00:00
harukin-expo-dev-env d4db82cc65 各種データの取得フラグ機能を実装、動作の最適化 2026-07-08 01:39:29 +00:00
harukin-expo-dev-env 9efe9475bf Work around Android user location map crash 2026-07-06 17:44:15 +00:00
harukin-expo-dev-env f8f53b34d5 Tighten hidden tab preload timing 2026-07-06 08:31:08 +00:00
harukin-expo-dev-env 25cefd5c69 Restore Android carousel parallax mode 2026-07-06 06:20:13 +00:00
harukin-expo-dev-env 4bb00abf3a Restore Android carousel and add runtime flags 2026-07-06 05:58:03 +00:00
harukin-expo-dev-env 9cd1b53532 Stabilize positions webview retention on iOS 2026-07-04 16:22:35 +00:00
harukin-expo-dev-env 9ab877f73c Preserve operation webview and quiet noisy defaults 2026-07-04 15:48:37 +00:00
harukin-expo-dev-env 9a9705cf20 Stabilize background WebView retention 2026-07-04 15:45:01 +00:00
harukin-expo-dev-env 93806a274a Adjust WebView remount behavior for background tabs 2026-07-03 10:24:41 +00:00
harukin-expo-dev-env c3a8219270 factor code structure for improved readability and maintainability 2026-07-02 02:37:34 +00:00
harukin-expo-dev-env 34542c35c3 Merge commit 'dd0b4bf312f8f5d255f7cb5a0bc27d8bda43b5e9' into experimental/station-announce-tools 2026-07-01 12:11:25 +00:00
harukin-expo-dev-env bfe572ecfb インポート機能の作成、録画システムのポジション最適化 2026-06-29 16:11:42 +00:00
harukin-expo-dev-env b783157553 Add recording JSON import and export 2026-06-29 14:39:30 +00:00
harukin-expo-dev-env d89e875459 Sentryロギングシステムを追加し、アプリのエラートラッキングを強化 2026-06-29 06:08:29 +00:00
harukin-expo-dev-env fed1044089 Voicepeak APIの案内音声再生タイミングを変更 2026-06-29 04:51:21 +00:00
harukin-expo-dev-env 3c5b403fb5 Merge commit '65f248f658482f2aa64fb0246a33ea7d19c72bad' into experimental/station-announce-tools 2026-06-25 17:47:42 +00:00
harukin-expo-dev-env 3d19b85915 7.0.7 release 2026-06-25 17:36:48 +00:00
harukin-expo-dev-env 957ac9cf01 Hubアイコンを権限餅専用に 2026-06-25 16:20:04 +00:00
harukin-expo-dev-env 11b73b3971 切り替えスイッチを設置 2026-06-25 14:27:24 +00:00
harukin-expo-dev-env 2b0735563b Merge commit '5956d247b1796a4b6d1f907a2f70f2da8e92135a' into feature/train-info-edit 2026-06-23 17:12:37 +00:00
harukin-expo-dev-env 28950019c6 アイコンステータスの表示改善 2026-06-23 17:11:28 +00:00
harukin-expo-dev-env c44bad5f86 unyohubアイコン対応 2026-06-23 16:40:44 +00:00
harukin-expo-dev-env 8d03514fa2 feat: add userscript generator for JR Shikoku operation info
- Implemented a script to generate a Tampermonkey userscript from ndView.tsx.
- Extracted and modified the operation page script body to include necessary postMessage functions.
- Added metadata for the userscript including name, namespace, version, and match URL.
- Ensured compatibility with Tampermonkey's GM_download for image capture.
2026-06-20 06:07:39 +00:00
harukinMBP d27b75cbd3 feat: Voicepeak発車案内機能の強化とネイティブオーディオサポートの追加 2026-06-06 17:47:29 +09:00
harukinMBP 08147b7f26 feat: Voicepeak発車案内機能の追加と設定管理の実装 2026-06-06 17:47:29 +09:00
harukin-expo-dev-env e87a348235 fix: バージョンコードを7.0.6に更新 2026-06-05 12:48:19 +00:00
harukin-expo-dev-env 3b3d5d0ed6 feat: えれサイトの列車情報をグループ化し、表示を改善 2026-06-05 12:31:54 +00:00
harukin-expo-dev-env 868cf4f2f9 feat: 録画の削除機能を追加し、スワイプ操作での削除を実装 2026-06-01 12:11:00 +00:00
harukin-expo-dev-env adec3db4a5 fix: update version code to 7.0.5 in SettingTopPage component 2026-05-20 06:17:56 +00:00
harukin-expo-dev-env c59eac0a82 feat: add button for paper timetable in FixedContentBottom component 2026-05-20 06:02:50 +00:00
harukin-expo-dev-env 17565da7ab Refactor Elesite sorting logic and introduce new utility functions
- Moved the Elesite sorting logic to a new module `elesiteTrainOrder.ts`.
- Created utility functions to infer heading direction and sort Elesite entries by train number.
- Updated `injectJavascriptData` to utilize the new sorting logic and handle station sequences.
- Refactored `useElesite` to use the new sorting utility for improved readability and maintainability.
2026-05-15 17:21:18 +00:00
harukin-expo-dev-env ee4d5c69ce fix: update version code to 7.0.4 2026-05-05 08:12:25 +00:00
harukin-expo-dev-envandCopilot a112f3947b feat: purple reload button when mock API is active
Co-authored-by: Copilot <[email protected]>
2026-05-05 08:06:55 +00:00
harukin-expo-dev-env 2283b71c84 fix: update version code to 7.0.3 2026-05-02 02:59:29 +00:00
harukin-expo-dev-env bd1b1f15c0 fix: update header colors in injected JavaScript for better visibility 2026-05-02 02:52:22 +00:00
harukin-expo-dev-envandCopilot 922add003a fix: sync WebView train display when playback frame changes
The XHR interceptor baked _MOCK_TRAIN at page load time, so seeking or
advancing a playback frame only changed React state but had no effect
on the already-loaded WebView page.

- webviewXhrInterceptor.ts:
  - Expose window.__jrsMockUpdateTrain(newData) from inside the IIFE so
    the _MOCK_TRAIN variable can be updated after page load
  - Add generateMockUpdateScript(trainPositions) helper: calls
    __jrsMockUpdateTrain with fresh data + GetDateTime, then calls
    window.setReload() to trigger the page's own redraw cycle

- WebView.tsx:
  - Import generateMockUpdateScript
  - Add useEffect watching mockTrainPositions (skips first mount since
    beforeContentLoaded already has correct data)
  - When mockApiFeatureEnabled && mockTrainPositions changes, inject the
    update script via webview.current.injectJavaScript()

Result: seeking, prev/next frame, and auto-advance during playback now
immediately update the train position display in the WebView.

Co-authored-by: Copilot <[email protected]>
2026-05-02 01:06:34 +00:00
harukin-expo-dev-envandCopilot 71c5133ad1 feat: add RecordingStatusBar with elapsed timer and keep-awake
- RecordingStatusBar.tsx: shown during recorderState === 'recording'
  - absolute positioned red bar at top of map screen (zIndex 2000)
  - blinking REC dot (700ms interval) + REC label + MM:SS elapsed timer
  - snapshot count display (right side)
  - pointerEvents="none" so it doesn't block map interaction
  - activateKeepAwakeAsync while recording, deactivated on stop/unmount
    (same pattern as FixedPositionBox, tag = 'recording-status-bar')
- Apps.tsx: render <RecordingStatusBar /> alongside PlaybackTimeline

Co-authored-by: Copilot <[email protected]>
2026-05-02 00:59:03 +00:00
harukin-expo-dev-envandCopilot 77f15345e5 fix: crash on playback start + support multiple recordings
Crash fix (React Hooks violation):
- PlaybackTimeline.tsx: move ALL hooks (useRef for PanResponder, useCallback)
  to before the early return; use seekRef/totalRef to share values into
  PanResponder handlers without stale closure issues

Multiple recordings support:
- trainRecorder.ts: redesign to id-based multi-recording system
  - RecordingMeta type for lightweight list (no snapshots)
  - TrainRecording now includes id field
  - saveRecording/loadRecordingById/deleteRecordingById/loadRecordingList
  - migrateOldRecording() migrates old single MOCK_RECORDING key on first launch
- constants/storage.ts: add MOCK_RECORDINGS_INDEX + MOCK_RECORDING_DATA_PREFIX keys
- useTrainMenu: savedRecording → recordingList (RecordingMeta[]) + activeRecording (TrainRecording|null)
  - startPlayback(id) loads full recording on demand
  - deleteRecording(id) deletes by id and refreshes list
  - stopPlayback clears activeRecording
- DataSourceSettings: recording list UI
  - shows all recordings with date/time, snapshot count, duration
  - ▶ play and 削除 buttons per row
  - recording/playing status indicator

Co-authored-by: Copilot <[email protected]>
2026-05-02 00:52:30 +00:00
harukin-expo-dev-envandCopilot 43dcaab643 feat: add playback timeline UI with pause/resume/seek controls
- useTrainMenu: add playbackPaused state, pausePlayback/resumePlayback/seekToSnapshot
  - playback loop now respects playbackPaused (no timer when paused)
  - seekToSnapshot pauses playback and immediately applies snapshot data
  - expose playbackIndex, playbackPaused + new functions in context value
- PlaybackTimeline.tsx: new component shown when recorderState === 'playing'
  - absolute positioned bar at top of map screen (zIndex 2000)
  - prev/play-pause/next frame buttons + skip-to-start/end
  - time display (HH:mm:ss) + snapshot counter (n/total) + total duration
  - PanResponder-based scrubber track with filled progress bar and draggable thumb
- Apps.tsx: render <PlaybackTimeline /> alongside FixedPositionBox
- Remove MockApiToggle.tsx (no longer used since settings-only toggle)

Co-authored-by: Copilot <[email protected]>
2026-05-02 00:42:56 +00:00