Search in sources :

Example 1 with MessageStatus

use of com.backendless.messaging.MessageStatus in project Android-SDK by Backendless.

the class ChatActivity method onCreate.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.chat);
    final String name = getIntent().getStringExtra(Defaults.NAME_TAG);
    final EditText historyField = (EditText) findViewById(R.id.historyField);
    final EditText messageField = (EditText) findViewById(R.id.messageField);
    Backendless.initApp(this, Defaults.APPLICATION_ID, Defaults.SECRET_KEY, Defaults.VERSION);
    Backendless.Messaging.subscribe(Defaults.CHANNEL_NAME, new AsyncCallback<List<Message>>() {

        @Override
        public void handleResponse(List<Message> response) {
            for (Message message : response) historyField.setText(message.getPublisherId() + ": " + message.getData() + "\n" + historyField.getText());
        }

        @Override
        public void handleFault(BackendlessFault fault) {
            Toast.makeText(ChatActivity.this, fault.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }, new AsyncCallback<Subscription>() {

        @Override
        public void handleResponse(Subscription response) {
            subscription = response;
        }

        @Override
        public void handleFault(BackendlessFault fault) {
            Toast.makeText(ChatActivity.this, fault.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
    messageField.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
            if (keyCode == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_UP) {
                String message = messageField.getText().toString();
                if (message == null || message.equals(""))
                    return true;
                final ProgressDialog progressDialog = ProgressDialog.show(ChatActivity.this, "", "Sending", true);
                Backendless.Messaging.publish(Defaults.CHANNEL_NAME, message, new PublishOptions(name), new AsyncCallback<MessageStatus>() {

                    @Override
                    public void handleResponse(MessageStatus response) {
                        progressDialog.cancel();
                        messageField.setText("");
                    }

                    @Override
                    public void handleFault(BackendlessFault fault) {
                        progressDialog.cancel();
                        Toast.makeText(ChatActivity.this, fault.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
                return true;
            }
            return false;
        }
    });
}
Also used : EditText(android.widget.EditText) Message(com.backendless.messaging.Message) AsyncCallback(com.backendless.async.callback.AsyncCallback) PublishOptions(com.backendless.messaging.PublishOptions) ProgressDialog(android.app.ProgressDialog) View(android.view.View) BackendlessFault(com.backendless.exceptions.BackendlessFault) KeyEvent(android.view.KeyEvent) MessageStatus(com.backendless.messaging.MessageStatus) List(java.util.List) Subscription(com.backendless.Subscription)

Example 2 with MessageStatus

use of com.backendless.messaging.MessageStatus in project Android-SDK by Backendless.

the class PushActivity method onCreate.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.push);
    historyField = (TextView) findViewById(R.id.historyField);
    messageField = (EditText) findViewById(R.id.messageField);
    forceNotify = (CheckBox) findViewById(R.id.forceNotify);
    handler = new Handler(new Handler.Callback() {

        @Override
        public boolean handleMessage(Message message) {
            if (!(message.obj instanceof Error))
                historyField.setText(message.obj + "\n" + historyField.getText());
            else
                MainActivity.showAlert(PushActivity.this, ((Error) message.obj).getMessage());
            return true;
        }
    });
    findViewById(R.id.sendButton).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            String message = messageField.getText().toString();
            if (message == null || message.equals(""))
                return;
            final ProgressDialog progressDialog = ProgressDialog.show(PushActivity.this, "", "Sending push message", true);
            DeliveryOptions deliveryOptions = new DeliveryOptions();
            deliveryOptions.setPushBroadcast(PushBroadcastMask.ALL);
            PublishOptions publishOptions = new PublishOptions();
            if (forceNotify.isChecked()) {
                publishOptions.putHeader(PublishOptions.ANDROID_TICKER_TEXT_TAG, getString(R.string.app_name));
                publishOptions.putHeader(PublishOptions.ANDROID_CONTENT_TITLE_TAG, getString(R.string.app_name));
                publishOptions.putHeader(PublishOptions.ANDROID_CONTENT_TEXT_TAG, message);
            }
            Backendless.Messaging.publish(Defaults.CHANNEL_NAME, message, publishOptions, deliveryOptions, new BackendlessCallback<MessageStatus>() {

                @Override
                public void handleResponse(MessageStatus response) {
                    progressDialog.cancel();
                    messageField.setText("");
                }

                @Override
                public void handleFault(BackendlessFault fault) {
                    progressDialog.cancel();
                    Toast.makeText(PushActivity.this, fault.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
        }
    });
    findViewById(R.id.unregisterButton).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Backendless.Messaging.unregisterDevice();
            setResult(RESULT_OK, new Intent());
            finish();
        }
    });
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
Also used : Message(android.os.Message) Handler(android.os.Handler) Intent(android.content.Intent) PublishOptions(com.backendless.messaging.PublishOptions) ProgressDialog(android.app.ProgressDialog) TextView(android.widget.TextView) View(android.view.View) BackendlessFault(com.backendless.exceptions.BackendlessFault) MessageStatus(com.backendless.messaging.MessageStatus) BackendlessCallback(com.backendless.async.callback.BackendlessCallback) BackendlessCallback(com.backendless.async.callback.BackendlessCallback) DeliveryOptions(com.backendless.messaging.DeliveryOptions)

Aggregations

ProgressDialog (android.app.ProgressDialog)2 View (android.view.View)2 BackendlessFault (com.backendless.exceptions.BackendlessFault)2 MessageStatus (com.backendless.messaging.MessageStatus)2 PublishOptions (com.backendless.messaging.PublishOptions)2 Intent (android.content.Intent)1 Handler (android.os.Handler)1 Message (android.os.Message)1 KeyEvent (android.view.KeyEvent)1 EditText (android.widget.EditText)1 TextView (android.widget.TextView)1 Subscription (com.backendless.Subscription)1 AsyncCallback (com.backendless.async.callback.AsyncCallback)1 BackendlessCallback (com.backendless.async.callback.BackendlessCallback)1 DeliveryOptions (com.backendless.messaging.DeliveryOptions)1 Message (com.backendless.messaging.Message)1 List (java.util.List)1