Link overlay emergency app by feature flag

Add feature flag to link overlay emergency app instead of Emergency Info
app for teamfood in the future.

Test: Manually
Bug: 118809382
Change-Id: I7956704b9d134647cc0a1a5975a0bf8bea482422
This commit is contained in:
yuanjiahsu
2018-11-07 13:33:12 +08:00
parent 5948259702
commit 432650df20
2 changed files with 29 additions and 2 deletions

View File

@@ -150,4 +150,14 @@
<string name="config_settingsintelligence_package_name" translatable="false"> <string name="config_settingsintelligence_package_name" translatable="false">
com.android.settings.intelligence com.android.settings.intelligence
</string> </string>
<!-- Emergency app package name -->
<string name="config_emergency_package_name" translatable="false">
com.android.emergency
</string>
<!-- Emergency app intent action -->
<string name="config_emergency_intent_action" translatable="false">
android.settings.EDIT_EMERGENCY_INFO
</string>
</resources> </resources>

View File

@@ -22,6 +22,7 @@ import android.content.pm.UserInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.util.FeatureFlagUtils;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -63,7 +64,7 @@ public class EmergencyInfoPreferenceController extends AbstractPreferenceControl
@Override @Override
public boolean handlePreferenceTreeClick(Preference preference) { public boolean handlePreferenceTreeClick(Preference preference) {
if (KEY_EMERGENCY_INFO.equals(preference.getKey())) { if (KEY_EMERGENCY_INFO.equals(preference.getKey())) {
Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO); Intent intent = new Intent(getIntentAction(mContext));
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(intent); mContext.startActivity(intent);
return true; return true;
@@ -73,7 +74,7 @@ public class EmergencyInfoPreferenceController extends AbstractPreferenceControl
@Override @Override
public boolean isAvailable() { public boolean isAvailable() {
Intent intent = new Intent(ACTION_EDIT_EMERGENCY_INFO).setPackage(PACKAGE_NAME_EMERGENCY); Intent intent = new Intent(getIntentAction(mContext)).setPackage(getPackageName(mContext));
List<ResolveInfo> infos = mContext.getPackageManager().queryIntentActivities(intent, 0); List<ResolveInfo> infos = mContext.getPackageManager().queryIntentActivities(intent, 0);
return infos != null && !infos.isEmpty(); return infos != null && !infos.isEmpty();
} }
@@ -82,4 +83,20 @@ public class EmergencyInfoPreferenceController extends AbstractPreferenceControl
public String getPreferenceKey() { public String getPreferenceKey() {
return KEY_EMERGENCY_INFO; return KEY_EMERGENCY_INFO;
} }
private String getIntentAction(Context context) {
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SAFETY_HUB)) {
return context.getResources().getString(R.string.config_emergency_intent_action);
}
return ACTION_EDIT_EMERGENCY_INFO;
}
private String getPackageName(Context context) {
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SAFETY_HUB)) {
return context.getResources().getString(R.string.config_emergency_package_name);
}
return PACKAGE_NAME_EMERGENCY;
}
} }