Merge main repo master - version 3.4.1#4
Merged
damian-kaczmarek merged 16 commits intomasterfrom Feb 16, 2026
Merged
Conversation
* Update doc for release 3.0.1 * update change log
* build: update Android build configurations - Bump compile SDK version to 35 and build tools version to "35.0.0" - Update target SDK version to 35 - Add namespace 'com.optimizely.optimizely_flutter_sdk' - Enable buildConfig feature - Update kotlin-stdlib-jdk7 to version 2.1.0 - Update jackson-databind to version 2.17.2 - Set minSdkVersion and targetSdkVersion to 35 for example app - Update distributionUrl in gradle-wrapper.properties to Gradle 8.10.2 - Update android plugin version to 8.7.0 and kotlin-android version to 2.1.0 * build: update Android SDK versions - Update compile SDK version to 36 and build tools version to "36.0.0" - Change min SDK version to 21 and target SDK version to 36 in the Android build configuration - Update compile SDK version to 36 and target SDK version to 36 in the example app build.gradle file * fix: update android build configuration - Update compile_sdk_version and build_tools_version to 35 - Remove target_sdk_version from ext - Update compileSdkVersion and targetSdkVersion in app/build.gradle to 35 * refactor: update compile and target SDK versions - Update compile SDK version to use project property if available, fallback to default - Update target SDK version to use project property if available, fallback to default * fix: remove conditional expressions for compileSdkVersion and targetSdkVersion - Simplify specifying compileSdkVersion and targetSdkVersion directly from flutter configuration
…ptimizely#87) * build: update minifyEnabled setting in release build - Change minifyEnabled from true to false in the release buildType - Update the ProGuard configuration to exclude javax.mail and javax.activation. classes * chore: update ProGuard rules - Keep necessary classes for Optimizely and Jackson libraries - Keep Logback classes - Remove unnecessary warnings for javax.mail classes - Add ProGuard configuration to build.gradle for minification - Update proguard-rules.txt in app folder * build: enable resource shrinking in release build - Add configuration to shrink resources for reducing APK size * chore: update build configuration - Remove 'minifyEnabled' setting from release build type in android/build.gradle - Exclude javax.mail and javax.activation classes in proguard configuration - Delete deprecated mail classes warning in proguard-rules.txt
* feat: add Android 15 support and update versions - Update AGP version to 8.7.0 - Update gradle version to 8.10.2 - Update kotlin version to 2.1.0 - Update SDK version to 3.1.0 in README.md, package_info.dart, and pubspec.yaml * feat: add Android 15 support and update dependencies - Add Android 15 support - Update AGP version to 8.7.0 - Update gradle version to 8.10.2 - Update kotlin version to 2.1.0 * Update date
* build: add Optimizely SDK logger classes - Add FlutterOptimizelyLogger class implementing OPTLogger protocol - Add constants for customLogger and loggerChannel - Implement FlutterMethodChannel for invoking log method - Add logger field to OptimizelyFlutterSdk constructor - Initialize custom logger in OptimizelyClientWrapper - Create LoggerBridge to handle log method calls - Implement OptimizelyLogger interface and DefaultOptimizelyLogger class * fix: resolve logging inconsistencies - Update custom logger initialization in OptimizelyFlutterSdkPlugin - Adjust logger channel setup in onDetachedFromEngine - Refactor LoggerBridge to handle log calls from native Swift/Java code properly - Ensure proper logging when no custom logger is set * refactor: update logger imports - Rename 'OptimizelyLogger.dart' to 'flutter_logger.dart' - Rename 'LoggerBridge.dart' to 'logger_bridge.dart' - Modify imports in 'optimizely_client_wrapper.dart' to reflect changes in logger files * feat: add custom logger implementation - Implement a custom logger class - Define logLevel property with default debug level - Define log method to print log messages with custom format * refactor: rename logger classes in Android and iOS - Rename FlutterOptimizelyLogger to OptimizelyFlutterLogger in Android - Rename FlutterOptimizelyLogger to OptimizelyFlutterLogger in iOS * feat: update logging behavior for Optimizely SDK - Remove unused log level property in CustomLogger - Implement channel setter method in OptimizelyFlutterLogger - Add guard clauses for levels and logger channel availability in log method - Update channel invocation to happen on main thread - Set log level in SwiftOptimizelyFlutterSdkPlugin based on parameters - Simplify DefaultOptimizelyLogger log method - Update log message formatting in logger bridge for consistency * feat: add methods and tests for logger state management - Add methods to expose converting log level, checking if a custom logger is set, retrieving the current logger, and resetting the logger state - Implement a method for simulating method calls - Add tests for maintaining logger state across multiple operations - Include a test for handling logger replacement - Create tests for edge cases including handling empty messages and special characters * feat: add separate logger channel for outgoing log calls - Define LOGGER_CHANNEL constant for OptimizelyFlutterLogger class - Set up separate FlutterMethodChannel for outgoing log calls - Update SwiftOptimizelyFlutterSdkPlugin to use the new logger channel * refactor: improve main thread dispatch for Flutter method channel calls - Add DispatchQueue.main.async for each method call to ensure platform channel messages are sent on the correct thread * chore: clean up logger implementation - Remove unnecessary comments and TODOs - Replace direct print statements with AppLogger methods - Refactor AppLogger to enhance flexibility and ease of use * style: update comment in sendLogToFlutter method - Remove comparison to Swift's DispatchQueue.main.async * chore: remove unused import statement - Remove import statement for 'log_level' that is no longer used - Update import paths for 'flutter_logger' and 'optimizely_flutter_sdk' test: update test cases in logger_test.dart - Update test cases to use 'const MethodCall' for creating method calls - Change null and empty arguments to be created and handled correctly - Fix missing level or message argument handling scenarios - Improve handling of invalid level data types in method calls docs: add comments to improve code clarity in logger_test.dart - Add comments explaining the purpose of each test group and case - Include comments for the different scenarios being tested in each case * chore: update log messages and method channel handling - Update log message format in CustomLogger class - Refactor main thread dispatch logic for method channel calls in Utils.swift - Enhance error handling and main thread dispatch in OptimizelyFlutterLogger.swift - Modify method channel creation and task queue handling in SwiftOptimizelyFlutterSdkPlugin.swift * refactor: enhance logging functionalities - Replace usage of static AppLogger class with separate logging functions - Introduce individual logger functions for error, warning, info, and debug levels - Create a default stand-alone logger instance to handle logging operations * test: add global logging functions test cases - Test calling global logging functions without errors - Test handling empty messages in global functions - Test handling special characters in global functions - Test handling rapid calls to global functions * chore: remove custom logger functionality - Remove code related to setting up and using a custom logger in OptimizelyFlutterClient.java - Delete OptimizelyFlutterLogger.java file as it is no longer needed - Update references to the logger channel in OptimizelyFlutterSdkPlugin.java * refactor: rename customLogger to useCustomLogger - Update 'Constants.swift' to change 'customLogger' to 'useCustomLogger' - Update 'SwiftOptimizelyFlutterSdkPlugin.swift' to change 'customLogger' to 'useCustomLogger' - Update 'optimizely_flutter_sdk.dart' to change 'logger' parameter to 'OptimizelyLogger' - Update 'optimizely_client_wrapper.dart' to change 'customLogger' to 'useCustomLogger' - Update 'constants.dart' to change 'customLogger' to 'useCustomLogger' * clean up
* chore: add new classes for logging - Add FlutterLogbackAppender.java for logging events in the Flutter app - Integrate OptimizelyFlutterSdkPlugin with FlutterLogbackAppender - Update Constants.swift, SwiftOptimizelyFlutterSdkPlugin.swift, and related classes * refactor: update log level conversion logic - Adjust method to correctly convert log level strings to integers - Refactor switch statement for better readability and maintainability * refactor: optimize log level conversion - Remove unnecessary default log level value initialization - Refactor switch statement to directly return log levels for each case - Simplify comparison for warning log levels to include both "WARN" and "WARNING" * style: update logback configuration and log levels - Comment out configuration block in logback.xml - Modify log level 'WARNING' to 'WARN' in FlutterLogbackAppender.java * fix: ensure debugging logs are only printed in debug mode - Add check for kDebugMode to control printing of logs * chore: update logback.xml - Comment out old logback configuration - Add note explaining the use of FlutterLogbackAppender for logging
…ift (optimizely#92) * Add support nested object into event meta * clean up * Add test cases for iOS
* Update cmab dependency * feat: add CMAB support with decideAsync API and cache control options Add support for Contextual Multi-Armed Bandit (CMAB) experimentation including CmabConfig for initialization, decideAsync methods for async decisions, and CMAB-specific cache options (ignoreCmabCache, resetCmabCache, invalidateUserCmabCache). * Predictionendpoint templating fixed * Cmab Sample api added * CMAB android basic implementation done * Add unit test cases * fix cmab decide options for android * Claude instruction file added * Updated claude instruction * fix test issue * Exclude example and test directory for analyzer * clean up
* Prep for release 3.4.0 * Add pubignore file * clean up
* chore: update native SDK versions to exclude CMAB updates - Update Android SDK to 5.1.1 - Update iOS SDK to 5.2.1 - Update iOS app delegate to use @main annotation - Add UIApplicationSupportsIndirectInputEvents support Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * clean up * Remove travis stuff --------- Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
# Conflicts: # android/build.gradle # android/proguard-rules.txt # ios/optimizely_flutter_sdk.podspec
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.
No description provided.