Skip to content

Commit

Permalink
hide tx,BSS dialogs when wallet is auto-locked
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavneet-Sing committed Jul 6, 2023
1 parent d3871e6 commit 72a9429
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 9 deletions.
1 change: 1 addition & 0 deletions android/brave_java_sources.gni
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/TwoLineItemFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/TxDetailsFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/TxFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/WalletBottomSheetDialogFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/dapps/AddSwitchChainNetworkFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/dapps/AddTokenFragment.java",
"../../brave/android/java/org/chromium/chrome/browser/crypto_wallet/fragments/dapps/BaseDAppsBottomSheetDialogFragment.java",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.chromium.brave_wallet.mojom.KeyringService;
import org.chromium.brave_wallet.mojom.KeyringServiceObserver;
import org.chromium.chrome.browser.crypto_wallet.model.CryptoAccountTypeInfo;
import org.chromium.chrome.browser.crypto_wallet.observers.KeyringServiceObserverImpl;
import org.chromium.chrome.browser.crypto_wallet.util.AccountsPermissionsHelper;
import org.chromium.chrome.browser.crypto_wallet.util.AssetUtils;
import org.chromium.chrome.browser.crypto_wallet.util.SelectedAccountResponsesCollector;
Expand Down Expand Up @@ -307,6 +308,10 @@ public void isWalletLocked(Callbacks.Callback1<Boolean> callback) {
mKeyringService.isLocked(isWalletLocked -> callback.call(isWalletLocked));
}

public void registerKeyringObserver(KeyringServiceObserverImpl observer) {
mKeyringService.addObserver(observer);
}

private void handleAddAccountResult(AccountInfo result, Callbacks.Callback1<Boolean> callback) {
mCryptoSharedActions.updateCoinType();
mCryptoSharedActions.onNewAccountAdded();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ApproveTxBottomSheetDialogFragment extends BottomSheetDialogFragment {
public class ApproveTxBottomSheetDialogFragment extends WalletBottomSheetDialogFragment {
private static final String TAG = "ApproveTx";

public static final String TAG_FRAGMENT = ApproveTxBottomSheetDialogFragment.class.getName();
Expand Down Expand Up @@ -219,6 +219,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
try {
BraveActivity activity = BraveActivity.getBraveActivity();
mWalletModel = activity.getWalletModel();
registerKeyRingObserver(mWalletModel.getKeyringModel());
} catch (BraveActivity.BraveActivityNotFoundException e) {
Log.e(TAG, "onCreateDialog " + e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import com.google.android.material.bottomsheet.BottomSheetDialogFragment;

import org.chromium.base.Log;
import org.chromium.brave_wallet.mojom.NetworkInfo;
import org.chromium.chrome.R;
Expand All @@ -28,7 +26,7 @@
import org.chromium.chrome.browser.crypto_wallet.util.Utils;

public class SwapBottomSheetDialogFragment
extends BottomSheetDialogFragment implements View.OnClickListener {
extends WalletBottomSheetDialogFragment implements View.OnClickListener {
public static final String TAG_FRAGMENT = SwapBottomSheetDialogFragment.class.getName();
private static final String TAG = "BSS-bottom-dialog";
private LinearLayout mBuyLayout;
Expand Down Expand Up @@ -67,6 +65,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
mWalletModel = BraveActivity.getBraveActivity().getWalletModel();
registerKeyRingObserver(mWalletModel.getKeyringModel());
} catch (BraveActivity.BraveActivityNotFoundException e) {
Log.e(TAG, "onCreate ", e);
e.printStackTrace();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.RecyclerView;

import com.google.android.material.bottomsheet.BottomSheetDialogFragment;

import org.chromium.base.Log;
import org.chromium.brave_wallet.mojom.TransactionInfo;
import org.chromium.brave_wallet.mojom.TransactionType;
Expand All @@ -48,9 +46,8 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class TransactionDetailsSheetFragment extends BottomSheetDialogFragment {
public class TransactionDetailsSheetFragment extends WalletBottomSheetDialogFragment {
public static final String TAG = TransactionDetailsSheetFragment.class.getName();

private ExecutorService mExecutor;
private Handler mHandler;
private WalletModel mWalletModel;
Expand Down Expand Up @@ -94,6 +91,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
try {
BraveActivity activity = BraveActivity.getBraveActivity();
mWalletModel = activity.getWalletModel();
registerKeyRingObserver(mWalletModel.getKeyringModel());
} catch (BraveActivity.BraveActivityNotFoundException e) {
Log.e(TAG, "onCreate ", e);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* Copyright (c) 2023 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */

package org.chromium.chrome.browser.crypto_wallet.fragments;

import android.content.DialogInterface;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.google.android.material.bottomsheet.BottomSheetDialogFragment;

import org.chromium.chrome.browser.app.domain.KeyringModel;
import org.chromium.chrome.browser.crypto_wallet.observers.KeyringServiceObserverImpl;

/**
* Base class for {@code BottomSheetDialogFragment} with wallet specific implementation
* (auto-dismiss when locked, clean up etc).
*/
public class WalletBottomSheetDialogFragment extends BottomSheetDialogFragment
implements KeyringServiceObserverImpl.KeyringServiceObserverImplDelegate {
private KeyringServiceObserverImpl mKeyringObserver;

@Override
public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog);
if (mKeyringObserver != null) {
mKeyringObserver.close();
}
}

protected void registerKeyRingObserver(KeyringModel keyringModel) {
if (keyringModel == null || mKeyringObserver != null) return;

mKeyringObserver = new KeyringServiceObserverImpl(this);
keyringModel.registerKeyringObserver(mKeyringObserver);
}

@Override
public void locked() {
dismiss();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@
import org.chromium.brave_wallet.mojom.JsonRpcService;
import org.chromium.brave_wallet.mojom.KeyringService;
import org.chromium.chrome.browser.crypto_wallet.activities.BraveWalletBaseActivity;
import org.chromium.chrome.browser.crypto_wallet.fragments.WalletBottomSheetDialogFragment;

public class BaseDAppsBottomSheetDialogFragment extends BottomSheetDialogFragment {
public class BaseDAppsBottomSheetDialogFragment extends WalletBottomSheetDialogFragment {
public BraveWalletService getBraveWalletService() {
Activity activity = getActivity();
if (activity instanceof BraveWalletBaseActivity) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ public void onCreate(Bundle savedInstanceState) {
try {
BraveActivity activity = BraveActivity.getBraveActivity();
mWalletModel = activity.getWalletModel();
registerKeyRingObserver(mWalletModel.getKeyringModel());
} catch (BraveActivity.BraveActivityNotFoundException e) {
Log.e(TAG, "onCreate ", e);
}
Expand Down

0 comments on commit 72a9429

Please sign in to comment.