Skip to content

Commit 93cdf98

Browse files
Profile Image added at Action Bar
1 parent 6db167e commit 93cdf98

File tree

10 files changed

+236
-71
lines changed

10 files changed

+236
-71
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Multi-user-Real-Time-Chat-Application-master/.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Multi-user-Real-Time-Chat-Application-master/.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/assistant/android/bolchal/ChatAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626

2727
public class ChatAdapter extends ArrayAdapter<Message> {
2828

29-
30-
3129
public ChatAdapter(Context context, int resource, List<Message> objects){
3230
super(context,resource,objects);
3331
}
@@ -43,6 +41,7 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup
4341

4442
String user = Objects.requireNonNull(FirebaseAuth.getInstance().getCurrentUser()).getDisplayName();
4543

44+
4645
boolean isPhotoAvailable = message.getPhotoUrl()!=null;
4746
boolean isTimeAvailable = message.getTime()!=null;
4847

@@ -69,6 +68,7 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup
6968
timeTxtView.setText(message.getTime());
7069
} else timeTxtView.setVisibility(View.GONE);
7170

71+
7272
AuthorTxtView.setText(message.getName());
7373

7474
return convertView;

app/src/main/java/com/assistant/android/bolchal/MainActivity.java

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import androidx.annotation.NonNull;
44
import androidx.annotation.Nullable;
5+
import androidx.appcompat.app.ActionBar;
56
import androidx.appcompat.app.AppCompatActivity;
67
import androidx.constraintlayout.widget.ConstraintLayout;
78
import androidx.recyclerview.widget.RecyclerView;
@@ -59,7 +60,7 @@
5960
import java.util.Objects;
6061
import java.util.concurrent.TimeUnit;
6162

