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

Commit 7770e01e authored by Jorge Ruesga's avatar Jorge Ruesga
Browse files

settings: open add tile dialog



Shows the "add tile" dialog QuickSettingsTiles activity when the user press
the add tile button in the system bar

Change-Id: Id416b85aa11cee6fd586ee322650d421ca83cdf0
Signed-off-by: default avatarJorge Ruesga <jorge@ruesga.com>
parent 590e019b
Loading
Loading
Loading
Loading
+35 −19
Original line number Diff line number Diff line
@@ -16,10 +16,12 @@

package com.android.settings.quicksettings;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.Resources.NotFoundException;
@@ -51,6 +53,9 @@ import java.util.Comparator;

public class QuickSettingsTiles extends Fragment {

    private static final String EXTRA_SHOW_ADD_TILE_DLG =
            "com.android.settings.quicksettings.EXTRA_SHOW_ADD_TILE_DLG";

    private static final int MENU_RESET = Menu.FIRST;

    private DraggableGridView mDragView;
@@ -103,6 +108,13 @@ public class QuickSettingsTiles extends Fragment {
            mDragView.setColumnCount(columnCount);
        }
        mTileAdapter = new TileAdapter(getActivity(), mConfigRibbon);

        // Should we open the add tile dialog?
        Intent intent = getActivity().getIntent();
        if (intent != null && intent.getBooleanExtra(EXTRA_SHOW_ADD_TILE_DLG, false)) {
            showAddTileDialog();
        }

        return mDragView;
    }

@@ -206,25 +218,7 @@ public class QuickSettingsTiles extends Fragment {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                if (arg2 != mDragView.getChildCount() - 1) return;
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle(R.string.tile_choose_title)
                .setAdapter(mTileAdapter, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, final int position) {
                        new Thread(new Runnable() {
                            @Override
                            public void run() {
                                ArrayList<String> curr = QuickSettingsUtil.getTileListFromString(
                                        QuickSettingsUtil.getCurrentTiles(getActivity(), mConfigRibbon));
                                curr.add(mTileAdapter.getTileId(position));
                                QuickSettingsUtil.saveCurrentTiles(getActivity(),
                                        QuickSettingsUtil.getTileStringFromList(curr), mConfigRibbon);
                            }
                        }).start();
                        TileInfo info = QuickSettingsUtil.TILES.get(mTileAdapter.getTileId(position));
                        addTile(info.getTitleResId(), info.getIcon(), 0, true);
                    }
                });
                builder.create().show();
                showAddTileDialog();
            }
        });

@@ -274,6 +268,28 @@ public class QuickSettingsTiles extends Fragment {
        alert.create().show();
    }

    private void showAddTileDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle(R.string.tile_choose_title)
            .setAdapter(mTileAdapter, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, final int position) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            ArrayList<String> curr = QuickSettingsUtil.getTileListFromString(
                                    QuickSettingsUtil.getCurrentTiles(getActivity(), mConfigRibbon));
                            curr.add(mTileAdapter.getTileId(position));
                            QuickSettingsUtil.saveCurrentTiles(getActivity(),
                                    QuickSettingsUtil.getTileStringFromList(curr), mConfigRibbon);
                        }
                    }).start();
                    TileInfo info = QuickSettingsUtil.TILES.get(mTileAdapter.getTileId(position));
                    addTile(info.getTitleResId(), info.getIcon(), 0, true);
                }
        });
        builder.create().show();
    }

    private static class TileAdapter extends ArrayAdapter<String> {
        private static class Entry {
            public final TileInfo tile;