Adding "Install Other Apps" in App Info page
Added a preference link to manage external sources in the app info screen just like other special access permissions. Test: Manually checked that the link appears on apps once their app op is set to allow or deny. Also, added some basic robolectric unit tests: make -j32 RunSettingsRoboTests Bug: 35481942 Change-Id: If687778b7a64fb7d278508b78d06272253a98e3e
This commit is contained in:
@@ -27,6 +27,7 @@ import android.support.v7.preference.Preference.OnPreferenceChangeListener;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
|
||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||
|
||||
public class ExternalSourcesDetails extends AppInfoWithHeader
|
||||
implements OnPreferenceChangeListener {
|
||||
@@ -74,6 +75,18 @@ public class ExternalSourcesDetails extends AppInfoWithHeader
|
||||
return false;
|
||||
}
|
||||
|
||||
static CharSequence getPreferenceSummary(Context context, AppEntry entry) {
|
||||
final InstallAppsState appsState;
|
||||
if (entry.extraInfo instanceof InstallAppsState) {
|
||||
appsState = (InstallAppsState) entry.extraInfo;
|
||||
} else {
|
||||
appsState = new AppStateInstallAppsBridge(context, null, null)
|
||||
.createInstallAppsStateFor(entry.info.packageName, entry.info.uid);
|
||||
}
|
||||
return context.getString(appsState.canInstallApps() ? R.string.external_source_trusted
|
||||
: R.string.external_source_untrusted);
|
||||
}
|
||||
|
||||
private void setCanInstallApps(boolean newState) {
|
||||
mAppOpsManager.setMode(AppOpsManager.OP_REQUEST_INSTALL_PACKAGES,
|
||||
mPackageInfo.applicationInfo.uid, mPackageName,
|
||||
|
Reference in New Issue
Block a user