* feat_: support pre-login log setting(WIP)
* nix: add gradle deps
* chore: update status-go version
https://github.com/status-im/status-go/compare/614000a1...50a1c9ff
* feat: implement MMKV storage functionality for ClojureScript
- Added MMKV instance for persistent storage
- Implemented basic operations: set/get string, boolean, number, and object
- Included methods for key management: contains-key?, delete-key, clear-all, and get-all-keys
- Integrated Transit for serialization/deserialization of ClojureScript data structures
* feat_: enhance logging functionality with pre-login log level settings
- Introduced a new view for managing pre-login log levels.
- Updated logging configuration to utilize MMKV for persistent storage of log levels.
- Refactored existing logging functions to integrate new log level management.
- Improved user experience by allowing log level changes before login.
- Added constants for pre-login log level key and report email.
* chore_: rebase
* ios: pin libwebp at 1.0.0
* chore_: mock mmkv
* chore_: address review feedback from Parvesh
* chore_: update status-go version and commit details
* fix_: remove redundant closing brackets in logging view component
* refactor_: simplify get functions in MMKV by using if-let for value retrieval
- Updated get-string, get-number, and get-object functions to use if-let for cleaner code.
- Removed redundant nil checks, improving readability and maintainability.
* refactor_: replace direct JS calls with oops.core for MMKV operations
- Updated all MMKV operations to use oops.core for method calls, enhancing error handling and improving code consistency.
- Refactored store, get, contains-key?, delete-key, clear-all, and get-all-keys functions to utilize oops/ocall.
* refactor_: rename store function to set-value for clarity
- Updated the MMKV store function to set-value, improving code readability.
- Adjusted the logging core to use the new set-value function for setting pre-login log levels.
* feat_: add getMMKVStoragePath method for native storage path retrieval
- Implemented getMMKVStoragePath in both Android and iOS native modules to provide a consistent path for MMKV storage.
- Updated ClojureScript to utilize the new method for initializing the MMKV instance with the correct storage path.
* chore(mmkv)_: rename set-value to set
* refactor(mmkv): update set function to use local set implementation
- Replaced the oops/ocall for the set function with a direct call to the local set implementation for improved clarity and consistency in the MMKV module.
* feat(test_utils): add getMMKVStoragePath function to test utilities
- Introduced getMMKVStoragePath to return the storage path for MMKV, enhancing test utility functions for better integration with native storage paths.
* refactor(js_dependencies): rename mmkv-storage to react-native-mmkv for clarity
* fix(mmkv): add fallback for MMKV storage path in case of errors
- Implemented a try-catch block to provide a fallback storage path ("/tmp/test-mmkv") for the MMKV instance, ensuring stability during tests when the native storage path retrieval fails.
* refactor(logging): update send-logs function to include hide-bottom-sheet parameter
* fix_: bottom sheet not hidden after sharing logs
* chore_: solve circular dependency
* fix_: android logs drawer constantly opens
* fix_: pre-login log level init with incorrect value after logout
* chore_: update status-go-version to v10.22.0
---------
Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
* feat: add USE_DOWNLOAD_AS_LOG_DIR configuration to environment files and update log directory handling
- Added USE_DOWNLOAD_AS_LOG_DIR variable to .env, .env.e2e, .env.jenkins, .env.nightly, and .env.release files.
- Updated log directory logic in AccountManager, LogManager, and Utils to utilize the new configuration.
- Modified ClojureScript and Objective-C implementations to pass the useDownloadAsLogDir parameter where necessary.
* chore: rename and comment
* fix_: lint issue
* chore_: move android logs from download dir to private app data folder
* chore_: remove unused functions
* chore_: rename getPublicStorageDirectory to getLogDirectory
* refactor_: streamline log file handling in LogManager
Removed unused methods for retrieving specific log files and replaced them with a more dynamic approach that collects all log files from the log directory. This enhances the flexibility of log management and reduces code redundancy.
* refactor_: remove hardcoded log file names in AccountManager and LogManager
Eliminated unused log file name constants and updated LogManager to dynamically retrieve log files from the directory, enhancing flexibility and reducing redundancy in log handling.
* feat(log)_: Improve log management across platforms
- Add native methods for setting log level and enabling/disabling logs to apply log setting without logout
- Update log management in ClojureScript to use new native module methods
- Remove restart confirmation translations for log level changes
- Refactor log-related code to simplify log configuration
* chore_: make lint-fix
* chore_: remove function show-change-log-level-confirmation
* chore_: events shouldn't have side-effects
* chore_: disable log when level is blank
* chore_: use dispatch rather than merge
https://github.com/status-im/status-go/compare/508775ad...71afd6c4
* chore_: rebase
https://github.com/status-im/status-go/compare/2a692002...b07e9d47
Integrate Sentry and implement a feature flagged feature (disabled by default)
to force crash the app using the function mobile/status.go#IntendedPanic()
provided by status-go. Because the feature is feature flagged and disabled, it
is not available in release builds.
Fixes: https://github.com/status-im/status-mobile/issues/21656
Documentation about Sentry in status-go:
https://github.com/status-im/status-go/blob/3466ac2661bb19cd0eaa27761551de3b4d31b393/internal/sentry/README.md#L60
Areas that may be impacted: Whenever a panic happens in status-go and usage data
collection is enabled we will send error data to Sentry. In theory, nothing
should change for the user, therefore nothing should be visibly different in the
app's behavior.
Steps to test:
Before following the steps below, the CI must be configured with the appropriate
SENTRY_DSN_STATUS_GO value. You can also use a free tier cloud instance to do
your own testing in case you want to play around with Sentry.
1. Login with any profile.
2. Enable usage data collection (for now, Sentry and analytics are tied to the
same setting in status-go).
3. Go to Settings > Feature flags and enable app-monitoring > intentional-crash
4. Go to Settings > Advanced > and press on Force crash immediately
Usually you should see the error in the Sentry dashboard in a matter of seconds.
https://github.com/status-im/status-go/compare/032eb5b6...c014fbfc
- Rename LOG_REQUEST_GO env variable to API_LOGGING_ENABLED across all env files
- Rename requests.log to api.log for consistency
- Remove standalone initLogging functionality from native modules as it's now
handled within InitializeApplication
- Add logging configuration (logEnabled, logLevel, apiLoggingEnabled) to
InitializeApplication params
- Add logDir parameter for Android to ensure proper log file location
This change consolidates logging initialization into the InitializeApplication
flow and makes the naming more consistent with its actual functionality.
this commit implemented logging request/response between status-mobile and status-go.
to access `requests.log`, shake your phone and share the logs.
TBD:
- adding `device id` into request to proxy server, we can implement it in a separate PR if needed.
- not sure if we need logging the request made in the backend that not asked by frontend directly
This commit:
- update the connection string validation method to use the method from status-go
- updates the error message if the user tries to scan a different key pair QR for importing a missing key pair
- updates the text for exporting an individual key pair
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
https://github.com/status-im/status-go/compare/6e056348...1ef2434b
This commit adds support for pushing centralized metrics to mixpanel.
It uses an interceptor and only picks a few selected events to push
through.
In order to test:
1) Create an account in the app
2) Go to Settings->Privacy
3) Enable metrics
You should now see the events on the mixpanel dashboard (login with your
status-im account for access).
Only some example events are tracked, they are just for testing
In this commit we nuke the unmaintained library `react-native-mail` and move over the logic to our native modules.
This also helps to fix `make nix-update-gradle` which would fail because of that library.
- Android
- iOS
status: ready
We log the entire signal data when it arrives from status-go in the native
layer, where our Clojure logging mechanism is unavailable. Sometimes, the
developer may not want that much noise during development, e.g. when managing
integration or contract tests.
This commit removes the native calls to log signals and adds a timbre
(log/debug ...) call in the event handler :signals/signal-received. We know
timbre will elide log calls at compile time given the minimum log level set,
therefore, we don't need to worry about performance because we will log signals
at the debug level only.
parent issue: https://github.com/status-im/status-mobile/issues/18310
This commit converts the following `Java` files to `Kotlin` :
- modules/react-native-status/android/src/main/java/im/status/ethereum/module/StatusModule.java
- modules/react-native-status/android/src/main/java/im/status/ethereum/module/StatusPackage.java
- modules/react-native-status/android/src/main/java/im/status/ethereum/module/Utils.java
This commit converts Java code to `Kotlin` which involves a helper function that is used to execute `statusgo` methods.
It may impact everything or nothing.
- Android
fixes#18291
## Summary
Changes worth mentioning are :
- More hacks/patches
- Force app to use `Java 17` everywhere to compile `kotlin,java`
- `gems` were upgraded after a long time
- `aapt2` was bumped to `8.1.1`
- `metro` is now at `0.80.4`
- `xcbeautify` was bumped to `1.4.0`
- `@react-native-community/clipboard` lib was replaced with `@react-native-clipboard/clipboard`
- `react-native-dialogs` lib was upgraded to `1.1.2`
- `react-native-gesture-handler` lib was upgraded to `2.14.1`
- `react-native-navigation` was upgraded to `7.37.2`
## Platforms
- Android
- iOS
The native module : `react-native-status` has always been 1 big fat file per platform which contained all of the native modules.
In case of Android it was `StatusModule.java`
This commit modularises it & attempts to thin out this 1 big file into these categories:
- `AccountManager.java`
- `EncryptionUtils.java`
- `DatabaseManager.java`
- `UIHelper.java`
- `LogManager.java`
- `NetworkManager.java`
- `Utils.java`
In case of iOS it was `RCTStatus.m`
This commit modularises it & attempts to thin out this 1 big file into these categories:
- `AccountManager.m`
- `EncryptionUtils.m`
- `DatabaseManager.m`
- `UIHelper.m`
- `LogManager.m`
- `NetworkManager.m`
- `Utils.m`
In this commit we also remove a lot of unused native code which has no reference on cljs side.
This PR does a few things:
1) Add fetch messages implementation on any kind of chat. It's behind a
toggle (on by default) as design is still unsure whether we want it,
but it's very useful for debugging.
2) Allow setting light client from mobile
It also partially remove node config management from the clojure part,
as it's better if that's not explicitly managed by clients.
Some parts are still relying on it but they are not functional
(keycard), while others are still using it and will need to be updated
eventually (syncing), in order to get rid completely of node config.
Sets fleet to shards.test
https://github.com/status-im/status-go/compare/90c31afe...1adcf02f
This commit initialises the status-go method `startSearchForLocalPairingPeers` which in turn will produce logs that are important for peer discovery while local pairing and will produce logs important to detect local pairing crashes.
https://github.com/status-im/status-go/compare/47711c4f...47711c4f
This commit changes the login endpoint so that it uses LoginAccount.
The main difference is that is consistent with the two others we use for
creation/importing, and this will override the networks and use the
secrets provided.