am 256e51d3
: Merge "Ignore print service settings activities if they are not exported." into klp-dev
* commit '256e51d328ac28594a6057de829190ffe4fa593f': Ignore print service settings activities if they are not exported.
This commit is contained in:
@@ -3419,9 +3419,8 @@
|
|||||||
<xliff:g id="service" example="My Print Service">%1$s</xliff:g>?</string>
|
<xliff:g id="service" example="My Print Service">%1$s</xliff:g>?</string>
|
||||||
<!-- Summary for a warning message about security implications of enabling a print service,
|
<!-- Summary for a warning message about security implications of enabling a print service,
|
||||||
displayed as a dialog message when the user selects to enable a print service. [CHAR LIMIT=NONE] -->
|
displayed as a dialog message when the user selects to enable a print service. [CHAR LIMIT=NONE] -->
|
||||||
<string name="print_service_security_warning_summary">
|
<string name="print_service_security_warning_summary">Your document may pass through
|
||||||
<xliff:g id="print_service_name">%1$s</xliff:g> can receive documents you print.
|
one or more servers on its way to the printer.</string>
|
||||||
Such documents may contain sensitive data.</string>
|
|
||||||
|
|
||||||
<!-- Title for the prompt shown as a placeholder if no print serivices are installed. [CHAR LIMIT=50] -->
|
<!-- Title for the prompt shown as a placeholder if no print serivices are installed. [CHAR LIMIT=50] -->
|
||||||
<string name="print_no_services_installed">No services installed</string>
|
<string name="print_no_services_installed">No services installed</string>
|
||||||
@@ -3446,8 +3445,14 @@
|
|||||||
<!-- Title for the search action bar menu item. [CHAR LIMIT=20] -->
|
<!-- Title for the search action bar menu item. [CHAR LIMIT=20] -->
|
||||||
<string name="print_menu_item_search">Search</string>
|
<string name="print_menu_item_search">Search</string>
|
||||||
|
|
||||||
<!-- Title for the printer categoty showing a list of available printers. [CHAR LIMIT=25] -->
|
<!-- Title for the prompt if no printers are available and the system is searching for such. [CHAR LIMIT=50] -->
|
||||||
<string name="category_printers">Printers</string>
|
<string name="print_searching_for_printers">Searching for printers</string>
|
||||||
|
|
||||||
|
<!-- Title for the menu item to open the print jobs screen. [CHAR LIMIT=25] -->
|
||||||
|
<string name="print_print_jobs">Print jobs</string>
|
||||||
|
|
||||||
|
<!-- Title for the print jobs screen. [CHAR LIMIT=25] -->
|
||||||
|
<string name="print_active_print_jobs">Active print jobs</string>
|
||||||
|
|
||||||
<!-- App Fuel Gauge strings -->
|
<!-- App Fuel Gauge strings -->
|
||||||
<skip />
|
<skip />
|
||||||
|
@@ -20,6 +20,7 @@ import android.accessibilityservice.AccessibilityServiceInfo;
|
|||||||
import android.app.ActivityManagerNative;
|
import android.app.ActivityManagerNative;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@@ -41,6 +42,7 @@ import android.preference.PreferenceScreen;
|
|||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextUtils.SimpleStringSplitter;
|
import android.text.TextUtils.SimpleStringSplitter;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.KeyCharacterMap;
|
import android.view.KeyCharacterMap;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -66,6 +68,8 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public class AccessibilitySettings extends SettingsPreferenceFragment implements DialogCreatable,
|
public class AccessibilitySettings extends SettingsPreferenceFragment implements DialogCreatable,
|
||||||
Preference.OnPreferenceChangeListener {
|
Preference.OnPreferenceChangeListener {
|
||||||
|
private static final String LOG_TAG = "AccessibilitySettings";
|
||||||
|
|
||||||
private static final String DEFAULT_SCREENREADER_MARKET_LINK =
|
private static final String DEFAULT_SCREENREADER_MARKET_LINK =
|
||||||
"market://search?q=pname:com.google.android.marvin.talkback";
|
"market://search?q=pname:com.google.android.marvin.talkback";
|
||||||
|
|
||||||
@@ -605,7 +609,12 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
|
|||||||
Uri marketUri = Uri.parse(screenreaderMarketLink);
|
Uri marketUri = Uri.parse(screenreaderMarketLink);
|
||||||
Intent marketIntent = new Intent(Intent.ACTION_VIEW,
|
Intent marketIntent = new Intent(Intent.ACTION_VIEW,
|
||||||
marketUri);
|
marketUri);
|
||||||
|
try {
|
||||||
startActivity(marketIntent);
|
startActivity(marketIntent);
|
||||||
|
} catch (ActivityNotFoundException anfe) {
|
||||||
|
Log.w(LOG_TAG, "Couldn't start play store activity",
|
||||||
|
anfe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
|
@@ -27,7 +27,10 @@ import android.content.Context;
|
|||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.Loader;
|
import android.content.Loader;
|
||||||
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.database.DataSetObserver;
|
import android.database.DataSetObserver;
|
||||||
@@ -275,11 +278,16 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
|
|||||||
if (!TextUtils.isEmpty(settingsTitle) && !TextUtils.isEmpty(settingsComponentName)) {
|
if (!TextUtils.isEmpty(settingsTitle) && !TextUtils.isEmpty(settingsComponentName)) {
|
||||||
Intent settingsIntent = new Intent(Intent.ACTION_MAIN).setComponent(
|
Intent settingsIntent = new Intent(Intent.ACTION_MAIN).setComponent(
|
||||||
ComponentName.unflattenFromString(settingsComponentName.toString()));
|
ComponentName.unflattenFromString(settingsComponentName.toString()));
|
||||||
if (!getPackageManager().queryIntentActivities(settingsIntent, 0).isEmpty()) {
|
List<ResolveInfo> resolvedActivities = getPackageManager().queryIntentActivities(
|
||||||
|
settingsIntent, 0);
|
||||||
|
if (!resolvedActivities.isEmpty()) {
|
||||||
|
// The activity is a component name, therefore it is one or none.
|
||||||
|
if (resolvedActivities.get(0).activityInfo.exported) {
|
||||||
mSettingsTitle = settingsTitle;
|
mSettingsTitle = settingsTitle;
|
||||||
mSettingsIntent = settingsIntent;
|
mSettingsIntent = settingsIntent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add printers title and intent.
|
// Add printers title and intent.
|
||||||
String addPrintersTitle = arguments.getString(
|
String addPrintersTitle = arguments.getString(
|
||||||
@@ -290,11 +298,16 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
|
|||||||
&& !TextUtils.isEmpty(addPrintersComponentName)) {
|
&& !TextUtils.isEmpty(addPrintersComponentName)) {
|
||||||
Intent addPritnersIntent = new Intent(Intent.ACTION_MAIN).setComponent(
|
Intent addPritnersIntent = new Intent(Intent.ACTION_MAIN).setComponent(
|
||||||
ComponentName.unflattenFromString(addPrintersComponentName.toString()));
|
ComponentName.unflattenFromString(addPrintersComponentName.toString()));
|
||||||
if (!getPackageManager().queryIntentActivities(addPritnersIntent, 0).isEmpty()) {
|
List<ResolveInfo> resolvedActivities = getPackageManager().queryIntentActivities(
|
||||||
|
addPritnersIntent, 0);
|
||||||
|
if (!resolvedActivities.isEmpty()) {
|
||||||
|
// The activity is a component name, therefore it is one or none.
|
||||||
|
if (resolvedActivities.get(0).activityInfo.exported) {
|
||||||
mAddPrintersTitle = addPrintersTitle;
|
mAddPrintersTitle = addPrintersTitle;
|
||||||
mAddPrintersIntent = addPritnersIntent;
|
mAddPrintersIntent = addPritnersIntent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Enable warning title.
|
// Enable warning title.
|
||||||
mEnableWarningTitle = arguments.getCharSequence(
|
mEnableWarningTitle = arguments.getCharSequence(
|
||||||
|
Reference in New Issue
Block a user