/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.applications.defaultapps; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.provider.Settings; import android.telephony.TelephonyManager; import com.android.settingslib.applications.DefaultAppInfo; import java.util.List; public class DefaultEmergencyPreferenceController extends DefaultAppPreferenceController { private static final boolean DEFAULT_EMERGENCY_APP_IS_CONFIGURABLE = false; public static final Intent QUERY_INTENT = new Intent( TelephonyManager.ACTION_EMERGENCY_ASSISTANCE); public DefaultEmergencyPreferenceController(Context context) { super(context); } @Override public boolean isAvailable() { return DEFAULT_EMERGENCY_APP_IS_CONFIGURABLE && isCapable() && mPackageManager.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null; } @Override public String getPreferenceKey() { return "default_emergency_app"; } @Override protected DefaultAppInfo getDefaultAppInfo() { return null; } private boolean isCapable() { return TelephonyManager.EMERGENCY_ASSISTANCE_ENABLED && mContext.getResources().getBoolean( com.android.internal.R.bool.config_voice_capable); } public static boolean hasEmergencyPreference(String pkg, Context context) { Intent i = new Intent(QUERY_INTENT); i.setPackage(pkg); final List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(i, 0); return resolveInfos != null && resolveInfos.size() != 0; } public static boolean isEmergencyDefault(String pkg, Context context) { String defaultPackage = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION); return defaultPackage != null && defaultPackage.equals(pkg); } }