private void showMessage(Message message) { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(0, 0, 0, 20); TextView textView = new TextView(ChatActivity.this); String nameSender; if (message.getReceiver() != user.getID()) { params.gravity = Gravity.RIGHT; textView.setBackgroundResource(R.drawable.message_1); nameSender = user.getNick(); } else { params.gravity = Gravity.LEFT; textView.setBackgroundResource(R.drawable.message_2); nameSender = User.getInstance() .getFriendsHashMap() .get(String.valueOf(message.getIdFriend())) .getNick(); } String text = "<font color=#161F89><small><b>" + nameSender + ":" + "</b></small></font><br/>" + message.getText(); textView.setText(Html.fromHtml(text)); textView.setLayoutParams(params); messagesLayout.addView(textView); textView.setPadding(16, 16, 16, 16); textView.setTextSize(16); keyboard.setText(""); try { scrollView.post( new Runnable() { @Override public void run() { scrollView.fullScroll(View.FOCUS_DOWN); } }); } catch (Exception e) { e.printStackTrace(); } }
public void loadImage() { String nameFile = User.getInstance().getFriendsHashMap().get(String.valueOf(toID)).getImage(); if (!nameFile.equals("") && !nameFile.equals(null)) { File ruta_sd = Environment.getExternalStorageDirectory(); String ruta = ruta_sd.getAbsolutePath() + "/IMAGES_CHAT_ANDROID/" + nameFile + ".jpg"; File file = new File(ruta); if (file.exists()) { Bitmap photobmp = BitmapFactory.decodeFile(ruta); userImage.setImageBitmap(photobmp); intentViewImages = new Intent(this, ViewImage.class); intentViewImages.putExtra("path", ruta); userImage.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { startActivity(intentViewImages); } }); } } }
public void showNotification(Message message) { Intent intent = new Intent(this, Notification.class); boolean isGroup = message.getIsGroup(); int notificationID = isGroup ? message.getReceiver() : message.getIdFriend(); intent.putExtra("notificationID", notificationID); intent.putExtra("isGroup", isGroup); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); String name = ""; if (isGroup) { Group group = user.getGroupsHashMap().get(String.valueOf(notificationID)); name = group.getName(); } else { name = User.getInstance().getFriendsHashMap().get(String.valueOf(notificationID)).getNick(); } CharSequence ticker = message.getText(); CharSequence contentTitle = "Android Chat"; CharSequence contentText = "Message from " + name; NotificationCompat.Builder noti = new NotificationCompat.Builder(this) .setContentIntent(pendingIntent) .setTicker(ticker) .setContentTitle(contentTitle) .setContentText(contentText) // .setLights(Color.RED, 1, 0) .setSmallIcon(R.mipmap.ic_ini) .setPriority(android.app.Notification.PRIORITY_MAX) .setAutoCancel(true) .addAction(R.mipmap.ic_ini, ticker, pendingIntent) .setVibrate(new long[] {100, 250, 100, 500}); NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.notify(notificationID, noti.build()); ringtone.play(); }
private void sendMessage(String message) { Sender sender = new Sender(); sender.execute(message, String.valueOf(toID), String.valueOf(user.getID())); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chat); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); locationRequest = LocationRequest.create() .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(20000) .setFastestInterval(10000); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); toID = getIntent().getExtras().getInt("toID"); user = User.getInstance(); friend = user.getFriendsHashMap().get(String.valueOf(toID)); popupMenu = new PopupMenu(this, toolbar, Gravity.RIGHT); popupMenu.setOnMenuItemClickListener(this); popupMenu.inflate(R.menu.popup); ImageButton sendButton = (ImageButton) findViewById(R.id.chat_send); keyboard = (EditText) findViewById(R.id.chat_keyboard); scrollView = (ScrollView) findViewById(R.id.chat_scroll); messagesLayout = (LinearLayout) findViewById(R.id.chat_messages); userImage = (ImageView) findViewById(R.id.chat_user_image); userName = (TextView) findViewById(R.id.chat_user_name); ImageButton attachButton = (ImageButton) findViewById(R.id.chat_attach); sendButton.setOnClickListener(this); attachButton.setOnClickListener(this); changeToolBar(); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); String alarms = preferences.getString("message-notification-sound", "default ringtone"); Uri uri = Uri.parse(alarms); ringtone = RingtoneManager.getRingtone(this, uri); if (!isStarted) { messages = new MessageList(); LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<>(); isStarted = true; service = new Service(); try { queue.put(service); } catch (InterruptedException e) { e.printStackTrace(); } PausableThreadPool executor = new PausableThreadPool(2, 2, 10, TimeUnit.SECONDS, queue); executor.execute(service); threadReceiver = new Thread(Receiver); threadReceiver.start(); } else { while (threadReceiver.isAlive()) { threadReceiver.interrupt(); } threadReceiver = new Thread(Receiver); threadReceiver.start(); } loadDBMessages(); try { scrollView.post( new Runnable() { @Override public void run() { scrollView.fullScroll(View.FOCUS_DOWN); } }); } catch (Exception e) { e.printStackTrace(); } loadImage(); }