diff options
8 files changed, 34 insertions, 20 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 3d3a37355a98..150880cd9a63 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -1782,7 +1782,8 @@ public class AccountManager { * <p> * The most common case is to call this with one account type, e.g.: * <p> - * <pre> newChooseAccountsIntent(null, null, new String[]{"com.google"}, null);</pre> + * <pre> newChooseAccountsIntent(null, null, new String[]{"com.google"}, false, null, + * null, null, null);</pre> * @param selectedAccount if specified, indicates that the {@link Account} is the currently * selected one, according to the caller's definition of selected. * @param allowableAccounts an optional {@link ArrayList} of accounts that are allowed to be @@ -1792,13 +1793,14 @@ public class AccountManager { * when adding an account. * @param alwaysPromptForAccount if set the account chooser screen is always shown, otherwise * it is only shown when there is more than one account from which to choose - * @param descriptionOverrideText if set, this string is used as the description in the + * @param descriptionOverrideText if non-null this string is used as the description in the * accounts chooser screen rather than the default - * @param addAccountAuthTokenType This {@link Bundle} is passed as the {@link #addAccount} - * authTokenType - * @param addAccountRequiredFeatures This {@link Bundle} is passed as the {@link #addAccount} - * requiredFeatures + * @param addAccountAuthTokenType this string is passed as the {@link #addAccount} + * authTokenType parameter + * @param addAccountRequiredFeatures this string array is passed as the {@link #addAccount} + * requiredFeatures parameter * @param addAccountOptions This {@link Bundle} is passed as the {@link #addAccount} options + * parameter * @return an {@link Intent} that can be used to launch the ChooseAccount activity flow. */ static public Intent newChooseAccountIntent(Account selectedAccount, diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index d78a7a36e67c..d680f36c3189 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -1193,6 +1193,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } super.setEnabled(enabled); prepareCursorControllers(); + if (enabled) { + // Make sure IME is updated with current editor info. + InputMethodManager imm = InputMethodManager.peekInstance(); + if (imm != null) imm.restartInput(this); + } } /** diff --git a/core/java/com/android/internal/widget/TransportControlView.java b/core/java/com/android/internal/widget/TransportControlView.java index f9c2cce6674e..1c7ad617176b 100644 --- a/core/java/com/android/internal/widget/TransportControlView.java +++ b/core/java/com/android/internal/widget/TransportControlView.java @@ -102,6 +102,9 @@ public class TransportControlView extends FrameLayout implements OnClickListener case MSG_SET_ARTWORK: if (mClientGeneration == msg.arg1) { + if (mMetadata.bitmap != null) { + mMetadata.bitmap.recycle(); + } mMetadata.bitmap = (Bitmap) msg.obj; mAlbumArt.setImageBitmap(mMetadata.bitmap); } diff --git a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java index 42ea4f2984ec..ae152fb62da9 100644 --- a/telephony/java/com/android/internal/telephony/DataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/DataConnectionTracker.java @@ -1019,7 +1019,7 @@ public abstract class DataConnectionTracker extends Handler { sendMessage(msg); } - public abstract boolean isAnyActiveDataConnections(); + public abstract boolean isDisconnected(); protected void onSetUserDataEnabled(boolean enabled) { synchronized (mDataEnabledLock) { diff --git a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java index 01b807d62f15..1b3ee1ed0c90 100644 --- a/telephony/java/com/android/internal/telephony/ServiceStateTracker.java +++ b/telephony/java/com/android/internal/telephony/ServiceStateTracker.java @@ -403,7 +403,14 @@ public abstract class ServiceStateTracker extends Handler { public void powerOffRadioSafely(DataConnectionTracker dcTracker) { synchronized (this) { if (!mPendingRadioPowerOffAfterDataOff) { - if (dcTracker.isAnyActiveDataConnections()) { + // To minimize race conditions we call cleanUpAllConnections on + // both if else paths instead of before this isDisconnected test. + if (dcTracker.isDisconnected()) { + // To minimize race conditions we do this after isDisconnected + dcTracker.cleanUpAllConnections(Phone.REASON_RADIO_TURNED_OFF); + if (DBG) log("Data disconnected, turn off radio right away."); + hangupAndPowerOff(); + } else { dcTracker.cleanUpAllConnections(Phone.REASON_RADIO_TURNED_OFF); Message msg = Message.obtain(this); msg.what = EVENT_SET_RADIO_POWER_OFF; @@ -415,10 +422,6 @@ public abstract class ServiceStateTracker extends Handler { log("Cannot send delayed Msg, turn off radio right away."); hangupAndPowerOff(); } - } else { - dcTracker.cleanUpAllConnections(Phone.REASON_RADIO_TURNED_OFF); - if (DBG) log("Data disconnected, turn off radio right away."); - hangupAndPowerOff(); } } } diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java index abb45234dc8e..101dd55e4a79 100644 --- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java +++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java @@ -182,4 +182,9 @@ public interface TelephonyProperties * in commercial configuration. */ static final String PROPERTY_TEST_CSIM = "persist.radio.test-csim"; + + /** + * Set to true to indicate a test ims registration required. + */ + static final String PROPERTY_IMS_REG_REQUIRED = "persist.radio.imsregrequired"; } diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java index 078e51def07b..4dace82a371f 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/cdma/CdmaDataConnectionTracker.java @@ -946,8 +946,8 @@ public final class CdmaDataConnectionTracker extends DataConnectionTracker { } @Override - public boolean isAnyActiveDataConnections() { - return (mState != State.IDLE); + public boolean isDisconnected() { + return ((mState == State.IDLE) || (mState == State.FAILED)); } @Override diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java index dd8a60ac4ffa..ebf5e65a3d9d 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java +++ b/telephony/java/com/android/internal/telephony/gsm/GsmDataConnectionTracker.java @@ -1961,7 +1961,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { return false; } - protected boolean isDisconnected() { + @Override + public boolean isDisconnected() { for (ApnContext apnContext : mApnContexts.values()) { if (!apnContext.isDisconnected()) { // At least one context was not disconnected return false @@ -2348,11 +2349,6 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker { } @Override - public boolean isAnyActiveDataConnections() { - return isConnected(); - } - - @Override protected void log(String s) { Log.d(LOG_TAG, "[GsmDCT] "+ s); } |