Commit Graph

23 Commits

Author SHA1 Message Date
Charles Chen
49f329ca66 Add WindowMetricsHelper
This metrics now is used for calculating the value reported by
Display#getSize. It could be extended to have more function later.

Also replace getCurrentMetrics usages to make them report
Display#getSize value.

Bug: 148904274
Test: atest WindowMetricsHelperTest

Change-Id: I182b6e63f7c28752eee22839cb9e69f073046c3f
2020-05-04 11:41:13 +08:00
Charles Chen
4bff5be1a9 Fix WindowContext leak
The root causes of this issue are:
  1. WindowTokenClient#attachContext makes WindowTokenClient has strong
     reference to WindowContext, which leads to WindowContext cannot be
     GC'd.
  2. WMS#removeWindowToken needs MANAGE_APP_TOKEN permission which
     normal apps don't hold.

This CL does following things:
  1. Use weak reference instead on WindowTokenClient#mContext.
  2. Relax WMS#removeWindowToken to check callingUid if
     MANAGE_WINDOW_TOKEN permission is not held
  3. Deliver config changes to the client side in
     WMS#addWindowTokenWithOption
  4. Some minor fixes

fixes: 150812449
Bug: 150715095
Test: atest WindowContextTest
Test: atest WindowManagerServiceTests
Test: atest WindowTokenTests
Test: atest WindowManagerPermissionTests#testMANAGE_APP_TOKENS
Test: atest
WindowManagerPermissionTests#testADD_WINDOW_TOKEN_WITH_OPTIONS

Change-Id: I9f1d73af2abb78fc9844e6d9eb25e9f0293514e7
2020-04-08 21:30:24 +08:00
Jorim Jaggi
57157ac5d8 Fix WindowInsetsController lifecycle
Provide a recording insets controller before the window gets
created, and replay the commands once a view gets attached. This
allows the client to use the controller in Activity.onCreate.

Test: WindowInsetsControllerTests
Bug: 118118435
Change-Id: I1a825ecc4367c02b27f2d08cd5442325315d4f89
2020-03-03 15:12:15 +01:00
Charles Chen
1ac295ec08 Revert "Revert "Always get window insets from server""
This reverts commit 288e1bd045.

The previous implementation of computeWindowInsets is to
use last view from WM#addView, which may be invalid because
the last added view is removed and throws NPE when getting
property from the invalid view.
In this CL, we change the approach to always obtain window
insets from server.

fixes: 148789183
fixes: 149480577
Test: atest FrameworksCoreTests:WindowMetricsTest
Test: atest WindowMetricsTests

Change-Id: I6db5970d14ac9eebe0ab0df65cb1300515ad1754
(cherry picked from commit 6bb2d4f68c)
2020-02-24 03:46:51 +00:00
Bill Lin
f351272c36 Add CutoutSpecificationTest in Presubmit Test scope
1) Add CutoutSpecificationTest in Presubmit
2) Add CutoutSpecificationTest in FrameworksTestsFilter

Fixes: 149883140
Test: atest FrameworksCoreTests:CutoutSpecificationTest
Test: adb shell am instrument -w \
    -e filter com.android.server.wm.test.filters.FrameworksTestsFilter \
    -e selectTest_verbose true \
    com.android.frameworks.coretests/androidx.test.runner.AndroidJUnitRunner

Change-Id: I7db8f7797740d48a158650b63b7e90e5f1f28361
2020-02-20 14:19:55 +08:00
Wale Ogunwale
288e1bd045 Revert "Always get window insets from server"
This reverts commit 3e857ec536.

Reason for revert: Breaks wm-presubmit

Change-Id: I03fbbb01c8cabd0ebb9193adf640b9f07ce19826
2020-02-14 13:54:34 +00:00
Charles Chen
3e857ec536 Always get window insets from server
The previous implementation of computeWindowInsets is to
use last view from WM#addView, which may be invalid because
the last added view is removed and throws NPE when getting
property from the invalid view.
In this CL, we change the approach to always obtain window
insets from server.

fixes: 148789183
Test: atest FrameworksCoreTests:WindowMetricsTest
Test: atest WindowMetricsTests

Change-Id: Ic5512c31f86c597d99e13d29df654d3f527d6b55
2020-02-12 11:09:25 +08:00
Hongming Jin
bc76112e0b System action registration API for SystemUI
Bug: 136286274
Test: atest AccessibilityManagerTest
      atest AccessibilityManagerServiceTest
