Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

All notable changes to this project will be documented in this file.

## [1.1.46] - 2026-03-19

### Bug Fixes
- **bundle-update**: Use `scheduledEnvBuildNumber` from task instead of stored `getNativeBuildNumber()` for buildNumber change detection in pre-launch pending task processing

### Chores
- Bump all native modules and views to 1.1.46

## [1.1.45] - 2026-03-19

### Bug Fixes
- **bundle-update**: Use `scheduledEnvBuildNumber` from task instead of stored `getNativeBuildNumber()` for buildNumber change detection in pre-launch pending task processing, so the check works even without a prior successful bundle install
- **react-native-tab-view**: Add `delayedFreeze` prop to control freeze/unfreeze delay on tab switch; defaults to immediate freeze for better iPad sidebar switching

### Chores
- Bump all native modules and views to 1.1.45

## [1.1.44] - 2026-03-19

### Bug Fixes
Expand Down
2 changes: 1 addition & 1 deletion native-modules/native-logger/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-native-logger",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-native-logger",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-app-update/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-app-update",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-app-update",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-background-thread/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-background-thread",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-background-thread",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,10 +278,17 @@ object BundleUpdateStoreAndroid {
val nextRetryAt = taskObj.optLong("nextRetryAt", 0)
if (nextRetryAt > 0 && nextRetryAt > now) return

// 3. Verify scheduledEnv matches current state
// 3. Verify scheduledEnv matches current state (including buildNumber)
val currentAppVersion = getAppVersion(context) ?: return
if (taskObj.optString("scheduledEnvAppVersion") != currentAppVersion) return

val scheduledBuildNumber = taskObj.optString("scheduledEnvBuildNumber", "")
val currentBuildNumber = getBuildNumber(context)
if (scheduledBuildNumber.isNotEmpty() && currentBuildNumber.isNotEmpty() && scheduledBuildNumber != currentBuildNumber) {
OneKeyLog.info("BundleUpdate", "processPreLaunchPendingTask: buildNumber changed from $scheduledBuildNumber to $currentBuildNumber, skipping stale task")
return
}

val currentBV = getCurrentBundleVersion(context)
val currentBundleVersionStr = if (currentBV != null) {
val idx = currentBV.lastIndexOf("-")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,10 +236,17 @@ public class BundleUpdateStore: NSObject {
if nextRetryAtNum.int64Value > now { return }
}

// 3. Verify scheduledEnv matches current state
// 3. Verify scheduledEnv matches current state (including buildNumber)
let currentAppVersion = getCurrentNativeVersion()
guard taskDict["scheduledEnvAppVersion"] as? String == currentAppVersion else { return }

let scheduledBuildNumber = taskDict["scheduledEnvBuildNumber"] as? String ?? ""
let currentBuildNumber = getCurrentNativeBuildNumber()
if !scheduledBuildNumber.isEmpty && !currentBuildNumber.isEmpty && scheduledBuildNumber != currentBuildNumber {
OneKeyLog.info("BundleUpdate", "processPreLaunchPendingTask: buildNumber changed from \(scheduledBuildNumber) to \(currentBuildNumber), skipping stale task")
return
}

let currentBundleVersionStr: String
if let cbv = currentBundleVersion(),
let dashRange = cbv.range(of: "-", options: .backwards) {
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-bundle-update/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-bundle-update",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-bundle-update",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-check-biometric-auth-changed",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-check-biometric-auth-changed",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-cloud-kit-module/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-cloud-kit-module",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-cloud-kit-module",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-device-utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-device-utils",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-device-utils",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-get-random-values/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-get-random-values",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-get-random-values",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-keychain-module/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-keychain-module",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-keychain-module",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-lite-card/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-lite-card",
"version": "1.1.44",
"version": "1.1.46",
"description": "lite card",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-perf-memory/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-perf-memory",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-perf-memory",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-modules/react-native-splash-screen/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-splash-screen",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-splash-screen",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-views/react-native-auto-size-input/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-auto-size-input",
"version": "1.1.44",
"version": "1.1.46",
"description": "Auto-sizing text input with font scaling, prefix and suffix support",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-views/react-native-pager-view/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-pager-view",
"version": "1.1.44",
"version": "1.1.46",
"description": "React Native wrapper for Android and iOS ViewPager",
"source": "./src/index.tsx",
"main": "./lib/module/index.js",
Expand Down
2 changes: 1 addition & 1 deletion native-views/react-native-scroll-guard/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-scroll-guard",
"version": "1.1.44",
"version": "1.1.46",
"description": "A native view wrapper that prevents parent scrollable containers (PagerView/ViewPager2) from intercepting child scroll gestures",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-views/react-native-skeleton/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-skeleton",
"version": "1.1.44",
"version": "1.1.46",
"description": "react-native-skeleton",
"main": "./lib/module/index.js",
"types": "./lib/typescript/src/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion native-views/react-native-tab-view/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@onekeyfe/react-native-tab-view",
"version": "1.1.44",
"version": "1.1.46",
"description": "Native Bottom Tabs for React Native (UIKit implementation)",
"source": "./src/index.tsx",
"main": "./lib/module/index.js",
Expand Down
16 changes: 11 additions & 5 deletions native-views/react-native-tab-view/src/DelayedFreeze.tsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,33 @@
import React from 'react';
import { Freeze } from 'react-freeze';

const ANIMATION_DELAY = 200;

interface FreezeWrapperProps {
freeze: boolean;
delayedFreeze?: boolean;
children: React.ReactNode;
}

const ANIMATION_DELAY = 200;

function DelayedFreeze({ freeze, children }: FreezeWrapperProps) {
function DelayedFreeze({ freeze, delayedFreeze, children }: FreezeWrapperProps) {
const [freezeState, setFreezeState] = React.useState(false);

React.useEffect(() => {
if (!delayedFreeze) {
return;
}
const id = setTimeout(() => {
setFreezeState(freeze);
}, ANIMATION_DELAY);

return () => {
clearTimeout(id);
};
}, [freeze]);
}, [freeze, delayedFreeze]);

const shouldFreeze = delayedFreeze ? (freeze ? freezeState : false) : freeze;

return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;
return <Freeze freeze={shouldFreeze}>{children}</Freeze>;
}

export default DelayedFreeze;
9 changes: 8 additions & 1 deletion native-views/react-native-tab-view/src/TabView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,12 @@ interface Props<Route extends BaseRoute> {
* Whether to ignore bottom system insets (navigation bar). Android only.
*/
ignoreBottomInsets?: boolean;
/**
* Whether to delay freeze/unfreeze by 200ms on tab switch.
* Defaults to false (immediate freeze). Set to true to restore the
* original delayed behavior.
*/
delayedFreeze?: boolean;
}

const ANDROID_MAX_TABS = 100;
Expand Down Expand Up @@ -224,6 +230,7 @@ const TabView = <Route extends BaseRoute>({
tabLabelStyle,
renderBottomAccessoryView,
activeIndicatorColor,
delayedFreeze = false,
...props
}: Props<Route>) => {
// @ts-ignore
Expand Down Expand Up @@ -432,7 +439,7 @@ const TabView = <Route extends BaseRoute>({
focused ? 'auto' : 'no-hide-descendants'
}
>
<DelayedFreeze freeze={!!freeze}>
<DelayedFreeze freeze={!!freeze} delayedFreeze={delayedFreeze}>
{renderScene({
route,
jumpTo,
Expand Down
Loading