Search in sources :

Example 1 with Auth

use of drift.com.drift.model.Auth in project drift-sdk-android by Driftt.

the class ConversationActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.drift_sdk_activity_conversation);
    StatusBarColorizer.setActivityColor(this);
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadReceiver, filter);
    textEntryEditText = findViewById(R.id.drift_sdk_conversation_activity_edit_text);
    sendButtonImageView = findViewById(R.id.drift_sdk_conversation_activity_send_button);
    plusButtonImageView = findViewById(R.id.drift_sdk_conversation_activity_plus_button);
    recyclerView = findViewById(R.id.drift_sdk_conversation_activity_recycler_activity);
    statusTextView = findViewById(R.id.drift_sdk_conversation_activity_status_view);
    progressBar = findViewById(R.id.drift_sdk_conversation_activity_progress_view);
    driftWelcomeMessage = findViewById(R.id.drift_sdk_conversation_activity_welcome_text_view);
    driftWelcomeImageView = findViewById(R.id.drift_sdk_conversation_activity_welcome_image_view);
    driftBrandTextView = findViewById(R.id.drift_sdk_conversation_activity_drift_brand_text_view);
    welcomeMessageLinearLayout = findViewById(R.id.drift_sdk_conversation_activity_welcome_linear_layout);
    Intent intent = getIntent();
    if (intent.getExtras() != null) {
        conversationId = intent.getExtras().getInt(CONVERSATION_ID, -1);
        conversationType = (ConversationType) intent.getExtras().getSerializable(CONVERSATION_TYPE);
    }
    if (conversationId == -1 && conversationType == ConversationType.CONTINUE) {
        Toast.makeText(this, "Invalid Conversation Id", Toast.LENGTH_SHORT).show();
        finish();
    }
    Auth auth = Auth.getInstance();
    if (auth != null && auth.endUser != null) {
        endUserId = auth.endUser.id;
    } else {
        // No Auth
        Toast.makeText(this, "We're sorry, an unknown error occurred", Toast.LENGTH_LONG).show();
        finish();
    }
    sendButtonImageView.setBackgroundColor(ColorHelper.getBackgroundColor());
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setTitle("Conversation");
    }
    sendButtonImageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            didPressSendButton();
        }
    });
    textEntryEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_SEND) {
                didPressSendButton();
                return true;
            }
            return false;
        }
    });
    textEntryEditText.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() != 0) {
                sendButtonImageView.setVisibility(View.VISIBLE);
            } else {
                sendButtonImageView.setVisibility(View.GONE);
            }
        }
    });
    AttachmentManager.getInstance().setAttachmentLoadHandle(this);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setReverseLayout(true);
    layoutManager.setAutoMeasureEnabled(false);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, recyclerView, new ClickListener() {

        @Override
        public void onClick(View view, int position) {
            Message message = conversationAdapter.getItemAt(position);
            if (message != null && message.sendStatus == Message.SendStatus.FAILED) {
                resendMessage(message);
            }
        }
    }));
    conversationAdapter = new ConversationAdapter(this, MessageManager.getInstance().getMessagesForConversationId(conversationId));
    recyclerView.setAdapter(conversationAdapter);
    if (conversationAdapter.getItemCount() == 0) {
        progressBar.setVisibility(View.VISIBLE);
    } else {
        progressBar.setVisibility(View.GONE);
    }
}
Also used : RecyclerTouchListener(drift.com.drift.helpers.RecyclerTouchListener) IntentFilter(android.content.IntentFilter) Message(drift.com.drift.model.Message) ConversationAdapter(drift.com.drift.adapters.ConversationAdapter) Intent(android.content.Intent) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) KeyEvent(android.view.KeyEvent) Auth(drift.com.drift.model.Auth) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) TextView(android.widget.TextView) ActionBar(android.support.v7.app.ActionBar) ClickListener(drift.com.drift.helpers.ClickListener)

Example 2 with Auth

use of drift.com.drift.model.Auth in project drift-sdk-android by Driftt.

the class ConversationListActivity method refreshData.

