diff options
author | Jake Hamby <jhamby@google.com> | 2011-07-25 17:21:39 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-25 17:21:39 -0700 |
commit | ddf71724fd042a7d1b794fc676dd463b387de355 (patch) | |
tree | 6ac3fc4792a1f485a145c31dfc3af6e6f166631e /src | |
parent | b55738841b2a9e53bb6873bd4d5fb133f8dc099c (diff) | |
parent | 49cfe8a3c8a15c5ec747cbeecacb50908da8e09b (diff) | |
download | packages_apps_settings-ddf71724fd042a7d1b794fc676dd463b387de355.zip packages_apps_settings-ddf71724fd042a7d1b794fc676dd463b387de355.tar.gz packages_apps_settings-ddf71724fd042a7d1b794fc676dd463b387de355.tar.bz2 |
Merge "Fix some Bluetooth settings bugs."
Diffstat (limited to 'src')
4 files changed, 32 insertions, 94 deletions
diff --git a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java index 0ad8948..6b654b5 100644 --- a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java +++ b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java @@ -144,12 +144,24 @@ final class BluetoothDiscoverableEnabler implements Preference.OnPreferenceClick if (getDiscoverableTimeout() == DISCOVERABLE_TIMEOUT_NEVER) { mDiscoveryPreference.setSummary(R.string.bluetooth_is_discoverable_always); } else { - String textTimeout = DateUtils.formatElapsedTime(timeout); + String textTimeout = formatTimeRemaining(timeout); mDiscoveryPreference.setSummary(mContext.getString(R.string.bluetooth_is_discoverable, textTimeout)); } } + private static String formatTimeRemaining(int timeout) { + StringBuilder sb = new StringBuilder(6); // "mmm:ss" + int min = timeout / 60; + sb.append(min).append(':'); + int sec = timeout - (min * 60); + if (sec < 10) { + sb.append('0'); + } + sb.append(sec); + return sb.toString(); + } + void setDiscoverableTimeout(int index) { String timeoutValue; switch (index) { diff --git a/src/com/android/settings/bluetooth/BluetoothFindNearby.java b/src/com/android/settings/bluetooth/BluetoothFindNearby.java deleted file mode 100644 index 066f4f6..0000000 --- a/src/com/android/settings/bluetooth/BluetoothFindNearby.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2011 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.bluetooth.BluetoothAdapter; -import android.bluetooth.BluetoothDevice; - -import com.android.settings.R; - -/** - * Fragment to scan and show the discoverable devices. - */ -public final class BluetoothFindNearby extends DeviceListPreferenceFragment { - - @Override - void addPreferencesForActivity() { - addPreferencesFromResource(R.xml.device_picker); - } - - @Override - public void onResume() { - super.onResume(); - if (mSelectedDevice != null) { - CachedBluetoothDeviceManager manager = mLocalManager.getCachedDeviceManager(); - CachedBluetoothDevice device = manager.findDevice(mSelectedDevice); - if (device != null && device.getBondState() == BluetoothDevice.BOND_BONDED) { - // selected device was paired, so return from this screen - finish(); - return; - } - } - mLocalAdapter.startScanning(true); - } - - @Override - void onDevicePreferenceClick(BluetoothDevicePreference btPreference) { - mLocalAdapter.stopScanning(); - super.onDevicePreferenceClick(btPreference); - } - - public void onDeviceBondStateChanged(CachedBluetoothDevice - cachedDevice, int bondState) { - if (bondState == BluetoothDevice.BOND_BONDED) { - // return from scan screen after successful auto-pairing - finish(); - } - } - - @Override - public void onBluetoothStateChanged(int bluetoothState) { - super.onBluetoothStateChanged(bluetoothState); - - if (bluetoothState == BluetoothAdapter.STATE_ON) { - mLocalAdapter.startScanning(false); - } - } -} diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index ede218d..4b0db68 100644 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -72,6 +72,8 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { private View mView; private TextView mEmptyView; + private final IntentFilter mIntentFilter; + // accessed from inner class (not private to avoid thunks) Preference mMyDevicePreference; @@ -79,21 +81,22 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); - if (action.equals(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED) || - (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED) && - (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, - BluetoothAdapter.ERROR) == BluetoothAdapter.STATE_ON))) { + if (action.equals(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) { updateDeviceName(); } } private void updateDeviceName() { - if (mLocalAdapter != null && mLocalAdapter.isEnabled() && mMyDevicePreference != null) { + if (mLocalAdapter.isEnabled() && mMyDevicePreference != null) { mMyDevicePreference.setTitle(mLocalAdapter.getName()); } } }; + public BluetoothSettings() { + mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -142,16 +145,12 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { super.onResume(); mBluetoothEnabler.resume(); - updateContent(mLocalAdapter.getBluetoothState()); - if (mDiscoverableEnabler != null) { mDiscoverableEnabler.resume(); } + getActivity().registerReceiver(mReceiver, mIntentFilter); - IntentFilter filter = new IntentFilter(); - filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); - filter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED); - getActivity().registerReceiver(mReceiver, filter); + updateContent(mLocalAdapter.getBluetoothState()); } @Override @@ -174,8 +173,10 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { .setEnabled(bluetoothIsEnabled && !isDiscovering) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); menu.add(Menu.NONE, MENU_ID_RENAME_DEVICE, 0, R.string.bluetooth_rename_device) - .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); + .setEnabled(bluetoothIsEnabled) + .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); menu.add(Menu.NONE, MENU_ID_VISIBILITY_TIMEOUT, 0, R.string.bluetooth_visibility_timeout) + .setEnabled(bluetoothIsEnabled) .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); @@ -233,7 +234,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { private void updateContent(int bluetoothState) { final PreferenceScreen preferenceScreen = getPreferenceScreen(); - getActivity().invalidateOptionsMenu(); int messageId = 0; switch (bluetoothState) { @@ -245,9 +245,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { if (mMyDevicePreference == null) { mMyDevicePreference = new Preference(getActivity()); } - if (mLocalAdapter != null) { - mMyDevicePreference.setTitle(mLocalAdapter.getName()); - } + mMyDevicePreference.setTitle(mLocalAdapter.getName()); mMyDevicePreference.setPersistent(false); mMyDevicePreference.setEnabled(true); preferenceScreen.addPreference(mMyDevicePreference); @@ -255,6 +253,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { if (mDiscoverableEnabler == null) { mDiscoverableEnabler = new BluetoothDiscoverableEnabler(getActivity(), mLocalAdapter, mMyDevicePreference); + mDiscoverableEnabler.resume(); } // Paired devices category @@ -291,14 +290,12 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { preferenceScreen.removePreference(mPairedDevicesCategory); startScanning(); } + getActivity().invalidateOptionsMenu(); return; // not break case BluetoothAdapter.STATE_TURNING_OFF: - int preferenceCount = preferenceScreen.getPreferenceCount(); - for (int i = 0; i < preferenceCount; i++) { - preferenceScreen.getPreference(i).setEnabled(false); - } - return; // not break + messageId = R.string.bluetooth_turning_off; + break; case BluetoothAdapter.STATE_OFF: messageId = R.string.bluetooth_empty_list_bluetooth_off; @@ -312,6 +309,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment { setDeviceListGroup(preferenceScreen); removeAllDevices(); mEmptyView.setText(messageId); + getActivity().invalidateOptionsMenu(); } @Override diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java index 9783fd7..53bd33c 100644 --- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java +++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java @@ -151,7 +151,6 @@ public abstract class DeviceListPreferenceFragment extends public void onDeviceAdded(CachedBluetoothDevice cachedDevice) { if (mDevicePreferenceMap.get(cachedDevice) != null) { - Log.e(TAG, "Got onDeviceAdded, but cachedDevice already exists"); return; } |