Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions source/android/mobile/samples/v1.0/CustomElement.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "blah",
"secret": "This is a custom element"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import io.adaptivecards.objectmodel.ActionType;
import io.adaptivecards.objectmodel.BaseActionElement;

public class CustomGreenActionElement extends BaseActionElement
{

public CustomGreenActionElement(ActionType type) {
super(type);
}

public String getMessage()
{
return m_message;
}

private final String m_message = "Smell you later!";
public static final String CustomActionId = "greenAction";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import io.adaptivecards.objectmodel.ActionElementParser;
import io.adaptivecards.objectmodel.ActionType;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.JsonValue;
import io.adaptivecards.objectmodel.ParseContext;

public class CustomGreenActionParser extends ActionElementParser
{
@Override
public BaseActionElement Deserialize(ParseContext context, JsonValue value)
{
CustomGreenActionElement element = new CustomGreenActionElement(ActionType.Custom);
element.SetElementTypeString(CustomGreenActionElement.CustomActionId);
element.SetId("greenActionDeserialize");
return element;
}

@Override
public BaseActionElement DeserializeFromString(ParseContext context, String jsonString)
{
CustomGreenActionElement element = new CustomGreenActionElement(ActionType.Custom);
element.SetElementTypeString(CustomGreenActionElement.CustomActionId);
element.SetId("greenActionDeserialize");
return element;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import android.app.Activity;
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.view.ViewGroup;
import android.widget.Button;

import io.adaptivecards.adaptivecardssample.R;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.HostConfig;
import io.adaptivecards.renderer.BaseActionElementRenderer;
import io.adaptivecards.renderer.RenderArgs;
import io.adaptivecards.renderer.RenderedAdaptiveCard;
import io.adaptivecards.renderer.actionhandler.ICardActionHandler;

public class CustomGreenActionRenderer extends BaseActionElementRenderer
{
public CustomGreenActionRenderer(Activity activity)
{
m_activity = activity;
}

@Override
public Button render(RenderedAdaptiveCard renderedCard,
Context context,
FragmentManager fragmentManager,
ViewGroup viewGroup,
BaseActionElement baseActionElement,
ICardActionHandler cardActionHandler,
HostConfig hostConfig,
RenderArgs renderArgs)
{
Button greenActionButton = new Button(context);

CustomGreenActionElement customAction = (CustomGreenActionElement) baseActionElement.findImplObj();

greenActionButton.setBackgroundColor(m_activity.getResources().getColor(R.color.greenActionColor));
greenActionButton.setText(customAction.getMessage());
greenActionButton.setAllCaps(false);
greenActionButton.setOnClickListener(new BaseActionElementRenderer.ActionOnClickListener(renderedCard, baseActionElement, cardActionHandler));

viewGroup.addView(greenActionButton);

return greenActionButton;
}

private Activity m_activity;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import io.adaptivecards.objectmodel.ActionType;
import io.adaptivecards.objectmodel.BaseActionElement;

public class CustomRedActionElement extends BaseActionElement
{

public CustomRedActionElement(ActionType type) {
super(type);
}

public String getBackwardString()
{
return m_backwardsString;
}

public void setBackwardString(String s)
{
m_backwardsString = new String();
for(int i = s.length() - 1; i >= 0; i--)
{
m_backwardsString += s.charAt(i);
}
}

private String m_backwardsString;
public static final String CustomActionId = "redAction";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import org.json.JSONException;
import org.json.JSONObject;

import io.adaptivecards.objectmodel.ActionElementParser;
import io.adaptivecards.objectmodel.ActionType;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.JsonValue;
import io.adaptivecards.objectmodel.ParseContext;

public class CustomRedActionParser extends ActionElementParser
{
@Override
public BaseActionElement Deserialize(ParseContext context, JsonValue value)
{
CustomRedActionElement element = new CustomRedActionElement(ActionType.Custom);
element.SetElementTypeString(CustomRedActionElement.CustomActionId);
element.SetId("backwardActionDeserialize");
String val = value.getString();
try {
JSONObject obj = new JSONObject(val);
element.setBackwardString(obj.getString("backwardString"));
} catch (JSONException e) {
e.printStackTrace();
element.setBackwardString("deliaF");
}
return element;
}

@Override
public BaseActionElement DeserializeFromString(ParseContext context, String jsonString)
{
CustomRedActionElement element = new CustomRedActionElement(ActionType.Custom);
element.SetElementTypeString(CustomRedActionElement.CustomActionId);
element.SetId("backwardActionDeserialize");
try {
JSONObject obj = new JSONObject(jsonString);
element.setBackwardString(obj.getString("backwardString"));
} catch (JSONException e) {
e.printStackTrace();
element.setBackwardString("deliaF");
}
return element;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import android.app.Activity;
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.view.ViewGroup;
import android.widget.Button;

import io.adaptivecards.adaptivecardssample.R;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.HostConfig;
import io.adaptivecards.renderer.BaseActionElementRenderer;
import io.adaptivecards.renderer.RenderArgs;
import io.adaptivecards.renderer.RenderedAdaptiveCard;
import io.adaptivecards.renderer.actionhandler.ICardActionHandler;

public class CustomRedActionRenderer extends BaseActionElementRenderer
{
public CustomRedActionRenderer(Activity activity)
{
m_activity = activity;
}

@Override
public Button render(RenderedAdaptiveCard renderedCard,
Context context,
FragmentManager fragmentManager,
ViewGroup viewGroup,
BaseActionElement baseActionElement,
ICardActionHandler cardActionHandler,
HostConfig hostConfig,
RenderArgs renderArgs)
{
Button backwardActionButton = new Button(context);

CustomRedActionElement customAction = (CustomRedActionElement) baseActionElement.findImplObj();

backwardActionButton.setBackgroundColor(m_activity.getResources().getColor(R.color.redActionColor));
backwardActionButton.setText(customAction.getBackwardString());
backwardActionButton.setAllCaps(false);
backwardActionButton.setOnClickListener(new BaseActionElementRenderer.ActionOnClickListener(renderedCard, baseActionElement, cardActionHandler));

viewGroup.addView(backwardActionButton);

return backwardActionButton;
}

private Activity m_activity;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.Actions;

import android.app.Activity;
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.view.ViewGroup;
import android.widget.Button;

import io.adaptivecards.adaptivecardssample.R;
import io.adaptivecards.objectmodel.BaseActionElement;
import io.adaptivecards.objectmodel.HostConfig;
import io.adaptivecards.renderer.BaseActionElementRenderer;
import io.adaptivecards.renderer.RenderArgs;
import io.adaptivecards.renderer.RenderedAdaptiveCard;
import io.adaptivecards.renderer.actionhandler.ICardActionHandler;

public class ShowCardOverrideRenderer extends BaseActionElementRenderer
{

public ShowCardOverrideRenderer(Activity activity)
{
m_activity = activity;
}

@Override
public Button render(RenderedAdaptiveCard renderedCard,
Context context,
FragmentManager fragmentManager,
ViewGroup viewGroup,
BaseActionElement baseActionElement,
ICardActionHandler cardActionHandler,
HostConfig hostConfig,
RenderArgs renderArgs)
{
Button button = new Button(context);

button.setBackgroundColor(m_activity.getResources().getColor(R.color.yellowActionColor));
button.setText(baseActionElement.GetTitle() +"(ShowCard)");

button.setOnClickListener(new BaseActionElementRenderer.ActionOnClickListener(renderedCard, context, fragmentManager, viewGroup, baseActionElement, cardActionHandler, hostConfig));

viewGroup.addView(button);
return button;
}

private Activity m_activity;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.CardElements;

import org.json.JSONException;
import org.json.JSONObject;

import io.adaptivecards.adaptivecardssample.MainActivityAdaptiveCardsSample;
import io.adaptivecards.objectmodel.BaseCardElement;
import io.adaptivecards.objectmodel.BaseCardElementParser;
import io.adaptivecards.objectmodel.CardElementType;
import io.adaptivecards.objectmodel.JsonValue;
import io.adaptivecards.objectmodel.ParseContext;

public class CustomBlahParser extends BaseCardElementParser
{
@Override
public BaseCardElement Deserialize(ParseContext context, JsonValue value)
{
CustomCardElement element = new CustomCardElement(CardElementType.Custom);
element.SetElementTypeString("blah");
element.SetId("BlahDeserialize");
String val = value.getString();
try
{
JSONObject obj = new JSONObject(val);
element.setSecretString(obj.getString("secret"));
}
catch (JSONException e)
{
e.printStackTrace();
element.setSecretString("Failed");
}
return element;
}

@Override
public BaseCardElement DeserializeFromString(ParseContext context, String jsonString)
{
CustomCardElement element = new CustomCardElement(CardElementType.Custom);
element.SetElementTypeString("blah");
element.SetId("BlahDeserialize");
try
{
JSONObject obj = new JSONObject(jsonString);
element.setSecretString(obj.getString("secret"));
}
catch (JSONException e)
{
e.printStackTrace();
element.setSecretString("Failed");
}
return element;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package io.adaptivecards.adaptivecardssample.CustomObjects.CardElements;

import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import io.adaptivecards.objectmodel.BaseCardElement;
import io.adaptivecards.objectmodel.HostConfig;
import io.adaptivecards.renderer.BaseCardElementRenderer;
import io.adaptivecards.renderer.RenderArgs;
import io.adaptivecards.renderer.RenderedAdaptiveCard;
import io.adaptivecards.renderer.actionhandler.ICardActionHandler;

public class CustomBlahRenderer extends BaseCardElementRenderer
{
@Override
public View render(RenderedAdaptiveCard renderedAdaptiveCard,
Context context,
FragmentManager fragmentManager,
ViewGroup viewGroup,
BaseCardElement baseCardElement,
ICardActionHandler cardActionHandler,
HostConfig hostConfig,
RenderArgs renderArgs)
{
TextView textView = new TextView(context);

CustomCardElement element = (CustomCardElement) baseCardElement.findImplObj();

textView.setText(element.getSecretString());

textView.setAllCaps(true);

viewGroup.addView(textView);

return textView;
}
}
Loading