WIP
This commit is contained in:
parent
23b16a0fb7
commit
c4ecead655
|
@ -9,17 +9,22 @@ import dagger.hilt.EntryPoint;
|
|||
import dagger.hilt.InstallIn;
|
||||
import dagger.hilt.android.AndroidEntryPoint;
|
||||
import dagger.hilt.android.components.FragmentComponent;
|
||||
import one.nem.kidshift.utils.FeatureFlag;
|
||||
import one.nem.kidshift.utils.KSLogger;
|
||||
import one.nem.kidshift.utils.models.LogModel;
|
||||
import one.nem.kidshift.utils.models.feature.FeatureFlagItemModel;
|
||||
|
||||
public class DebugCommandProcessor {
|
||||
|
||||
KSLogger ksLogger;
|
||||
FeatureFlag featureFlag;
|
||||
|
||||
public DebugCommandProcessor(
|
||||
KSLogger ksLogger
|
||||
KSLogger ksLogger,
|
||||
FeatureFlag featureFlag
|
||||
) {
|
||||
this.ksLogger = ksLogger;
|
||||
this.featureFlag = featureFlag;
|
||||
}
|
||||
|
||||
public String execute(String command) {
|
||||
|
@ -44,6 +49,8 @@ public class DebugCommandProcessor {
|
|||
return executeEcho(commandArray);
|
||||
case "log":
|
||||
return executeLog(commandArray);
|
||||
case "flag":
|
||||
return executeFlag(commandArray);
|
||||
default:
|
||||
throw new InvalidCommandException();
|
||||
}
|
||||
|
@ -93,6 +100,64 @@ public class DebugCommandProcessor {
|
|||
}
|
||||
}
|
||||
|
||||
private String executeFlag(String[] commandArray) {
|
||||
switch (commandArray[1]) {
|
||||
case "get":
|
||||
if (commandArray.length == 3) {
|
||||
FeatureFlagItemModel featureFlagItemModel = featureFlag.getFeatureFlagMap().get(commandArray[2]);
|
||||
return makeFeatureFlagResponse(featureFlagItemModel);
|
||||
} else {
|
||||
if (commandArray[2].equals("all")) {
|
||||
StringBuilder featureFlagString = new StringBuilder();
|
||||
for (FeatureFlagItemModel featureFlagItemModel : featureFlag.getFeatureFlagMap().values()) {
|
||||
featureFlagString.append(makeFeatureFlagResponse(featureFlagItemModel));
|
||||
featureFlagString.append("\n");
|
||||
}
|
||||
return featureFlagString.toString();
|
||||
} else {
|
||||
return "TODO";
|
||||
}
|
||||
}
|
||||
case "set":
|
||||
if (commandArray.length == 5) {
|
||||
try {
|
||||
boolean value = Boolean.parseBoolean(commandArray[4]);
|
||||
featureFlag.getFeatureFlagMap().get(commandArray[2]).setValue(value);
|
||||
} catch (IllegalArgumentException e) {
|
||||
return e.getMessage();
|
||||
} catch (NullPointerException e) {
|
||||
return "Feature Flag not found";
|
||||
} catch (Exception e) {
|
||||
return "Something went wrong! \n" + e.getMessage();
|
||||
}
|
||||
return "Success";
|
||||
} else {
|
||||
return "TODO";
|
||||
}
|
||||
case "reset":
|
||||
if (commandArray.length == 3) {
|
||||
featureFlag.getFeatureFlagMap().get(commandArray[2]).setValue(featureFlag.getFeatureFlagMap().get(commandArray[2]).getDefaultValue());
|
||||
return "Success";
|
||||
} else {
|
||||
return "TODO";
|
||||
}
|
||||
default:
|
||||
// debug
|
||||
if (this.featureFlag == null) {
|
||||
return "Feature Flag is null";
|
||||
} else {
|
||||
return "Feature Flag is not null";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String makeFeatureFlagResponse(FeatureFlagItemModel featureFlagItemModel) {
|
||||
return "Key: " + featureFlagItemModel.getKey() + "\n" +
|
||||
"\tValue: " + featureFlagItemModel.getValue() + "\n" +
|
||||
"\tDefault Value: " + featureFlagItemModel.getDefaultValue() + "\n" +
|
||||
"\tIs Override Allowed: " + featureFlagItemModel.getIsOverrideAllowed();
|
||||
}
|
||||
|
||||
private String executeEcho(String[] commandArray) {
|
||||
String[] echoArray = Arrays.copyOfRange(commandArray, 1, commandArray.length);
|
||||
return String.join(" ", echoArray);
|
||||
|
|
|
@ -19,6 +19,7 @@ import dagger.hilt.android.AndroidEntryPoint;
|
|||
import one.nem.kidshift.feature.debug.adapter.DebugCommandListItemAdapter;
|
||||
import one.nem.kidshift.feature.debug.adapter.DebugMenuListItemAdapter;
|
||||
import one.nem.kidshift.feature.debug.model.DebugCommandItemModel;
|
||||
import one.nem.kidshift.utils.FeatureFlag;
|
||||
import one.nem.kidshift.utils.KSLogger;
|
||||
|
||||
/**
|
||||
|
@ -32,6 +33,9 @@ public class DebugDebugConsoleFragment extends Fragment {
|
|||
@Inject
|
||||
KSLogger ksLogger;
|
||||
|
||||
@Inject
|
||||
FeatureFlag featureFlag;
|
||||
|
||||
private final List<DebugCommandItemModel> debugCommandItemModels = new ArrayList<>();
|
||||
DebugCommandListItemAdapter debugCommandItemAdapter;
|
||||
|
||||
|
@ -98,7 +102,7 @@ public class DebugDebugConsoleFragment extends Fragment {
|
|||
TextView debugCommandInput = view.findViewById(R.id.debugCommandEditText);
|
||||
view.findViewById(R.id.debugCommandExecuteButton).setOnClickListener(v -> {
|
||||
DebugCommandProcessor debugCommandProcessor = new DebugCommandProcessor(
|
||||
ksLogger);
|
||||
ksLogger, featureFlag);
|
||||
debugCommandItemModels.add(
|
||||
new DebugCommandItemModel(
|
||||
debugCommandInput.getText().toString(),
|
||||
|
|
|
@ -67,6 +67,7 @@ public class FeatureFlagImpl implements FeatureFlag {
|
|||
setFlag("isBaseEnabled", true, false);
|
||||
setFlag("isBetaEnabled", false, false);
|
||||
setFlag("isDevelopEnabled", false, false);
|
||||
setFlag("overrideTest", false, true);
|
||||
}
|
||||
|
||||
private void initBeta() { // 上書き
|
||||
|
|
Loading…
Reference in New Issue
Block a user