package akilliyazilim.justhoy.activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import com.actionbarsherlock.app.SherlockActivity;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import akilliyazilim.justhoy.R;
import akilliyazilim.justhoy.adapters.MessagingAdapter;
import akilliyazilim.justhoy.listeners.MessagingListener;
import akilliyazilim.justhoy.model.ConversationInfo;
import akilliyazilim.justhoy.model.MessageText;
import akilliyazilim.justhoy.model.PersonModel;
import akilliyazilim.justhoy.push.PushNotificationUtils;
import akilliyazilim.justhoy.sqlite.DBHelper;
import akilliyazilim.justhoy.sqlite.SeperateMessageTable;
import akilliyazilim.justhoy.utils.ApplicationPreferences;
import akilliyazilim.justhoy.views.HalvelticaEdittext;
import akilliyazilim.justhoy.views.HalvelticaTextView;
import akilliyazilim.justhoy.views.TypefaceSpan;
import de.hdodenhof.circleimageview.CircleImageView;
/**
* Created by mertsimsek on 14.08.2014.
*/
public class MessagingActivity extends SherlockActivity implements View.OnClickListener, MessagingListener {
ListView listview;
HalvelticaEdittext edittext_message;
ImageView image_send;
int receiver_image;
String stranger_name;
String stranger_image_url;
String stranger_id;
String unread;
PersonModel me;
MessagingAdapter adapter;
SeperateMessageTable seperate_table;
CircleImageView circle_image_profile;
HalvelticaTextView textview_stranger_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_message);
Intent i = getIntent();
stranger_name = i.getStringExtra("stranger_name");
stranger_id = i.getStringExtra("stranger_id");
stranger_image_url = i.getStringExtra("stranger_image_url");
unread = i.getStringExtra("message_unread");
View customNav = LayoutInflater.from(this).inflate(R.layout.layout_messaging_actionbar, null);
circle_image_profile = (CircleImageView) customNav.findViewById(R.id.imageview_messaging_stranger_image);
textview_stranger_name = (HalvelticaTextView) customNav.findViewById(R.id.textview_messaging_stranger_name);
Picasso.with(getApplicationContext()).load(stranger_image_url).into(circle_image_profile);
textview_stranger_name.setText(stranger_name);
circle_image_profile.setOnClickListener(this);
getSupportActionBar().setCustomView(customNav);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setDisplayShowHomeEnabled(false);
DBHelper helperx = new DBHelper(getApplicationContext());
SeperateMessageTable messagingtable = helperx.getSeperateMessageTableGateway(stranger_id);
ConversationInfo con_info = new ConversationInfo();
con_info.setIsUnread(unread);
con_info.setStranger_image_url(stranger_image_url);
con_info.setStranger_name(stranger_name);
con_info.setStranger_id(stranger_id);
if (messagingtable.getAllMessagingMessages().size() > 0)
helperx.getConversationTableGateway().updateConversation(con_info);
me = ApplicationPreferences.getInstance(getApplicationContext()).getMeFromPrefs();
DBHelper helper = new DBHelper(getApplicationContext());
seperate_table = helper.getSeperateMessageTableGateway(stranger_id);
seperate_table.setMessagingListener(this);
initializeActionbarText(stranger_name);
listview = (ListView) findViewById(R.id.listview_messaging);
edittext_message = (HalvelticaEdittext) findViewById(R.id.edittext_send);
image_send = (ImageView) findViewById(R.id.imageview_send);
image_send.setOnClickListener(this);
adapter = new MessagingAdapter(getMessageList(), getApplicationContext());
listview.setAdapter(adapter);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageview_send:
if (edittext_message.getText().length() > 0) {
MessageText message = new MessageText();
message.setMessage_text(edittext_message.getText().toString());
message.setStranger_image_url(stranger_image_url);
message.setStranger_id(stranger_id);
message.setStranger_name(stranger_name);
message.setMy_id(me.getUser_id());
message.setMy_image_url(me.getImage_url());
message.setMy_name(me.getName());
sendMessage(message);
adapter.setMessages(getMessageList());
edittext_message.setText("");
}
break;
case R.id.imageview_messaging_stranger_image:
//TODO open image in big view
break;
}
}
public ArrayList<MessageText> getMessageList() {
ArrayList<MessageText> messages = seperate_table.getAllMessagingMessages();
return messages;
}
public SpannableString initializeActionbarText(String text) {
SpannableString s = new SpannableString(" " + text);
s.setSpan(new TypefaceSpan(this, "helvelticabold.otf"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
getSupportActionBar().setTitle(s);
return s;
}
public void sendMessage(MessageText message_send) {
ConversationInfo coninfo = new ConversationInfo();
coninfo.setStranger_id(stranger_id);
coninfo.setStranger_name(stranger_name);
coninfo.setStranger_image_url(stranger_image_url);
coninfo.setIsUnread("read");
DBHelper helper = new DBHelper(getApplicationContext());
helper.getConversationTableGateway().insertConversation(coninfo);
helper.getSeperateMessageTableGateway(stranger_id).insertMessage(message_send, "1");
PushNotificationUtils.getInstance().sendMessage(message_send);
}
@Override
public void onMessageInserted() {
adapter.setMessages(getMessageList());
}
@Override
protected void onResume() {
super.onResume();
HoyApp.activityResumed();
}
@Override
protected void onPause() {
super.onPause();
HoyApp.activityPaused();
}
public void onBackPressed() {
Intent i = new Intent(MessagingActivity.this, HoyActivity.class);
i.putExtra("id", ApplicationPreferences.getInstance(getApplicationContext()).getMeFromPrefs().getUser_id());
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
this.startActivity(i);
this.finish();
return;
}
}