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

Commit 795f2840 authored by Joe Onorato's avatar Joe Onorato
Browse files

If an icon add remove get coalesced, don't remove some other icon.

Also adds a test case and turns off the extra logging we added to debug this.

Change-Id: I8640938ae4d1e75c88213177888f363e05ce0fa0
parent 4e9751f0
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -165,8 +165,10 @@ class CommandQueue extends IStatusBar.Stub {
                            break;
                        }
                        case OP_REMOVE_ICON:
                            if (mList.getIcon(index) != null) {
                                mList.removeIcon(index);
                                mCallbacks.removeIcon(mList.getSlot(index), index, viewIndex);
                            }
                            break;
                    }
                    break;
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ import com.android.systemui.statusbar.policy.StatusBarPolicy;

public class StatusBarService extends Service implements CommandQueue.Callbacks {
    static final String TAG = "StatusBarService";
    static final boolean SPEW_ICONS = true;
    static final boolean SPEW_ICONS = false;
    static final boolean SPEW = false;

    public static final String ACTION_STATUSBAR_START
+21 −0
Original line number Diff line number Diff line
@@ -60,6 +60,27 @@ public class StatusBarTest extends TestActivity
    }

    private Test[] mTests = new Test[] {
        new Test("Double Remove") {
            public void run() {
                Log.d(TAG, "set 0");
                mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0);
                Log.d(TAG, "remove 1");
                mStatusBarManager.removeIcon("tty");

                SystemClock.sleep(1000);

                Log.d(TAG, "set 1");
                mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0);
                if (false) {
                    Log.d(TAG, "set 2");
                    mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0);
                }
                Log.d(TAG, "remove 2");
                mStatusBarManager.removeIcon("tty");
                Log.d(TAG, "set 3");
                mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0);
            }
        },
        new Test("Hide") {
            public void run() {
                Window win = getWindow();