Fix the animation issue in DashboardSummary
1. When condition is inserted, only scroll to top when previous position is at the top. 2. Clean condition status after it is removed. So the next time you insert a condition view, it will always be collapsed. Bug: 33839780 Bug: 34115341 Test: make -j40 RunSettingsRoboTests Change-Id: I7f48524917c3119ec24b2f67ba506f381573a391
This commit is contained in:
@@ -20,6 +20,7 @@ import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.util.DiffUtil;
|
||||
import android.support.v7.widget.PopupMenu;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@@ -58,9 +59,10 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
private final IconCache mCache;
|
||||
private final Context mContext;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private DashboardData mDashboardData;
|
||||
private SuggestionParser mSuggestionParser;
|
||||
|
||||
@VisibleForTesting DashboardData mDashboardData;
|
||||
|
||||
private View.OnClickListener mTileClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -157,6 +159,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
||||
Log.d(TAG, "adapter setConditions called");
|
||||
mDashboardData = new DashboardData.Builder(prevData)
|
||||
.setConditions(conditions)
|
||||
.setExpandedCondition(null)
|
||||
.build();
|
||||
notifyDashboardDataChanged(prevData);
|
||||
}
|
||||
|
@@ -27,7 +27,6 @@ import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
@@ -249,8 +248,11 @@ public class DashboardSummary extends InstrumentedPreferenceFragment
|
||||
@Override
|
||||
public void onConditionsChanged() {
|
||||
Log.d(TAG, "onConditionsChanged");
|
||||
final boolean scrollToTop = mLayoutManager.findFirstCompletelyVisibleItemPosition() <= 1;
|
||||
mAdapter.setConditions(mConditionManager.getConditions());
|
||||
mDashboard.scrollToPosition(0);
|
||||
if (scrollToTop) {
|
||||
mDashboard.scrollToPosition(0);
|
||||
}
|
||||
}
|
||||
|
||||
private class SuggestionLoader extends AsyncTask<Void, Void, List<Tile>> {
|
||||
|
Reference in New Issue
Block a user