Merge pull request #15773 from brave/android_vpn_preference

Fixes a crash on dynamically added vpn preference on Android
This commit is contained in:
Serg
2022-11-03 00:15:07 +00:00
committed by GitHub
@@ -45,7 +45,7 @@ import org.chromium.ui.base.DeviceFormFactor;
import java.util.HashMap;
// This exculdes some settings in main settings screen.
// This excludes some settings in main settings screen.
public class BraveMainPreferencesBase
extends BravePreferenceFragment implements Preference.OnPreferenceChangeListener {
// sections
@@ -93,6 +93,7 @@ public class BraveMainPreferencesBase
private static final String PREF_HOME_SCREEN_WIDGET = "home_screen_widget";
private final HashMap<String, Preference> mRemovedPreferences = new HashMap<>();
private Preference mVpnCalloutPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -195,10 +196,14 @@ public class BraveMainPreferencesBase
if (BraveVpnPrefUtils.shouldShowCallout() && !BraveVpnPrefUtils.isSubscriptionPurchase()
&& BraveVpnUtils.isBraveVpnFeatureEnable()
&& InAppPurchaseWrapper.getInstance().isSubscriptionSupported()) {
VpnCalloutPreference vpnCalloutPreference = new VpnCalloutPreference(getActivity());
vpnCalloutPreference.setKey(PREF_BRAVE_VPN_CALLOUT);
vpnCalloutPreference.setOrder(firstSectionOrder);
getPreferenceScreen().addPreference(vpnCalloutPreference);
if (getActivity() != null && mVpnCalloutPreference == null) {
mVpnCalloutPreference = new VpnCalloutPreference(getActivity());
}
if (mVpnCalloutPreference != null) {
mVpnCalloutPreference.setKey(PREF_BRAVE_VPN_CALLOUT);
mVpnCalloutPreference.setOrder(firstSectionOrder);
getPreferenceScreen().addPreference(mVpnCalloutPreference);
}
}
findPreference(PREF_FEATURES_SECTION).setOrder(++firstSectionOrder);