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

Fix android min sdk version #107

Merged
merged 3 commits into from
Dec 17, 2024
Merged

Fix android min sdk version #107

merged 3 commits into from
Dec 17, 2024

Conversation

cp-sneha-s
Copy link
Collaborator

@cp-sneha-s cp-sneha-s commented Dec 17, 2024

Purpose

Summary of Changes

Test steps

Conformity

  • Followed git guidelines for creating commit messages and Pull Request guidelines.
  • Self-approved the PR - reviewed the PR as a reviewer and gave it self-approval if everything is ok. If not, made the required changes.
  • Ensured that the PR satisfies all specified requirements in the ticket, including bug fixes and new features.
  • Provided test steps, including steps to reproduce the issue or test the new functionality, ensuring other team members can verify the changes.
  • Added/Updated proper code comments to make it easy-to-understand for other developers.
  • Reused code (if the same code was written twice, made it common and reused it at both places).
  • Removed unused or commented code if not required.
  • Ensured proper Dart naming conventions were used for variables, classes, and methods.
  • Localized user-facing strings.
  • Included screenshots/videos of behavior changes: Provided visual evidence of any changes to UI or behavior for easier review and understanding in the PR description.
  • Implemented proper error handling: Ensured that the code anticipated and handled potential errors and edge cases gracefully.
  • Avoided introducing technical debt: If the PR introduces technical debt, created and linked appropriate tickets for future resolution.
  • Included relevant unit tests: Wrote unit tests that focused on testing behavior and functionality, rather than merely covering lines of code.
  • Ensured code was performant and scalable: Verified that the changes did not introduce performance issues or bottlenecks and could scale as needed.
  • Ensured comments were up-to-date and relevant to the code to describe complex logic and to add understanding for other developers.
  • Marked the PR as ready before submitting it for review.

Visual Evidence (Video, Images or Gif)

Summary by CodeRabbit

Release Notes

  • New Features

    • Support for a wider range of Android devices with updated minSdkVersion.
  • Improvements

    • Enhanced error handling in sign-in processes.
    • Streamlined visual elements with updated color opacity methods across various widgets.
  • Dependency Updates

    • Multiple dependencies have been updated to their latest versions, enhancing performance and security.

Copy link

coderabbitai bot commented Dec 17, 2024

Walkthrough

This pull request encompasses multiple changes across various files in a Flutter project. The modifications primarily involve updating dependency versions in the pubspec.yaml, adjusting color opacity methods from withOpacity() to withValues(alpha:), and refactoring null filtering methods from .whereNotNull() to .nonNulls. The Android Gradle configuration was also updated to change the minimum and target SDK versions, potentially improving device compatibility and targeting.

Changes

File Change Summary
android/app/build.gradle Updated minSdkVersion from 34 to 23, hardcoded targetSdk to 34
lib/data/core/extensions/stream_extension.dart Replaced .whereNotNull() with .nonNulls for filtering
lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart Replaced EquatableTextEditingController with TextEditingController
lib/ui/admin/forms/create_form/bloc/org_form_field_update_data_model.dart Added EquatableTextEditingController class
Multiple UI files Updated color opacity method from withOpacity() to withValues(alpha:)
pubspec.yaml Updated 30+ dependency versions to their latest releases

Poem

🐰 A Rabbit's Code Update Delight

Versions bumped with careful might,
Opacity shifts, a color's new flight,
Null values filtered, controllers so bright,
SDK versions dancing left and right,
Our code evolves with pure delight! 🚀


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 058c83b and 6f786a8.

