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

Commit f8cdcbf1 authored by PauloftheWest's avatar PauloftheWest
Browse files

Revert "Add BT message access"

- removed Message Access screen from Bluetooth overflow

Bug: 15720425
Change-Id: I68191a4639ea7e6b6cd3a60e88160443fab2ba0e
parent aea9ae00
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -314,8 +314,6 @@
    <string name="bluetooth_notif_message">Touch to pair with <xliff:g id="device_name">%1$s</xliff:g>.</string>
    <!-- Bluetooth settings screen, menu to show the list of received files [CHAR LIMIT=30] -->
    <string name="bluetooth_show_received_files">Show received files</string>
    <!-- Bluetooth settings screen, menu to show the list of email accounts to pull messages from [CHAR LIMIT=30] -->
    <string name="bluetooth_show_message_access">Message access</string>

    <!-- Strings for BluetoothDevicePicker -->
    <string name="device_picker">Bluetooth device chooser</string>
@@ -326,8 +324,6 @@
    <!-- Strings for asking to the user whether to allow an app to enable bluetooth -->
    <string name="bluetooth_ask_enablement">An app wants to turn on Bluetooth.</string>

    <!-- String for informing the user that bluetooth devices must be granted permission. [CHAR LIMIT=100] -->
    <string name="bluetooth_message_access_notice">Bluetooth devices must ask for permission before accessing available accounts.</string>
    <!-- Strings for asking to the user whether to allow an app to enable discovery mode -->
    <string name="bluetooth_ask_discovery" product="tablet">An app wants to make your tablet visible to other Bluetooth devices for <xliff:g id="timeout">%1$d</xliff:g> seconds.</string>
    <!-- Strings for asking to the user whether to allow an app to enable discovery mode -->
@@ -1207,8 +1203,6 @@
    <string name="bluetooth_pairing_dialog_paring_request"><xliff:g id="device_name">%1$s</xliff:g> wants to pair with Bluetooth. When connected, it will have access to your contacts and call history.</string>
    <!-- Bluetooth settings: The sub heading for devices which have already been paired with this device. [CHAR LIMIT=40] -->
    <string name="bluetooth_preference_paired_devices">Paired devices</string>
    <!-- Bluetooth settings: The sub heading for messaging accesses. [CHAR LIMIT=50] -->
    <string name="bluetooth_message_access">Paired devices can view messages from</string>
    <!-- Bluetooth settings: The sub heading for available devices during and after scanning. [CHAR LIMIT=40] -->
    <string name="bluetooth_preference_found_devices">Available devices</string>
    <!-- Bluetooth settings: The message displayed if no Bluetooth devices were found. [CHAR LIMIT=40] -->
+0 −31
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
        android:title="@string/bluetooth_show_message_access">

    <PreferenceCategory
            android:key="accounts"
            android:title="@string/bluetooth_message_access" />

    <Preference
            android:key="notice"
            android:title=""
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="?android:attr/colorForegroundInverse"
            android:selectable="false"
            android:summary="@string/bluetooth_message_access_notice" />

</PreferenceScreen>
+0 −2
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ import com.android.settings.applications.InstalledAppDetails;
import com.android.settings.applications.ManageApplications;
import com.android.settings.applications.ProcessStatsUi;
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.bluetooth.MessageAccessSettings;
import com.android.settings.dashboard.DashboardCategory;
import com.android.settings.dashboard.DashboardSummary;
import com.android.settings.dashboard.DashboardTile;
@@ -237,7 +236,6 @@ public class SettingsActivity extends Activity
            AdvancedWifiSettings.class.getName(),
            SavedAccessPointsWifiSettings.class.getName(),
            BluetoothSettings.class.getName(),
            MessageAccessSettings.class.getName(),
            SimSettings.class.getName(),
            TetherSettings.class.getName(),
            WifiP2pSettings.class.getName(),
+0 −16
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
    private static final int MENU_ID_SCAN = Menu.FIRST;
    private static final int MENU_ID_RENAME_DEVICE = Menu.FIRST + 1;
    private static final int MENU_ID_SHOW_RECEIVED = Menu.FIRST + 2;
    private static final int MENU_ID_MESSAGE_ACCESS = Menu.FIRST + 3;

    /* Private intent to show the list of received files */
    private static final String BTOPP_ACTION_OPEN_RECEIVED_FILES =
@@ -205,12 +204,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        menu.add(Menu.NONE, MENU_ID_SHOW_RECEIVED, 0, R.string.bluetooth_show_received_files)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        // Message Access API is still not finished, once completed we undo this check.
        // Bug 16232864
        if (android.os.SystemProperties.get("show_bluetooth_message_access").equals("true")){
            menu.add(Menu.NONE, MENU_ID_MESSAGE_ACCESS, 0, R.string.bluetooth_show_message_access)
                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        }
        super.onCreateOptionsMenu(menu, inflater);
    }

