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

Commit 7830e83c authored by Bonian Chen's avatar Bonian Chen Committed by Automerger Merge Worker
Browse files

Merge "[Settings] Allow talkback to focus and select APN" into rvc-dev am: 97de75fa

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11802015

Change-Id: Ib197508a45c4b9ec9b022d1f35a5a889588c39d6
parents ae2c0de1 97de75fa
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:focusable="false"
    android:gravity="center_vertical">

    <RelativeLayout
@@ -30,13 +31,14 @@
        android:gravity="center_vertical"
        android:layout_weight="1"
        android:focusable="true"
        android:clickable="true"
        android:background="?android:attr/selectableItemBackground">

        <TextView
            android:id="@android:id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="true"
            android:focusable="false"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceListItem" />

@@ -48,6 +50,7 @@
            android:layout_alignStart="@android:id/title"
            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
            android:textColor="?android:attr/textColorSecondary"
            android:focusable="false"
            android:maxLines="2" />

    </RelativeLayout>
@@ -59,6 +62,7 @@
        android:layout_marginStart="8dip"
        android:layout_marginEnd="8dip"
        android:layout_gravity="center_vertical"
        android:focusable="true"
        android:clickable="true" />

</LinearLayout>
+34 −14
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.util.Log;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.Toast;

import androidx.preference.Preference;
@@ -34,19 +35,32 @@ import androidx.preference.PreferenceViewHolder;

import com.android.settings.R;

public class ApnPreference extends Preference implements CompoundButton.OnCheckedChangeListener {
/**
 * Preference of APN UI entry
 */
public class ApnPreference extends Preference implements CompoundButton.OnCheckedChangeListener,
        View.OnClickListener {
    final static String TAG = "ApnPreference";

    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;

    /**
     * Constructor of Preference
     */
    public ApnPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    /**
     * Constructor of Preference
     */
    public ApnPreference(Context context, AttributeSet attrs) {
        this(context, attrs, R.attr.apnPreferenceStyle);
    }

    /**
     * Constructor of Preference
     */
    public ApnPreference(Context context) {
        this(context, null);
    }
@@ -61,6 +75,9 @@ public class ApnPreference extends Preference implements CompoundButton.OnChecke
    public void onBindViewHolder(PreferenceViewHolder view) {
        super.onBindViewHolder(view);

        final RelativeLayout textArea = (RelativeLayout) view.findViewById(R.id.text_layout);
        textArea.setOnClickListener(this);

        final View widget = view.findViewById(R.id.apn_radiobutton);
        if ((widget != null) && widget instanceof RadioButton) {
            final RadioButton rb = (RadioButton) widget;
@@ -111,23 +128,26 @@ public class ApnPreference extends Preference implements CompoundButton.OnChecke
    }

    @Override
    protected void onClick() {
    public void onClick(View layoutView) {
        super.onClick();
        final Context context = getContext();
        if (context != null) {
        final int pos = Integer.parseInt(getKey());
        if (context == null) {
            Log.w(TAG, "No context available for pos=" + pos);
            return;
        }

        if (mHideDetails) {
            Toast.makeText(context, context.getString(
                    R.string.cannot_change_apn_toast), Toast.LENGTH_LONG).show();
            return;
        }
            final int pos = Integer.parseInt(getKey());
        final Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
        final Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
        editIntent.putExtra(ApnSettings.SUB_ID, mSubId);
        editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        context.startActivity(editIntent);
    }
    }

    public void setSelectable(boolean selectable) {
        mSelectable = selectable;