Change-Id: I6bbdf3627bfc9b39551cc7809dda1cf43d1d6ea4
2020-01-08 11:22:48 -08:00
Jorim Jaggi
956ca413e3 Window Manager Flag Migration (4/n)
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.

Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
            InsetsPolicyTest WindowStateTests CommandQueueTest
            RegisterStatusBarResultTest InsetsFlagsTest
            LightBarControllerTest
Test: build on specific target
Change-Id: Ie35f4b4468bce7ef8c76f091e306610c069fba85
2019-10-19 16:59:06 +08:00
Ioannis Ilkos
8cca14103c Revert "Window Manager Flag Migration (4/n)"
This reverts commit cb1b848084.

Reason for revert: Droidcop-triggered revert due to b/142849532

Change-Id: If81eba4e979e21202e78839bb1afbc66691098d2
2019-10-17 09:38:00 +00:00
Jorim Jaggi
cb1b848084 Window Manager Flag Migration (4/n)
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.

Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
            InsetsPolicyTest WindowStateTests CommandQueueTest
            RegisterStatusBarResultTest InsetsFlagsTest
            LightBarControllerTest
Change-Id: I1dcaff47ae57ccee91146fdc042cde5e26fc0b3f
2019-10-17 01:41:34 +08:00
Andrii Kulian
153f73cbcc Merge "Add unit tests for activity client state changes" into qt-dev 2019-04-16 21:18:18 +00:00
Andrii Kulian
ca7f710eee Add unit tests for activity client state changes
This also adds new module for tests that require Extended Mockito.

Bug: 127106719
Test: atest FrameworksCoreTests:android.app.activity.ActivityThreadTest
Change-Id: I7ed5de72d35babbbf72c4c823d3a9e4baa50e3c4
2019-04-05 16:07:59 -07:00
Roshan Pius
e602db5fb9 WifiScannerTest: More unit tests
Bug: 130035791
Test: ./frameworks/base/wifi/tests/runtests.sh
Change-Id: Ic4eb56fc3ba6bffd3df529432d17af0ba35b6333
2019-04-05 15:16:56 -07:00
Tadashi G. Takaoka
82eb7a5f63 Rename WM test filter to FrameworksTestsFilter
This CL adds android.view.InsetsAnimationControllerImplTest to the
test filter, and adds a comment to each tests mentioning about
FrameworksTestsFilter.

Test: Pass all 91 non-flaky presubmit tests in FrameworksCoreTests
      using FrameworksTestsFilter
  $ tradefed.sh run commandAndExit FrameworksCoreTests \
      --instrumentation-arg selectTest=com.android.server.wm. \
      --instrumentation-arg filter=com.android.server.wm.test.filters.FrameworksTestsFilter
      --include-annotation android.platform.test.annotations.Presubmit \
      --exclude-annotation androidx.test.filters.FlakyTest
Bug: 122451194

Change-Id: I9592ff01158eec1b4ef4d0dd22be243e10bd198e
2019-03-26 22:15:22 +09:00
Tadashi G. Takaoka
9648d4b04b Make SelectTest append selectTest argument from extended class
This CL also moves CoreTestsFilter to frameworks/base/test-util, so
that FrameworksCoreTests, FrameworksServicesTests, and WmTests can use
CoreTestsFilter.

Test: Pass SelectTestTests
  $ atest WmTests:com.android.test.filters.SelectTestTests
Test: Pass all 91 non-flaky presubmit tests in FrameworksCoreTests using
  CoreTestsFilter
  $ tradefed.sh run commandAndExit WmTests \
      --instrumentation-arg selectTest=com.android.server.wm. \
      --instrumentation-arg filter=com.android.server.wm.test.filters.CoreTestsFilter
      --include-annotation android.platform.test.annotations.Presubmit \
      --exclude-annotation androidx.test.filters.FlakyTest
Test: Pass all 740 non-flaky presubmit tests in WmTests using
  CoreTestsFilter
  $ tradefed.sh run commandAndExit WmTests \
      --instrumentation-arg selectTest=com.android.server.wm. \
      --instrumentation-arg filter=com.android.server.wm.test.filters.CoreTestsFilter
      --include-annotation android.platform.test.annotations.Presubmit \
      --exclude-annotation androidx.test.filters.FlakyTest
