Skip to main content

Current Limitations

AnkiDroid Companion is designed to be a lightweight, minimalistic extension for AnkiDroid. While it provides convenient notification-based card practice, there are some current limitations to be aware of:

Minimalistic Card Support

The app currently only supports simple cards with small text that doesn’t include complex HTML formatting.
AnkiDroid Companion strips HTML tags from card content to display them as plain text in notifications. While basic HTML is converted to text (see Notifications.kt:28-40), complex scenarios involving advanced formatting, images, or media are not supported. Technical Details:
  • Card questions and answers are processed using Html.fromHtml() to strip HTML tags
  • Only the resulting plain text is displayed in notifications
  • Notification views have limited space and formatting capabilities
Workaround: For cards with complex content, you’ll need to open AnkiDroid directly to study those decks.

No Card Skipping

There is currently no way to skip a card if you want to come back to it later.
The current notification interface displays one card at a time with answer buttons (Again, Hard, Good, Easy), but there’s no option to skip a card and move to the next one. This can be inconvenient if you encounter a card you’d prefer to postpone. Why: The skip functionality wasn’t included in the initial design and would require additional UI buttons and AnkiDroid API integration.

Fixed 8-Hour Study Interval

After completing a deck, the app waits exactly 8 hours before checking for new cards to study.
When you finish practicing a deck, AnkiDroid Companion’s background worker will automatically check for new cards after 8 hours. This interval is currently hardcoded and cannot be customized. Current Behavior:
  • Deck completion triggers a periodic worker (see PeriodicWorker.kt:13-54)
  • The worker checks every 8 hours for new scheduled cards
  • If new cards are found, a notification is automatically displayed
Planned Improvement: A settings option to customize this interval is planned for future releases.

Embedded Strings

Many UI strings are currently hardcoded in the app instead of being in resource files.
The app contains numerous embedded strings directly in the code rather than in Android’s strings.xml resource file. This makes localization and text maintenance more difficult. Examples from the code:
  • "Congrats! You've finished the deck!" (Notifications.kt:64)
  • "New notifications will arrive when it's time to study!" (Notifications.kt:69)
  • "Anki • $deckName" (Notifications.kt:43)
This is a known technical debt item that will be addressed in future updates.

Planned Improvements

The following improvements are being considered for future releases:
  1. Customizable Study Intervals - Allow users to configure how long to wait before checking for new cards
  2. Card Skip Functionality - Add a “Skip” button to postpone cards
  3. Better HTML Support - Improved rendering of formatted cards in notifications
  4. String Resources - Move all hardcoded strings to proper Android resource files
  5. Widgets - Add home screen and lock screen widgets for even quicker access

Contributing

If you’re interested in helping address any of these limitations, contributions are welcome! Check out the GitHub repository to open issues or submit pull requests.

Build docs developers (and LLMs) love