Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 9 additions & 12 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,13 @@
android:name=".messages"
android:screenOrientation="portrait" />
<activity
android:name=".map"
android:name=".SignUpActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

</activity>
<activity
android:name=".AddJob"
Expand Down Expand Up @@ -61,20 +60,18 @@
android:name=".DateActivity"
android:screenOrientation="portrait" />
<activity android:name=".ChattingActivity" />
<activity android:name=".BottomSheetActivity"></activity>


<activity android:name=".BottomSheetActivity" />
<activity android:name=".LoginActivity">
<!--<intent-filter>-->
<!--<action android:name="android.intent.action.MAIN" />-->

<!--<category android:name="android.intent.category.LAUNCHER" />-->
<!--</intent-filter>-->
</activity>
<activity android:name=".SignUpActivity">
<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.MAIN" /> -->

</activity>

<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<!-- </intent-filter> -->
</activity>
<activity android:name=".map"></activity>
<activity android:name=".ChatSelectionActivity"></activity>
</application>

</manifest>
4 changes: 3 additions & 1 deletion app/src/main/java/com/tamir/offen/OddJob/AddActivity.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.tamir.offen.OddJob;

import android.app.ListActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
Expand All @@ -13,6 +14,7 @@
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.Toast;

public class AddActivity extends AppCompatActivity {
Expand Down Expand Up @@ -79,7 +81,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {

switch(item.getItemId()) {
case R.id.nav_messages:
intent = new Intent(AddActivity.this, messages.class);
intent = new Intent(AddActivity.this, ChatSelectionActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
break;
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/com/tamir/offen/OddJob/AddJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {

switch(item.getItemId()) {
case R.id.nav_messages:
intent = new Intent(AddJob.this, messages.class);
intent = new Intent(AddJob.this, ChatSelectionActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
break;
Expand Down
125 changes: 125 additions & 0 deletions app/src/main/java/com/tamir/offen/OddJob/ChatSelectionActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
package com.tamir.offen.OddJob;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.constraint.solver.widgets.Snapshot;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.Query;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.List;


public class ChatSelectionActivity extends AppCompatActivity{
ListView listViewUsers;

DatabaseReference databaseUsers;
List<User> userList;
private BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat_selection);

listViewUsers = (ListView) findViewById(R.id.listViewUsers);
databaseUsers = FirebaseDatabase.getInstance().getReference("users");
userList = new ArrayList<>();

bottomNavigationView = findViewById(R.id.bottomNavView_Bar);
Menu menu = bottomNavigationView.getMenu();
MenuItem menuItem = menu.getItem(0);
menuItem.setChecked(true);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Intent intent;
switch(item.getItemId()) {
case R.id.nav_messages:
//intent = new Intent(messages.this, messages.class);
//startActivity(intent);
break;

case R.id.nav_map:
intent = new Intent(ChatSelectionActivity.this, map.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
break;

case R.id.nav_add_work:
intent = new Intent(ChatSelectionActivity.this, AddActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
break;

}

return false;
}
});


}
public void getChatterId(DataSnapshot dataSnapshot){
String ref = dataSnapshot.getKey().toString();

}

@Override
public void onStart() {
super.onStart();
databaseUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {
userList.clear();
for(DataSnapshot userSnapshot: dataSnapshot.getChildren()){
String parentId = userSnapshot.getKey();
User user = userSnapshot.getValue(User.class);
user.setParentId(parentId);
userList.add(user);
String chat_id = userSnapshot.getKey();
}
final UserList adapter = new UserList(ChatSelectionActivity.this, userList);
listViewUsers.setAdapter(adapter);
listViewUsers.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {

User user = userList.get(position);

Intent chatIntent = new Intent(ChatSelectionActivity.this, ChattingActivity.class);
chatIntent.putExtra("chat_id",user);
startActivity(chatIntent);

}
});


}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});


}


}
160 changes: 160 additions & 0 deletions app/src/main/java/com/tamir/offen/OddJob/ChattingActivity.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,175 @@
package com.tamir.offen.OddJob;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ServerValue;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ChattingActivity extends AppCompatActivity {

private TextView receiver_name;
private DatabaseReference databaseUsers;
private User user;
private ImageButton sendMessage;
private EditText inputMessage;
private FirebaseAuth mAuth;
private String messageSenderId;
private String messageReceiverId;
private DatabaseReference rootRef;
private RecyclerView userMessagesList;
private final List<Message> messageList = new ArrayList<>();
private LinearLayoutManager linearLayoutManager;
private MessageAdapter messageAdapter;




@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chatting);
user = (User) getIntent().getSerializableExtra("chat_id");
receiver_name = (TextView) findViewById(R.id.receiver_name);
sendMessage = (ImageButton) findViewById(R.id.sendMessage);
rootRef = FirebaseDatabase.getInstance().getReference();
inputMessage = (EditText) findViewById(R.id.inputMessage);
mAuth = FirebaseAuth.getInstance();
messageSenderId = mAuth.getCurrentUser().getUid();
databaseUsers = FirebaseDatabase.getInstance().getReference().child("users");
String parentId = user.getParentId();
messageReceiverId = user.getId();
messageAdapter = new MessageAdapter(messageList);

