Loading src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.applications.appinfo; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.support.annotation.VisibleForTesting; Loading Loading @@ -61,8 +62,13 @@ public class TimeSpentInAppPreferenceController extends BasePreferenceController if (resolved == null || resolved.isEmpty()) { return DISABLED_UNSUPPORTED; } for (ResolveInfo info : resolved) { if (isSystemApp(info)) { return AVAILABLE; } } return DISABLED_UNSUPPORTED; } @Override public void displayPreference(PreferenceScreen screen) { Loading @@ -72,4 +78,11 @@ public class TimeSpentInAppPreferenceController extends BasePreferenceController pref.setIntent(mIntent); } } private boolean isSystemApp(ResolveInfo info) { return info != null && info.activityInfo != null && info.activityInfo.applicationInfo != null && (info.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; } } tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java +17 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; Loading Loading @@ -81,13 +83,26 @@ public class TimeSpentInAppPreferenceControllerTest { } @Test public void hasIntentHandler_shouldBeAvailable() { public void hasIntentHandler_notSystemApp_shouldBeDisabled() { mPackageManager.addResolveInfoForIntent(TEST_INTENT, new ResolveInfo()); mController.setPackageName(TEST_INTENT.getStringExtra(EXTRA_PACKAGE_NAME)); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.AVAILABLE); .isEqualTo(BasePreferenceController.DISABLED_UNSUPPORTED); } @Test public void hasIntentHandler_resolvedToSystemApp_shouldBeAvailable() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.applicationInfo = new ApplicationInfo(); info.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM; mPackageManager.addResolveInfoForIntent(TEST_INTENT, info); mController.setPackageName(TEST_INTENT.getStringExtra(EXTRA_PACKAGE_NAME)); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.AVAILABLE); mController.displayPreference(mScreen); final Intent intent = mPreference.getIntent(); Loading Loading
src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java +14 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.applications.appinfo; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.support.annotation.VisibleForTesting; Loading Loading @@ -61,8 +62,13 @@ public class TimeSpentInAppPreferenceController extends BasePreferenceController if (resolved == null || resolved.isEmpty()) { return DISABLED_UNSUPPORTED; } for (ResolveInfo info : resolved) { if (isSystemApp(info)) { return AVAILABLE; } } return DISABLED_UNSUPPORTED; } @Override public void displayPreference(PreferenceScreen screen) { Loading @@ -72,4 +78,11 @@ public class TimeSpentInAppPreferenceController extends BasePreferenceController pref.setIntent(mIntent); } } private boolean isSystemApp(ResolveInfo info) { return info != null && info.activityInfo != null && info.activityInfo.applicationInfo != null && (info.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; } }
tests/robotests/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceControllerTest.java +17 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; Loading Loading @@ -81,13 +83,26 @@ public class TimeSpentInAppPreferenceControllerTest { } @Test public void hasIntentHandler_shouldBeAvailable() { public void hasIntentHandler_notSystemApp_shouldBeDisabled() { mPackageManager.addResolveInfoForIntent(TEST_INTENT, new ResolveInfo()); mController.setPackageName(TEST_INTENT.getStringExtra(EXTRA_PACKAGE_NAME)); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.AVAILABLE); .isEqualTo(BasePreferenceController.DISABLED_UNSUPPORTED); } @Test public void hasIntentHandler_resolvedToSystemApp_shouldBeAvailable() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = new ActivityInfo(); info.activityInfo.applicationInfo = new ApplicationInfo(); info.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM; mPackageManager.addResolveInfoForIntent(TEST_INTENT, info); mController.setPackageName(TEST_INTENT.getStringExtra(EXTRA_PACKAGE_NAME)); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.AVAILABLE); mController.displayPreference(mScreen); final Intent intent = mPreference.getIntent(); Loading