Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3213e41 authored by Abel Tesfaye's avatar Abel Tesfaye
Browse files

Fix missing share context option in settings app

Bug: 191075974

Test: locally with flame
Change-Id: Idbdea3e9b32fc8fd24e4676cfe3189232f97bdcd
parent 5a6655d3
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    static final int MENU_ID_FORGET = Menu.FIRST + 3;
    static final int MENU_ID_MODIFY = Menu.FIRST + 4;
    static final int MENU_FIX_CONNECTIVITY = Menu.FIRST + 5;
    static final int MENU_ID_SHARE = Menu.FIRST + 6;

    @VisibleForTesting
    static final int ADD_NETWORK_REQUEST = 2;
@@ -522,7 +523,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        }

        if (mSelectedWifiEntry.canDisconnect()) {
            menu.add(Menu.NONE, MENU_ID_DISCONNECT, 0 /* order */,
            menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
            menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
                    R.string.wifi_disconnect_button_text);
        }

@@ -561,6 +563,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
            case MENU_ID_FORGET:
                forget(mSelectedWifiEntry);
                return true;
            case MENU_ID_SHARE:
                WifiDppUtils.showLockScreen(getContext(),
                        () -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
                return true;
            case MENU_ID_MODIFY:
                showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
                return true;
@@ -595,6 +601,23 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        return true;
    }

    private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
        final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
                mWifiManager, wifiEntry);

        if (intent == null) {
            Log.e(TAG, "Launch Wi-Fi DPP QR code generator with a wrong Wi-Fi network!");
        } else {
            mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
                    SettingsEnums.ACTION_SETTINGS_SHARE_WIFI_QR_CODE,
                    SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR,
                    /* key */ null,
                    /* value */ Integer.MIN_VALUE);

            startActivity(intent);
        }
    }

    private void showDialog(WifiEntry wifiEntry, int dialogMode) {
        if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
                && wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {