Skip to content

Commit 09f9afe

Browse files
author
Eugene Alekseev
committed
Variables Removal
added support to remove variables
1 parent 475c7db commit 09f9afe

File tree

17 files changed

+361
-4
lines changed

17 files changed

+361
-4
lines changed

Native/Android/LunarConsole/lunarConsole/src/androidTest/java/spacemadness/com/lunarconsole/console/actions/ActionRegistryTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ public void didDidChangeVariable(ActionRegistry registry, Variable variable, int
148148
fail("Implement me");
149149
}
150150

151+
@Override
152+
public void didRemoveVariable(ActionRegistry registry, Variable variable, int index) {
153+
addResult(String.format("removed variable: %s (%d)", variable.getName(), index));
154+
}
155+
151156
////////////////////////////////////////////////////////////////////////////////////////////////
152157
// Helpers
153158

Native/Android/LunarConsole/lunarConsole/src/full/java/spacemadness/com/lunarconsole/console/ActionRegistryFilter.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,21 @@ public void didDidChangeVariable(ActionRegistry registry, Variable variable, int
197197
_delegate.actionRegistryFilterDidChangeVariable(this, variable, index);
198198
}
199199

200+
@Override
201+
public void didRemoveVariable(ActionRegistry registry, Variable variable, int index) {
202+
if (isFiltering()) {
203+
index = filteredArrayIndexOfEntry(_filteredVariables, variable);
204+
if (index == -1) {
205+
return;
206+
}
207+
208+
variable = _filteredVariables.get(index);
209+
_filteredVariables.remove(index);
210+
}
211+
212+
_delegate.actionRegistryFilterDidRemoveVariable(this, variable, index);
213+
}
214+
200215
////////////////////////////////////////////////////////////////////////////////////////////////
201216
// Properties
202217

@@ -243,5 +258,7 @@ public interface Delegate {
243258
void actionRegistryFilterDidRegisterVariable(ActionRegistryFilter registryFilter, Variable variable, int index);
244259

245260
void actionRegistryFilterDidChangeVariable(ActionRegistryFilter registryFilter, Variable variable, int index);
261+
262+
void actionRegistryFilterDidRemoveVariable(ActionRegistryFilter registryFilter, Variable variable, int index);
246263
}
247264
}

Native/Android/LunarConsole/lunarConsole/src/full/java/spacemadness/com/lunarconsole/console/ConsoleActionView.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,11 @@ public void actionRegistryFilterDidRegisterVariable(ActionRegistryFilter registr
235235
public void actionRegistryFilterDidChangeVariable(ActionRegistryFilter registryFilter, Variable variable, int index) {
236236
notifyDataChanged();
237237
}
238+
@Override
239+
public void actionRegistryFilterDidRemoveVariable(ActionRegistryFilter registryFilter, Variable variable, int index) {
240+
notifyDataChanged();
241+
updateNoActionWarningView();
242+
}
238243

239244
////////////////////////////////////////////////////////////////////////////////////////////////
240245
// Data Source

Native/Android/LunarConsole/lunarConsole/src/main/java/spacemadness/com/lunarconsole/console/ActionRegistry.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,19 @@ public void updateVariable(int variableId, String value) {
102102
}
103103
}
104104

105+
public boolean removeVariable(int variableId) {
106+
int index = indexOfVariable(variableId);
107+
if (index != -1) {
108+
Variable var = variables.objectAtIndex(index);
109+
variables.removeObjectAtIndex(index);
110+
notifyVariableRemove(var, index);
111+
return true;
112+
} else {
113+
Log.e("Can't server cvar value: variable id %d not found", variableId);
114+
}
115+
return false;
116+
}
117+
105118
public Variable findVariable(int variableId) {
106119
int index = indexOfVariable(variableId);
107120
return index != -1 ? variables.objectAtIndex(index) : null;
@@ -148,6 +161,12 @@ private void notifyVariableChange(Variable cvar, int index) {
148161
}
149162
}
150163

164+
private void notifyVariableRemove(Variable cvar, int index){
165+
if(delegate != null){
166+
delegate.didRemoveVariable(this, cvar, index);
167+
}
168+
}
169+
151170
//region Getters/Setters
152171

153172
public List<Action> getActions()
@@ -185,6 +204,8 @@ public interface Delegate // FIXME: rename
185204
void didRegisterVariable(ActionRegistry registry, Variable variable, int index);
186205

187206
void didDidChangeVariable(ActionRegistry registry, Variable variable, int index);
207+
208+
void didRemoveVariable(ActionRegistry registry, Variable variable, int index);
188209
}
189210

190211
//endregion

Native/Android/LunarConsole/lunarConsole/src/main/java/spacemadness/com/lunarconsole/console/ConsolePlugin.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ public void updateVariable(int variableId, String value) {
254254
actionRegistry.updateVariable(variableId, value);
255255
}
256256

257+
public void removeVariable(int variableId){
258+
actionRegistry.removeVariable(variableId);
259+
}
260+
257261
@Override
258262
public void destroy() {
259263
removeConsoleView();

Native/Android/LunarConsole/lunarConsole/src/main/java/spacemadness/com/lunarconsole/console/NativeBridge.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,15 @@ protected void execute() {
169169
});
170170
}
171171

172+
public static void removeVariable(final int variableId){
173+
dispatchQueue.dispatch(new DispatchTask() {
174+
@Override
175+
protected void execute() {
176+
plugin.removeVariable(variableId);
177+
}
178+
});
179+
}
180+
172181
public static void destroy() {
173182
dispatchQueue.dispatch(new DispatchTask("destroy plugin") {
174183
@Override

Native/iOS/LunarConsole/LunarConsole/Common/Console/Plugin/LUConsolePlugin.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ extern NSString * const LUConsoleCheckFullVersionNotificationSource;
8787
- (LUCVar *)registerVariableWithId:(int)entryId name:(NSString *)name type:(NSString *)type value:(NSString *)value defaultValue:(NSString *)defaultValue values:(NSArray<NSString *> *)values;
8888
- (void)setValue:(NSString *)value forVariableWithId:(int)variableId;
8989

90+
- (void)removeVariableWithId:(int)variableId;
91+
9092
- (void)enableGestureRecognition;
9193
- (void)disableGestureRecognition;
9294

Native/iOS/LunarConsole/LunarConsole/Common/Console/Plugin/LUConsolePlugin.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,11 @@ - (void)setValue:(NSString *)value forVariableWithId:(int)variableId
257257
[_actionRegistry setValue:value forVariableWithId:variableId];
258258
}
259259

260+
- (void)removeVariableWithId:(int)actionId
261+
{
262+
[_actionRegistry removeVariableWithId:actionId];
263+
}
264+
260265
#pragma mark -
261266
#pragma mark Warnings
262267

Native/iOS/LunarConsole/LunarConsole/Common/Console/Plugin/lunar_unity_native_interface.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,6 @@ OBJC_EXTERN void __lunar_console_action_unregister(int actionId);
4444
// variables
4545
OBJC_EXTERN void __lunar_console_cvar_register(int entryId, const char *name, const char *type, const char *value, const char *defaultValue, int flags, BOOL hasRange, float min, float max, const char *values);
4646
OBJC_EXTERN void __lunar_console_cvar_update(int entryId, const char *value);
47+
OBJC_EXTERN void __lunar_console_cvar_remove(int variableId);
4748

4849
#endif /* defined(__LunarConsole__unity_native_interface__) */

Native/iOS/LunarConsole/LunarConsole/Common/Console/Plugin/lunar_unity_native_interface.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,14 @@ void __lunar_console_cvar_update(int entryId, const char *valueStr)
142142
[_lunarConsolePlugin setValue:value forVariableWithId:entryId];
143143
});
144144
}
145+
146+
void __lunar_console_cvar_remove(int variableId)
147+
{
148+
if ([NSThread isMainThread]) {
149+
[_lunarConsolePlugin removeVariableWithId:variableId];
150+
} else {
151+
dispatch_async(dispatch_get_main_queue(), ^{
152+
[_lunarConsolePlugin removeVariableWithId:variableId];
153+
});
154+
}
155+
}

0 commit comments

Comments
 (0)