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{
|
||||
super.onBackPressed();
|
||||
//additional code
|
||||
ExtraCore.removeExtraListener("back_preference", backPreferenceListener);
|
||||
ExtraCore.removeExtraListenerFromValue("back_preference", backPreferenceListener);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,16 @@ public final class ExtraCore {
|
|||
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
|
||||
* @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 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);
|
||||
// Look for new sets
|
||||
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){
|
||||
if(onValueSet(key, value)){
|
||||
ExtraCore.removeExtraListener(key, this);
|
||||
ExtraCore.removeExtraListenerFromValue(key, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue