summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/AbsListView.java12
-rw-r--r--core/java/android/widget/EdgeEffect.java3
-rw-r--r--core/java/android/widget/ShareActionProvider.java2
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java2
-rw-r--r--core/jni/android_media_AudioSystem.cpp8
-rw-r--r--services/core/java/com/android/server/ConnectivityService.java29
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