Highlighter is an Android application for gathering texts (referenced in the application context as "quotes") from other applications (for example, a sentence from an article read on a website, in the browser), attaching them labels, and saving them locally or in Notion.
The application has the following functionalities:
- saving quotes from other application via the context menu;
- edit of the details of the quote;
- filtering of the quotes by the content or by labels;
- deletion of quotes;
- upload/download of quotes to/from a collection in Notion;
- statistics activity with details about quotes count, the ranking of the used labels, and chart with quotes count per day;
- settings activity;
- activity with details about the application;
- snackbar usage for new events (successes and errors); and
- dark mode.
Observation: As the official Notion API was not integrated, the Android application requires a Python 3 proxy server that creates the requests to Notion.
Home Activity | Search Functionality | Quote View Activity | Statistics Activity | Settings Activity | About Activity | Dark Mode |
---|---|---|---|---|---|---|
- Duplicate the Notion template that will store the quotes
- Set up
ngrok
by following the installation guide - Set up the proxy server
cd api
pip3 install -r requirements.txt
python3 api.py
ngrok http 5000
- Open the Android Studio project
- Create a
secrets.properties
file in the build file with aMAPS_API_KEY
key storing the Google Maps API key retrieved from Google Cloud Platform - Build the project and deploy the application to your Android phone
- Replacement of the unofficial Notion API with the official one, taking out the need for a proxy server
- Testing and refactoring of the user interface to imply responsiveness on all devices
- Replacement of the
AsyncTalk
class, deprecated in API level 30 - Removal of the Google Maps component
Name | Description | Link |
---|---|---|
notion-py | unofficial Python API client for Notion | repository |
Material Design | Material Components for Android | website |
MPAndroidChart | chart library for Android | repository |
Maps SDK | Google Maps SDK for Android | website |
Android - Font Awesome Icon | Android library for Font Awesome icons | repository |
Room | Android persistence library on top of SQLite database | website |
Jackson | JSON parser library for Java | repository |
FlatIcon | icons database | website |