Bug: 122451194
Change-Id: I83d13d9ef82a92677bee67da5ee8a5faa0690f82
2019-03-22 18:04:30 +09:00
Tadashi G. Takaoka
4ca00224e9 Fix some tests in SelectTestTests
This is a follow up of Ic72637997bf17debef914e2596049f6cf3e753de

Bug: 122451194
Test: atest FrameworksServicesTests:com.android.test.filters.SelectTestTests
Change-Id: I61c5837a097451a204e9602476c68fdda4fc30be
2019-01-23 22:16:05 +09:00
Tadashi G. Takaoka
2bc664065e Add generic SelectTest JUnit filter and CoreTestsFilter
The JUnit filter com.android.test.filters.SelectTest is a generic test
filter that can supersede |-e package| and |-e class| options of
AndroidJUnitRunner.

The com.android.server.wm.test.filters.CoreTestsFilter extends SelectTest
filter to filter out Window Manager Service releated tests in
FrameworksCoreTests.

Bug: 122451194
Test: Can select some tests from WmTests.
  $ adb shell am instrument -w \
      -e filter com.android.test.filters.SelectTest \
      -e selectTest com.android.test.filters.,com.android.server.wm.DockedStackDividerControllerTests \
      com.android.frameworks.wmtests/androidx.test.runner.AndroidJUnitRunner
Test: CoreTestsFilter works for FrameworksCoreTests.
  $ adb shell am instrument -w \
      -e filter com.android.server.wm.test.filters.CoreTestsFilter \
      -e selectTest_verbose true \
      com.android.frameworks.coretests/androidx.test.runner.AndroidJUnitRunner

Change-Id: Ic72637997bf17debef914e2596049f6cf3e753de
2019-01-23 10:36:44 +09:00
Tyler Gunn
f955e56d51 Require READ_CALL_LOG permission to see phone numbers in phone state.
Incoming and outgoing call phone numbers are visible in the phone state
broadcast and via the PhoneStateListener.  To enhance user privacy, change
to require the READ_CALL_LOG permission in order to receive the call
phone numbers.

This means to see phone numbers:
1. android.intent.action.PHONE_STATE - requires READ_PHONE_STATE and
READ_CALL_LOG permission.
2. PhoneStateListener#onCallStateChanged - now required READ_CALL_LOG
permission.

To support this new behavior, added sendBroadcastAsUserMultiplePermissions
method to context to allow sending the broadcast to all users while
requiring the two permissions.

Bug: 78650469
Test: Created PHONE_STATE broadcast receiver in test app and verified that
when no permissions are granted, the phone number is empty for incoming
and outgoing calls.
Test: Granted Phone state permission to test app and verified that phone
number is not populated.
Test: Granted test app read call log permission and verified that phone
number is populated.
Test: Created PhoneStateListener in test app and verified that when no
permissions are granted, phone number is empty for incoming and outgoing.
calls.
Test: Granted read call log permission to test app and verified that both
the incoming and outgoing numbers are populated.

Change-Id: I857ea00cc58a0abbb77960643f361dd6dd9c8b56
2018-04-27 08:44:07 -07:00
Sudheer Shanka
aa3c30dfa2 Add a way to clear cached provider for tests in Settings class.
Bug: 38437704
Bug: 38433611
Test: manual
Change-Id: Id2803359644bd68a158294b6d801fc9cd316fc9f
2017-05-26 18:53:06 +00:00
Lorenzo Colitti
281a17c958 De-guava BroadcastInterceptingContext and move it to testutils.
Removing the static dependency on guava reduces test compile time
by about 20 seconds on a Z840, thus substantially speeding up the
compile/test cycle.

Make FutureIntent public instead of package-private because it is
used directly by NetworkPolicyManagementServiceTest, which as of
this CL is now in a different package.

Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.
Bug: 31479480
Change-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636
2016-10-28 17:12:36 +09:00
Lorenzo Colitti
7df1a82802 Move FakeSettingsProvider to a common location.
Test: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest
Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest
Test: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest
Test: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest
Bug: 31479480
Change-Id: I82a1a1a7219cf1385092b84d85eddf9dda90c685
2016-10-28 17:12:31 +09:00
Christopher Wiley
07630f6bd3 Create frameworks-base-testutils lib
This permits sharing of test components used in connectivity tests.
Rename the MockLooper to TestLooper, reflecting that it is not a
true mock, but a manually controlled Looper for use in tests.

Bug: 28848133
Test: Tests consuming this library pass.

Change-Id: I57e11f9544c7bffdb02739ab2a921512b1b11874
2016-05-19 13:12:09 -07:00