@@ -232,14 +225,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
                Intent intent = new Intent(BTOPP_ACTION_OPEN_RECEIVED_FILES);
                getActivity().sendBroadcast(intent);
                return true;

            case MENU_ID_MESSAGE_ACCESS:
                if (getActivity() instanceof SettingsActivity) {
                    ((SettingsActivity) getActivity()).startPreferencePanel(
                            MessageAccessSettings.class.getCanonicalName(), null,
                            R.string.bluetooth_show_message_access, null, this, 0);
                }
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
@@ -377,7 +362,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
        }
    }

    @Override
    public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
        setDeviceListGroup(getPreferenceScreen());
        removeAllDevices();
+0 −167
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.bluetooth;

import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.ActivityManagerNative;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.UserHandle;
import android.preference.SwitchPreference;
import android.preference.Preference;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.SearchIndexableResource;
import android.util.Log;

import com.android.settings.accounts.AuthenticatorHelper;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;

import java.util.ArrayList;
import java.util.List;

public class MessageAccessSettings extends SettingsPreferenceFragment
        implements AuthenticatorHelper.OnAccountsUpdateListener, Indexable {
    private static final String TAG = "MessageAccessSettings";
    private static final String GMAIL_PACKAGE_NAME = "com.google.android.gm";
    private static final String EMAIL_PACKAGE_NAME = "com.google.android.email";

    private Account[] mAccounts;
    private UserHandle mUserHandle;
    private PreferenceGroup mAvailableAccounts;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // TODO: Define behavior for managed profile. See: http://b/16287773
        mUserHandle = new UserHandle(UserHandle.myUserId());

        addPreferencesFromResource(R.xml.bluetooth_message_access);
    }

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

    @Override
    public void onAccountsUpdate(final UserHandle userHandle) {
        mAccounts = AccountManager.get(getActivity()).getAccountsAsUser(
                mUserHandle.getIdentifier());

        final int mAccountsSize = mAccounts.length;
        for (int i = 0; i < mAccountsSize; ++i){
            Log.d(TAG, String.format("account.type = %s\n", mAccounts[i].type));
        }
    }

    /**
     * Retrieves the email icon for a given account's email preference
     *
     * @param accountPref The user's account to retrieve the icon from.
     *
     * @return The drawable representing the icon of the user's email preference
     **/
    private Drawable getIcon(AccountPreference accountPref){
        Drawable icon = null;

        // Currently only two types of icons are allowed.
        final String packageName = accountPref.account.type.equals("com.google")
                ? GMAIL_PACKAGE_NAME : EMAIL_PACKAGE_NAME;

        try{
            icon = getPackageManager().getApplicationIcon(packageName);
        }catch(NameNotFoundException nnfe){
            icon = null;
        }

        return icon;
    }

    private void initPreferences() {
        final PreferenceScreen preferenceScreen = getPreferenceScreen();
        mAvailableAccounts = (PreferenceGroup)preferenceScreen.findPreference("accounts");
        mAccounts = AccountManager.get(getActivity()).getAccountsAsUser(
                mUserHandle.getIdentifier());

        final int mAccountsSize = mAccounts.length;
        for (int i = 0; i < mAccountsSize; ++i){
            AccountPreference accountPref = new AccountPreference(getActivity(), mAccounts[i]);
            Drawable icon = getIcon(accountPref);
            if (icon != null){
                accountPref.setIcon(icon);
            }
            mAvailableAccounts.addPreference(accountPref);
        }
    }

    private class AccountPreference extends SwitchPreference
            implements Preference.OnPreferenceChangeListener{
        private Account account;

        AccountPreference(Context context, Account account){
            super(context);
            this.account = account;
            setTitle(account.type);
            setSummary(account.name);

            setOnPreferenceChangeListener(this);
        }

        @Override
        public boolean onPreferenceChange(Preference preference, Object val) {
            if (preference instanceof AccountPreference){
                final AccountPreference accountPref = (AccountPreference) preference;

                if (((Boolean)val).booleanValue()){
                    // Enable paired deviced to connect, fill in once API is available
                    Log.w(TAG, String.format(
                                "User has turned on '%s' for Bluetooth message access.",
                                accountPref.account.name));
                } else {
                    // Disable paired deviced to connect, fill in once API is available
                    Log.w(TAG, String.format(
                                "User has turned off '%s' for Bluetooth message access.",
                                accountPref.account.name));
                }
            }
            return true;
        }
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
        new BaseSearchIndexProvider() {
            @Override
            public List<SearchIndexableResource> getXmlResourcesToIndex(
                    Context context, boolean enabled) {
                List<SearchIndexableResource> indexables = new ArrayList<SearchIndexableResource>();
                SearchIndexableResource indexable = new SearchIndexableResource(context);
                indexable.xmlResId = R.xml.bluetooth_message_access;
                indexables.add(indexable);
                return indexables;
            }
        };
}
Loading