1d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk/* 2d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Copyright (C) 2017 The Android Open Source Project 3d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * 4d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * except in compliance with the License. You may obtain a copy of the License at 6d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * 7d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * http://www.apache.org/licenses/LICENSE-2.0 8d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * 9d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * Unless required by applicable law or agreed to in writing, software distributed under the 10d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * KIND, either express or implied. See the License for the specific language governing 12d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk * permissions and limitations under the License. 13d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk */ 14d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 15d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkpackage com.android.systemui; 16d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 175b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY; 185b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 19d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static com.android.systemui.tuner.TunablePadding.FLAG_END; 20d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static com.android.systemui.tuner.TunablePadding.FLAG_START; 21d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 225b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static org.hamcrest.Matchers.is; 235b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport static org.junit.Assert.assertThat; 24d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.any; 25d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.anyInt; 26d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.anyString; 27d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.ArgumentMatchers.eq; 28d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.mock; 29d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.never; 30d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.spy; 31d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.times; 32d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.verify; 33d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport static org.mockito.Mockito.when; 34d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 35d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.app.Fragment; 365b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport android.content.res.Configuration; 37fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkimport android.support.test.filters.SmallTest; 38d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.testing.AndroidTestingRunner; 39e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverlyimport android.testing.TestableLooper.RunWithLooper; 40d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.Display; 41d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.View; 42d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport android.view.WindowManager; 43d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 44d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.R.dimen; 455b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roosimport com.android.systemui.ScreenDecorations.TunablePaddingTagListener; 46d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.fragments.FragmentHostManager; 47d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.fragments.FragmentService; 48d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.statusbar.phone.StatusBar; 49d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.statusbar.phone.StatusBarWindowView; 50d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunablePadding; 51d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunablePadding.TunablePaddingService; 52d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport com.android.systemui.tuner.TunerService; 53d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 54d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.Before; 55d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.Test; 56d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monkimport org.junit.runner.RunWith; 57d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 58e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly@RunWithLooper 59d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk@RunWith(AndroidTestingRunner.class) 60fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monk@SmallTest 615b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roospublic class ScreenDecorationsTest extends SysuiTestCase { 62d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 635b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos private ScreenDecorations mScreenDecorations; 64d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private StatusBar mStatusBar; 65d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private WindowManager mWindowManager; 66d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private FragmentService mFragmentService; 67d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private FragmentHostManager mFragmentHostManager; 68d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private TunerService mTunerService; 69d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private StatusBarWindowView mView; 70d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk private TunablePaddingService mTunablePaddingService; 71d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 72d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk @Before 73d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk public void setup() { 74d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mStatusBar = mock(StatusBar.class); 75d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mWindowManager = mock(WindowManager.class); 76d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mView = spy(new StatusBarWindowView(mContext, null)); 77d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(mStatusBar.getStatusBarWindow()).thenReturn(mView); 78c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk when(mStatusBar.getNavigationBarWindow()).thenReturn(mView); 79d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mContext.putComponent(StatusBar.class, mStatusBar); 80d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 81d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk Display display = mContext.getSystemService(WindowManager.class).getDefaultDisplay(); 82d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(mWindowManager.getDefaultDisplay()).thenReturn(display); 83d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mContext.addMockSystemService(WindowManager.class, mWindowManager); 84d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 85d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mFragmentService = mDependency.injectMockDependency(FragmentService.class); 86d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mFragmentHostManager = mock(FragmentHostManager.class); 87d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(mFragmentService.getFragmentHostManager(any())).thenReturn(mFragmentHostManager); 88d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 89d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mTunerService = mDependency.injectMockDependency(TunerService.class); 90d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 915b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations = new ScreenDecorations(); 925b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.mContext = mContext; 935b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.mComponents = mContext.getComponents(); 94d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 95d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mTunablePaddingService = mDependency.injectMockDependency(TunablePaddingService.class); 96d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk } 97d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 98d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk @Test 995b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos public void testNoRounding_NoCutout() { 1005b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride( 1015b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false); 102d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0); 103e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius_top, 0); 104e91f0d05dae79cc8effc5fb2328677c16a46f34eBeverly mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius_bottom, 0); 105c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk mContext.getOrCreateTestableResources() 106c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk .addOverride(dimen.rounded_corner_content_padding, 0); 107d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 1085b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.start(); 109d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // No views added. 110d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mWindowManager, never()).addView(any(), any()); 111d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // No Fragments watched. 112d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mFragmentHostManager, never()).addTagListener(any(), any()); 113d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // No Tuners tuned. 114d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mTunerService, never()).addTunable(any(), any()); 115d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk } 116d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 117d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk @Test 118d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk public void testRounding() { 1195b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride( 1205b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false); 121d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 20); 122c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk mContext.getOrCreateTestableResources() 123c429f690e54db1bdc4631aab7c0191e30ccf1d51Jason Monk .addOverride(dimen.rounded_corner_content_padding, 20); 124d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 1255b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.start(); 126d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // Add 2 windows for rounded corners (top and bottom). 127d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mWindowManager, times(2)).addView(any(), any()); 128d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 129089981b98227959146c9c426533efbcf35fec1c6Jason Monk // Add 2 tag listeners for each of the fragments that are needed. 130089981b98227959146c9c426533efbcf35fec1c6Jason Monk verify(mFragmentHostManager, times(2)).addTagListener(any(), any()); 131d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // One tunable. 132d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mTunerService, times(1)).addTunable(any(), any()); 133d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // One TunablePadding. 134d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(mTunablePaddingService, times(1)).add(any(), anyString(), anyInt(), anyInt()); 135d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk } 136d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 137d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk @Test 1385b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos public void testCutout() { 1395b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride( 1405b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, true); 1415b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0); 1425b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources() 1435b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos .addOverride(dimen.rounded_corner_content_padding, 0); 1445b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1455b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.start(); 1465b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos // Add 2 windows for rounded corners (top and bottom). 1475b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos verify(mWindowManager, times(2)).addView(any(), any()); 1485b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos } 1495b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1505b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos @Test 1515b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos public void testDelayedCutout() { 1525b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride( 1535b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, false); 1545b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride(dimen.rounded_corner_radius, 0); 1555b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources() 1565b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos .addOverride(dimen.rounded_corner_content_padding, 0); 1575b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1585b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.start(); 1595b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1605b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mContext.getOrCreateTestableResources().addOverride( 1615b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos com.android.internal.R.bool.config_fillMainBuiltInDisplayCutout, true); 1625b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos mScreenDecorations.onConfigurationChanged(new Configuration()); 1635b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1645b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos // Add 2 windows for rounded corners (top and bottom). 1655b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos verify(mWindowManager, times(2)).addView(any(), any()); 1665b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos } 1675b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1685b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos @Test 1695b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos public void hasRoundedCornerOverlayFlagSet() { 1705b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos assertThat(mScreenDecorations.getWindowLayoutParams().privateFlags 1715b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos & PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY, 1725b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos is(PRIVATE_FLAG_IS_ROUNDED_CORNERS_OVERLAY)); 1735b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos } 1745b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos 1755b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos @Test 176d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk public void testPaddingTagListener() { 177d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk TunablePaddingTagListener tagListener = new TunablePaddingTagListener(14, 5); 178d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk View v = mock(View.class); 179d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk View child = mock(View.class); 180d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk Fragment f = mock(Fragment.class); 181d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk TunablePadding padding = mock(TunablePadding.class); 182d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 183d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(mTunablePaddingService.add(any(), anyString(), anyInt(), anyInt())) 184d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk .thenReturn(padding); 185d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(f.getView()).thenReturn(v); 186d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk when(v.findViewById(5)).thenReturn(child); 187d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 188d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // Trigger callback and verify we get a TunablePadding created. 189d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk tagListener.onFragmentViewCreated(null, f); 1905b51885427ae4d0d828d132ca3f06d75e49ff210Adrian Roos verify(mTunablePaddingService).add(eq(child), eq(ScreenDecorations.PADDING), eq(14), 191d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk eq(FLAG_START | FLAG_END)); 192d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 193d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk // Call again and verify destroy is called. 194d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk tagListener.onFragmentViewCreated(null, f); 195d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk verify(padding).destroy(); 196d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk } 197d4afe152bf5cd93e5034f5b8b43b2f0fe0269a7fJason Monk 1980053e99fcf874ecc917e2d14a0bba9f6148280a1Geoffrey Pitsch} 199