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

Commit ff0db2f2 authored by Arc Wang's avatar Arc Wang Committed by Android (Google) Code Review
Browse files

Merge "Fix Wi-Fi QR code scanning icon disappears problem" into qt-dev

parents 982e46fe 2b0c8a0c
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ public class AddWifiNetworkPreference extends Preference {

    private static final String TAG = "AddWifiNetworkPreference";

    private boolean mInitialized;
    private final Drawable mScanIconDrawable;

    public AddWifiNetworkPreference(Context context) {
        super(context);
@@ -45,25 +45,23 @@ public class AddWifiNetworkPreference extends Preference {
        setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
        setIcon(R.drawable.ic_menu_add);
        setTitle(R.string.wifi_add_network);

        mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);

        if (!mInitialized) {
            mInitialized = true;

            final ImageButton imageButton = (ImageButton) holder.findViewById(R.id.button_icon);
            imageButton.setImageDrawable(getDrawable(R.drawable.ic_scan_24dp));
            imageButton.setContentDescription(
        final ImageButton scanButton = (ImageButton) holder.findViewById(R.id.button_icon);
        scanButton.setImageDrawable(mScanIconDrawable);
        scanButton.setContentDescription(
                getContext().getString(R.string.wifi_dpp_scan_qr_code));
            imageButton.setOnClickListener(view -> {
        scanButton.setOnClickListener(view -> {
            getContext().startActivity(
                WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
        });
    }
    }

    private Drawable getDrawable(@DrawableRes int iconResId) {
        Drawable buttonIcon = null;
+19 −19
Original line number Diff line number Diff line
@@ -37,9 +37,7 @@ import com.android.settings.widget.ValidatedEditTextPreference;
public class WifiTetherSsidPreference extends ValidatedEditTextPreference {
    private static final String TAG = "WifiTetherSsidPreference";

    private ImageButton mImageButton;
    private Drawable mButtonIcon;
    private View mDivider;
    private Drawable mShareIconDrawable;
    private View.OnClickListener mClickListener;
    private boolean mVisible;

@@ -72,30 +70,29 @@ public class WifiTetherSsidPreference extends ValidatedEditTextPreference {
        // TODO(b/129019971): use methods of divider line in parent object
        setLayoutResource(com.android.settingslib.R.layout.preference_two_target);
        setWidgetLayoutResource(R.layout.wifi_button_preference_widget);

        mShareIconDrawable = getDrawable(R.drawable.ic_qrcode_24dp);
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);

        if (mImageButton == null) {
            mImageButton = (ImageButton) holder.findViewById(R.id.button_icon);
        final ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
        final View dividerView = holder.findViewById(R.id.two_target_divider);

            mImageButton.setContentDescription(
        if (mVisible) {
            shareButton.setOnClickListener(mClickListener);
            shareButton.setVisibility(View.VISIBLE);
            shareButton.setContentDescription(
                    getContext().getString(R.string.wifi_dpp_share_hotspot));
            setButtonIcon(R.drawable.ic_qrcode_24dp);
            mImageButton.setImageDrawable(mButtonIcon);

            mDivider = holder.findViewById(R.id.two_target_divider);
        }
            shareButton.setImageDrawable(mShareIconDrawable);

        if (mVisible) {
            mImageButton.setOnClickListener(mClickListener);
            mImageButton.setVisibility(View.VISIBLE);
            mDivider.setVisibility(View.VISIBLE);
            dividerView.setVisibility(View.VISIBLE);
        } else {
            mImageButton.setVisibility(View.GONE);
            mDivider.setVisibility(View.GONE);
            shareButton.setVisibility(View.GONE);

            dividerView.setVisibility(View.GONE);
        }
    }

@@ -107,12 +104,15 @@ public class WifiTetherSsidPreference extends ValidatedEditTextPreference {
        mVisible = visible;
    }

    private void setButtonIcon(@DrawableRes int iconResId) {
    private Drawable getDrawable(@DrawableRes int iconResId) {
        Drawable buttonIcon = null;

        try {
            mButtonIcon = getContext().getDrawable(iconResId);
            buttonIcon = getContext().getDrawable(iconResId);
        } catch (Resources.NotFoundException exception) {
            Log.e(TAG, "Resource does not exist: " + iconResId);
        }
        return buttonIcon;
    }

    @VisibleForTesting