Merge "Adding app specific screen for "External Sources""

This commit is contained in:
TreeHugger Robot
2017-03-09 01:21:55 +00:00
committed by Android (Google) Code Review
6 changed files with 239 additions and 8 deletions

View File

@@ -131,6 +131,7 @@ public class Settings extends SettingsActivity {
public static class ManageExternalSourcesActivity extends SettingsActivity {
/* empty */ }
public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ }
public static class WifiCallingSuggestionActivity extends SettingsActivity { /* empty */ }
public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ }

View File

@@ -15,6 +15,9 @@
*/
package com.android.settings.applications;
import static android.app.Activity.RESULT_CANCELED;
import static android.app.Activity.RESULT_OK;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import android.app.AlertDialog;
@@ -26,6 +29,7 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
@@ -67,6 +71,10 @@ public class ExternalSourcesDetails extends AppInfoWithHeader
final boolean checked = (Boolean) newValue;
if (preference == mSwitchPref) {
if (mInstallAppsState != null && checked != mInstallAppsState.canInstallApps()) {
if (Settings.ManageAppExternalSourcesActivity.class.getName().equals(
getIntent().getComponent().getClassName())) {
setResult(checked ? RESULT_OK : RESULT_CANCELED);
}
setCanInstallApps(checked);
refreshUi();
}
@@ -97,9 +105,13 @@ public class ExternalSourcesDetails extends AppInfoWithHeader
protected boolean refreshUi() {
mInstallAppsState = mAppBridge.createInstallAppsStateFor(mPackageName,
mPackageInfo.applicationInfo.uid);
final boolean canWrite = mInstallAppsState.canInstallApps();
mSwitchPref.setChecked(canWrite);
if (!mInstallAppsState.isPotentialAppSource()) {
// Invalid app entry. Should not allow changing permission
mSwitchPref.setEnabled(false);
return true;
}
final boolean canInstallApps = mInstallAppsState.canInstallApps();
mSwitchPref.setChecked(canInstallApps);
return true;
}

View File

@@ -50,6 +50,7 @@ import com.android.settings.accounts.UserAndAccountDashboardFragment;
import com.android.settings.applications.AdvancedAppSettings;
import com.android.settings.applications.AppAndNotificationDashboardFragment;
import com.android.settings.applications.DrawOverlayDetails;
import com.android.settings.applications.ExternalSourcesDetails;
import com.android.settings.applications.InstalledAppDetails;
import com.android.settings.applications.ManageApplications;
import com.android.settings.applications.ManageDomainUrls;
@@ -214,6 +215,7 @@ public class SettingsGateway {
ProcessStatsSummary.class.getName(),
DrawOverlayDetails.class.getName(),
WriteSettingsDetails.class.getName(),
ExternalSourcesDetails.class.getName(),
AdvancedAppSettings.class.getName(),
WallpaperTypeSettings.class.getName(),
VrListenerSettings.class.getName(),