@Override
public void refreshData() {
    super.refreshData();
    networkAvailabilityBar.setVisibility(View.GONE);
    final Auth auth = Auth.getInstance();
    if (auth != null && auth.endUser != null) {
        UserManager.getInstance().getUsers(auth.endUser.orgId, new UserManagerCallback() {

            @Override
            public void didLoadUsers(Boolean success) {
                if (success) {
                    ConversationManager.getInstance().getConversationsForEndUser(auth.endUser.id, new APICallbackWrapper<ArrayList<ConversationExtra>>() {

                        @Override
                        public void onResponse(ArrayList<ConversationExtra> response) {
                            if (response != null) {
                                progressBar.setVisibility(View.GONE);
                                LoggerHelper.logMessage(TAG, response.toString());
                                if (response.isEmpty()) {
                                    emptyState.setVisibility(View.VISIBLE);
                                } else {
                                    emptyState.setVisibility(View.GONE);
                                }
                                conversationListAdapter.updateDate(response);
                            } else {
                                Alert.showAlert(ConversationListActivity.this, "Error", "Failed to load conversations", "Retry", new Runnable() {

                                    @Override
                                    public void run() {
                                        refreshData();
                                    }
                                });
                            }
                        }
                    });
                } else {
                    LoggerHelper.logMessage(TAG, "Failed to load users");
                }
            }
        });
    }
}
Also used : UserManagerCallback(drift.com.drift.wrappers.UserManagerCallback) ConversationExtra(drift.com.drift.model.ConversationExtra) Auth(drift.com.drift.model.Auth) ArrayList(java.util.ArrayList) APICallbackWrapper(drift.com.drift.wrappers.APICallbackWrapper)

Example 3 with Auth

use of drift.com.drift.model.Auth in project drift-sdk-android by Driftt.

the class APIAuthTokenInterceptor method intercept.

@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
    Request request = chain.request();
    Auth auth = Auth.getInstance();
    if (auth != null && auth.getAccessToken() != null) {
        HttpUrl url = request.url().newBuilder().addQueryParameter("access_token", auth.getAccessToken()).build();
        request = request.newBuilder().url(url).build();
    }
    return chain.proceed(request);
}
Also used : Auth(drift.com.drift.model.Auth) Request(okhttp3.Request) HttpUrl(okhttp3.HttpUrl)

Example 4 with Auth

use of drift.com.drift.model.Auth in project drift-sdk-android by Driftt.

the class PresentationManager method showPopupForMessage.

private void showPopupForMessage(final Message message, final int otherMessages) {
    User user = UserManager.getInstance().userMap.get(message.authorId);
    Auth auth = Auth.getInstance();
    if (user != null) {
        showPopupForMessage(user, message, otherMessages);
    } else if (auth != null && auth.endUser != null && auth.endUser.orgId != null) {
        UserManager.getInstance().getUsers(auth.endUser.orgId, new UserManagerCallback() {

            @Override
            public void didLoadUsers(Boolean success) {
                User user = UserManager.getInstance().userMap.get(message.authorId);
                showPopupForMessage(user, message, otherMessages);
            }
        });
    }
}
Also used : UserManagerCallback(drift.com.drift.wrappers.UserManagerCallback) User(drift.com.drift.model.User) Auth(drift.com.drift.model.Auth)

Example 5 with Auth

use of drift.com.drift.model.Auth in project drift-sdk-android by Driftt.

the class ApplicationLifecycleHelper method onApplicationResumed.

void onApplicationResumed(Activity activity) {
    LoggerHelper.logMessage(TAG, "Application Did Resume");
    Auth auth = Auth.getInstance();
    if (auth != null && auth.endUser != null && auth.endUser.id != null) {
        PresentationManager.getInstance().checkForUnreadMessagesToShow(auth.endUser.orgId, auth.endUser.id);
    }
}
Also used : Auth(drift.com.drift.model.Auth)

Aggregations

Auth (drift.com.drift.model.Auth)5 UserManagerCallback (drift.com.drift.wrappers.UserManagerCallback)2 Intent (android.content.Intent)1 IntentFilter (android.content.IntentFilter)1 ActionBar (android.support.v7.app.ActionBar)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 RecyclerView (android.support.v7.widget.RecyclerView)1 Editable (android.text.Editable)1 TextWatcher (android.text.TextWatcher)1 KeyEvent (android.view.KeyEvent)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 ConversationAdapter (drift.com.drift.adapters.ConversationAdapter)1 ClickListener (drift.com.drift.helpers.ClickListener)1 RecyclerTouchListener (drift.com.drift.helpers.RecyclerTouchListener)1 ConversationExtra (drift.com.drift.model.ConversationExtra)1 Message (drift.com.drift.model.Message)1 User (drift.com.drift.model.User)1 APICallbackWrapper (drift.com.drift.wrappers.APICallbackWrapper)1