mirror of
https://github.com/2009scape/2009Scape-mobile.git
synced 2025-12-20 21:40:15 -07:00
Extend ExtraCore class capabilities
This commit is contained in:
parent
c3dce5aa84
commit
0d08bcbd51
3 changed files with 36 additions and 3 deletions
|
|
@ -343,7 +343,7 @@ public class PojavLauncherActivity extends BaseLauncherActivity
|
||||||
}else{
|
}else{
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
//additional code
|
//additional code
|
||||||
ExtraCore.removeExtraListener("back_preference", backPreferenceListener);
|
ExtraCore.removeExtraListenerFromValue("back_preference", backPreferenceListener);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,16 @@ public final class ExtraCore {
|
||||||
return getInstance().valueMap.get(key);
|
return getInstance().valueMap.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Remove the key and its value from the valueMap */
|
||||||
|
public static void removeValue(String key){
|
||||||
|
getInstance().valueMap.remove(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Remove all values */
|
||||||
|
public static void removeAllValues(){
|
||||||
|
getInstance().valueMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Link an ExtraListener to a value
|
* Link an ExtraListener to a value
|
||||||
* @param key The value key to look for
|
* @param key The value key to look for
|
||||||
|
|
@ -76,7 +86,7 @@ public final class ExtraCore {
|
||||||
* @param key The value key to ignore now
|
* @param key The value key to ignore now
|
||||||
* @param listener The ExtraListener to unlink
|
* @param listener The ExtraListener to unlink
|
||||||
*/
|
*/
|
||||||
public static void removeExtraListener(String key, ExtraListener listener){
|
public static void removeExtraListenerFromValue(String key, ExtraListener listener){
|
||||||
ConcurrentLinkedQueue<WeakReference<ExtraListener>> listenerList = getInstance().listenerMap.get(key);
|
ConcurrentLinkedQueue<WeakReference<ExtraListener>> listenerList = getInstance().listenerMap.get(key);
|
||||||
// Look for new sets
|
// Look for new sets
|
||||||
if(listenerList == null){
|
if(listenerList == null){
|
||||||
|
|
@ -93,4 +103,27 @@ public final class ExtraCore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unlink all ExtraListeners from a value
|
||||||
|
* @param key The key to which ExtraListener are linked
|
||||||
|
*/
|
||||||
|
public static void removeAllExtraListenersFromValue(String key){
|
||||||
|
ConcurrentLinkedQueue<WeakReference<ExtraListener>> listenerList = getInstance().listenerMap.get(key);
|
||||||
|
// Look for new sets
|
||||||
|
if(listenerList == null){
|
||||||
|
listenerList = new ConcurrentLinkedQueue<>();
|
||||||
|
getInstance().listenerMap.put(key, listenerList);
|
||||||
|
}
|
||||||
|
|
||||||
|
listenerList.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all ExtraListeners from listening to any value
|
||||||
|
*/
|
||||||
|
public static void removeAllExtraListeners(){
|
||||||
|
getInstance().listenerMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ public abstract class ExtraListener {
|
||||||
*/
|
*/
|
||||||
public final void notifyDataChanged(String key, String value){
|
public final void notifyDataChanged(String key, String value){
|
||||||
if(onValueSet(key, value)){
|
if(onValueSet(key, value)){
|
||||||
ExtraCore.removeExtraListener(key, this);
|
ExtraCore.removeExtraListenerFromValue(key, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue