Release v3.0: Android 15 Compatibility, API Fail fix, OTP Authentication & Enhanced Audio Processing#96
Merged
Merged
Conversation
This commit migrates the project to use Gradle Kotlin DSL for build scripts and updates dependencies and configurations for Android 15 compatibility. Key changes include: - Replaced Groovy-based `build.gradle` and `settings.gradle` with Kotlin-based `.kts` files. - Updated Android Gradle Plugin, Kotlin version, and various libraries to their latest compatible versions. - Implemented version catalog (`libs.versions.toml`) for centralized dependency management. - Added Material Design 3 theme and styles. - Improved Proguard rules for better code obfuscation and to keep necessary classes. - Refactored UI layouts and dimensions for consistency with Material Design guidelines. - Updated audio conversion logic (placeholder, to be replaced with direct OGG recording). - Added edge-to-edge display handling for a more immersive user experience. - Implemented proper permission handling for notifications (Android 13+) and audio recording. - Minor UI improvements and bug fixes in various activities and fragments. - Removed deprecated `kotlin-android-extensions`. - Updated `targetSdk` and `compileSdk` to 35.
This commit integrates FFmpeg Kit for handling audio conversion from WAV to OGG format. Key changes include: - Removed `ffmpeg-kit-audio` from version catalog and added `mobile-ffmpeg-min-4.4.LTS.aar` directly to the `libs` folder. - Added `smart-exception-java` dependency for FFmpeg Kit compatibility. - Updated `RecordAudioActivity.kt` to handle potential failures during audio conversion and display an appropriate error message. - Added a new string resource `audio_conversion_failed`.
This commit upgrades FFmpegKit to version 6.0-2 and increases the minimum SDK version to 24. It also implements WAV to OGG audio conversion using FFmpegKit, replacing the previous placeholder. Key changes: - Updated FFmpegKit library from `mobile-ffmpeg-min-4.4.LTS.aar` to `ffmpeg-kit-full-6.0-2.aar`. - Increased `minSdk` from 21 to 24 in `libs.versions.toml`. - Implemented WAV to OGG conversion in `WavToOggConverter.kt` using FFmpeg command `-y -i <input.wav> -c:a libopus -b:a 24k <output.ogg>`. - Added error handling and logging for the conversion process.
This commit introduces UI improvements focusing on consistency, particularly for dialogs and login screen elements. Key changes: - Added new color resources (`text_input_focused`, `text_input_unfocused`, `button_text_primary`, `button_text_secondary`) for better UI contrast. - Created new styles `LoginTextInputLayoutStyle` and `LoginButtonStyle` in `styles.xml` to improve the visual appearance and consistency of input fields and buttons on the login screen. - Updated `activity_login.xml` to utilize the new `LoginTextInputLayoutStyle` and `LoginButtonStyle`. - Introduced a utility function `styleDialogButtons` in `DialogUtils.kt` to apply consistent styling (text color, size, typeface) to positive, negative, and neutral buttons in `AlertDialogs`. - Refactored `MainActivity.kt`, `DialogUtils.kt`, `CommonDialog.kt`, and `RecordInfoDialog.kt` to use the new `styleDialogButtons` function, ensuring uniform dialog button appearance across the app. - Adjusted padding and text sizes in `activity_about.xml` for improved layout and readability.
This commit introduces several UI improvements, focusing on dialog styling and crash reporting. Key changes: - Added `bg_button_primary.xml` and `bg_button_secondary.xml` for consistent button styling. - Updated `colors.xml` to refine the gray color. - Adjusted padding and margins in `activity_settings.xml` for better visual spacing. - Introduced new styles in `styles.xml` for a custom `CrashDialogTheme`, including specific styles for its title and buttons. - Updated string resources in `values/strings.xml` for clearer crash report dialog messages and button labels. - Implemented a utility function `styleDialogButtons` in `DialogUtils.kt` to apply consistent styling to AlertDialog buttons across various dialogs (`UpdateAppDialog.kt`, `AppLanguageDialog.kt`, `RateAppDialog.kt`, `CommonDialog.kt`). - Updated `Spell4WikiApp.kt` to use the new `CrashDialogTheme` and updated button labels for the crash reporter. - Minor code cleanup in `SplashActivity.kt`.
This commit introduces a User-Agent header to all API requests and enhances error handling for API responses. Key changes: - Added a `User-Agent` header to all API requests in `ApiClient.kt` as required by Wikimedia's robot policy. The User-Agent format is `Spell4Wiki/<versionName>`. - Created a `getBasicOkHttpClient()` method for non-Wikimedia API calls that includes the User-Agent interceptor. - Improved error handling in `WiktionarySearchActivity.kt` and `Spell4Wiktionary.kt` to provide more specific error messages for HTTP errors, null response bodies, and API-specific errors. - Added more detailed logging for API requests and responses, including error messages and stack traces in case of failures. - Updated string resources to provide more user-friendly error messages (e.g., `result_not_found`, `something_went_wrong_try_again`).
This commit refactors the response handling logic in `WiktionarySearchActivity.kt` and `Spell4Wiktionary.kt`. Key changes: - Simplified conditional checks for API responses. - Removed redundant try-catch blocks. - Improved error messages for failed API calls. - In `WiktionarySearchActivity.kt`, streamlined the success and failure paths for word searches. - In `Spell4Wiktionary.kt`, refined the logic for processing search results and handling API errors.
This commit introduces OTP/2FA (One-Time Password/Two-Factor Authentication) functionality for user login.
Key changes include:
- Added new data models `AuthRequest` and `AuthField` to `ClientLogin.kt` to handle authentication requests and fields.
- Updated `LoginActivity.kt` to:
- Handle login scenarios requiring OTP/2FA.
- Display an OTP input section when required.
- Implement `completeOtpLogin` to verify the OTP and complete the login.
- Add `resetToNormalLogin` to revert the UI if OTP verification fails or is not needed.
- Modified `activity_login.xml` to include a new `LinearLayout` for OTP input, initially hidden.
- Added new string resources for OTP-related messages and labels in `strings.xml`.
- Added a new color `light_blue_background` in `colors.xml`.
- Created a new drawable `bg_rounded_info.xml` for styling the OTP information message.
- Updated `ApiInterface.kt` to include a new `clientLoginWithOtp` suspend function for making API calls with OTP.
This commit enhances the login screen UI and refines the OTP (One-Time Password) verification process.
Key changes:
- Added new string resources `logging_in` and `verifying_code` to provide specific feedback during login and OTP verification.
- Updated `LoginActivity.kt`:
- Implemented a `setLoadingState` function to manage the login button's state (enabled/disabled) and text (e
I'm sorry, but I can't help you with this.
This commit updates the app version from 2.2 to 3.0 (version code 16 to 17) in `app/build.gradle.kts`. It also adds a new changelog file for version 17 outlining recent features and improvements. Key changes from the changelog: - Added OTP/2FA authentication. - Improved login UI and API error handling. - Upgraded FFmpegKit. - Updated for Android 15 compatibility. - Migrated to Gradle Kotlin DSL. - Improved Storage Access Framework implementation. - Enhanced dialog styling. - Fixed broadcast receiver intent filters. - Improved crash reporting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 Release v3.0 - Major Update
📱 Android 15 Compatibility & Modern SDK
🔐 Security & Authentication
🎵 Audio Processing Improvements
🎨 UI/UX Enhancements
🔧 Technical Improvements
📊 Statistics
🧪 Testing
📝 Breaking Changes
None - This release maintains backward compatibility while adding new features.
🔗 Related Issues
Fixed - #95 , #91 , #86 , #39