diff --git a/res/values/strings.xml b/res/values/strings.xml
index 399db32b6a7..95b4569a567 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5305,6 +5305,10 @@
Turn on phone calls & SMS?
Call and SMS history will be shared with this user.
+
+ Emergency information
+
+ Accessible through lock screen in the emergency dialer
Allow apps and content
diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml
index 4fefc105552..5944b3eb051 100644
--- a/res/xml/user_settings.xml
+++ b/res/xml/user_settings.xml
@@ -35,5 +35,9 @@
android:key="add_users_when_locked"
android:title="@string/user_add_on_lockscreen_menu"
android:summary="@string/user_add_on_lockscreen_menu_summary" />
+
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 1837a2c3af7..c9cdeb81246 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -27,6 +27,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
+import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
@@ -42,6 +43,7 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
+import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.util.Log;
@@ -101,6 +103,10 @@ public class UserSettings extends SettingsPreferenceFragment
private static final String KEY_USER_LIST = "user_list";
private static final String KEY_USER_ME = "user_me";
private static final String KEY_ADD_USER = "user_add";
+ private static final String KEY_EMERGENCY_INFO = "emergency_info";
+ private static final String KEY_LOCK_SCREEN_SETTINGS = "lock_screen_settings";
+
+ private static final String ACTION_EDIT_EMERGENCY_INFO = "android.settings.EDIT_EMERGENGY_INFO";
private static final int MENU_REMOVE_USER = Menu.FIRST;
@@ -134,6 +140,7 @@ public class UserSettings extends SettingsPreferenceFragment
private DimmableIconPreference mAddUser;
private PreferenceGroup mLockScreenSettings;
private RestrictedSwitchPreference mAddUserWhenLocked;
+ private Preference mEmergencyInfoPreference;
private int mRemovingUserId = -1;
private int mAddedUserId = 0;
private boolean mAddingUser;
@@ -229,6 +236,15 @@ public class UserSettings extends SettingsPreferenceFragment
}
mLockScreenSettings = (PreferenceGroup) findPreference("lock_screen_settings");
mAddUserWhenLocked = (RestrictedSwitchPreference) findPreference("add_users_when_locked");
+ mEmergencyInfoPreference = findPreference(KEY_EMERGENCY_INFO);
+ if(emergencyInfoActivityPresent()) {
+ mEmergencyInfoPreference.setOnPreferenceClickListener(this);
+ } else {
+ // Remove this view if the emergency info package is not found.
+ PreferenceCategory lockScreenSettingsCategory =
+ (PreferenceCategory) findPreference(KEY_LOCK_SCREEN_SETTINGS);
+ lockScreenSettingsCategory.removePreference(mEmergencyInfoPreference);
+ }
loadProfile();
setHasOptionsMenu(true);
IntentFilter filter = new IntentFilter(Intent.ACTION_USER_REMOVED);
@@ -598,6 +614,15 @@ public class UserSettings extends SettingsPreferenceFragment
}
}
+ private boolean emergencyInfoActivityPresent() {
+ Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO).setPackage("com.android.emergency");
+ List infos = getContext().getPackageManager().queryIntentActivities(intent, 0);
+ if (infos == null || infos.isEmpty()) {
+ return false;
+ }
+ return true;
+ }
+
private void removeUserNow() {
if (mRemovingUserId == UserHandle.myUserId()) {
removeThisUser();
@@ -917,6 +942,9 @@ public class UserSettings extends SettingsPreferenceFragment
} else {
onAddUserClicked(USER_TYPE_USER);
}
+ } else if (pref == mEmergencyInfoPreference) {
+ Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO);
+ startActivity(intent);
}
return false;
}