Merge "Make the show/hide system setting for recent location acccesses sticky."
This commit is contained in:
committed by
Android (Google) Code Review
commit
d6909d1843
@@ -19,9 +19,12 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
@@ -34,12 +37,15 @@ import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
|
||||
import com.android.settingslib.applications.RecentAppOpsAccess;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
@@ -107,4 +113,20 @@ public class RecentLocationAccessPreferenceControllerTest {
|
||||
mContext.getText(R.string.location_recent_location_access_view_details));
|
||||
assertThat(details.hasOnClickListeners()).isTrue();
|
||||
}
|
||||
|
||||
/** Verifies the title text, details text are correct, and the click listener is set. */
|
||||
@Test
|
||||
public void updateState_showSystemAccess() {
|
||||
doReturn(ImmutableList.of(
|
||||
new RecentAppOpsAccess.Access("app", UserHandle.CURRENT, null, "app", "", 0)))
|
||||
.when(mRecentLocationApps).getAppListSorted(false);
|
||||
doReturn(new ArrayList<>()).when(mRecentLocationApps).getAppListSorted(true);
|
||||
mController.displayPreference(mScreen);
|
||||
mController.updateState(mLayoutPreference);
|
||||
verify(mLayoutPreference).addPreference(Mockito.any());
|
||||
|
||||
Settings.Secure.putInt(
|
||||
mContext.getContentResolver(), Settings.Secure.LOCATION_SHOW_SYSTEM_OPS, 1);
|
||||
verify(mLayoutPreference, Mockito.times(1)).addPreference(Mockito.any());
|
||||
}
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@ import static org.mockito.Mockito.when;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.UserHandle;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
@@ -81,6 +82,25 @@ public class RecentLocationRequestPreferenceControllerTest {
|
||||
verify(mCategory, times(3)).addPreference(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_whenAppListMoreThanThree_showSystem() {
|
||||
when(mController.mRecentLocationApps.getAppListSorted(false))
|
||||
.thenReturn(createMockRequest(2));
|
||||
when(mController.mRecentLocationApps.getAppListSorted(true))
|
||||
.thenReturn(createMockRequest(3));
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
verify(mCategory, times(2)).addPreference(any());
|
||||
|
||||
Settings.Secure.putInt(
|
||||
mContext.getContentResolver(),
|
||||
Settings.Secure.LOCATION_SHOW_SYSTEM_OPS,
|
||||
1);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
verify(mCategory, times(5)).addPreference(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_workProfile_shouldShowOnlyWorkProfileApps() {
|
||||
final List<RecentLocationApps.Request> requests = createMockRequest(6);
|
||||
|
Reference in New Issue
Block a user