62-
public class MainActivity extends Activity {
63+
public class MainActivity extends AppCompatActivity {
6364

6465
private ListView mListView;
6566
private ConstraintLayout sendLayout;
@@ -95,6 +96,12 @@ protected void onCreate(Bundle savedInstanceState) {
9596
super.onCreate(savedInstanceState);
9697
setContentView(R.layout.activity_main);
9798

99+
this.getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
100+
getSupportActionBar().setDisplayShowCustomEnabled(true);
101+
getSupportActionBar().setCustomView(R.layout.main_action_bar);
102+
//getSupportActionBar().setElevation(0);
103+
View view = getSupportActionBar().getCustomView();
104+
98105
mUserName = ANONYMOUS;
99106

100107
mListView = findViewById(R.id.recycleView);
@@ -144,6 +151,7 @@ public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
144151
mChatAdapter = new ChatAdapter(this,R.layout.chat_layout_page,arrayList);
145152
mListView.setAdapter(mChatAdapter);
146153

154+
147155
/**
148156
* When Text changes in message Box
149157
*/
@@ -245,25 +253,28 @@ public void onCancelled(@NonNull DatabaseError error) {
245253
mMessageDatabaseReference.addChildEventListener(mChildEventListener);
246254

247255
//logout when settingIcon is clicked
248-
settingImg.setOnClickListener(view -> {
249-
PopupMenu popupMenu = new PopupMenu(MainActivity.this,settingImg);
250-
MainActivity.this.getMenuInflater().inflate(R.menu.main_page_menu, popupMenu.getMenu());
251-
252-
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
253-
@Override
254-
public boolean onMenuItemClick(MenuItem menuItem) {
255-
switch (menuItem.getItemId()){
256-
case R.id.sign_out:
257-
//signOut
258-
FirebaseAuth.getInstance().signOut();
259-
startActivity(new Intent(MainActivity.this,LogIn_page.class));
260-
return true;
261-
default:
262-
return false;
256+
settingImg.setOnClickListener(new View.OnClickListener() {
257+
@Override
258+
public void onClick(View view) {
259+
PopupMenu popupMenu = new PopupMenu(MainActivity.this, settingImg);
260+
MainActivity.this.getMenuInflater().inflate(R.menu.main_page_menu, popupMenu.getMenu());
261+
262+
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
263+
@Override
264+
public boolean onMenuItemClick(MenuItem menuItem) {
265+
switch (menuItem.getItemId()) {
266+
case R.id.sign_out:
267+
//signOut
268+
FirebaseAuth.getInstance().signOut();
269+
startActivity(new Intent(MainActivity.this, LogIn_page.class));
270+
return true;
271+
default:
272+
return false;
273+
}
263274
}
264-
}
265-
});
266-
popupMenu.show();
275+
});
276+
popupMenu.show();
277+
}
267278
});
268279

269280
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<vector android:height="124dp" android:tint="#FFFFFF"
2+
android:viewportHeight="24" android:viewportWidth="24"
3+
android:width="124dp" xmlns:android="http://schemas.android.com/apk/res/android">
4+
<path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
5+
</vector>

app/src/main/res/layout/activity_main.xml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
xmlns:tools="http://schemas.android.com/tools"
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
7-
tools:context=".MainActivity">
8-
9-
<include
10-
android:layout_width="match_parent"
11-
android:layout_height="wrap_content"
12-
layout="@layout/main_action_bar"
13-
app:layout_constraintTop_toTopOf="parent"
14-
app:layout_constraintStart_toStartOf="parent"
15-
app:layout_constraintEnd_toEndOf="parent" />
16-
7+
tools:context=".MainActivity"
8+
android:paddingTop="16dp"
9+
android:paddingBottom="16dp"
10+
android:paddingStart="6dp"
11+
android:paddingEnd="6dp">
1712

1813
<ListView
1914
android:id="@+id/recycleView"
2015
android:layout_width="match_parent"
21-
android:layout_height="wrap_content"
22-
android:layout_margin="10dp"
16+
android:layout_height="match_parent"
2317
android:divider="@android:color/transparent"
2418
android:stackFromBottom="true"
25-
app:layout_constraintBottom_toTopOf="@+id/bottomLayout"
26-
app:layout_constraintEnd_toEndOf="parent"
27-
app:layout_constraintStart_toStartOf="parent"
28-
android:transcriptMode="alwaysScroll"/>
19+
android:transcriptMode="alwaysScroll"
20+
android:layout_above="@id/l2"/>
21+
22+
<androidx.constraintlayout.widget.ConstraintLayout
23+
android:layout_width="match_parent"
24+
android:layout_height="wrap_content"
25+
android:id="@+id/l2"
26+
android:layout_alignParentBottom="true"
27+
android:layout_alignParentStart="true">
2928

3029
<androidx.constraintlayout.widget.ConstraintLayout
3130
android:id="@+id/bottomLayout"
3231
android:layout_width="0dp"
3332
app:layout_constraintHorizontal_weight="1"
3433
android:layout_height="54dp"
35-
android:layout_margin="10dp"
34+
android:layout_marginEnd="10dp"
3635
android:background="@drawable/rounded_border_rectangular_box"
3736
app:layout_constraintBottom_toBottomOf="parent"
3837
app:layout_constraintEnd_toStartOf="@+id/sendContainerView"
@@ -86,5 +85,6 @@
8685
app:layout_constraintTop_toTopOf="@id/sendContainerView" />
8786

8887
</androidx.constraintlayout.widget.ConstraintLayout>
88+
</androidx.constraintlayout.widget.ConstraintLayout>
8989

90-
</androidx.constraintlayout.widget.ConstraintLayout>
90+
</RelativeLayout>
Lines changed: 53 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
xmlns:tools="http://schemas.android.com/tools"
55
android:layout_width="match_parent"
@@ -9,39 +9,62 @@
99
android:layout_marginEnd="16dp"
1010
android:padding="2dp">
1111

12-
<TextView
13-
android:id="@+id/nameTextView"
12+
<androidx.constraintlayout.widget.ConstraintLayout
1413
android:layout_width="wrap_content"
1514
android:layout_height="wrap_content"
16-
android:layout_weight="0"
17-
android:textAppearance="?android:attr/textAppearanceSmall"
18-
tools:text="Name"/>
15+
app:layout_constraintStart_toStartOf="parent"
16+
app:layout_constraintTop_toTopOf="parent"
17+
app:layout_constraintBottom_toBottomOf="parent"
18+
android:background="#d4d1cb"
19+
android:padding="6dp">
1920

20-
<ImageView
21-
android:id="@+id/photoImageView"
22-
android:layout_width="match_parent"
23-
android:layout_height="wrap_content"
24-
android:adjustViewBounds="true"
25-
android:contentDescription="@string/image_sent"
26-
android:layout_below="@id/nameTextView"/>
21+
<TextView
22+
android:id="@+id/nameTextView"
23+
android:layout_width="wrap_content"
24+
android:layout_height="wrap_content"
25+
android:layout_weight="0"
26+
android:textAppearance="?android:attr/textAppearanceSmall"
27+
tools:text="Name"
28+
android:textColor="@color/teal_700"
29+
app:layout_constraintStart_toStartOf="parent"
30+
app:layout_constraintTop_toTopOf="parent"/>
2731

28-
<TextView
29-
android:id="@+id/messageTextView"
30-
android:layout_width="wrap_content"
31-
android:layout_height="wrap_content"
32-
android:layout_weight="0"
33-
android:textAppearance="?android:attr/textAppearanceLarge"
34-
tools:text="Message"
35-
android:layout_below="@id/nameTextView"/>
32+
<ImageView
33+
android:id="@+id/photoImageView"
34+
android:layout_width="match_parent"
35+
android:layout_height="wrap_content"
36+
android:adjustViewBounds="true"
37+
android:contentDescription="@string/image_sent"
38+
android:layout_below="@id/nameTextView"
39+
app:layout_constraintStart_toStartOf="parent"
40+
app:layout_constraintTop_toBottomOf="@id/nameTextView"/>
41+
42+
<TextView
43+
android:id="@+id/messageTextView"
44+
android:layout_width="wrap_content"
45+
android:layout_height="wrap_content"
46+
android:layout_weight="0"
47+
android:textAppearance="?android:attr/textAppearanceLarge"
48+
tools:text="Message"
49+
android:layout_below="@id/nameTextView"
50+
app:layout_constraintStart_toStartOf="parent"
51+
app:layout_constraintTop_toBottomOf="@id/nameTextView"/>
52+
53+
<TextView
54+
android:id="@+id/timeTextView"
55+
android:layout_width="wrap_content"
56+
android:layout_height="wrap_content"
57+
android:textAppearance="?android:attr/textAppearanceSmall"
58+
tools:text="12:25 AM"
59+
android:layout_alignParentEnd="true"
60+
android:layout_alignParentBottom="true"
61+
app:layout_constraintEnd_toEndOf="parent"
62+
app:layout_constraintBottom_toBottomOf="parent"
63+
app:layout_constraintTop_toBottomOf="@id/messageTextView"/>
64+
65+
66+
</androidx.constraintlayout.widget.ConstraintLayout>
3667

37-
<TextView
38-
android:id="@+id/timeTextView"
39-
android:layout_width="wrap_content"
40-
android:layout_height="wrap_content"
41-
android:textAppearance="?android:attr/textAppearanceSmall"
42-
tools:text="12:25 AM"
43-
android:layout_alignParentEnd="true"
44-
android:layout_alignParentBottom="true"/>
4568

4669

47-
</RelativeLayout>
70+
</androidx.constraintlayout.widget.ConstraintLayout>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:layout_width="match_parent"
6+
android:layout_height="48dp"
7+
android:paddingStart="12dp"
8+
android:paddingEnd="12dp"
9+
android:paddingBottom = "5dp">
10+
11+
<com.mikhaellopez.circularimageview.CircularImageView
12+
android:id="@+id/userProfileImg"
13+
app:civ_border_width="2dp"
14+
android:layout_width="40dp"
15+
android:layout_height="40dp"
16+
android:layout_marginEnd="15dp"
17+
android:src="@drawable/placeholder"
18+
app:layout_constraintBottom_toBottomOf="parent"
19+
app:layout_constraintStart_toStartOf="parent"
20+
app:layout_constraintTop_toTopOf="parent" />
21+
22+
<TextView
23+
android:id="@+id/userName"
24+
android:layout_width="wrap_content"
25+
android:layout_height="wrap_content"
26+
android:layout_marginStart="15dp"
27+
android:textColor="@color/white"
28+
android:textSize="18sp"
29+
app:layout_constraintBottom_toBottomOf="parent"
30+
app:layout_constraintStart_toEndOf="@id/userProfileImg"
31+
app:layout_constraintTop_toTopOf="parent"
32+
tools:text="User_Name" />
33+
34+
<ImageView
35+
android:id="@+id/action_menu_presenter"
36+
android:layout_width="30dp"
37+
android:layout_height="30dp"
38+
android:src="@drawable/ic_baseline_settings_24"
39+
app:layout_constraintBottom_toBottomOf="parent"
40+
app:layout_constraintEnd_toEndOf="parent"
41+
app:layout_constraintTop_toTopOf="parent"
42+
/>
43+
44+
</androidx.constraintlayout.widget.ConstraintLayout>

0 commit comments

Comments
 (0)