Merge "Fix window leak when split-screen is released"
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index 01c2f80..ee55c06 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -112,11 +112,16 @@
</LinearLayout>
+ <Space
+ android:id="@+id/floating_action_button_margin_bottom"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/floating_action_button_margin_bottom"
+ android:layout_alignParentBottom="true"/>
+
<FrameLayout
android:id="@+id/floating_action_button_container"
android:layout_width="@dimen/floating_action_button_width"
android:layout_height="@dimen/floating_action_button_height"
- android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
android:layout_gravity="center_horizontal|bottom" >
<ImageButton
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 227e112..c402148 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -106,8 +106,6 @@
private static final int BAD_EMERGENCY_NUMBER_DIALOG = 0;
- // private static final int USER_ACTIVITY_TIMEOUT_WHEN_NO_PROX_SENSOR = 15000; // millis
-
EditText mDigits;
private View mDialButton;
private View mDelete;
diff --git a/src/com/android/services/telephony/Log.java b/src/com/android/services/telephony/Log.java
index 30aa367..a56e8b1 100644
--- a/src/com/android/services/telephony/Log.java
+++ b/src/com/android/services/telephony/Log.java
@@ -16,10 +16,7 @@
package com.android.services.telephony;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.IllegalFormatException;
-import java.util.Locale;
+import android.content.Context;
/**
* Manages logging for the entire module.
@@ -42,138 +39,73 @@
return FORCE_LOGGING || android.util.Log.isLoggable(TAG, level);
}
+ public static void initLogging(Context context) {
+ // Register Telephony with the Telecom Logger.
+ android.telecom.Log.setTag(TAG);
+ android.telecom.Log.setSessionContext(context);
+ android.telecom.Log.initMd5Sum();
+ }
+
+ // Relay log messages to Telecom
+ // TODO: Redo namespace of Telephony to use these methods directly.
+
public static void d(String prefix, String format, Object... args) {
- if (DEBUG) {
- android.util.Log.d(TAG, buildMessage(prefix, format, args));
- }
+ android.telecom.Log.d(prefix, format, args);
}
public static void d(Object objectPrefix, String format, Object... args) {
- if (DEBUG) {
- android.util.Log.d(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
- }
+ android.telecom.Log.d(objectPrefix, format, args);
}
public static void i(String prefix, String format, Object... args) {
- if (INFO) {
- android.util.Log.i(TAG, buildMessage(prefix, format, args));
- }
+ android.telecom.Log.i(prefix, format, args);
}
public static void i(Object objectPrefix, String format, Object... args) {
- if (INFO) {
- android.util.Log.i(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
- }
+ android.telecom.Log.i(objectPrefix, format, args);
}
public static void v(String prefix, String format, Object... args) {
- if (VERBOSE) {
- android.util.Log.v(TAG, buildMessage(prefix, format, args));
- }
+ android.telecom.Log.v(prefix, format, args);
}
public static void v(Object objectPrefix, String format, Object... args) {
- if (VERBOSE) {
- android.util.Log.v(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
- }
+ android.telecom.Log.v(objectPrefix, format, args);
}
public static void w(String prefix, String format, Object... args) {
- if (WARN) {
- android.util.Log.w(TAG, buildMessage(prefix, format, args));
- }
+ android.telecom.Log.w(prefix, format, args);
}
public static void w(Object objectPrefix, String format, Object... args) {
- if (WARN) {
- android.util.Log.w(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
- }
+ android.telecom.Log.w(objectPrefix, format, args);
}
public static void e(String prefix, Throwable tr, String format, Object... args) {
- if (ERROR) {
- android.util.Log.e(TAG, buildMessage(prefix, format, args), tr);
- }
+ android.telecom.Log.e(prefix, tr, format, args);
}
public static void e(Object objectPrefix, Throwable tr, String format, Object... args) {
- if (ERROR) {
- android.util.Log.e(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args),
- tr);
- }
+ android.telecom.Log.e(objectPrefix, tr, format, args);
}
public static void wtf(String prefix, Throwable tr, String format, Object... args) {
- android.util.Log.wtf(TAG, buildMessage(prefix, format, args), tr);
+ android.telecom.Log.wtf(prefix, tr, format, args);
}
public static void wtf(Object objectPrefix, Throwable tr, String format, Object... args) {
- android.util.Log.wtf(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args),
- tr);
+ android.telecom.Log.wtf(objectPrefix, tr, format, args);
}
public static void wtf(String prefix, String format, Object... args) {
- String msg = buildMessage(prefix, format, args);
- android.util.Log.wtf(TAG, msg, new IllegalStateException(msg));
+ android.telecom.Log.wtf(prefix, format, args);
}
public static void wtf(Object objectPrefix, String format, Object... args) {
- String msg = buildMessage(getPrefixFromObject(objectPrefix), format, args);
- android.util.Log.wtf(TAG, msg, new IllegalStateException(msg));
+ android.telecom.Log.wtf(objectPrefix, format, args);
}
- /**
- * Redact personally identifiable information for production users.
- * If we are running in verbose mode, return the original string, otherwise
- * return a SHA-1 hash of the input string.
- */
public static String pii(Object pii) {
- if (pii == null || VERBOSE) {
- return String.valueOf(pii);
- }
- return "[" + secureHash(String.valueOf(pii).getBytes()) + "]";
- }
-
- private static String secureHash(byte[] input) {
- MessageDigest messageDigest;
- try {
- messageDigest = MessageDigest.getInstance("SHA-1");
- } catch (NoSuchAlgorithmException e) {
- return null;
- }
- messageDigest.update(input);
- byte[] result = messageDigest.digest();
- return encodeHex(result);
- }
-
- private static String encodeHex(byte[] bytes) {
- StringBuffer hex = new StringBuffer(bytes.length * 2);
-
- for (int i = 0; i < bytes.length; i++) {
- int byteIntValue = bytes[i] & 0xff;
- if (byteIntValue < 0x10) {
- hex.append("0");
- }
- hex.append(Integer.toString(byteIntValue, 16));
- }
-
- return hex.toString();
- }
-
- private static String getPrefixFromObject(Object obj) {
- return obj == null ? "<null>" : obj.getClass().getSimpleName();
- }
-
- private static String buildMessage(String prefix, String format, Object... args) {
- String msg;
- try {
- msg = (args == null || args.length == 0) ? format
- : String.format(Locale.US, format, args);
- } catch (IllegalFormatException ife) {
- wtf("Log", ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
- args.length);
- msg = format + " (An error occurred while formatting the message.)";
- }
- return String.format(Locale.US, "%s: %s", prefix, msg);
+ return android.telecom.Log.pii(pii);
}
}
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 21c71d2..343f7e4 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -719,6 +719,7 @@
setVideoState(mOriginalConnection.getVideoState());
setOriginalConnectionCapabilities(mOriginalConnection.getConnectionCapabilities());
setWifi(mOriginalConnection.isWifi());
+ setAudioModeIsVoip(mOriginalConnection.getAudioModeIsVoip());
setVideoProvider(mOriginalConnection.getVideoProvider());
setAudioQuality(mOriginalConnection.getAudioQuality());
setTechnologyTypeExtra();
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 0af667a..2b2ed02 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -90,6 +90,7 @@
@Override
public void onCreate() {
super.onCreate();
+ Log.initLogging(this);
mExpectedComponentName = new ComponentName(this, this.getClass());
mEmergencyTonePlayer = new EmergencyTonePlayer(this);
TelecomAccountRegistry.getInstance(this).setTelephonyConnectionService(this);