Switched to inflating chart views from XML, using attributes for
configuration. Start using drawable assets for chart components
instead of manually painting. Include hand-cut assets, and animate
between states when touched to invoke.
Clamp sweeps to valid chart ranges and prepare for sweep labels.
Bug: 4768483, 4598460
Change-Id: Ic660c35bec826eb5e3f6a1dde3cc04d8c437ef2b
Derive better labels from PackageManager, including for sharedUid
case. Disable "App settings" button when no ResolveInfo found, and
hide "Restrict" checkbox for system UIDs. Also hide apps with 0
bytes usage.
Change-Id: I4b0a66f6912c02c56bfcbcb5b46f3ae2ba0df504
Create dialog to edit "cycle day" when data usage resets. Also added
dialogs to confirm enabling limit and restricting an application.
Change-Id: I1e08b17fabd1fcfc2f260807a61435d0ff1a8627
Fragment to show application data usage details, including chart with
inspection ranges. Button that invokes ACTION_MANAGE_NETWORK_USAGE
towards application, and UID-specific policy controls. Fragment is
launched when clicking list items from data usage summary page.
Change-Id: Ie1564aa8af98e1a7083817a997059a5a7b1caa50
Create NetworkPolicyModifier which knows about which mobile network
policies can coexist. Settings UI uses this modifier to drive UI and
persist policies.
Change-Id: Ib3f3841b0a74c14eefb99209dd644a2e7b7e525d
Added ActionBar items to control complexity of data surfaced; checked
state causes tabs to be shown/hidden for "Mobile", "2G-3G", "4G", and
"Wi-Fi" network templates. Loading historical stats and policy from
system services based on selected tab.
Change entire body under tabs to scroll, treating network options and
chart as ListView headers. Teach chart sweep to disable intercept to
play with ListView, and draw sweep disabled as dashed line. Hijacking
Preference views for toggles to offer consistency. No policy updates
are persisted yet.
Based on available historical network stats and policy cycle reset day,
build list of user-selectable cycles. Wired up chart to display cycle
data and reset inspection region to last week of available data.
Change-Id: Ia561578276fa23908b745fbc06a6ef828d9ccc2e
Chart of network usage over time, with draggable "sweep" bars for
inspection region and warning/limits. Talks with NetworkStatsService
for live data, and updates list of application usage as inspection
region changes.
Change-Id: I2a406e6776daf7d74143c07ec683c10fe711c277
Major refactoring of Bluetooth settings classes.
- Moved all functionality from LocalBluetoothManager into new
LocalBluetoothAdapter and LocalBluetoothPreferences, and into
existing classes.
- Refactored functionality from BluetoothEventRedirector into new
BluetoothEventManager class, deleting the original version. New
version uses a HashMap from action Strings to implementers of the
BluetoothEventManager.Handler interface.
- Created new BluetoothDiscoveryReceiver to update shared preferences
timestamp for Bluetooth discovery start/finish. This is the only event
handling we need to do when the settings app is not visible, so it has
its own receiver entry in AndroidManifest.xml. Edits are written using
QueuedWork.singleThreadExecutor(), which BroadcastReceiver knows about
and will wait for completion, eliminating the need for PendingResult.
- Miscellaneous cleanups to code style and logic for readability.
- Pulled some large switch statement code blocks into new methods.
- Changed all Bluetooth state references to the new BluetoothProfile
constants.
- Changed use of deprecated Notification constructor in
BluetoothPairingRequest to use Notification.Builder.
- Moved Utf8ByteLengthFilter helper function from BluetoothNamePreference
into its own class, and moved test cases into the same package.
- Moved all LocalBluetoothProfileManager functionality related to
specific profiles into new top-level classes (A2dpProfile, etc.), all
implementing the LocalBluetoothProfile interface.
- Moved all UI-related methods from CachedBluetoothDevice into the class
that uses the method, or into the static Utils class for shared methods.
Change-Id: I6d49b7f4ae0c7d7dcf62551ee40b51ecb5fe4f47
Earlier refactoring seems to have messed it up. Added a position value to the state trackers.
Bug: 2980926
Change-Id: I31df4b1ae0b835d801d67747154594299498c4cf
Also use new location providers changed broadcast intent, and fix a bug
introduced in Froyo where we stopped observing the SYSTEM_CLOSE_DIALOGS
intent so we fell out of sync (more often) with the sync settings.
Now even responsive during the boot I/O storm! (except for toggling
brightness, which still does disk writes from the UI thread...)
BUG=2956025
Change-Id: I77876ff6e0be2325c15d5f08bb2970edf233f839
Based on a lot of timings on Sapphire.
Also, initially this CL improved the speed of Toasts, but now it just
removes the use of Toasts in the widget after eng/UX discussions with
various people.
BUG=2535155
Change-Id: I134a730f17ebee8a119b7796984f00b22e0d6120
We need to explicitly disable wifi while enabling
tethering and disable tethering while enabling wifi
Bug: 2539071
Change-Id: I7fda6e4d9d1bb804e81561d52b5f3a982a674b0e
Added icons and a transition step to the brightness setting on the power
widget so auto-brightness can be toggled and the widget will remain in
sync with changes made through settings.
We will use the System.SCREEN_BRIGHTNESS_MODE Settings value instead.
Change-Id: I1850549f513e3541b5761aae28ebc615410377de
Signed-off-by: Mike Lockwood <lockwood@android.com>
to prevent apps from changing the hardware behind its back.
Fixes b/2041941 Lock screen flashes the screen very bright before dimming
Change-Id: Ic4faa008357fd3d74225ba90f05801c5127fd8c0
Signed-off-by: Mike Lockwood <lockwood@android.com>
Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.
BluetoothAdapter: Represents the local BT adapter. Operations on the local
adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
(pair, connect, etc).
This widget allows uses to turn on/off bluetooth, wifi, gps, and sync,
and adjust brightness without going through the settings menu.
The widget provider updates the settings when the buttons are pressed.
The widget provider is also a receiver for events indicating that the
status was updated elsewhere and the buttons need to be changed.