Skip to content

Commit 590c2ba

Browse files
fix: Create wallet crash (#1222)
1 parent 99be41a commit 590c2ba

File tree

7 files changed

+36
-20
lines changed

7 files changed

+36
-20
lines changed

packages/app/android/app/src/main/java/so/onekey/app/wallet/viewManager/homePage/HomePageManager.kt

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,19 +182,31 @@ class HomePageManager : ViewGroupManager<HomePageView>() {
182182
override fun removeViewAt(parent: HomePageView?, index: Int) {
183183
if (parent == null) return
184184
if (index == 0) {
185-
parent.setHeaderView(View(parent.context), 0)
185+
parent.removeHeaderView()
186186
} else if (index <= mTabs.size) {
187187
mFragments.removeAt(index - 1)
188-
if (index == mTabs.size) {
189-
parent.setViewPager(
190-
(getReactContext(parent).currentActivity as FragmentActivity),
191-
mFragments,
192-
mTabs
193-
)
188+
}
189+
}
190+
191+
override fun removeView(parent: HomePageView?, view: View?) {
192+
if (parent == null) return
193+
if (view == null) return
194+
if (parent.getHeaderView() == view) {
195+
parent.removeHeaderView()
196+
} else {
197+
val index = mFragments.indexOfFirst { it.childView == view }
198+
if (index != -1) {
199+
mFragments.removeAt(index)
194200
}
195201
}
196202
}
197203

204+
override fun removeAllViews(parent: HomePageView?) {
205+
if (parent == null) return
206+
parent.removeHeaderView()
207+
mFragments.clear()
208+
}
209+
198210
override fun needsCustomLayoutForChildren(): Boolean {
199211
return true
200212
}

packages/app/android/app/src/main/java/so/onekey/app/wallet/widget/HomePageLayout.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ open class HomePageLayout @JvmOverloads constructor(
5858
return content.findViewById<ViewGroup>(R.id.toolbar)?.getChildAt(0)
5959
}
6060

61+
fun removeHeaderView() {
62+
content.findViewById<ViewGroup>(R.id.toolbar)?.removeAllViews()
63+
}
64+
6165
fun setHeaderView(view: View, height: Int) {
6266
val contentView = content.findViewById<CollapsingToolbarLayout>(R.id.toolbar)
6367
contentView.removeAllViews()

packages/kit/src/views/CreateWallet/Account/AddImportedAccountDone.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const Done: FC<DoneProps> = ({
4141
}) => {
4242
const intl = useIntl();
4343
const toast = useToast();
44-
const { closeDrawer, resetToRoot } = useNavigationActions();
44+
const { closeDrawer, openRootHome } = useNavigationActions();
4545
useEffect(() => {
4646
async function main() {
4747
try {
@@ -62,7 +62,7 @@ const Done: FC<DoneProps> = ({
6262
});
6363
}
6464
closeDrawer();
65-
resetToRoot();
65+
openRootHome();
6666
closeExtensionWindowIfOnboardingFinished();
6767
}
6868
main();

packages/kit/src/views/CreateWallet/Account/AddImportedOrWatchingAccount.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const AddImportedOrWatchingAccount = () => {
4646
const intl = useIntl();
4747
const toast = useToast();
4848

49-
const { closeDrawer, resetToRoot } = useNavigationActions();
49+
const { closeDrawer, openRootHome } = useNavigationActions();
5050
const navigation = useNavigation<NavigationProps['navigation']>();
5151

5252
const { control, handleSubmit, getValues, watch } =
@@ -127,7 +127,7 @@ const AddImportedOrWatchingAccount = () => {
127127
name,
128128
);
129129
closeDrawer();
130-
resetToRoot();
130+
openRootHome();
131131
closeExtensionWindowIfOnboardingFinished();
132132
} catch (e) {
133133
const errorKey = (e as { key: LocaleIds }).key;
@@ -143,7 +143,7 @@ const AddImportedOrWatchingAccount = () => {
143143
possibleAddTypes,
144144
defaultAccountNames,
145145
closeDrawer,
146-
resetToRoot,
146+
openRootHome,
147147
toast,
148148
intl,
149149
],

packages/kit/src/views/CreateWallet/AddExistingWallet.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const AddExistingWallet = () => {
4343
const intl = useIntl();
4444
const toast = useToast();
4545

46-
const { closeDrawer, resetToRoot } = useNavigationActions();
46+
const { closeDrawer, openRootHome } = useNavigationActions();
4747
const navigation = useNavigation<NavigationProps['navigation']>();
4848

4949
const isSmallScreen = useIsVerticalLayout();
@@ -153,7 +153,7 @@ const AddExistingWallet = () => {
153153
accountName,
154154
);
155155
closeDrawer();
156-
resetToRoot();
156+
openRootHome();
157157
closeExtensionWindowIfOnboardingFinished();
158158
} catch (e) {
159159
const errorKey = (e as { key: LocaleIds }).key;
@@ -178,7 +178,7 @@ const AddExistingWallet = () => {
178178
activeNetworkId,
179179
closeDrawer,
180180
intl,
181-
resetToRoot,
181+
openRootHome,
182182
toast,
183183
wallets,
184184
],

packages/kit/src/views/CreateWallet/AppWallet/Mnemonic.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ const MnemonicContainer = () => {
157157
const { mnemonic, password, withEnableAuthentication } = route.params ?? {};
158158
const toast = useToast();
159159
const intl = useIntl();
160-
const { closeDrawer, resetToRoot } = useNavigationActions();
160+
const { closeDrawer, openRootHome } = useNavigationActions();
161161
const onPromise = useCallback(async () => {
162162
try {
163163
await backgroundApiProxy.serviceAccount.createHDWallet({
@@ -175,7 +175,7 @@ const MnemonicContainer = () => {
175175
}
176176
closeDrawer();
177177
await wait(600);
178-
resetToRoot();
178+
openRootHome();
179179
await wait(600);
180180
closeExtensionWindowIfOnboardingFinished();
181181
}, [
@@ -185,7 +185,7 @@ const MnemonicContainer = () => {
185185
closeDrawer,
186186
intl,
187187
toast,
188-
resetToRoot,
188+
openRootHome,
189189
]);
190190
return <Mnemonic mnemonic={mnemonic} onPromise={onPromise} />;
191191
};

packages/kit/src/views/CreateWallet/HardwareWallet/SetupSuccess.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type RouteProps = RouteProp<
2020
const SetupSuccessModal: FC = () => {
2121
const intl = useIntl();
2222
const route = useRoute<RouteProps>();
23-
const { resetToRoot } = useNavigationActions();
23+
const { openRootHome } = useNavigationActions();
2424
// const isSmallScreen = useIsVerticalLayout();
2525

2626
const { device } = route?.params;
@@ -56,7 +56,7 @@ const SetupSuccessModal: FC = () => {
5656
header={device.name ?? ''}
5757
headerDescription={intl.formatMessage({ id: 'content__activated' })}
5858
secondaryActionTranslationId="action__close"
59-
onSecondaryActionPress={resetToRoot}
59+
onSecondaryActionPress={openRootHome}
6060
staticChildrenProps={{
6161
flex: '1',
6262
p: 6,

0 commit comments

Comments
 (0)