mini-cards/app/src/main/java/com/codigoparallevar/minicards/PartsHolder.java
Sergio Martínez Portela 033b79cba1 Implement base connection to PrograMaker API.
- Login and check of the login token.
2020-05-19 19:19:26 +02:00

68 lines
2.6 KiB
Java

package com.codigoparallevar.minicards;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import androidx.appcompat.app.AlertDialog;
import android.util.Log;
import com.codigoparallevar.minicards.parts.buttons.RoundButton;
import com.codigoparallevar.minicards.parts.logic.Ticker;
import com.codigoparallevar.minicards.parts.logic.Toggle;
import com.codigoparallevar.minicards.parts.samples.ColorBox;
import com.codigoparallevar.minicards.parts.strings.ConvertToString;
import com.codigoparallevar.minicards.types.Part;
import com.codigoparallevar.minicards.types.functional.Tuple2;
import java.util.List;
import java.util.Vector;
class PartsHolder {
private final Context context;
private final static List<Tuple2<String, PartInstantiator>> BuiltInParts =
new Vector<Tuple2<String, PartInstantiator>>(){{
add(new Tuple2<>("Round button", RoundButton.getInstantiator()));
add(new Tuple2<>("Ticker", Ticker.getInstantiator()));
add(new Tuple2<>("Red/Green box", ColorBox.getInstantiator()));
add(new Tuple2<>("Toggle", Toggle.getInstantiator()));
add(new Tuple2<>("ToString", ConvertToString.getInstantiator()));
}};
public PartsHolder(Context context) {
this.context = context;
}
public void openAddPartModal(final CanvasView canvasView) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Choose part type")
.setItems(getPartTypes(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if ((which >= 0) && (which < BuiltInParts.size())){
Log.d("Minicards partsHolder",
"Spawning " + BuiltInParts.get(which).item1);
PartInstantiator instantiator = BuiltInParts.get(which).item2;
PartsHolder.this.runInstantiator(instantiator, canvasView);
}
}
});
Dialog dialog = builder.create();
dialog.show();
}
private void runInstantiator(PartInstantiator instantiator, CanvasView canvasView) {
Part part = instantiator.build(canvasView);
canvasView.addPart(part);
}
private static String[] getPartTypes() {
String[] partTypes = new String[BuiltInParts.size()];
for (int i = 0; i < BuiltInParts.size(); i++){
partTypes[i] = BuiltInParts.get(i).item1;
}
return partTypes;
}
}