Created
January 17, 2020 05:50
-
-
Save bananaumai/91fc91eb73fdca7c2469bda6a4c6ac33 to your computer and use it in GitHub Desktop.
QuickStart MODE Gateway SDK for Android
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class MainActivity extends AppCompatActivity { | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.activity_main); | |
| final ModeGatewayClient modeGatewayClient = initModeGateway(); | |
| Button eventButton = findViewById(R.id.event_button); | |
| eventButton.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View view) { | |
| view.setEnabled(false); | |
| EditText message = findViewById(R.id.message_value); | |
| LinkedHashMap<String, Object> eventData = new LinkedHashMap<>(); | |
| eventData.put("message", message.getText().toString()); | |
| modeGatewayClient.publishEvent("test", eventData); | |
| Toast.makeText(getApplicationContext(), "message was published", Toast.LENGTH_LONG).show(); | |
| view.setEnabled(true); | |
| } | |
| }); | |
| Button tsdbButton = findViewById(R.id.tsdb_button); | |
| tsdbButton.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View view) { | |
| view.setEnabled(false); | |
| Date now = new Date(); | |
| EditText series1 = findViewById(R.id.series1_value); | |
| EditText series2 = findViewById(R.id.series2_value); | |
| try { | |
| ArrayList<SeriesData> series = new ArrayList<>(); | |
| series.add(new SeriesData("series1", Double.parseDouble(series1.getText().toString()))); | |
| series.add(new SeriesData("series2", Double.parseDouble(series2.getText().toString()))); | |
| TimeSeriesData timeSeries = new TimeSeriesData(now.getTime() * 1000 * 1000, series); | |
| modeGatewayClient.writeTimeSeries("tsdb", timeSeries); | |
| Toast.makeText(getApplicationContext(), "time series data was written", Toast.LENGTH_LONG).show(); | |
| } catch (NumberFormatException e) { | |
| Toast.makeText(getApplicationContext(), "please fill in series1 and series2", Toast.LENGTH_LONG).show(); | |
| } catch (IOException e) { | |
| Toast.makeText(getApplicationContext(), "failed to write time series data", Toast.LENGTH_SHORT).show(); | |
| Log.e(getClass().getSimpleName(), "error", e); | |
| } | |
| view.setEnabled(true); | |
| } | |
| }); | |
| Button streamButton = findViewById(R.id.stream_button); | |
| streamButton.setOnClickListener(new View.OnClickListener() { | |
| @Override | |
| public void onClick(View view) { | |
| view.setEnabled(false); | |
| EditText prop1 = findViewById(R.id.prop1_value); | |
| EditText prop2 = findViewById(R.id.prop2_value); | |
| try { | |
| String data = String.format("{\"prop1\": \"%s\", \"prop2\": \"%s\"}", prop1.getText(), prop2.getText()); | |
| StreamData stream = modeGatewayClient.openStream("sds"); | |
| stream.write(data.getBytes()); | |
| Toast.makeText(getApplicationContext(), "data was written to stream", Toast.LENGTH_LONG).show(); | |
| } catch (IOException e) { | |
| Toast.makeText(getApplicationContext(), "failed to write stream data", Toast.LENGTH_SHORT).show(); | |
| Log.e(getClass().getSimpleName(), "error", e); | |
| } | |
| view.setEnabled(true); | |
| } | |
| }); | |
| } | |
| private ModeGatewayClient initModeGateway() { | |
| ModeDeviceConfiguration modeDeviceConfiguration | |
| = new ModeDeviceConfiguration(BuildConfig.DEVICE_ID, BuildConfig.DEVICE_TOKEN); | |
| ModeGateway.setCommandListener(new CommandListener() { | |
| @Override | |
| public void onReceiveCommand(String action, Map<String, ?> command) { | |
| // Do Something | |
| } | |
| }); | |
| ModeGateway.setDeviceDataProxyListener(new DeviceDataProxyListener() { | |
| @Override | |
| public void onReceiveReloadedMessage(Map<String, ?> message) { | |
| // Do something | |
| } | |
| @Override | |
| public void onReceiveSetMessage(Map<String, ?> message) { | |
| // Do something | |
| } | |
| @Override | |
| public void onReceiveDeletedMessage(Map<String, ?> message) { | |
| // Do something | |
| } | |
| }); | |
| ModeGateway.start(modeDeviceConfiguration, getApplicationContext()); | |
| return ModeGateway.getClient(); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment