Loading src/com/android/settings/applications/AppLaunchSettings.java +40 −12 Original line number Diff line number Diff line Loading @@ -17,8 +17,13 @@ package com.android.settings.applications; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.IntentFilterVerificationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.UserHandle; import android.preference.Preference; Loading @@ -32,6 +37,10 @@ import com.android.settings.R; import java.util.List; import static android.content.pm.PackageManager.GET_ACTIVITIES; import static android.content.pm.PackageManager.GET_META_DATA; import static android.content.pm.PackageManager.GET_RESOLVED_FILTER; public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListener, Preference.OnPreferenceChangeListener { Loading @@ -57,29 +66,48 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe mOpenDomainUrls = (SwitchPreference) findPreference(KEY_OPEN_DOMAIN_URLS); mOpenDomainUrls.setOnPreferenceChangeListener(this); boolean hasDomainUrls = (mAppEntry.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS) != 0; List<IntentFilterVerificationInfo> iviList = mPm.getIntentFilterVerifications(mPackageName); boolean enabled = hasDomainUrls && (iviList.size() != 0); mOpenDomainUrls.setEnabled(enabled); if (enabled) { final int status = mPm.getIntentVerificationStatus(mPackageName, myUserId); boolean checked = status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS; boolean checked = (status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS); mOpenDomainUrls.setChecked(checked); } List<IntentFilter> filters = mPm.getAllIntentFilters(mPackageName); mAppDomainUrls = (AppDomainsPreference) findPreference(KEY_SUPPORTED_DOMAIN_URLS); CharSequence[] entries = getEntries(mPackageName); CharSequence[] entries = getEntries(iviList, filters); mAppDomainUrls.setTitles(entries); mAppDomainUrls.setValues(new int[entries.length]); mClearDefaultsPreference = (ClearDefaultsPreference) findPreference(KEY_CLEAR_DEFAULTS); } private CharSequence[] getEntries(String packageName) { private CharSequence[] getEntries(List<IntentFilterVerificationInfo> iviList, List<IntentFilter> filters) { ArraySet<String> result = new ArraySet<>(); List<IntentFilterVerificationInfo> list = mPm.getIntentFilterVerifications(packageName); for (IntentFilterVerificationInfo ivi : list) { if (iviList.size() > 0) { for (IntentFilterVerificationInfo ivi : iviList) { for (String host : ivi.getDomains()) { result.add(host); } } } if (filters != null && filters.size() > 0) { for (IntentFilter filter : filters) { if (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) || filter.hasDataScheme(IntentFilter.SCHEME_HTTPS)) { result.addAll(filter.getHostsList()); } } } return result.toArray(new CharSequence[0]); } Loading src/com/android/settings/applications/ManageApplications.java +11 −14 Original line number Diff line number Diff line Loading @@ -497,9 +497,11 @@ public class ManageApplications extends InstrumentedFragment ApplicationsState.AppEntry entry = mApplications.getAppEntry(position); mCurrentPkgName = entry.info.packageName; mCurrentUid = entry.info.uid; if (isAppEntryViewEnabled(entry)) { startApplicationDetailsActivity(); } } } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Loading Loading @@ -585,6 +587,13 @@ public class ManageApplications extends InstrumentedFragment } private static boolean isAppEntryViewEnabled(AppEntry entry) { if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0 || !entry.info.enabled) { return false; } return true; } /* * Custom adapter implementation for the ListView * This adapter maintains a map for each displayed application and its properties Loading Loading @@ -879,19 +888,6 @@ public class ManageApplications extends InstrumentedFragment return false; } @Override public boolean isEnabled(int position) { ApplicationsState.AppEntry entry = mEntries.get(position); synchronized (entry) { if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0) { return false; } else if (!entry.info.enabled) { return false; } return true; } } public View getView(int position, View convertView, ViewGroup parent) { // A ViewHolder keeps references to children views to avoid unnecessary calls // to findViewById() on each row. Loading Loading @@ -928,6 +924,7 @@ public class ManageApplications extends InstrumentedFragment holder.updateSizeText(mManageApplications.mInvalidSizeStr, mWhichSize); break; } convertView.setEnabled(isAppEntryViewEnabled(entry)); if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0) { holder.disabled.setVisibility(View.VISIBLE); holder.disabled.setText(R.string.not_installed); Loading Loading
src/com/android/settings/applications/AppLaunchSettings.java +40 −12 Original line number Diff line number Diff line Loading @@ -17,8 +17,13 @@ package com.android.settings.applications; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.IntentFilterVerificationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.UserHandle; import android.preference.Preference; Loading @@ -32,6 +37,10 @@ import com.android.settings.R; import java.util.List; import static android.content.pm.PackageManager.GET_ACTIVITIES; import static android.content.pm.PackageManager.GET_META_DATA; import static android.content.pm.PackageManager.GET_RESOLVED_FILTER; public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListener, Preference.OnPreferenceChangeListener { Loading @@ -57,29 +66,48 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe mOpenDomainUrls = (SwitchPreference) findPreference(KEY_OPEN_DOMAIN_URLS); mOpenDomainUrls.setOnPreferenceChangeListener(this); boolean hasDomainUrls = (mAppEntry.info.privateFlags & ApplicationInfo.PRIVATE_FLAG_HAS_DOMAIN_URLS) != 0; List<IntentFilterVerificationInfo> iviList = mPm.getIntentFilterVerifications(mPackageName); boolean enabled = hasDomainUrls && (iviList.size() != 0); mOpenDomainUrls.setEnabled(enabled); if (enabled) { final int status = mPm.getIntentVerificationStatus(mPackageName, myUserId); boolean checked = status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS; boolean checked = (status == PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS); mOpenDomainUrls.setChecked(checked); } List<IntentFilter> filters = mPm.getAllIntentFilters(mPackageName); mAppDomainUrls = (AppDomainsPreference) findPreference(KEY_SUPPORTED_DOMAIN_URLS); CharSequence[] entries = getEntries(mPackageName); CharSequence[] entries = getEntries(iviList, filters); mAppDomainUrls.setTitles(entries); mAppDomainUrls.setValues(new int[entries.length]); mClearDefaultsPreference = (ClearDefaultsPreference) findPreference(KEY_CLEAR_DEFAULTS); } private CharSequence[] getEntries(String packageName) { private CharSequence[] getEntries(List<IntentFilterVerificationInfo> iviList, List<IntentFilter> filters) { ArraySet<String> result = new ArraySet<>(); List<IntentFilterVerificationInfo> list = mPm.getIntentFilterVerifications(packageName); for (IntentFilterVerificationInfo ivi : list) { if (iviList.size() > 0) { for (IntentFilterVerificationInfo ivi : iviList) { for (String host : ivi.getDomains()) { result.add(host); } } } if (filters != null && filters.size() > 0) { for (IntentFilter filter : filters) { if (filter.hasDataScheme(IntentFilter.SCHEME_HTTP) || filter.hasDataScheme(IntentFilter.SCHEME_HTTPS)) { result.addAll(filter.getHostsList()); } } } return result.toArray(new CharSequence[0]); } Loading
src/com/android/settings/applications/ManageApplications.java +11 −14 Original line number Diff line number Diff line Loading @@ -497,9 +497,11 @@ public class ManageApplications extends InstrumentedFragment ApplicationsState.AppEntry entry = mApplications.getAppEntry(position); mCurrentPkgName = entry.info.packageName; mCurrentUid = entry.info.uid; if (isAppEntryViewEnabled(entry)) { startApplicationDetailsActivity(); } } } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Loading Loading @@ -585,6 +587,13 @@ public class ManageApplications extends InstrumentedFragment } private static boolean isAppEntryViewEnabled(AppEntry entry) { if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0 || !entry.info.enabled) { return false; } return true; } /* * Custom adapter implementation for the ListView * This adapter maintains a map for each displayed application and its properties Loading Loading @@ -879,19 +888,6 @@ public class ManageApplications extends InstrumentedFragment return false; } @Override public boolean isEnabled(int position) { ApplicationsState.AppEntry entry = mEntries.get(position); synchronized (entry) { if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0) { return false; } else if (!entry.info.enabled) { return false; } return true; } } public View getView(int position, View convertView, ViewGroup parent) { // A ViewHolder keeps references to children views to avoid unnecessary calls // to findViewById() on each row. Loading Loading @@ -928,6 +924,7 @@ public class ManageApplications extends InstrumentedFragment holder.updateSizeText(mManageApplications.mInvalidSizeStr, mWhichSize); break; } convertView.setEnabled(isAppEntryViewEnabled(entry)); if ((entry.info.flags&ApplicationInfo.FLAG_INSTALLED) == 0) { holder.disabled.setVisibility(View.VISIBLE); holder.disabled.setText(R.string.not_installed); Loading