Fix several bugs related to storage accounting. Since getDataBytes()
already includes cached data, we need to subtract it to avoid blaming
apps for it.
We also need to blame app code on someone, so we blame it on the
current user. StorageStatsManager was fixed awhile back to only
return the app code size on the requested storage volume, so we can
remove the system app checks.
Subtract "appBytes" from external storage accounting, since it's
already been blamed elsewhere against specific apps.
Pass along storage results from all users on the device, and subtract
them all when estimating size of "system" data. To avoid embarrassing
estimation bugs, make sure that "system" data is at least 1GB.
Bug: 38008706
Test: cts-tradefed run commandAndExit cts-dev -m CtsJobSchedulerTestCases -t android.jobscheduler.cts.StorageConstraintTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Change-Id: Ide1e6d0690e5ad4e751c87891f63ba1036434619
This more closely reflects the idea that the top level setting title
should match the actual screen title.
Change-Id: Ie7ab1756d799c182cad74041995768037bba710f
Fixes: 37923462
Test: Manual
The bug resulted from the fact that turning off loading while loading is
turned off causes the loading finishing animation to flicker. By only
turning it off when it is on, we ensure it works.
Change-Id: Ia31bf3e9aa90726e39b6bc7189d175c38fb51e5a
Fixes: 38045492
Test: Manual
If you tap aggressively before the fragment has fully initialized, it
was possible to NPE. This null-checks to avoid this.
Change-Id: I3488245d230cf1e16b23e34614c8e6b43ea14ff1
Fixes: 37945253
Test: Robotest
This occurred this because the files preference was initialized during
displayPreference(), but the volume used to initialize it was not being
set until after the displayPreference() call. In this case, the files
preference would hide itself and never come back.
This fixes this by double-checking the Files visibility status whenever
we set the volume.
Change-Id: I0b1a7a9566e9caece39ec58706fbca034ef4c1c2
Fixes: 37790776
Test: Settings robotest
We were using a different calculation in the top level view compared to
within the Storage settings. Technically, both are correct (one of them
is aware that we're considering cache as free, one does not). This patch
aligns us on the cache as free strategy.
Change-Id: I9ac26683a4d2a30b77a1da534aa2ddd3d4da6657
Fixes: 37175551
Test: Settings robotest
One regression from the previous storage view is that the
Files category should not show at all when the storage is adopted.
Fixes: 36786953
Test: Settings robotest
Change-Id: Ice365fabc3bfa66f4c5526ac78bbbfc5e15b7b35
As per storage discussions, the best way to calculate storage for the
System is to just take all known data and subtract it from the used
bytes. There is more to the system than just the /system partition and,
even if we ignore the partitions and use the underlying block device
method of calculating it, we run into the problem of it not adding up to
the actual device size.
Change-Id: I6e1f775ea3f3b8b2cc78d734623934651e2fb7b4
Fixes: 37166310
Test: Robotests
If a user tells a device to forget a storage volume and then
goes back to the PrivateVolumeForget activity from their Recents, it
attempts to re-initialize itself with a volume that it forgot.
And this makes Settings crash.
By gracefully killing the activity when we try to open
PrivateVolumeForget for a forgotten volume, we avoid this crash.
Change-Id: Ib4e881c10f0c872ce6b268b16a573960230ef99b
Fixes: 34856304
Test: Settings unit test
This crash occurs because, even if you finish an Activity during
onCreate, the other lifecycle methods occur. In this case,
onActivityCreated assumes that onCreate ran properly.
By exiting early from onActivityCreated, we can ensure the activity
is finished properly.
Change-Id: Ia354341bf82d295c7dd042668fb11d588ddfebc0
Fixes: 37334861
Test: Instrumentation test
There were two issues that stopped the options menu from
showing properly. First, the SettingsPreferenceFragment did
not call its super class, causing the Lifecycle methods to
never be called. Second, the options menu was not being
invalidated which also stopped the Lifecycle methods from
being called.
Change-Id: I29f2fc105c7ecae7adaccb2e4643e48646398d8d
Fixes: 37255835
Test: Robotest
This removes the Manage Storage button and moves the titles of
the preferences to match the new progress bar location.
Bug: 2108251
Test: Manual
Change-Id: I1dce610050e44abd4665537e42a752bf34e94384
It may crash if opened during the uninstall of an app. By catching
the exception which may occur, we can just skip the uninstalled app
and avoid crashing.
Change-Id: I1b96b0697f4041be356260d6c675593affc1cb69
Merged-In: If556db7b5a299ba53a29baefbbe9709ba6d12190
Fixes: 36793223
Fixes: 36793372
Test: Settings unit test
If icons were fetched before displayPreference() is called, it can
cause a NPE. This adds a null check to ensure that it never
attempts to set an icon without both the icon and preference being
non-null.
Change-Id: Ib4269428e64545c9e255f7e3292fb6c046c1f307
Fixes: 37248158
Test: Settings Robotest
This icon is loaded in the background to avoid doing IO on
the main thread. Once we know there are more users and also
have the icon loaded, we add the category to the view.
Fixes: 36252572
Test: Robotest
Change-Id: Ib50287bb7ed323f22fbe407b56be1bf2fe98f121
Currently, users can use an SD card or USB drive and adopt it as
internal storage using existing flows. They can manage this drive
perfectly fine using the old storage screen, which is still around.
One functionality that was lost was the ability to migrate data from
the adopted drive back to the private internal storage. This appeared
in a dropdown in the old storage settings.
By duplicating the code to create just that specific menu item and its
click behavior, we can restore this functionality to the new storage
view.
Change-Id: Id0e01c560e7249acccfe86c5da44466dd58fe5d4
Merged-In: I4b8c06912d2c0b2c5be5bce8b217d45accf34d4b
Fixes: 35926028
Test: Settings Robotest
- since the choose usb mode dialog and the preference summary use
separate strings now, the two classes can have their own handling
for getting the title/summary text and hence revert the earlier
change that move the setTitle() and setSummary() from the activity
to controller
- only show summary for the option for "supply power", and don't set
summary for all other options
- update the controller to use the new summary text.
- update test correspondingly.
Change-Id: Ie56eb33ba24262e6f3a2259e4ee5ad6f3bfb8061
Fix: 36234108
Test: make RunSettingsRoboTests
Full Index should only be accessible from Search Fragment,
and when only full index should declare a locale to be
indexed.
Test: make RunSettingsRoboTests
Fixes: 36656637
Change-Id: Ie673067118ac6b184570e116ea24a169be027053
The dynamic user icons require more than just XML changes to
successfully fetch the badged user icons and are coming in a future
patch.
Bug: 35801039
Test: Manual -- this is purely XML and comment changes.
Change-Id: Id493c0335037a5c6e4f8b4734700611bfc0da7f1
- Move android version from about phone subtext to system update
- Updates strings for autofill, keyboard & input, factory reset, swipe
for notification
- Add a new pref category for spell checker and personal dictionary
- Display "None" if any default app is not selected
- Display current keyboard type as language subtext
Bug: 36395109
Test: make RunSettingsRoboTests
Change-Id: Id6ca94ea31e55f1c1ec04e47dcf657a25c35c7fe
This re-adds the progress bar and unifies the
StorageItemPreference and its alternate.
Change-Id: Iefc12b4b554306c706c83be232175dd2b84227b7
Fixes: 36223433
Test: Settings robotest