This commit is contained in:
ろむねこ 2024-06-13 15:31:34 +09:00
parent 23b16a0fb7
commit c4ecead655
Signed by: Fujimatsu
GPG Key ID: FA1F39A1BA37D168
3 changed files with 72 additions and 2 deletions

View File

@ -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);

View File

@ -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(),

View File

@ -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() { // 上書き