@@ -112,7 +112,7 @@ class InputSurface {
112112
113113 mInputFlinger = getInputFlinger ();
114114 if (noInputChannel) {
115- mInputInfo . setInputConfig (WindowInfo::InputConfig::NO_INPUT_CHANNEL, true );
115+ mInputInfo -> editInfo ()-> setInputConfig (WindowInfo::InputConfig::NO_INPUT_CHANNEL, true );
116116 } else {
117117 android::os::InputChannelCore tempChannel;
118118 android::binder::Status result =
@@ -121,21 +121,21 @@ class InputSurface {
121121 ADD_FAILURE () << " binder call to createInputChannel failed" ;
122122 }
123123 mClientChannel = InputChannel::create (std::move (tempChannel));
124- mInputInfo . token = mClientChannel ->getConnectionToken ();
124+ mInputInfo -> editInfo ()-> token = mClientChannel ->getConnectionToken ();
125125 mInputConsumer = new InputConsumer (mClientChannel );
126126 }
127127
128- mInputInfo . name = " Test info" ;
129- mInputInfo . dispatchingTimeout = 5s;
130- mInputInfo . globalScaleFactor = 1.0 ;
131- mInputInfo . touchableRegion .orSelf (Rect (0 , 0 , width, height));
128+ mInputInfo -> editInfo ()-> name = " Test info" ;
129+ mInputInfo -> editInfo ()-> dispatchingTimeout = 5s;
130+ mInputInfo -> editInfo ()-> globalScaleFactor = 1.0 ;
131+ mInputInfo -> editInfo ()-> touchableRegion .orSelf (Rect (0 , 0 , width, height));
132132
133133 InputApplicationInfo aInfo;
134134 aInfo.token = new BBinder ();
135135 aInfo.name = " Test app info" ;
136136 aInfo.dispatchingTimeoutMillis =
137137 std::chrono::duration_cast<std::chrono::milliseconds>(DISPATCHING_TIMEOUT).count ();
138- mInputInfo . applicationInfo = aInfo;
138+ mInputInfo -> editInfo ()-> applicationInfo = aInfo;
139139 }
140140
141141 static std::unique_ptr<InputSurface> makeColorInputSurface (const sp<SurfaceComposerClient>& scc,
@@ -300,8 +300,8 @@ class InputSurface {
300300 void requestFocus (ui::LogicalDisplayId displayId = ui::LogicalDisplayId::DEFAULT) {
301301 SurfaceComposerClient::Transaction t;
302302 FocusRequest request;
303- request.token = mInputInfo . token ;
304- request.windowName = mInputInfo . name ;
303+ request.token = mInputInfo -> getInfo ()-> token ;
304+ request.windowName = mInputInfo -> getInfo ()-> name ;
305305 request.timestamp = systemTime (SYSTEM_TIME_MONOTONIC);
306306 request.displayId = displayId.val ();
307307 t.setFocusedWindow (request);
@@ -310,7 +310,7 @@ class InputSurface {
310310
311311public:
312312 // But should be private
313- WindowInfo mInputInfo ;
313+ sp<gui::WindowInfoHandle> mInputInfo = sp<gui::WindowInfoHandle>::make() ;
314314 sp<SurfaceControl> mSurfaceControl ;
315315
316316private:
@@ -523,7 +523,7 @@ TEST_F(InputSurfacesTest, input_respects_surface_insets) {
523523 std::unique_ptr<InputSurface> fgSurface = makeSurface (100 , 100 );
524524 bgSurface->showAt (100 , 100 );
525525
526- fgSurface->mInputInfo . surfaceInset = 5 ;
526+ fgSurface->mInputInfo -> editInfo ()-> surfaceInset = 5 ;
527527 fgSurface->showAt (100 , 100 );
528528
529529 injectTap (106 , 106 );
@@ -538,8 +538,8 @@ TEST_F(InputSurfacesTest, input_respects_surface_insets_with_replaceTouchableReg
538538 std::unique_ptr<InputSurface> fgSurface = makeSurface (100 , 100 );
539539 bgSurface->showAt (100 , 100 );
540540
541- fgSurface->mInputInfo . surfaceInset = 5 ;
542- fgSurface->mInputInfo . replaceTouchableRegionWithCrop = true ;
541+ fgSurface->mInputInfo -> editInfo ()-> surfaceInset = 5 ;
542+ fgSurface->mInputInfo -> editInfo ()-> replaceTouchableRegionWithCrop = true ;
543543 fgSurface->showAt (100 , 100 );
544544
545545 injectTap (106 , 106 );
@@ -555,7 +555,7 @@ TEST_F(InputSurfacesTest, input_respects_cropped_surface_insets) {
555555 std::unique_ptr<InputSurface> childSurface = makeSurface (100 , 100 );
556556 parentSurface->showAt (100 , 100 );
557557
558- childSurface->mInputInfo . surfaceInset = 10 ;
558+ childSurface->mInputInfo -> editInfo ()-> surfaceInset = 10 ;
559559 childSurface->showAt (100 , 100 );
560560
561561 childSurface->doTransaction ([&](auto & t, auto & sc) {
@@ -576,7 +576,7 @@ TEST_F(InputSurfacesTest, input_respects_scaled_surface_insets) {
576576 std::unique_ptr<InputSurface> fgSurface = makeSurface (100 , 100 );
577577 bgSurface->showAt (100 , 100 );
578578
579- fgSurface->mInputInfo . surfaceInset = 5 ;
579+ fgSurface->mInputInfo -> editInfo ()-> surfaceInset = 5 ;
580580 fgSurface->showAt (100 , 100 );
581581
582582 fgSurface->doTransaction ([&](auto & t, auto & sc) { t.setMatrix (sc, 2.0 , 0 , 0 , 4.0 ); });
@@ -595,7 +595,7 @@ TEST_F(InputSurfacesTest, input_respects_scaled_surface_insets_overflow) {
595595 bgSurface->showAt (100 , 100 );
596596
597597 // In case we pass the very big inset without any checking.
598- fgSurface->mInputInfo . surfaceInset = INT32_MAX;
598+ fgSurface->mInputInfo -> editInfo ()-> surfaceInset = INT32_MAX;
599599 fgSurface->showAt (100 , 100 );
600600
601601 fgSurface->doTransaction ([&](auto & t, auto & sc) { t.setMatrix (sc, 2.0 , 0 , 0 , 2.0 ); });
@@ -608,7 +608,7 @@ TEST_F(InputSurfacesTest, input_respects_scaled_surface_insets_overflow) {
608608TEST_F (InputSurfacesTest, touchable_region) {
609609 std::unique_ptr<InputSurface> surface = makeSurface (100 , 100 );
610610
611- surface->mInputInfo . touchableRegion .set (Rect{19 , 29 , 21 , 31 });
611+ surface->mInputInfo -> editInfo ()-> touchableRegion .set (Rect{19 , 29 , 21 , 31 });
612612
613613 surface->showAt (11 , 22 );
614614
@@ -629,7 +629,8 @@ TEST_F(InputSurfacesTest, input_respects_touchable_region_offset_overflow) {
629629 // Since the surface is offset from the origin, the touchable region will be transformed into
630630 // display space, which would trigger an overflow or an underflow. Ensure that we are protected
631631 // against such a situation.
632- fgSurface->mInputInfo .touchableRegion .orSelf (Rect{INT32_MIN, INT32_MIN, INT32_MAX, INT32_MAX});
632+ fgSurface->mInputInfo ->editInfo ()->touchableRegion .orSelf (
633+ Rect{INT32_MIN, INT32_MIN, INT32_MAX, INT32_MAX});
633634
634635 fgSurface->showAt (100 , 100 );
635636
@@ -644,7 +645,8 @@ TEST_F(InputSurfacesTest, input_respects_scaled_touchable_region_overflow) {
644645 std::unique_ptr<InputSurface> fgSurface = makeSurface (100 , 100 );
645646 bgSurface->showAt (0 , 0 );
646647
647- fgSurface->mInputInfo .touchableRegion .orSelf (Rect{INT32_MIN, INT32_MIN, INT32_MAX, INT32_MAX});
648+ fgSurface->mInputInfo ->editInfo ()->touchableRegion .orSelf (
649+ Rect{INT32_MIN, INT32_MIN, INT32_MAX, INT32_MAX});
648650 fgSurface->showAt (0 , 0 );
649651
650652 fgSurface->doTransaction ([&](auto & t, auto & sc) { t.setMatrix (sc, 2.0 , 0 , 0 , 2.0 ); });
@@ -814,7 +816,7 @@ TEST_F(InputSurfacesTest, rotate_surface_with_scale) {
814816
815817TEST_F (InputSurfacesTest, rotate_surface_with_scale_and_insets) {
816818 std::unique_ptr<InputSurface> surface = makeSurface (100 , 100 );
817- surface->mInputInfo . surfaceInset = 5 ;
819+ surface->mInputInfo -> editInfo ()-> surfaceInset = 5 ;
818820 surface->showAt (100 , 100 );
819821
820822 surface->doTransaction ([](auto & t, auto & sc) {
@@ -843,11 +845,12 @@ TEST_F(InputSurfacesTest, touch_flag_obscured) {
843845 // Add non touchable window to fully cover touchable window. Window behind gets touch, but
844846 // with flag AMOTION_EVENT_FLAG_WINDOW_IS_OBSCURED
845847 std::unique_ptr<InputSurface> nonTouchableSurface = makeSurface (100 , 100 );
846- nonTouchableSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
847- nonTouchableSurface->mInputInfo .ownerUid = gui::Uid{22222 };
848+ nonTouchableSurface->mInputInfo ->editInfo ()
849+ ->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
850+ nonTouchableSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
848851 // Overriding occlusion mode otherwise the touch would be discarded at InputDispatcher by
849852 // the default obscured/untrusted touch filter introduced in S.
850- nonTouchableSurface->mInputInfo . touchOcclusionMode = TouchOcclusionMode::ALLOW;
853+ nonTouchableSurface->mInputInfo -> editInfo ()-> touchOcclusionMode = TouchOcclusionMode::ALLOW;
851854 nonTouchableSurface->showAt (100 , 100 );
852855
853856 injectTap (190 , 199 );
@@ -863,10 +866,12 @@ TEST_F(InputSurfacesTest, touch_flag_partially_obscured_with_crop) {
863866 // AMOTION_EVENT_FLAG_WINDOW_IS_PARTIALLY_OBSCURED
864867 std::unique_ptr<InputSurface> parentSurface = makeSurface (100 , 100 );
865868 std::unique_ptr<InputSurface> nonTouchableSurface = makeSurface (100 , 100 );
866- nonTouchableSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
867- parentSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
868- nonTouchableSurface->mInputInfo .ownerUid = gui::Uid{22222 };
869- parentSurface->mInputInfo .ownerUid = gui::Uid{22222 };
869+ nonTouchableSurface->mInputInfo ->editInfo ()
870+ ->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
871+ parentSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
872+ true );
873+ nonTouchableSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
874+ parentSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
870875 nonTouchableSurface->showAt (0 , 0 );
871876 parentSurface->showAt (100 , 100 );
872877
@@ -887,10 +892,12 @@ TEST_F(InputSurfacesTest, touch_not_obscured_with_crop) {
887892 // the touchable window. Window behind gets touch with no obscured flags.
888893 std::unique_ptr<InputSurface> parentSurface = makeSurface (100 , 100 );
889894 std::unique_ptr<InputSurface> nonTouchableSurface = makeSurface (100 , 100 );
890- nonTouchableSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
891- parentSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
892- nonTouchableSurface->mInputInfo .ownerUid = gui::Uid{22222 };
893- parentSurface->mInputInfo .ownerUid = gui::Uid{22222 };
895+ nonTouchableSurface->mInputInfo ->editInfo ()
896+ ->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
897+ parentSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
898+ true );
899+ nonTouchableSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
900+ parentSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
894901 nonTouchableSurface->showAt (0 , 0 );
895902 parentSurface->showAt (50 , 50 );
896903
@@ -908,8 +915,9 @@ TEST_F(InputSurfacesTest, touch_not_obscured_with_zero_sized_bql) {
908915
909916 std::unique_ptr<InputSurface> bufferSurface =
910917 InputSurface::makeBufferInputSurface (mComposerClient , 0 , 0 );
911- bufferSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
912- bufferSurface->mInputInfo .ownerUid = gui::Uid{22222 };
918+ bufferSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
919+ true );
920+ bufferSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
913921
914922 surface->showAt (10 , 10 );
915923 bufferSurface->showAt (50 , 50 , Rect::EMPTY_RECT);
@@ -923,8 +931,9 @@ TEST_F(InputSurfacesTest, touch_not_obscured_with_zero_sized_blast) {
923931
924932 std::unique_ptr<BlastInputSurface> bufferSurface =
925933 BlastInputSurface::makeBlastInputSurface (mComposerClient , 0 , 0 );
926- bufferSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
927- bufferSurface->mInputInfo .ownerUid = gui::Uid{22222 };
934+ bufferSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
935+ true );
936+ bufferSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
928937
929938 surface->showAt (10 , 10 );
930939 bufferSurface->showAt (50 , 50 , Rect::EMPTY_RECT);
@@ -967,13 +976,14 @@ TEST_F(InputSurfacesTest, strict_unobscured_input_scaled_without_crop_window) {
967976
968977TEST_F (InputSurfacesTest, strict_unobscured_input_obscured_window) {
969978 std::unique_ptr<InputSurface> surface = makeSurface (100 , 100 );
970- surface->mInputInfo . ownerUid = gui::Uid{11111 };
979+ surface->mInputInfo -> editInfo ()-> ownerUid = gui::Uid{11111 };
971980 surface->doTransaction (
972981 [&](auto & t, auto & sc) { t.setDropInputMode (sc, gui::DropInputMode::OBSCURED); });
973982 surface->showAt (100 , 100 );
974983 std::unique_ptr<InputSurface> obscuringSurface = makeSurface (100 , 100 );
975- obscuringSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
976- obscuringSurface->mInputInfo .ownerUid = gui::Uid{22222 };
984+ obscuringSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
985+ true );
986+ obscuringSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
977987 obscuringSurface->showAt (100 , 100 );
978988 injectTap (101 , 101 );
979989 surface->assertNoEvent ();
@@ -986,13 +996,14 @@ TEST_F(InputSurfacesTest, strict_unobscured_input_obscured_window) {
986996
987997TEST_F (InputSurfacesTest, strict_unobscured_input_partially_obscured_window) {
988998 std::unique_ptr<InputSurface> surface = makeSurface (100 , 100 );
989- surface->mInputInfo . ownerUid = gui::Uid{11111 };
999+ surface->mInputInfo -> editInfo ()-> ownerUid = gui::Uid{11111 };
9901000 surface->doTransaction (
9911001 [&](auto & t, auto & sc) { t.setDropInputMode (sc, gui::DropInputMode::OBSCURED); });
9921002 surface->showAt (100 , 100 );
9931003 std::unique_ptr<InputSurface> obscuringSurface = makeSurface (100 , 100 );
994- obscuringSurface->mInputInfo .setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE, true );
995- obscuringSurface->mInputInfo .ownerUid = gui::Uid{22222 };
1004+ obscuringSurface->mInputInfo ->editInfo ()->setInputConfig (WindowInfo::InputConfig::NOT_TOUCHABLE,
1005+ true );
1006+ obscuringSurface->mInputInfo ->editInfo ()->ownerUid = gui::Uid{22222 };
9961007 obscuringSurface->showAt (190 , 190 );
9971008
9981009 injectTap (101 , 101 );
@@ -1056,7 +1067,7 @@ TEST_F(InputSurfacesTest, ignore_touch_region_with_zero_sized_blast) {
10561067 BlastInputSurface::makeBlastInputSurface (mComposerClient , 0 , 0 );
10571068
10581069 surface->showAt (100 , 100 );
1059- bufferSurface->mInputInfo . touchableRegion .orSelf (Rect (0 , 0 , 200 , 200 ));
1070+ bufferSurface->mInputInfo -> editInfo ()-> touchableRegion .orSelf (Rect (0 , 0 , 200 , 200 ));
10601071 bufferSurface->showAt (100 , 100 , Rect::EMPTY_RECT);
10611072
10621073 injectTap (101 , 101 );
@@ -1099,8 +1110,8 @@ TEST_F(InputSurfacesTest, cropped_container_replaces_touchable_region_with_null_
10991110 InputSurface::makeContainerInputSurface (mComposerClient , 100 , 100 );
11001111 containerSurface->doTransaction (
11011112 [&](auto & t, auto & sc) { t.reparent (sc, parentContainer->mSurfaceControl ); });
1102- containerSurface->mInputInfo . replaceTouchableRegionWithCrop = true ;
1103- containerSurface->mInputInfo . touchableRegionCropHandle = nullptr ;
1113+ containerSurface->mInputInfo -> editInfo ()-> replaceTouchableRegionWithCrop = true ;
1114+ containerSurface->mInputInfo -> editInfo ()-> touchableRegionCropHandle = nullptr ;
11041115 parentContainer->showAt (10 , 10 , Rect (0 , 0 , 20 , 20 ));
11051116 containerSurface->showAt (10 , 10 , Rect (0 , 0 , 5 , 5 ));
11061117
@@ -1126,8 +1137,8 @@ TEST_F(InputSurfacesTest, uncropped_container_replaces_touchable_region_with_nul
11261137 InputSurface::makeContainerInputSurface (mComposerClient , 100 , 100 );
11271138 containerSurface->doTransaction (
11281139 [&](auto & t, auto & sc) { t.reparent (sc, parentContainer->mSurfaceControl ); });
1129- containerSurface->mInputInfo . replaceTouchableRegionWithCrop = true ;
1130- containerSurface->mInputInfo . touchableRegionCropHandle = nullptr ;
1140+ containerSurface->mInputInfo -> editInfo ()-> replaceTouchableRegionWithCrop = true ;
1141+ containerSurface->mInputInfo -> editInfo ()-> touchableRegionCropHandle = nullptr ;
11311142 parentContainer->doTransaction (
11321143 [&](auto & t, auto & sc) { t.reparent (sc, bgContainer->mSurfaceControl ); });
11331144 bgContainer->showAt (0 , 0 , Rect (0 , 0 , 100 , 100 ));
@@ -1154,8 +1165,8 @@ TEST_F(InputSurfacesTest, replace_touchable_region_with_crop) {
11541165
11551166 std::unique_ptr<InputSurface> containerSurface =
11561167 InputSurface::makeContainerInputSurface (mComposerClient , 100 , 100 );
1157- containerSurface->mInputInfo . replaceTouchableRegionWithCrop = true ;
1158- containerSurface->mInputInfo . touchableRegionCropHandle =
1168+ containerSurface->mInputInfo -> editInfo ()-> replaceTouchableRegionWithCrop = true ;
1169+ containerSurface->mInputInfo -> editInfo ()-> touchableRegionCropHandle =
11591170 cropLayer->mSurfaceControl ->getHandle ();
11601171 containerSurface->showAt (10 , 10 , Rect::INVALID_RECT);
11611172
0 commit comments