diff options
| -rw-r--r-- | core/java/android/widget/AbsListView.java | 12 | ||||
| -rw-r--r-- | core/java/android/widget/EdgeEffect.java | 3 | ||||
| -rw-r--r-- | core/java/android/widget/ShareActionProvider.java | 2 | ||||
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 2 | ||||
| -rw-r--r-- | core/jni/android_media_AudioSystem.cpp | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 29 |
6 files changed, 40 insertions, 16 deletions
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 9a46052242cd..372228c5337f 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -4028,12 +4028,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te final int scrollY = mScrollY; if (!mEdgeGlowTop.isFinished()) { final int restoreCount = canvas.save(); - final int leftPadding = mListPadding.left + mGlowPaddingLeft; - final int rightPadding = mListPadding.right + mGlowPaddingRight; - final int width = getWidth() - leftPadding - rightPadding; + final int width = getWidth(); int edgeY = Math.min(0, scrollY + mFirstPositionDistanceGuess); - canvas.translate(leftPadding, edgeY); + canvas.translate(0, edgeY); mEdgeGlowTop.setSize(width, getHeight()); if (mEdgeGlowTop.draw(canvas)) { invalidate(0, 0, getWidth(), @@ -4043,12 +4041,10 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } if (!mEdgeGlowBottom.isFinished()) { final int restoreCount = canvas.save(); - final int leftPadding = mListPadding.left + mGlowPaddingLeft; - final int rightPadding = mListPadding.right + mGlowPaddingRight; - final int width = getWidth() - leftPadding - rightPadding; + final int width = getWidth(); final int height = getHeight(); - int edgeX = -width + leftPadding; + int edgeX = -width; int edgeY = Math.max(height, scrollY + mLastPositionDistanceGuess); canvas.translate(edgeX, edgeY); canvas.rotate(180, width, 0); diff --git a/core/java/android/widget/EdgeEffect.java b/core/java/android/widget/EdgeEffect.java index b2315ffb20af..25029541677c 100644 --- a/core/java/android/widget/EdgeEffect.java +++ b/core/java/android/widget/EdgeEffect.java @@ -312,8 +312,7 @@ public class EdgeEffect { final float displacement = Math.max(0, Math.min(mDisplacement, 1.f)) - 0.5f; float translateX = mBounds.width() * displacement / 2; - canvas.clipRect(Float.MIN_VALUE, mBounds.top, - Float.MAX_VALUE, Float.MAX_VALUE); + canvas.clipRect(mBounds); canvas.translate(translateX, 0); canvas.drawArc(mArcRect, 45, 90, true, mPaint); canvas.restoreToCount(count); diff --git a/core/java/android/widget/ShareActionProvider.java b/core/java/android/widget/ShareActionProvider.java index 99a7886ed5f1..ac79d0575a46 100644 --- a/core/java/android/widget/ShareActionProvider.java +++ b/core/java/android/widget/ShareActionProvider.java @@ -280,6 +280,7 @@ public class ShareActionProvider extends ActionProvider { final String action = shareIntent.getAction(); if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) { shareIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS); } } @@ -303,6 +304,7 @@ public class ShareActionProvider extends ActionProvider { if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) { launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS); } mContext.startActivity(launchIntent); diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 106ac0b2ef0a..877938ed9ddd 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -38,6 +38,7 @@ public class ChooserActivity extends ResolverActivity { if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) { target.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS); } } @@ -61,6 +62,7 @@ public class ChooserActivity extends ResolverActivity { if (Intent.ACTION_SEND.equals(action) || Intent.ACTION_SEND_MULTIPLE.equals(action)) { in.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_AUTO_REMOVE_FROM_RECENTS); } initialIntents[i] = in; diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp index 0f7e140bdbe7..bf47dd3f7e5f 100644 --- a/core/jni/android_media_AudioSystem.cpp +++ b/core/jni/android_media_AudioSystem.cpp @@ -613,8 +613,12 @@ static jint convertAudioPortConfigFromNative(JNIEnv *env, goto exit; } } - //TODO: replace popcount by audio utils function mask to count - int numValues = popcount(nAudioPortConfig->gain.channel_mask); + int numValues; + if (useInMask) { + numValues = audio_channel_count_from_in_mask(nAudioPortConfig->gain.channel_mask); + } else { + numValues = audio_channel_count_from_out_mask(nAudioPortConfig->gain.channel_mask); + } jGainValues = env->NewIntArray(numValues); if (jGainValues == NULL) { ALOGV("convertAudioPortConfigFromNative could not create gain values %d", numValues); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index abb8cc5e255e..bd4576115b75 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -3103,7 +3103,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { break; } Integer score = (Integer) msg.obj; - updateNetworkScore(nai, score); + if (score != null) updateNetworkScore(nai, score.intValue()); break; } case NetworkMonitor.EVENT_NETWORK_VALIDATED: { @@ -5915,9 +5915,30 @@ public class ConnectivityService extends IConnectivityManager.Stub { } } - private void updateNetworkScore(NetworkAgentInfo nai, Integer scoreInteger) { - int score = scoreInteger.intValue(); - // TODO + private void updateNetworkScore(NetworkAgentInfo nai, int score) { + if (DBG) log("updateNetworkScore for " + nai.name() + " to " + score); + + nai.currentScore = score; + + // TODO - This will not do the right thing if this network is lowering + // its score and has requests that can be served by other + // currently-active networks, or if the network is increasing its + // score and other networks have requests that can be better served + // by this network. + // + // Really we want to see if any of our requests migrate to other + // active/lingered networks and if any other requests migrate to us (depending + // on increasing/decreasing currentScore. That's a bit of work and probably our + // score checking/network allocation code needs to be modularized so we can understand + // (see handleConnectionValided for an example). + // + // As a first order approx, lets just advertise the new score to factories. If + // somebody can beat it they will nominate a network and our normal net replacement + // code will fire. + for (int i = 0; i < nai.networkRequests.size(); i++) { + NetworkRequest nr = nai.networkRequests.valueAt(i); + sendUpdatedScoreToFactories(nr, score); + } } // notify only this one new request of the current state |