Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1119176 authored by Amin Shaikh's avatar Amin Shaikh Committed by android-build-merger
Browse files

Merge "Ensure QS contains at least 6 tiles." into pi-dev

am: fc450011

Change-Id: I22e08582396ec93448166569efde52a79eda2611
parents 375d1105 fc450011
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1850,6 +1850,9 @@
    <!-- Label for area where tiles can be dragged in to [CHAR LIMIT=60] -->
    <string name="drag_to_remove_tiles">Drag here to remove</string>

    <!-- Label to indicate to users that additional tiles cannot be removed. [CHAR LIMIT=60] -->
    <string name="drag_to_remove_disabled">You need at least 6 tiles</string>

    <!-- Button to edit the tile ordering of quick settings [CHAR LIMIT=60] -->
    <string name="qs_edit">Edit</string>

+21 −8
Original line number Diff line number Diff line
@@ -42,19 +42,19 @@ import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.systemui.R;
import com.android.systemui.qs.tileimpl.QSIconViewImpl;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.customize.TileAdapter.Holder;
import com.android.systemui.qs.customize.TileQueryHelper.TileInfo;
import com.android.systemui.qs.customize.TileQueryHelper.TileStateListener;
import com.android.systemui.qs.external.CustomTile;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.tileimpl.QSIconViewImpl;
import com.android.systemui.statusbar.phone.SystemUIDialog;

import java.util.ArrayList;
import java.util.List;

public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileStateListener {

    private static final int MIN_NUM_TILES = 6;
    private static final long DRAG_LENGTH = 100;
    private static final float DRAG_SCALE = 1.2f;
    public static final long MOVE_DURATION = 150;
@@ -219,9 +219,15 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
            return;
        }
        if (holder.getItemViewType() == TYPE_EDIT) {
            ((TextView) holder.itemView.findViewById(android.R.id.title)).setText(
                    mCurrentDrag != null ? R.string.drag_to_remove_tiles
                    : R.string.drag_to_add_tiles);
            final int titleResId;
            if (mCurrentDrag == null) {
                titleResId = R.string.drag_to_add_tiles;
            } else if (!canRemoveTiles() && mCurrentDrag.getAdapterPosition() < mEditIndex) {
                titleResId = R.string.drag_to_remove_disabled;
            } else {
                titleResId = R.string.drag_to_remove_tiles;
            }
            ((TextView) holder.itemView.findViewById(android.R.id.title)).setText(titleResId);
            return;
        }
        if (holder.getItemViewType() == TYPE_ACCESSIBLE_DROP) {
@@ -286,7 +292,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
                        if (mAccessibilityMoving) {
                            selectPosition(position, v);
                        } else {
                            if (position < mEditIndex) {
                            if (position < mEditIndex && canRemoveTiles()) {
                                showAccessibilityDialog(position, v);
                            } else {
                                startAccessibleDrag(position);
@@ -298,6 +304,10 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
        }
    }
    
    private boolean canRemoveTiles() {
        return mCurrentSpecs.size() > MIN_NUM_TILES;
    }

    private void selectPosition(int position, View v) {
        // Remove the placeholder.
        mAccessibilityMoving = false;
@@ -507,7 +517,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
                break;
            }
        }
    };
    }

    private final ItemTouchHelper.Callback mCallbacks = new ItemTouchHelper.Callback() {

@@ -551,6 +561,9 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
        @Override
        public boolean canDropOver(RecyclerView recyclerView, ViewHolder current,
                ViewHolder target) {
            if (!canRemoveTiles() && current.getAdapterPosition() < mEditIndex) {
                return target.getAdapterPosition() < mEditIndex;
            }
            return target.getAdapterPosition() <= mEditIndex + 1;
        }