mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 962968 - Replace HashMap with SparseArray in PanelManager (r=rnewman)
This commit is contained in:
parent
9dad0e0b75
commit
289752a05d
@ -19,11 +19,10 @@ import android.content.SharedPreferences;
|
|||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
public class PanelManager implements GeckoEventListener {
|
public class PanelManager implements GeckoEventListener {
|
||||||
@ -50,7 +49,7 @@ public class PanelManager implements GeckoEventListener {
|
|||||||
private static AtomicInteger sRequestId = new AtomicInteger(0);
|
private static AtomicInteger sRequestId = new AtomicInteger(0);
|
||||||
|
|
||||||
// Stores set of pending request callbacks.
|
// Stores set of pending request callbacks.
|
||||||
private static final Map<Integer, RequestCallback> sCallbacks = new HashMap<Integer, RequestCallback>();
|
private static final SparseArray<RequestCallback> sCallbacks = new SparseArray<RequestCallback>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asynchronously fetches list of available panels from Gecko.
|
* Asynchronously fetches list of available panels from Gecko.
|
||||||
@ -62,7 +61,7 @@ public class PanelManager implements GeckoEventListener {
|
|||||||
|
|
||||||
synchronized(sCallbacks) {
|
synchronized(sCallbacks) {
|
||||||
// If there are no pending callbacks, register the event listener.
|
// If there are no pending callbacks, register the event listener.
|
||||||
if (sCallbacks.isEmpty()) {
|
if (sCallbacks.size() == 0) {
|
||||||
GeckoAppShell.getEventDispatcher().registerEventListener("HomePanels:Data", this);
|
GeckoAppShell.getEventDispatcher().registerEventListener("HomePanels:Data", this);
|
||||||
}
|
}
|
||||||
sCallbacks.put(requestId, callback);
|
sCallbacks.put(requestId, callback);
|
||||||
@ -90,10 +89,11 @@ public class PanelManager implements GeckoEventListener {
|
|||||||
final int requestId = message.getInt("requestId");
|
final int requestId = message.getInt("requestId");
|
||||||
|
|
||||||
synchronized(sCallbacks) {
|
synchronized(sCallbacks) {
|
||||||
callback = sCallbacks.remove(requestId);
|
callback = sCallbacks.get(requestId);
|
||||||
|
sCallbacks.delete(requestId);
|
||||||
|
|
||||||
// Unregister the event listener if there are no more pending callbacks.
|
// Unregister the event listener if there are no more pending callbacks.
|
||||||
if (sCallbacks.isEmpty()) {
|
if (sCallbacks.size() == 0) {
|
||||||
GeckoAppShell.getEventDispatcher().unregisterEventListener("HomePanels:Data", this);
|
GeckoAppShell.getEventDispatcher().unregisterEventListener("HomePanels:Data", this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user