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

Commit 889db880 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add additional preference items to WifiSettings for configuring Wi-Fi."

parents b62f4f75 41456785
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1634,6 +1634,8 @@
    <string name="wifi_cellular_data_fallback_summary">Use cellular data when Wi\u2011Fi has no Internet access. Data usage may apply.</string>
    <!-- Action bar text message to manually add a wifi network [CHAR LIMIT=20]-->
    <string name="wifi_add_network">Add network</string>
    <!-- Action bar title to open additional Wi-Fi settings-->
    <string name="wifi_configure_settings_preference_title">Wi\u2011Fi preferences</string>
    <!-- Header for the list of wifi networks-->
    <string name="wifi_access_points">Wi\u2011Fi networks</string>
    <!-- Menu option to do WPS Push Button [CHAR LIMIT=25]-->
+0 −5
Original line number Diff line number Diff line
@@ -17,11 +17,6 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:title="@string/wifi_configure_titlebar">

    <Preference
        android:key="saved_networks"
        android:title="@string/wifi_saved_access_points_label"
        android:fragment="com.android.settings.wifi.SavedAccessPointsWifiSettings" />

    <!-- android:dependency="enable_wifi" -->
    <ListPreference
        android:key="sleep_policy"
+15 −6
Original line number Diff line number Diff line
@@ -14,14 +14,23 @@
     limitations under the License.
-->

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
        android:title="@string/wifi_settings"
        settings:keywords="@string/keywords_wifi">

    <!-- Needed so PreferenceGroupAdapter allows AccessPointPreference to be
         recycled. Removed in onResume -->
    <com.android.settings.wifi.LongPressAccessPointPreference
        android:key="dummy" />
    <PreferenceCategory android:key="access_points"/>

    <PreferenceCategory android:key="additional_settings">
        <Preference
                android:key="configure_settings"
                android:title="@string/wifi_configure_settings_preference_title"
                android:fragment="com.android.settings.wifi.ConfigureWifiSettings" />

        <Preference
                android:key="saved_networks"
                android:title="@string/wifi_saved_access_points_label"
                android:fragment="com.android.settings.wifi.SavedAccessPointsWifiSettings" />
    </PreferenceCategory>
</PreferenceScreen>
+0 −1
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ public class ConfigureWifiSettings extends DashboardFragment {
        mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), mWifiManager));
        controllers.add(new SavedNetworkPreferenceController(context, mWifiManager));
        controllers.add(new CellularFallbackPreferenceController(context));
        controllers.add(new AllowRecommendationPreferenceController(context));
        controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
+119 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.wifi;

import android.content.Context;
import android.support.annotation.Nullable;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.text.Spannable;
import android.text.style.TextAppearanceSpan;
import android.util.AttributeSet;
import android.widget.TextView;
import com.android.settings.LinkifyUtils;

/**
 * A preference with a title that can have linkable content on click.
 */
public class LinkablePreference extends Preference {

    private LinkifyUtils.OnClickListener mClickListener;
    private CharSequence mContentTitle;
    private CharSequence mContentDescription;

    public LinkablePreference(Context ctx, AttributeSet attrs, int defStyle) {
        super(ctx, attrs, defStyle);
        setSelectable(false);
    }

    public LinkablePreference(Context ctx, AttributeSet attrs) {
        super(ctx, attrs);
        setSelectable(false);
    }

    public LinkablePreference(Context ctx) {
        super(ctx);
        setSelectable(false);
    }

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

        TextView textView = (TextView) view.findViewById(android.R.id.title);
        if (textView == null || mContentTitle == null || mClickListener == null) {
            return;
        }

        textView.setSingleLine(false);
        StringBuilder contentBuilder = new StringBuilder().append(mContentTitle);
        if (mContentDescription != null) {
            contentBuilder.append("\n\n");
            contentBuilder.append(mContentDescription);
        }

        boolean linked = LinkifyUtils.linkify(textView, contentBuilder, mClickListener);
        if (linked && mContentTitle != null) {
            // Embolden and enlarge the title.
            Spannable boldSpan = (Spannable) textView.getText();
            boldSpan.setSpan(
                    new TextAppearanceSpan(
                            getContext(), android.R.style.TextAppearance_Medium),
                    0,
                    mContentTitle.length(),
                    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
            textView.setText(boldSpan);
        }
    }

    /**
     * Sets the linkable text for the Preference title.
     * @param contentTitle text to set the Preference title.
     * @param contentDescription description text to append underneath title, can be null.
     * @param clickListener OnClickListener for the link portion of the text.
     */
    public void setText(
            CharSequence contentTitle,
            @Nullable CharSequence contentDescription,
            LinkifyUtils.OnClickListener clickListener) {
        mContentTitle = contentTitle;
        mContentDescription = contentDescription;
        mClickListener = clickListener;
        // sets the title so that the title TextView is not hidden in super.onBindViewHolder()
        super.setTitle(contentTitle);
    }

    /**
     * Sets the title of the LinkablePreference. resets linkable text for reusability.
     */
    @Override
    public void setTitle(int titleResId) {
        mContentTitle = null;
        mContentDescription = null;
        super.setTitle(titleResId);
    }

    /**
     * Sets the title of the LinkablePreference. resets linkable text for reusability.
     */
    @Override
    public void setTitle(CharSequence title) {
        mContentTitle = null;
        mContentDescription = null;
        super.setTitle(title);
    }
}
Loading