Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add api key screen #98

Merged
merged 6 commits into from
Jan 10, 2025
Merged

Add api key screen #98

merged 6 commits into from
Jan 10, 2025

Conversation

hossain-khan
Copy link
Owner

@hossain-khan hossain-khan commented Jan 10, 2025

Fixes #90

This pull request includes several changes to the weather alert application, focusing on adding new API functionality, improving user preferences management, and enhancing the user interface for API key handling. The most important changes include adding a new API endpoint for weather overview, updating the preferences manager to handle user-provided API keys, and modifying the user interface to prompt users to add their own API keys when necessary.

API Enhancements:

  • Added WeatherOverview data class and a new API endpoint getWeatherOverview to validate API keys. (app/src/main/java/dev/hossain/weatheralert/api/ApiModel.kt, app/src/main/java/dev/hossain/weatheralert/api/WeatherApi.kt) [1] [2]

Preferences Management:

  • Updated PreferencesManager to store and retrieve user-provided API keys using DataStore. (app/src/main/java/dev/hossain/weatheralert/data/PreferencesManager.kt, app/src/main/java/dev/hossain/weatheralert/data/UserPreferences.kt) [1] [2] [3]

User Interface:

  • Modified AlertSettingsScreen to include SnackbarData and navigate to BringYourOwnApiKeyScreen when prompting users to add their own API keys. (app/src/main/java/dev/hossain/weatheralert/ui/addalert/AlertSettingsScreen.kt) [1] [2] [3] [4] [5]

Repository Changes:

  • Added isValidApiKey method in WeatherRepository to validate API keys by sending a basic API request. (app/src/main/java/dev/hossain/weatheralert/data/WeatherRepository.kt) [1] [2]

Miscellaneous:

  • Added SnackbarData data class to handle snackbar messages with optional actions. (app/src/main/java/dev/hossain/weatheralert/data/Models.kt)

@hossain-khan hossain-khan self-assigned this Jan 10, 2025
@Copilot Copilot bot review requested due to automatic review settings January 10, 2025 03:39

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.

Files not reviewed (14)
  • app/src/main/java/dev/hossain/weatheralert/api/ApiModel.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/api/WeatherApi.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/data/ApiKey.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/data/Models.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/data/PreferencesManager.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/data/UserPreferences.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/data/WeatherRepository.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/ui/addalert/AlertSettingsScreen.kt: Language not supported
  • app/src/main/java/dev/hossain/weatheralert/ui/addapikey/ByoApiKeyScreen.kt: Language not supported
  • app/src/main/res/drawable/abstract_mountain.xml: Language not supported
  • app/src/main/res/drawable/clouds.xml: Language not supported
  • app/src/main/res/drawable/earth_with_cloud.xml: Language not supported
  • app/src/main/res/drawable/servers.xml: Language not supported
  • app/src/test/resources/open-weather-overview-new-york.json: Language not supported
@hossain-khan hossain-khan merged commit dd1b034 into main Jan 10, 2025
3 checks passed
@hossain-khan hossain-khan deleted the add-api-key-screen branch January 10, 2025 03:48
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.

Add new screen for providing API key
1 participant