Loading src/com/android/settings/location/RecentLocationAccessPreferenceController.java +11 −11 Original line number Original line Diff line number Diff line Loading @@ -29,7 +29,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import com.android.settingslib.utils.StringUtil; import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.AppPreference; import com.android.settingslib.widget.AppPreference; Loading @@ -42,7 +42,7 @@ import java.util.List; public class RecentLocationAccessPreferenceController extends LocationBasePreferenceController { public class RecentLocationAccessPreferenceController extends LocationBasePreferenceController { public static final int MAX_APPS = 3; public static final int MAX_APPS = 3; @VisibleForTesting @VisibleForTesting RecentLocationAccesses mRecentLocationApps; RecentAppOpsAccess mRecentLocationApps; private PreferenceCategory mCategoryRecentLocationRequests; private PreferenceCategory mCategoryRecentLocationRequests; private int mType = ProfileSelectFragment.ProfileType.ALL; private int mType = ProfileSelectFragment.ProfileType.ALL; Loading Loading @@ -71,12 +71,12 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer } } public RecentLocationAccessPreferenceController(Context context, String key) { public RecentLocationAccessPreferenceController(Context context, String key) { this(context, key, new RecentLocationAccesses(context)); this(context, key, RecentAppOpsAccess.createForLocation(context)); } } @VisibleForTesting @VisibleForTesting public RecentLocationAccessPreferenceController(Context context, String key, public RecentLocationAccessPreferenceController(Context context, String key, RecentLocationAccesses recentLocationApps) { RecentAppOpsAccess recentLocationApps) { super(context, key); super(context, key); mRecentLocationApps = recentLocationApps; mRecentLocationApps = recentLocationApps; } } Loading @@ -86,9 +86,9 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer super.displayPreference(screen); super.displayPreference(screen); mCategoryRecentLocationRequests = screen.findPreference(getPreferenceKey()); mCategoryRecentLocationRequests = screen.findPreference(getPreferenceKey()); final Context prefContext = mCategoryRecentLocationRequests.getContext(); final Context prefContext = mCategoryRecentLocationRequests.getContext(); final List<RecentLocationAccesses.Access> recentLocationAccesses = new ArrayList<>(); final List<RecentAppOpsAccess.Access> recentLocationAccesses = new ArrayList<>(); final UserManager userManager = UserManager.get(mContext); final UserManager userManager = UserManager.get(mContext); for (RecentLocationAccesses.Access access : mRecentLocationApps.getAppListSorted( for (RecentAppOpsAccess.Access access : mRecentLocationApps.getAppListSorted( /* showSystemApps= */ false)) { /* showSystemApps= */ false)) { if (isRequestMatchesProfileType(userManager, access, mType)) { if (isRequestMatchesProfileType(userManager, access, mType)) { recentLocationAccesses.add(access); recentLocationAccesses.add(access); Loading @@ -100,7 +100,7 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer if (recentLocationAccesses.size() > 0) { if (recentLocationAccesses.size() > 0) { // Add preferences to container in original order (already sorted by recency). // Add preferences to container in original order (already sorted by recency). for (RecentLocationAccesses.Access access : recentLocationAccesses) { for (RecentAppOpsAccess.Access access : recentLocationAccesses) { mCategoryRecentLocationRequests.addPreference( mCategoryRecentLocationRequests.addPreference( createAppPreference(prefContext, access, mFragment)); createAppPreference(prefContext, access, mFragment)); } } Loading Loading @@ -132,7 +132,7 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer * Create a {@link AppPreference} * Create a {@link AppPreference} */ */ public static AppPreference createAppPreference(Context prefContext, public static AppPreference createAppPreference(Context prefContext, RecentLocationAccesses.Access access, DashboardFragment fragment) { RecentAppOpsAccess.Access access, DashboardFragment fragment) { final AppPreference pref = new AppPreference(prefContext); final AppPreference pref = new AppPreference(prefContext); pref.setIcon(access.icon); pref.setIcon(access.icon); pref.setTitle(access.label); pref.setTitle(access.label); Loading @@ -145,11 +145,11 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer } } /** /** * Return if the {@link RecentLocationAccesses.Access} matches current UI * Return if the {@link RecentAppOpsAccess.Access} matches current UI * {@ProfileSelectFragment.ProfileType} * {@link ProfileSelectFragment.ProfileType} */ */ public static boolean isRequestMatchesProfileType(UserManager userManager, public static boolean isRequestMatchesProfileType(UserManager userManager, RecentLocationAccesses.Access access, @ProfileSelectFragment.ProfileType int type) { RecentAppOpsAccess.Access access, @ProfileSelectFragment.ProfileType int type) { final boolean isWorkProfile = userManager.isManagedProfile( final boolean isWorkProfile = userManager.isManagedProfile( access.userHandle.getIdentifier()); access.userHandle.getIdentifier()); Loading src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -26,7 +26,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import com.android.settingslib.widget.AppPreference; import com.android.settingslib.widget.AppPreference; import java.util.ArrayList; import java.util.ArrayList; Loading @@ -37,14 +37,14 @@ public class RecentLocationAccessSeeAllPreferenceController extends LocationBasePreferenceController { extends LocationBasePreferenceController { private PreferenceScreen mCategoryAllRecentLocationAccess; private PreferenceScreen mCategoryAllRecentLocationAccess; private final RecentLocationAccesses mRecentLocationAccesses; private final RecentAppOpsAccess mRecentLocationAccesses; private boolean mShowSystem = false; private boolean mShowSystem = false; private Preference mPreference; private Preference mPreference; private int mType = ProfileSelectFragment.ProfileType.ALL; private int mType = ProfileSelectFragment.ProfileType.ALL; public RecentLocationAccessSeeAllPreferenceController(Context context, String key) { public RecentLocationAccessSeeAllPreferenceController(Context context, String key) { super(context, key); super(context, key); mRecentLocationAccesses = new RecentLocationAccesses(context); mRecentLocationAccesses = RecentAppOpsAccess.createForLocation(context); } } @Override @Override Loading @@ -65,8 +65,8 @@ public class RecentLocationAccessSeeAllPreferenceController final UserManager userManager = UserManager.get(mContext); final UserManager userManager = UserManager.get(mContext); final List<RecentLocationAccesses.Access> recentLocationAccesses = new ArrayList<>(); final List<RecentAppOpsAccess.Access> recentLocationAccesses = new ArrayList<>(); for (RecentLocationAccesses.Access access : mRecentLocationAccesses.getAppListSorted( for (RecentAppOpsAccess.Access access : mRecentLocationAccesses.getAppListSorted( mShowSystem)) { mShowSystem)) { if (isRequestMatchesProfileType(userManager, access, mType)) { if (isRequestMatchesProfileType(userManager, access, mType)) { recentLocationAccesses.add(access); recentLocationAccesses.add(access); Loading @@ -80,7 +80,7 @@ public class RecentLocationAccessSeeAllPreferenceController banner.setSelectable(false); banner.setSelectable(false); mCategoryAllRecentLocationAccess.addPreference(banner); mCategoryAllRecentLocationAccess.addPreference(banner); } else { } else { for (RecentLocationAccesses.Access request : recentLocationAccesses) { for (RecentAppOpsAccess.Access request : recentLocationAccesses) { final Preference appPreference = createAppPreference( final Preference appPreference = createAppPreference( preference.getContext(), preference.getContext(), request, mFragment); request, mFragment); Loading tests/robotests/src/com/android/settings/location/RecentLocationAccessPreferenceControllerTest.java +2 −18 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,10 @@ package com.android.settings.location; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.Context; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.widget.TextView; import android.widget.TextView; Loading @@ -34,7 +32,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.testutils.shadow.ShadowDeviceConfig; import com.android.settings.testutils.shadow.ShadowDeviceConfig; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import org.junit.After; import org.junit.After; import org.junit.Before; import org.junit.Before; Loading @@ -48,7 +46,6 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) @Config(shadows = {ShadowDeviceConfig.class}) @Config(shadows = {ShadowDeviceConfig.class}) Loading @@ -61,7 +58,7 @@ public class RecentLocationAccessPreferenceControllerTest { @Mock @Mock private DashboardFragment mDashboardFragment; private DashboardFragment mDashboardFragment; @Mock @Mock private RecentLocationAccesses mRecentLocationApps; private RecentAppOpsAccess mRecentLocationApps; private Context mContext; private Context mContext; private RecentLocationAccessPreferenceController mController; private RecentLocationAccessPreferenceController mController; Loading Loading @@ -110,17 +107,4 @@ public class RecentLocationAccessPreferenceControllerTest { mContext.getText(R.string.location_recent_location_access_view_details)); mContext.getText(R.string.location_recent_location_access_view_details)); assertThat(details.hasOnClickListeners()).isTrue(); assertThat(details.hasOnClickListeners()).isTrue(); } } private List<RecentLocationAccesses.Access> createMockAccesses(int count) { final List<RecentLocationAccesses.Access> accesses = new ArrayList<>(); for (int i = 0; i < count; i++) { final Drawable icon = mock(Drawable.class); // Add mock accesses final RecentLocationAccesses.Access access = new RecentLocationAccesses.Access( "packageName", android.os.Process.myUserHandle(), icon, "appTitle" + i, "appSummary" + i, 1000 - i); accesses.add(access); } return accesses; } } } Loading
src/com/android/settings/location/RecentLocationAccessPreferenceController.java +11 −11 Original line number Original line Diff line number Diff line Loading @@ -29,7 +29,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import com.android.settingslib.utils.StringUtil; import com.android.settingslib.utils.StringUtil; import com.android.settingslib.widget.AppPreference; import com.android.settingslib.widget.AppPreference; Loading @@ -42,7 +42,7 @@ import java.util.List; public class RecentLocationAccessPreferenceController extends LocationBasePreferenceController { public class RecentLocationAccessPreferenceController extends LocationBasePreferenceController { public static final int MAX_APPS = 3; public static final int MAX_APPS = 3; @VisibleForTesting @VisibleForTesting RecentLocationAccesses mRecentLocationApps; RecentAppOpsAccess mRecentLocationApps; private PreferenceCategory mCategoryRecentLocationRequests; private PreferenceCategory mCategoryRecentLocationRequests; private int mType = ProfileSelectFragment.ProfileType.ALL; private int mType = ProfileSelectFragment.ProfileType.ALL; Loading Loading @@ -71,12 +71,12 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer } } public RecentLocationAccessPreferenceController(Context context, String key) { public RecentLocationAccessPreferenceController(Context context, String key) { this(context, key, new RecentLocationAccesses(context)); this(context, key, RecentAppOpsAccess.createForLocation(context)); } } @VisibleForTesting @VisibleForTesting public RecentLocationAccessPreferenceController(Context context, String key, public RecentLocationAccessPreferenceController(Context context, String key, RecentLocationAccesses recentLocationApps) { RecentAppOpsAccess recentLocationApps) { super(context, key); super(context, key); mRecentLocationApps = recentLocationApps; mRecentLocationApps = recentLocationApps; } } Loading @@ -86,9 +86,9 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer super.displayPreference(screen); super.displayPreference(screen); mCategoryRecentLocationRequests = screen.findPreference(getPreferenceKey()); mCategoryRecentLocationRequests = screen.findPreference(getPreferenceKey()); final Context prefContext = mCategoryRecentLocationRequests.getContext(); final Context prefContext = mCategoryRecentLocationRequests.getContext(); final List<RecentLocationAccesses.Access> recentLocationAccesses = new ArrayList<>(); final List<RecentAppOpsAccess.Access> recentLocationAccesses = new ArrayList<>(); final UserManager userManager = UserManager.get(mContext); final UserManager userManager = UserManager.get(mContext); for (RecentLocationAccesses.Access access : mRecentLocationApps.getAppListSorted( for (RecentAppOpsAccess.Access access : mRecentLocationApps.getAppListSorted( /* showSystemApps= */ false)) { /* showSystemApps= */ false)) { if (isRequestMatchesProfileType(userManager, access, mType)) { if (isRequestMatchesProfileType(userManager, access, mType)) { recentLocationAccesses.add(access); recentLocationAccesses.add(access); Loading @@ -100,7 +100,7 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer if (recentLocationAccesses.size() > 0) { if (recentLocationAccesses.size() > 0) { // Add preferences to container in original order (already sorted by recency). // Add preferences to container in original order (already sorted by recency). for (RecentLocationAccesses.Access access : recentLocationAccesses) { for (RecentAppOpsAccess.Access access : recentLocationAccesses) { mCategoryRecentLocationRequests.addPreference( mCategoryRecentLocationRequests.addPreference( createAppPreference(prefContext, access, mFragment)); createAppPreference(prefContext, access, mFragment)); } } Loading Loading @@ -132,7 +132,7 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer * Create a {@link AppPreference} * Create a {@link AppPreference} */ */ public static AppPreference createAppPreference(Context prefContext, public static AppPreference createAppPreference(Context prefContext, RecentLocationAccesses.Access access, DashboardFragment fragment) { RecentAppOpsAccess.Access access, DashboardFragment fragment) { final AppPreference pref = new AppPreference(prefContext); final AppPreference pref = new AppPreference(prefContext); pref.setIcon(access.icon); pref.setIcon(access.icon); pref.setTitle(access.label); pref.setTitle(access.label); Loading @@ -145,11 +145,11 @@ public class RecentLocationAccessPreferenceController extends LocationBasePrefer } } /** /** * Return if the {@link RecentLocationAccesses.Access} matches current UI * Return if the {@link RecentAppOpsAccess.Access} matches current UI * {@ProfileSelectFragment.ProfileType} * {@link ProfileSelectFragment.ProfileType} */ */ public static boolean isRequestMatchesProfileType(UserManager userManager, public static boolean isRequestMatchesProfileType(UserManager userManager, RecentLocationAccesses.Access access, @ProfileSelectFragment.ProfileType int type) { RecentAppOpsAccess.Access access, @ProfileSelectFragment.ProfileType int type) { final boolean isWorkProfile = userManager.isManagedProfile( final boolean isWorkProfile = userManager.isManagedProfile( access.userHandle.getIdentifier()); access.userHandle.getIdentifier()); Loading
src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -26,7 +26,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import com.android.settingslib.widget.AppPreference; import com.android.settingslib.widget.AppPreference; import java.util.ArrayList; import java.util.ArrayList; Loading @@ -37,14 +37,14 @@ public class RecentLocationAccessSeeAllPreferenceController extends LocationBasePreferenceController { extends LocationBasePreferenceController { private PreferenceScreen mCategoryAllRecentLocationAccess; private PreferenceScreen mCategoryAllRecentLocationAccess; private final RecentLocationAccesses mRecentLocationAccesses; private final RecentAppOpsAccess mRecentLocationAccesses; private boolean mShowSystem = false; private boolean mShowSystem = false; private Preference mPreference; private Preference mPreference; private int mType = ProfileSelectFragment.ProfileType.ALL; private int mType = ProfileSelectFragment.ProfileType.ALL; public RecentLocationAccessSeeAllPreferenceController(Context context, String key) { public RecentLocationAccessSeeAllPreferenceController(Context context, String key) { super(context, key); super(context, key); mRecentLocationAccesses = new RecentLocationAccesses(context); mRecentLocationAccesses = RecentAppOpsAccess.createForLocation(context); } } @Override @Override Loading @@ -65,8 +65,8 @@ public class RecentLocationAccessSeeAllPreferenceController final UserManager userManager = UserManager.get(mContext); final UserManager userManager = UserManager.get(mContext); final List<RecentLocationAccesses.Access> recentLocationAccesses = new ArrayList<>(); final List<RecentAppOpsAccess.Access> recentLocationAccesses = new ArrayList<>(); for (RecentLocationAccesses.Access access : mRecentLocationAccesses.getAppListSorted( for (RecentAppOpsAccess.Access access : mRecentLocationAccesses.getAppListSorted( mShowSystem)) { mShowSystem)) { if (isRequestMatchesProfileType(userManager, access, mType)) { if (isRequestMatchesProfileType(userManager, access, mType)) { recentLocationAccesses.add(access); recentLocationAccesses.add(access); Loading @@ -80,7 +80,7 @@ public class RecentLocationAccessSeeAllPreferenceController banner.setSelectable(false); banner.setSelectable(false); mCategoryAllRecentLocationAccess.addPreference(banner); mCategoryAllRecentLocationAccess.addPreference(banner); } else { } else { for (RecentLocationAccesses.Access request : recentLocationAccesses) { for (RecentAppOpsAccess.Access request : recentLocationAccesses) { final Preference appPreference = createAppPreference( final Preference appPreference = createAppPreference( preference.getContext(), preference.getContext(), request, mFragment); request, mFragment); Loading
tests/robotests/src/com/android/settings/location/RecentLocationAccessPreferenceControllerTest.java +2 −18 Original line number Original line Diff line number Diff line Loading @@ -18,12 +18,10 @@ package com.android.settings.location; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.Context; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.LayoutInflater; import android.view.View; import android.view.View; import android.widget.TextView; import android.widget.TextView; Loading @@ -34,7 +32,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.testutils.shadow.ShadowDeviceConfig; import com.android.settings.testutils.shadow.ShadowDeviceConfig; import com.android.settingslib.location.RecentLocationAccesses; import com.android.settingslib.applications.RecentAppOpsAccess; import org.junit.After; import org.junit.After; import org.junit.Before; import org.junit.Before; Loading @@ -48,7 +46,6 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class) @Config(shadows = {ShadowDeviceConfig.class}) @Config(shadows = {ShadowDeviceConfig.class}) Loading @@ -61,7 +58,7 @@ public class RecentLocationAccessPreferenceControllerTest { @Mock @Mock private DashboardFragment mDashboardFragment; private DashboardFragment mDashboardFragment; @Mock @Mock private RecentLocationAccesses mRecentLocationApps; private RecentAppOpsAccess mRecentLocationApps; private Context mContext; private Context mContext; private RecentLocationAccessPreferenceController mController; private RecentLocationAccessPreferenceController mController; Loading Loading @@ -110,17 +107,4 @@ public class RecentLocationAccessPreferenceControllerTest { mContext.getText(R.string.location_recent_location_access_view_details)); mContext.getText(R.string.location_recent_location_access_view_details)); assertThat(details.hasOnClickListeners()).isTrue(); assertThat(details.hasOnClickListeners()).isTrue(); } } private List<RecentLocationAccesses.Access> createMockAccesses(int count) { final List<RecentLocationAccesses.Access> accesses = new ArrayList<>(); for (int i = 0; i < count; i++) { final Drawable icon = mock(Drawable.class); // Add mock accesses final RecentLocationAccesses.Access access = new RecentLocationAccesses.Access( "packageName", android.os.Process.myUserHandle(), icon, "appTitle" + i, "appSummary" + i, 1000 - i); accesses.add(access); } return accesses; } } }