From 1c218c8368aa799ec85f7e75a1e14abde021db2a Mon Sep 17 00:00:00 2001 From: Jesse Evans Date: Fri, 31 Mar 2017 16:11:53 -0700 Subject: [PATCH] Fixes instant apps on the Opening links screen Updates strings to the correct values. Adds the Instant apps account preference, which launches the instant apps accounts chooser. Test: manual test of the settings screen. Bug: 36514506 Change-Id: I876d0d242bf40a379a3737bc6422e2835fc17839 --- res/values/strings.xml | 10 ++++--- .../applications/ManageDomainUrls.java | 29 +++++++++++++++++-- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index c9492a3483b..78768b48334 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8413,14 +8413,16 @@ %1$s total made available\n\nLast ran on %2$s - Open links in apps + Instant apps - Open links in supported apps, even if the - apps aren’t installed on your device + Open links in apps, even if they’re not installed - Apps not installed + Instant apps + + + Instant apps account Installed apps diff --git a/src/com/android/settings/applications/ManageDomainUrls.java b/src/com/android/settings/applications/ManageDomainUrls.java index b09a089ae4d..bdc9932674d 100644 --- a/src/com/android/settings/applications/ManageDomainUrls.java +++ b/src/com/android/settings/applications/ManageDomainUrls.java @@ -15,7 +15,9 @@ package com.android.settings.applications; import android.app.Application; +import android.content.ComponentName; import android.content.Context; +import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.UserHandle; @@ -55,6 +57,7 @@ public class ManageDomainUrls extends SettingsPreferenceFragment private ApplicationsState.Session mSession; private PreferenceGroup mDomainAppList; private SwitchPreference mWebAction; + private Preference mInstantAppAccountPreference; @Override public void onCreate(Bundle icicle) { @@ -126,6 +129,26 @@ public class ManageDomainUrls extends SettingsPreferenceFragment mWebAction.setOnPreferenceChangeListener(this); webActionCategory.addPreference(mWebAction); + // Determine whether we should show the instant apps account chooser setting + ComponentName instantAppSettingsComponent = getActivity().getPackageManager() + .getInstantAppResolverSettingsComponent(); + Intent instantAppSettingsIntent = null; + if (instantAppSettingsComponent != null) { + instantAppSettingsIntent = + new Intent().setComponent(instantAppSettingsComponent); + } + if (instantAppSettingsIntent != null) { + final Intent launchIntent = instantAppSettingsIntent; + // TODO: Make this button actually launch the account chooser. + mInstantAppAccountPreference = new Preference(getPrefContext()); + mInstantAppAccountPreference.setTitle(R.string.instant_apps_account); + mInstantAppAccountPreference.setOnPreferenceClickListener(pref -> { + startActivity(launchIntent); + return true; + }); + webActionCategory.addPreference(mInstantAppAccountPreference); + } + // list to manage link handling per app mDomainAppList = new PreferenceCategory(getPrefContext()); mDomainAppList.setTitle(R.string.domain_url_section_title); @@ -138,9 +161,11 @@ public class ManageDomainUrls extends SettingsPreferenceFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference == mWebAction) { - final int enabled = (boolean) newValue ? 1 : 0; + boolean checked = (boolean) newValue; Settings.Secure.putInt( - getContentResolver(), Settings.Secure.WEB_ACTION_ENABLED, enabled); + getContentResolver(), + Settings.Secure.WEB_ACTION_ENABLED, checked ? 1 : 0); + mWebAction.setChecked(checked); return true; } return false;