Skip to content

Latest commit

 

History

History
147 lines (101 loc) · 6.43 KB

README.md

File metadata and controls

147 lines (101 loc) · 6.43 KB

GSoC logo

Sanjay Sargam

Tablet & Chromebook UI - Google Summer of Code 2024

GitHub | Twitter | LinkedIn


🧑‍🏫 Mentors


📚 Project Overview

AnkiDroid is an Android app for Anki, a powerful flashcards application that aids in learning and memorizing various topics.

🎯 Project Goal

My work focuses on enhancing the user experience of AnkiDroid on larger devices like tablets and Chromebooks. The project aims to improve usability, readability, and overall aesthetics, ensuring AnkiDroid remains intuitive and efficient across various devices. Specific tasks include converting the DeckPicker screen to feature a unified menu, highlighting selected preference settings, integrating the NoteEditor into the CardBrowser, implementing a Previewer within the CardTemplateEditor, adding mouse support, and introducing keyboard shortcuts for efficient navigation and interaction. Throughout the proposal, a strong emphasis is placed on user-centric design and usability enhancements to elevate the overall AnkiDroid experience on tablets and Chromebooks.


🚀 Project Achievements

1. Convert DeckPicker Screen to One Menu

Unified the DeckPicker screen's menu for a streamlined user experience.

Before:

DeckPicker Screen Before

After:

DeckPicker Screen After

2. Highlight Selected Preference Setting

Improved user experience by highlighting the selected preference setting.

Before:

Highlighted Preference Setting

After:

Highlighted Preference Setting

3. Add TemplatePreviewerFragment to CardTemplateEditor

Integrated a TemplatePreviewerFragment into the CardTemplateEditor for real-time preview of card templates, enhancing usability and efficiency.

Before:

Card Template Editor

After:

Card Template Editor

4. Add NoteEditor to CardBrowser

Incorporated the NoteEditor directly into the CardBrowser, making note editing more seamless.

Before:

Card Browser with NoteEditor

After:

Card Browser with NoteEditor

5. Mouse Support (Right-Click)

Added right-click functionality to areas with long-click listeners, enhancing user interactions on devices that support right-click actions.

6. Drag and Drop in NoteEditor and DeckPicker

  • NoteEditor: Expanded the existing media drop functionality to support video and audio files, in addition to photos.
  • DeckPicker: Enabled direct file import by dropping files into DeckPicker.

7. Keyboard Shortcuts

Introduced a wide range of keyboard shortcuts for faster navigation and operations. Also, added a dedicated dialog to display all available keyboard shortcuts.

Keyboard Shortcuts Dialog


📂 Pull Requests

Here's a list of the pull requests I created during GSoC 2024:

  1. Highlight selected preference setting
  2. Refactor DeckPicker to Single Menu Layout
  3. Add TemplatePreviewerFragment to CardTemplateEditor
  4. Remove back button if fragmented
  5. Refactor: Convert NoteEditor from Activity to Fragment
  6. DeckPicker: Implementation of Keyboard Shortcuts
  7. Add Right-Click Support to Long Click Listeners
  8. CardTemplateEditor: Implementation of Keyboard Shortcuts
  9. Enhancement of Media Drop Feature in NoteEditor
  10. Refactor: Consolidate media paths into a single variable
  11. Add NoteEditor to CardBrowser
  12. Rename pager
  13. CardBrowser: Implementation of Keyboard Shortcuts
  14. CardBrowser: Shortcut E
  15. Implement Keyboard Shortcuts Helper
  16. Enhancement of Files Drop Feature in DeckPicker

🏆 Outcome

This project successfully enhanced the AnkiDroid app, particularly for tablet and Chromebook users, by offering a more polished and user-friendly experience. The new features and improvements are expected to significantly improve productivity and accessibility for users on larger devices.


🔮 Future Work

I see potential for further refinements in keyboard and mouse interactions, along with additional optimizations for larger screens. I also plan to continue contributing to the AnkiDroid project, addressing community feedback and implementing new features.


Thank you for following my GSoC journey! Feel free to connect with me on GitHub, Twitter, or LinkedIn.