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

Commit cb193d55 authored by Lifu Tang's avatar Lifu Tang
Browse files

Added a screen to configure wireless scanning

- Created "Scanning" preference screen

- Added overflow menu on "Location" settings to access "Scanning" settings

- Moved "Wi-Fi scanning always available" from Wi-Fi settings to "Scanning"
  settings

- Added "Bluetooth scanning always available" preference (UI only)

Change-Id: I85d8cd60ab309db5db9caee43f4b5a117192d904
parent 584b2b2b
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -1415,12 +1415,6 @@
    <string name="wifi_poor_network_detection_summary">Don\'t use a Wi\u2011Fi network unless it has a good Internet connection</string>
    <!-- Checkbox summary for option to toggle poor network detection [CHAR LIMIT=60] -->
    <string name="wifi_avoid_poor_network_detection_summary">Only use networks that have a good Internet connection</string>
    <!-- Checkbox title for option to scan always available setting -->
    <string name="wifi_scan_always_available">Scanning always available</string>
    <!-- Checkbox title for option to scan always available setting [CHAR LIMIT=60] -->
    <string name="wifi_scan_always_available_title">Always allow scanning</string>
    <!-- Checkbox summary for option to toggle scan always available setting -->
    <string name="wifi_scan_always_available_summary">Let Google\'s location service and other apps scan for networks, even when Wi\u2011Fi is off</string>
    <!-- Checkbox title for option to connect to open Wi-Fi automatically [CHAR LIMIT=40] -->
    <string name="wifi_automatically_connect_title">Use open Wi\u2011Fi automatically</string>
    <!-- Checkbox summary for option to connect to open Wi-Fi automatically  [CHAR LIMIT=100] -->
@@ -2628,6 +2622,21 @@
    <string name="location_mode_battery_saving_description">Use Wi\u2011Fi and cellular networks to determine location</string>
    <!-- [CHAR LIMIT=130] Location mode screen, description for sensors only mode -->
    <string name="location_mode_sensors_only_description">Use GPS to determine location</string>
    <!-- Help menu label [CHAR LIMIT=20] Location settings screen, overflow menu that takes the user
      to scanning settings activity -->
    <string name="location_menu_scanning">Scanning</string>
    <!-- [CHAR LIMIT=30] Wireless background scanning settings screen, screen title -->
    <string name="location_scanning_screen_title">Scanning</string>
    <!-- [CHAR LIMIT=130] Preference title for Wi-Fi always scanning [DO NOT TRANSLATE] -->
    <string name="location_scanning_wifi_always_scanning_title">Wi\u2011Fi scanning always available</string>
    <!-- Preference description text for Wi-Fi always scanning [DO NOT TRANSLATE] -->
    <string name="location_scanning_wifi_always_scanning_description">The clear history button in
        your browser has saved more lives than Superman</string>
    <!-- [CHAR LIMIT=130] Description text for Bluetooth always scanning [DO NOT TRANSLATE] -->
    <string name="location_scanning_bluetooth_always_scanning_title">Bluetooth scanning always available</string>
    <!-- Description text for Bluetooth always scanning [DO NOT TRANSLATE] -->
    <string name="location_scanning_bluetooth_always_scanning_description">If you want to catch a
        squirrel just climb a tree and act like a nut</string>

    <!-- [CHAR LIMIT=30] Security & location settings screen, setting check box label for Google location service (cell ID, wifi, etc.) -->
    <string name="location_network_based">Wi\u2011Fi &amp; cellular network location</string>
+34 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 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.
-->

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:title="@string/location_scanning_screen_title">

        <SwitchPreference
            android:title="@string/location_scanning_wifi_always_scanning_title"
            android:summary="@string/location_scanning_wifi_always_scanning_description"
            android:defaultValue="true"
            android:key="wifi_always_scanning"
            android:persistent="false" />

        <SwitchPreference
            android:title="@string/location_scanning_bluetooth_always_scanning_title"
            android:summary="@string/location_scanning_bluetooth_always_scanning_description"
            android:defaultValue="true"
            android:key="bluetooth_always_scanning"
            android:persistent="false" />

</PreferenceScreen>
+0 −6
Original line number Diff line number Diff line
@@ -24,12 +24,6 @@
            android:summary="@string/wifi_notify_open_networks_summary"
            android:persistent="false" />

    <SwitchPreference
            android:key="wifi_scan_always_available"
            android:title="@string/wifi_scan_always_available"
            android:summary="@string/wifi_scan_always_available_summary"
            android:persistent="false" />

    <ListPreference
            android:key="sleep_policy"
            android:title="@string/wifi_setting_sleep_policy_title"
+27 −0
Original line number Diff line number Diff line
@@ -29,6 +29,9 @@ import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Switch;

import com.android.settings.R;
@@ -66,6 +69,8 @@ public class LocationSettings extends LocationSettingsBase
    /** Key for preference category "Location services" */
    private static final String KEY_LOCATION_SERVICES = "location_services";

    private static final int MENU_SCANNING = Menu.FIRST;

    private SwitchBar mSwitchBar;
    private Switch mSwitch;
    private boolean mValidListener = false;
@@ -249,6 +254,28 @@ public class LocationSettings extends LocationSettingsBase
        }
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.add(0, MENU_SCANNING, 0, R.string.location_menu_scanning);
        // The super class adds "Help & Feedback" menu item.
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        final SettingsActivity activity = (SettingsActivity) getActivity();
        switch (item.getItemId()) {
            case MENU_SCANNING:
                activity.startPreferencePanel(
                        ScanningSettings.class.getName(), null,
                        R.string.location_scanning_screen_title, null, LocationSettings.this,
                        0);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    @Override
    public int getHelpResource() {
        return R.string.help_url_location_access;
+69 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2015 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.location;

import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.provider.Settings.Global;

import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;

/**
 * A page that configures the background scanning settings for Wi-Fi and Bluetooth.
 */
public class ScanningSettings extends SettingsPreferenceFragment {
    private static final String KEY_WIFI_SCAN_ALWAYS_AVAILABLE = "wifi_always_scanning";

    @Override
    public void onResume() {
        super.onResume();
        createPreferenceHierarchy();
    }

    private PreferenceScreen createPreferenceHierarchy() {
        PreferenceScreen root = getPreferenceScreen();
        if (root != null) {
            root.removeAll();
        }
        addPreferencesFromResource(R.xml.location_scanning);
        root = getPreferenceScreen();
        initPreferences();
        return root;
    }

    private void initPreferences() {
        SwitchPreference scanAlwaysAvailable =
            (SwitchPreference) findPreference(KEY_WIFI_SCAN_ALWAYS_AVAILABLE);
        scanAlwaysAvailable.setChecked(Global.getInt(getContentResolver(),
                    Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1);
    }

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
        String key = preference.getKey();
        if (KEY_WIFI_SCAN_ALWAYS_AVAILABLE.equals(key)) {
            Global.putInt(getContentResolver(),
                    Global.WIFI_SCAN_ALWAYS_AVAILABLE,
                    ((SwitchPreference) preference).isChecked() ? 1 : 0);
        } else {
            return super.onPreferenceTreeClick(screen, preference);
        }
        return true;
    }
}
Loading