userMessagesList = (RecyclerView) findViewById(R.id.messages_list_of_users);

linearLayoutManager = new LinearLayoutManager(this);

userMessagesList.setHasFixedSize(true);

userMessagesList.setLayoutManager(linearLayoutManager);

userMessagesList.setAdapter(messageAdapter);

FetchMessages();

databaseUsers.child(parentId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue().toString();
receiver_name.setText(name);
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

sendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SendMessage();
}
});


//receiver_name.setText(chat_id);
//Toast.makeText(ChattingActivity.this, chat_id, Toast.LENGTH_SHORT).show();
}

private void FetchMessages() {
rootRef.child("Messages").child(messageSenderId).child(messageReceiverId).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
Message message = dataSnapshot.getValue(Message.class);
messageList.add(message);
messageAdapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});
}

private void SendMessage() {
String messageText = inputMessage.getText().toString();
if(TextUtils.isEmpty(messageText)){
Toast.makeText(ChattingActivity.this, "Please write your message", Toast.LENGTH_SHORT).show();
}
else{
String message_sender_ref = "Messages/"+messageSenderId+"/"+ messageReceiverId;

String message_receiver_ref = "Messages/"+messageReceiverId+"/"+ messageSenderId;

DatabaseReference user_message_key = rootRef.child("Messages").child(messageSenderId).child(messageReceiverId).push();

String message_push_id = user_message_key.getKey();

Map messageTextBody = new HashMap();

messageTextBody.put("message", messageText);
messageTextBody.put("seen", false);
messageTextBody.put("type", "text");
messageTextBody.put("time", ServerValue.TIMESTAMP);


Map messageBodyDetails = new HashMap();

messageBodyDetails.put(message_sender_ref + "/" + message_push_id, messageTextBody);
messageBodyDetails.put(message_receiver_ref + "/" + message_push_id, messageTextBody);

rootRef.updateChildren(messageBodyDetails, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(@Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference) {
if(databaseError!=null){
Log.d("Chat_log", databaseError.getMessage().toString());
}
inputMessage.setText("");
}
});

}
}
}
2 changes: 1 addition & 1 deletion app/src/main/java/com/tamir/offen/OddJob/DateActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {

switch(item.getItemId()) {
case R.id.nav_messages:
intent = new Intent(DateActivity.this, messages.class);
intent = new Intent(DateActivity.this, ChatSelectionActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.nav_messages:
intent = new Intent(LocationPickerActivity.this, messages.class);
intent = new Intent(LocationPickerActivity.this, ChatSelectionActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
break;
Expand Down
Loading