Update showCallScreen to use Telecomm (6/6)

Use TelephonyManager instead of ITelephony for showCallScreen so that
the invocation routed to telecomm instead.

Bug: 15008165
Change-Id: Ib674e2e48efaa1cc97d1513dc2c2b27fdb343657
This commit is contained in:
Santos Cordon
2014-05-29 21:48:16 -07:00
parent d4757e088b
commit 3afbdf0060

View File

@@ -58,7 +58,6 @@ import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.Phone; import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants;
import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtils;
@@ -605,8 +604,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
} }
// Disable the Emergency call button if the device has no voice telephone capability // Disable the Emergency call button if the device has no voice telephone capability
final TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); if (!getTelephonyManager().isVoiceCapable()) {
if (!tm.isVoiceCapable()) {
final View emergencyCall = findViewById(R.id.emergencyCallButton); final View emergencyCall = findViewById(R.id.emergencyCallButton);
if (emergencyCall != null) { if (emergencyCall != null) {
Log.d(TAG, "Removing the emergency Call button"); Log.d(TAG, "Removing the emergency Call button");
@@ -760,7 +758,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
*/ */
private final void setAirplaneModeIfNecessary() { private final void setAirplaneModeIfNecessary() {
final boolean isLteDevice = final boolean isLteDevice =
TelephonyManager.getDefault().getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE; getTelephonyManager().getLteOnCdmaMode() == PhoneConstants.LTE_ON_CDMA_TRUE;
if (!isLteDevice) { if (!isLteDevice) {
Log.d(TAG, "Going into airplane mode."); Log.d(TAG, "Going into airplane mode.");
Settings.Global.putInt(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1); Settings.Global.putInt(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
@@ -796,7 +794,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
return; return;
} }
final int newState = TelephonyManager.getDefault().getCallState(); final int newState = getTelephonyManager().getCallState();
int textId; int textId;
if (newState == TelephonyManager.CALL_STATE_OFFHOOK) { if (newState == TelephonyManager.CALL_STATE_OFFHOOK) {
// Show "return to call" text and show phone icon // Show "return to call" text and show phone icon
@@ -816,23 +814,14 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
} }
private void takeEmergencyCallAction() { private void takeEmergencyCallAction() {
if (TelephonyManager.getDefault().getCallState() == TelephonyManager.CALL_STATE_OFFHOOK) { TelephonyManager telephonyManager = getTelephonyManager();
resumeCall(); if (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_OFFHOOK) {
telephonyManager.showCallScreen();
} else { } else {
launchEmergencyDialer(); launchEmergencyDialer();
} }
} }
private void resumeCall() {
final ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
if (phone != null) {
try {
phone.showCallScreen();
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony service: " + e);
}
}
}
private void launchEmergencyDialer() { private void launchEmergencyDialer() {
final Intent intent = new Intent(ACTION_EMERGENCY_DIAL); final Intent intent = new Intent(ACTION_EMERGENCY_DIAL);
@@ -841,6 +830,10 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
startActivity(intent); startActivity(intent);
} }
private TelephonyManager getTelephonyManager() {
return (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
}
/** /**
* Listen to key events so we can disable sounds when we get a keyinput in EditText. * Listen to key events so we can disable sounds when we get a keyinput in EditText.
*/ */