use of drift.com.drift.helpers.RecyclerTouchListener 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);
}
}
use of drift.com.drift.helpers.RecyclerTouchListener in project drift-sdk-android by Driftt.
the class ConversationListActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StatusBarColorizer.setActivityColor(this);
setContentView(R.layout.drift_sdk_activity_conversation_list);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle("Conversations");
}
conversationRecyclerView = findViewById(R.id.drift_sdk_conversation_list_recycler_view);
progressBar = findViewById(R.id.drift_sdk_conversation_list_progress_bar);
networkAvailabilityBar = findViewById(R.id.drift_sdk_conversation_list_load_page_text_view);
emptyState = findViewById(R.id.drift_sdk_conversation_list_empty_linear_layout);
emptyStateButton = findViewById(R.id.drift_sdk_conversation_list_empty_state_create_button);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
conversationRecyclerView.setLayoutManager(layoutManager);
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(conversationRecyclerView.getContext(), layoutManager.getOrientation());
dividerItemDecoration.setDrawable(ContextCompat.getDrawable(this, R.drawable.drift_sdk_recycler_view_divider));
conversationRecyclerView.addItemDecoration(dividerItemDecoration);
conversationRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, conversationRecyclerView, new ClickListener() {
@Override
public void onClick(View view, int position) {
Conversation conversation = conversationListAdapter.getItemAt(position);
if (conversation != null) {
Intent intent = ConversationActivity.intentForConversation(ConversationListActivity.this, conversation.id);
ConversationListActivity.this.startActivity(intent);
}
}
}));
emptyStateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = ConversationActivity.intentForCreateConversation(ConversationListActivity.this);
ConversationListActivity.this.startActivity(intent);
}
});
emptyStateButton.setTextColor(ColorHelper.getForegroundColor());
Drawable backgroundDrawable = DrawableCompat.wrap(emptyStateButton.getBackground()).mutate();
DrawableCompat.setTint(backgroundDrawable, ColorHelper.getBackgroundColor());
emptyState.setVisibility(View.GONE);
conversationListAdapter = new ConversationListAdapter(this, ConversationManager.getInstance().getConversations());
conversationRecyclerView.setAdapter(conversationListAdapter);
if (conversationListAdapter.getItemCount() == 0) {
progressBar.setVisibility(View.VISIBLE);
} else {
progressBar.setVisibility(View.GONE);
}
}
Aggregations