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

Commit 3213a28d authored by Salvador Martinez's avatar Salvador Martinez
Browse files

modified settings to use settingslib class

LinkTextView is duplicated in various places in the
code base. The duplicate in settings has been removed
and the relevant classes have been updated to use the
one located in SettingsLib.

Test: robotests still pass
Bug: 34621372
Change-Id: I1d3cffb5e1960042fab752a47c0d842406468fd2
parent d9d463be
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@
            android:layout_height="wrap_content"/>
    </LinearLayout>

    <com.android.settings.widget.LinkTextView
    <com.android.settingslib.widget.LinkTextView
        android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@
        android:orientation="vertical"
        android:padding="24dp">

        <com.android.settings.widget.LinkTextView
        <com.android.settingslib.widget.LinkTextView
            android:id="@+id/support_disclaimer_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
+0 −66
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.widget;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v13.view.ViewCompat;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.TextView;
import com.android.setupwizardlib.util.LinkAccessibilityHelper;

/**
 * Copied from setup wizard.
 */
public class LinkTextView extends TextView {

    private LinkAccessibilityHelper mAccessibilityHelper;

    public LinkTextView(Context context) {
        this(context, null);
    }

    public LinkTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mAccessibilityHelper = new LinkAccessibilityHelper(this);
        ViewCompat.setAccessibilityDelegate(this, mAccessibilityHelper);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        super.setText(text, type);
        if (text instanceof Spanned) {
            final ClickableSpan[] spans =
                    ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class);
            if (spans.length > 0) {
                setMovementMethod(LinkMovementMethod.getInstance());
            }
        }
    }

    @Override
    protected boolean dispatchHoverEvent(@NonNull MotionEvent event) {
        if (mAccessibilityHelper.dispatchHoverEvent(event)) {
            return true;
        }
        return super.dispatchHoverEvent(event);
    }
}