Loading src/com/android/settings/privacy/PrivacyDashboardFragment.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,9 +16,16 @@ package com.android.settings.privacy; import android.app.ActionBar; import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.util.Log; import android.view.View; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; Loading @@ -27,13 +34,14 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.ActionBarShadowController; import java.util.ArrayList; import java.util.List; @SearchIndexable public class PrivacyDashboardFragment extends DashboardFragment { private static final String TAG = "PrivacyDashboardFragment"; private static final String TAG = "PrivacyDashboardFrag"; private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "privacy_lock_screen_notifications"; private static final String KEY_WORK_PROFILE_CATEGORY = "privacy_work_profile_notifications_category"; Loading Loading @@ -65,6 +73,30 @@ public class PrivacyDashboardFragment extends DashboardFragment { return buildPreferenceControllers(context, getSettingsLifecycle()); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); styleActionBar(); } @VisibleForTesting void styleActionBar() { final Activity activity = getActivity(); final ActionBar actionBar = activity.getActionBar(); final Lifecycle lifecycle = getSettingsLifecycle(); final View scrollView = getListView(); if (actionBar == null) { Log.w(TAG, "No actionbar, cannot style actionbar."); return; } actionBar.setElevation(0); if (lifecycle != null && scrollView != null) { ActionBarShadowController.attachToView(activity, lifecycle, scrollView); } } private static List<AbstractPreferenceController> buildPreferenceControllers( Context context, Lifecycle lifecycle) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading tests/robotests/src/com/android/settings/privacy/PrivacyDashboardFragmentTest.java 0 → 100644 +68 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.privacy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActionBar; import android.content.Context; import android.os.Bundle; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class PrivacyDashboardFragmentTest { private Context mContext; private PrivacyDashboardFragment mFragment; @Before public void setUp() { mContext = RuntimeEnvironment.application; mFragment = spy(new PrivacyDashboardFragment()); } @Test public void onViewCreated_shouldCallStyleActionBar() { final FragmentActivity activity = spy( Robolectric.buildActivity(FragmentActivity.class).get()); final ActionBar actionBar = mock(ActionBar.class); when(mFragment.getActivity()).thenReturn(activity); when(mFragment.getSettingsLifecycle()).thenReturn(mock(Lifecycle.class)); when(mFragment.getListView()).thenReturn(mock(RecyclerView.class)); when(activity.getActionBar()).thenReturn(actionBar); mFragment.onViewCreated(new View(mContext), new Bundle()); verify(mFragment).styleActionBar(); } } Loading
src/com/android/settings/privacy/PrivacyDashboardFragment.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,9 +16,16 @@ package com.android.settings.privacy; import android.app.ActionBar; import android.app.Activity; import android.app.settings.SettingsEnums; import android.content.Context; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.util.Log; import android.view.View; import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; Loading @@ -27,13 +34,14 @@ import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.ActionBarShadowController; import java.util.ArrayList; import java.util.List; @SearchIndexable public class PrivacyDashboardFragment extends DashboardFragment { private static final String TAG = "PrivacyDashboardFragment"; private static final String TAG = "PrivacyDashboardFrag"; private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "privacy_lock_screen_notifications"; private static final String KEY_WORK_PROFILE_CATEGORY = "privacy_work_profile_notifications_category"; Loading Loading @@ -65,6 +73,30 @@ public class PrivacyDashboardFragment extends DashboardFragment { return buildPreferenceControllers(context, getSettingsLifecycle()); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); styleActionBar(); } @VisibleForTesting void styleActionBar() { final Activity activity = getActivity(); final ActionBar actionBar = activity.getActionBar(); final Lifecycle lifecycle = getSettingsLifecycle(); final View scrollView = getListView(); if (actionBar == null) { Log.w(TAG, "No actionbar, cannot style actionbar."); return; } actionBar.setElevation(0); if (lifecycle != null && scrollView != null) { ActionBarShadowController.attachToView(activity, lifecycle, scrollView); } } private static List<AbstractPreferenceController> buildPreferenceControllers( Context context, Lifecycle lifecycle) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); Loading
tests/robotests/src/com/android/settings/privacy/PrivacyDashboardFragmentTest.java 0 → 100644 +68 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.privacy; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActionBar; import android.content.Context; import android.os.Bundle; import android.view.View; import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.RecyclerView; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class PrivacyDashboardFragmentTest { private Context mContext; private PrivacyDashboardFragment mFragment; @Before public void setUp() { mContext = RuntimeEnvironment.application; mFragment = spy(new PrivacyDashboardFragment()); } @Test public void onViewCreated_shouldCallStyleActionBar() { final FragmentActivity activity = spy( Robolectric.buildActivity(FragmentActivity.class).get()); final ActionBar actionBar = mock(ActionBar.class); when(mFragment.getActivity()).thenReturn(activity); when(mFragment.getSettingsLifecycle()).thenReturn(mock(Lifecycle.class)); when(mFragment.getListView()).thenReturn(mock(RecyclerView.class)); when(activity.getActionBar()).thenReturn(actionBar); mFragment.onViewCreated(new View(mContext), new Bundle()); verify(mFragment).styleActionBar(); } }