Merge "Fix bugs introduced in ChooserActivity" into mnc-dr-dev
This commit is contained in:
@@ -1017,7 +1017,15 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
final RowScale rs = new RowScale(ChooserRowAdapter.this, 0.f, 1.f)
|
final RowScale rs = new RowScale(ChooserRowAdapter.this, 0.f, 1.f)
|
||||||
.setInterpolator(mInterpolator);
|
.setInterpolator(mInterpolator);
|
||||||
mServiceTargetScale[i] = rs;
|
mServiceTargetScale[i] = rs;
|
||||||
rs.startAnimation();
|
}
|
||||||
|
|
||||||
|
// Start the animations in a separate loop.
|
||||||
|
// The process of starting animations will result in
|
||||||
|
// binding views to set up initial values, and we must
|
||||||
|
// have ALL of the new RowScale objects created above before
|
||||||
|
// we get started.
|
||||||
|
for (int i = oldRCount; i < rcount; i++) {
|
||||||
|
mServiceTargetScale[i].startAnimation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1097,17 +1105,19 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
|
|
||||||
for (int i = 0; i < mColumnCount; i++) {
|
for (int i = 0; i < mColumnCount; i++) {
|
||||||
final View v = mChooserListAdapter.createView(row);
|
final View v = mChooserListAdapter.createView(row);
|
||||||
|
final int column = i;
|
||||||
v.setOnClickListener(new OnClickListener() {
|
v.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
startSelected(holder.itemIndex, false, true);
|
startSelected(holder.itemIndices[column], false, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
v.setOnLongClickListener(new OnLongClickListener() {
|
v.setOnLongClickListener(new OnLongClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onLongClick(View v) {
|
public boolean onLongClick(View v) {
|
||||||
showAppDetails(
|
showAppDetails(
|
||||||
mChooserListAdapter.resolveInfoForPosition(holder.itemIndex, true));
|
mChooserListAdapter.resolveInfoForPosition(
|
||||||
|
holder.itemIndices[column], true));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1165,8 +1175,8 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
final View v = holder.cells[i];
|
final View v = holder.cells[i];
|
||||||
if (start + i <= end) {
|
if (start + i <= end) {
|
||||||
v.setVisibility(View.VISIBLE);
|
v.setVisibility(View.VISIBLE);
|
||||||
holder.itemIndex = start + i;
|
holder.itemIndices[i] = start + i;
|
||||||
mChooserListAdapter.bindView(holder.itemIndex, v);
|
mChooserListAdapter.bindView(holder.itemIndices[i], v);
|
||||||
} else {
|
} else {
|
||||||
v.setVisibility(View.GONE);
|
v.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
@@ -1197,11 +1207,12 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
final View[] cells;
|
final View[] cells;
|
||||||
final ViewGroup row;
|
final ViewGroup row;
|
||||||
int measuredRowHeight;
|
int measuredRowHeight;
|
||||||
int itemIndex;
|
int[] itemIndices;
|
||||||
|
|
||||||
public RowViewHolder(ViewGroup row, int cellCount) {
|
public RowViewHolder(ViewGroup row, int cellCount) {
|
||||||
this.row = row;
|
this.row = row;
|
||||||
this.cells = new View[cellCount];
|
this.cells = new View[cellCount];
|
||||||
|
this.itemIndices = new int[cellCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
public void measure() {
|
public void measure() {
|
||||||
@@ -1389,7 +1400,7 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
final View v = mChooserRowAdapter.getView(pos, mCachedView, mListView);
|
final View v = mChooserRowAdapter.getView(pos, mCachedView, mListView);
|
||||||
int height = ((RowViewHolder) (v.getTag())).measuredRowHeight;
|
int height = ((RowViewHolder) (v.getTag())).measuredRowHeight;
|
||||||
|
|
||||||
offset += (int) (height * mChooserRowAdapter.getRowScale(pos) * chooserTargetRows);
|
offset += (int) (height * mChooserRowAdapter.getRowScale(pos));
|
||||||
|
|
||||||
if (vt >= 0) {
|
if (vt >= 0) {
|
||||||
mCachedViewType = vt;
|
mCachedViewType = vt;
|
||||||
|
|||||||
Reference in New Issue
Block a user