📒 Files selected for processing (3)
  • lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart (3 hunks)
  • lib/ui/admin/forms/create_form/bloc/org_form_field_update_data_model.dart (1 hunks)
  • lib/ui/shared/appbar_drawer/drawer/bloc/app_drawer_bloc.dart (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • lib/ui/shared/appbar_drawer/drawer/bloc/app_drawer_bloc.dart
  • lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart
  • lib/ui/admin/forms/create_form/bloc/org_form_field_update_data_model.dart

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
android/app/build.gradle (1)

30-30: Review hardcoded targetSdk value

While targeting API 34 is good for accessing the latest Android features, hardcoding this value instead of using flutter.targetSdkVersion might cause maintenance issues:

  • Future Flutter SDK updates might require different target SDK versions
  • Manual updates will be needed for each Android version upgrade

Consider keeping the Flutter-managed version:

-        targetSdk = 34
+        targetSdk = flutter.targetSdkVersion
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c2bf90c and e5891f8.

📒 Files selected for processing (1)
  • android/app/build.gradle (1 hunks)
🔇 Additional comments (2)
android/app/build.gradle (2)

29-30: Security considerations for supporting older Android versions

Supporting Android 6.0+ requires additional security measures:

  • Ensure proper SSL/TLS configuration for older Android versions
  • Implement Network Security Config for Android 7+ compatibility
  • Consider security implications of supporting older Android versions

Consider documenting security measures taken to support older Android versions in the project documentation.


29-29: Verify API compatibility with Android 6.0 (API 23)

Lowering the minimum SDK version to 23 significantly broadens device compatibility but requires careful consideration:

  • Ensure all API calls in the codebase are compatible with Android 6.0
  • Implement runtime permissions for features that became permission-protected in Android 6.0
  • Test thoroughly on devices running Android 6.0-8.0 to ensure functionality

Consider implementing graceful degradation for features not available in older Android versions.

✅ Verification successful

Lowering minSdkVersion to 23 is safe for this application

The codebase analysis shows minimal Android API dependencies:

  • Only basic Flutter functionality is used (FlutterActivity)
  • Single permission required: INTERNET (available since API 1)
  • No usage of API-sensitive features or permissions that would require runtime checks
  • Standard Flutter embedding configuration without custom platform-specific code

The application appears to be primarily Flutter-based with minimal native Android dependencies, making it safe to target Android 6.0 (API 23) and above.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for potential API compatibility issues
# Look for methods that might require API level checks
rg -l "Build.VERSION" 

# Search for permission-related code that might need runtime checks
rg -l "requestPermissions|checkSelfPermission"

# Look for @RequiresApi annotations that might indicate compatibility issues
rg -l "@RequiresApi"

Length of output: 91


Script:

#!/bin/bash
# Let's try a broader search for Android-specific APIs and features
# Search for Android-specific imports that might indicate API usage
rg -l "import android\." 

# Search for common Android framework classes usage
rg -l "Activity|Fragment|Service|BroadcastReceiver"

# Look for native method calls that might have API restrictions
rg -l "getSystemService|ContentResolver|MediaStore"

# Search for any files with .java or .kt extension to understand the codebase better
fd "\.(java|kt)$"

Length of output: 3928


Script:

#!/bin/bash
# Let's examine the MainActivity and AndroidManifest for specific API dependencies
cat android/app/src/main/kotlin/com/canopas/canopas_unity/MainActivity.kt

# Check AndroidManifest for permissions and features
cat android/app/src/main/AndroidManifest.xml

# Look for any Flutter plugins that might have API dependencies
cat android/app/build.gradle

Length of output: 4535

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🔭 Outside diff range comments (2)
lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart (1)

Line range hint 146-154: Ensure null safety when removing options.

The code assumes the index exists in the options list without validation.

Add index validation to prevent potential runtime errors:

   void _removeOrgFormFieldOption(
       RemoveOrgFormFieldOption event, Emitter<CreateFormState> emit) {
     final fields = _updateFormFieldItem(
         orgFormFields: state.fields,
         fieldId: event.fieldId,
         updater: (field) {
           List<TextEditingController>? options = field?.options?.toList();
-          if (options != null) {
+          if (options != null && event.optionIndex < options.length) {
             options[event.optionIndex].dispose();
             options.removeAt(event.optionIndex);
             if (options.isEmpty) {
               options = null;
             }
           }
lib/ui/space/create_space/create_workspace_screen.dart (1)

PR scope mismatch: No Android SDK changes found

The git diff confirms that this PR does not contain any changes to Android configuration files. The changes are limited to Dart/Flutter UI files and dependency updates in pubspec files. There are no modifications to:

  • android/app/build.gradle
  • android/build.gradle
  • Any AndroidManifest.xml files

This contradicts the PR's stated objective of fixing Android SDK version issues.

🔗 Analysis chain

Line range hint 1-169: Critical: PR changes don't match stated objective

The changes in these files focus on:

  1. Updating color opacity handling methods
  2. Improving null filtering in Dart code
  3. Removing commented code

None of these changes appear to address the stated objective of fixing Android min SDK version. Expected to see changes in Android configuration files (e.g., build.gradle). Please either:

  1. Explain how these changes relate to Android SDK version fixes
  2. Update the PR title and description to match the actual changes
  3. Include the missing Android configuration changes
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for Android configuration files
echo "Searching for Android configuration files..."
fd -t f "build.gradle|AndroidManifest.xml" android/

# Check current SDK versions
echo "Checking current SDK configurations..."
rg "minSdk|targetSdk|compileSdk" --type gradle

Length of output: 704


Script:

#!/bin/bash
# Let's check the actual changes in the PR by looking at the git diff
git diff --name-only HEAD~1 HEAD

# Check if there are any changes in Android configuration files
git diff HEAD~1 HEAD android/app/build.gradle
git diff HEAD~1 HEAD android/build.gradle

Length of output: 942

🧹 Nitpick comments (4)
lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart (2)

133-134: Consider adding validation for maximum number of options.

The code allows unlimited addition of options without any upper bound check.

Consider adding a maximum limit check:

   void _addOrgFormFieldOption(
       AddOrgFormFieldOption event, Emitter<CreateFormState> emit) {
     final fields = _updateFormFieldItem(
         orgFormFields: state.fields,
         fieldId: event.fieldId,
         updater: (field) {
           List<TextEditingController> options = field?.options?.toList() ?? [];
+          const maxOptions = 10; // or any other reasonable limit
+          if (options.length >= maxOptions) {
+            return field;
+          }
           options.add(TextEditingController(text: 'Option ${options.length}'));
           return field?.copyWith(options: options);
         });

164-164: Initialize TextEditingController with empty text explicitly.

The code creates TextEditingController instances without explicit initial values.

Consider being explicit about the initial value:

-            question: TextEditingController());
+            question: TextEditingController(text: ''));
-              question: TextEditingController(),
+              question: TextEditingController(text: ''),

Also applies to: 178-178

test/unit_test/admin/forms/create_forms_test/create_forms_test.dart (1)

44-44: Consolidate controller initialization patterns.

The controller initialization is duplicated across different test groups. This could lead to maintenance issues if the initialization logic needs to change.

Consider extracting a helper method:

+  TextEditingController createQuestionController() {
+    return TextEditingController(text: '');
+  }
+
+  TextEditingController createOptionController(int index) {
+    return TextEditingController(text: 'Option $index');
+  }

   setUp(() {
-    fistQuestionController = TextEditingController();
+    fistQuestionController = createQuestionController();
   });

Also applies to: 280-281, 448-448, 541-541

lib/ui/widget/leave_details_widget/leave_details_header_content.dart (1)

Line range hint 1-1: Note about PR scope and documentation.

While these code improvements are valuable, they appear to be separate from the main PR objective of fixing the Android min SDK version. Consider:

  1. Splitting these changes into a separate PR for better tracking and review focus
  2. Updating the PR description to reflect all the changes being made
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e5891f8 and 058c83b.

⛔ Files ignored due to path filters (1)
  • pubspec.lock is excluded by !**/*.lock
📒 Files selected for processing (15)
  • lib/data/core/extensions/stream_extension.dart (1 hunks)
  • lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart (7 hunks)
  • lib/ui/admin/forms/create_form/bloc/org_form_field_update_data_model.dart (2 hunks)
  • lib/ui/admin/forms/create_form/widget/org_create_form_info_view.dart (1 hunks)
  • lib/ui/admin/members/detail/widget/time_off_card.dart (1 hunks)
  • lib/ui/shared/appbar_drawer/drawer/bloc/app_drawer_bloc.dart (1 hunks)
  • lib/ui/sign_in/bloc/sign_in_view_bloc.dart (1 hunks)
  • lib/ui/sign_in/setup_profile/setup_profile_screen.dart (1 hunks)
  • lib/ui/sign_in/sign_in_screen.dart (1 hunks)
  • lib/ui/space/create_space/create_workspace_screen.dart (1 hunks)
  • lib/ui/space/join_space/bloc/join_space_bloc.dart (1 hunks)
  • lib/ui/user/leaves/detail/widget/response_note.dart (1 hunks)
  • lib/ui/widget/leave_details_widget/leave_details_header_content.dart (1 hunks)
  • pubspec.yaml (1 hunks)
  • test/unit_test/admin/forms/create_forms_test/create_forms_test.dart (9 hunks)
✅ Files skipped from review due to trivial changes (1)
  • lib/ui/admin/forms/create_form/widget/org_create_form_info_view.dart
🔇 Additional comments (14)
lib/ui/admin/forms/create_form/bloc/org_form_field_update_data_model.dart (1)

8-8: Verify state comparison behavior after removing Equatable from controllers

The change from EquatableTextEditingController to TextEditingController might affect state comparison in the Bloc pattern, particularly when checking if the state has changed. Ensure that state updates are still properly detected in the UI.

Also applies to: 12-12

pubspec.yaml (1)

19-50: Review compatibility with Android min SDK version 23

Several dependencies have been updated with major version changes. Please verify that these versions are compatible with the target Android min SDK version of 23, particularly:

  • device_info_plus (10.1.0 -> 11.2.0)
  • get_it (7.3.0 -> 8.0.3)
  • image_picker (1.0.7 -> 1.1.2)
✅ Verification successful

Let me verify the compatibility of the updated dependencies with Android SDK 23 by checking their documentation and requirements.


Based on the gathered information, I can now generate the final response:

Dependencies are compatible with Android SDK 23

The updated dependencies are compatible with the project's minimum SDK version:

  • device_info_plus 11.2.0 maintains Android SDK 16 as minimum requirement
  • get_it 8.0.3 has no platform-specific requirements as it's a pure Dart package
  • image_picker 1.1.2 supports minimum SDK version 16

The project's Android configuration in android/app/build.gradle correctly specifies:

minSdkVersion 23
compileSdkVersion 34
targetSdk 34
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for Android-specific configurations or SDK version references
fd -e gradle -e properties -e xml . android/ | xargs rg "minSdk|compileSdk|targetSdk"

# Look for potential Android compatibility annotations
rg "@RequiresApi|@TargetApi|minSdkVersion"

Length of output: 425


Script:

#!/bin/bash
# Check pubspec.lock for exact versions and potential SDK constraints
cat pubspec.lock | rg -A 5 "device_info_plus:|get_it:|image_picker:"

# Check for any explicit platform-specific code or SDK version checks
rg -g "*.dart" "platform|sdk" -A 2

Length of output: 2729

lib/ui/sign_in/bloc/sign_in_view_bloc.dart (2)

42-44: ⚠️ Potential issue

Fix typo in error variable name

There's a typo in the error variable name: firesbaseAuthError should be firebaseAuthError.

-          googleSignInLoading: false, error: firesbaseAuthError));
+          googleSignInLoading: false, error: firebaseAuthError));

Line range hint 1-1: Verify Android configuration changes

While the PR includes necessary dependency updates, the actual Android min SDK version change isn't visible in the reviewed files. Please ensure that:

  1. The android/app/build.gradle file has been updated with the correct minSdkVersion = 23
  2. All native Android code (if any) is compatible with API level 23
  3. AndroidManifest.xml permissions and features are supported on API level 23
✅ Verification successful

Android configuration changes have been properly implemented

The verification confirms that:

  1. minSdkVersion is correctly set to 23 in android/app/build.gradle
  2. The manifest only uses the INTERNET permission which is supported since API level 1
  3. There's minimal native code (just MainActivity.kt) with no API-specific implementations

Let's verify the MainActivity.kt content to ensure complete compatibility:


Android configuration is correctly implemented

The Android setup is properly configured for API level 23:

  • minSdkVersion = 23 is set in build.gradle
  • AndroidManifest.xml only uses basic permissions supported on API 23
  • MainActivity uses the standard Flutter embedding with no API-specific code
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check Android configuration files
echo "Checking build.gradle files..."
fd build.gradle$ | xargs cat

echo "Checking AndroidManifest.xml..."
fd AndroidManifest.xml$ | xargs cat

echo "Checking for native Android code..."
fd -e java -e kt . android/

Length of output: 5558


Script:

#!/bin/bash
# Check MainActivity.kt content
cat android/app/src/main/kotlin/com/canopas/canopas_unity/MainActivity.kt

Length of output: 205

lib/ui/admin/forms/create_form/bloc/create_form_bloc.dart (1)

Line range hint 105-117: Ensure proper disposal of TextEditingController instances.

The code properly disposes of old controllers when changing input types, but there's a potential memory leak if the bloc is disposed before changing input types.

Consider moving the controller disposal logic to a separate method for better reusability:

+  void _disposeControllers(List<TextEditingController> controllers) {
+    for (final controller in controllers) {
+      controller.dispose();
+    }
+  }

   void _updateFormFieldInputType(
       UpdateFormFieldInputTypeEvent event, Emitter<CreateFormState> emit) {
     final fields = _updateFormFieldItem(
         orgFormFields: state.fields,
         fieldId: event.fieldId,
         updater: (field) {
           List<TextEditingController> options = field?.options ?? [];
           if (event.type != FormFieldAnswerType.checkBox &&
               event.type != FormFieldAnswerType.dropDown) {
-            for (final option in options) {
-              option.dispose();
-            }
+            _disposeControllers(options);
             options = [];
           }
lib/data/core/extensions/stream_extension.dart (1)

29-31: LGTM! Good modernization of null filtering.

The change from .whereNotNull() to .nonNulls is a good improvement that uses the more modern collection API.

Let's verify the collection package version to ensure compatibility:

✅ Verification successful

Change to .nonNulls is compatible and follows best practices

The collection package version 1.19.0 fully supports the .nonNulls getter, which was introduced in version 1.17.0. This modernization change is safe to use.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check the collection package version in pubspec.yaml
rg "collection:" -A 1

Length of output: 246

lib/ui/widget/leave_details_widget/leave_details_header_content.dart (1)

29-29: LGTM! Consistent with the codebase-wide color handling update.

The change from withOpacity to withValues maintains visual consistency while adopting the standardized approach.

lib/ui/shared/appbar_drawer/drawer/bloc/app_drawer_bloc.dart (1)

37-37: LGTM: Good migration to nonNulls

The change from whereNotNull() to nonNulls is a good improvement. The nonNulls property is the more idiomatic way to filter null values in Dart and potentially more performant as it avoids an extra method call.

lib/ui/admin/members/detail/widget/time_off_card.dart (1)

63-64: LGTM: Good migration to withValues

The change from withOpacity() to withValues(alpha:) is a good improvement. The withValues method provides more flexibility for color manipulation while maintaining the same visual result.

lib/ui/sign_in/sign_in_screen.dart (1)

56-56: LGTM: Consistent use of withValues

The change from withOpacity() to withValues(alpha:) maintains consistency with similar changes across the codebase while preserving the same visual appearance.

lib/ui/sign_in/setup_profile/setup_profile_screen.dart (1)

111-112: Verify relevance to Android SDK version fix

The change from withOpacity to withValues(alpha: 0.5) appears unrelated to fixing Android min SDK version issues. Please clarify how this UI change contributes to the PR's objective.

lib/ui/space/join_space/bloc/join_space_bloc.dart (1)

52-52: Document reason for null handling change

The change from whereNotNull() to nonNulls appears to be a Dart language feature update rather than an Android SDK fix. Please:

  1. Clarify how this change relates to the PR objective
  2. Consider adding a comment explaining why this change was necessary

Also applies to: 60-60

lib/ui/space/create_space/create_workspace_screen.dart (2)

Line range hint 119-169: Good: Removed commented-out code

While removing unused commented code improves maintainability, this change appears unrelated to the Android SDK version fix objective.


101-102: Verify relevance to Android SDK version fix

Similar to other files, changing from withOpacity to withValues(alpha: 0.5) seems unrelated to Android SDK version fixes. Please explain the connection to the PR objective.

@cp-sneha-s cp-sneha-s merged commit c4b6387 into main Dec 17, 2024
2 checks passed
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.

1 participant