-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChatsActivity.java
131 lines (112 loc) · 4.43 KB
/
ChatsActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package change.com.animationwithsplash;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.material.tabs.TabLayout;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
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.ValueEventListener;
import java.util.ArrayList;
import change.com.animationwithsplash.Fragments.ChatsFragment;
import change.com.animationwithsplash.Fragments.ProfileFragment;
import change.com.animationwithsplash.Fragments.UsersFragment;
import change.com.animationwithsplash.Models.User;
public class ChatsActivity extends AppCompatActivity {
ImageView Profile_Image;
TextView Username;
FirebaseUser firebaseUser;
DatabaseReference reference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chats);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("");
Profile_Image = findViewById(R.id.profile_image);
Username = findViewById(R.id.username);
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
Username.setText(user.getUsername());
Profile_Image.setImageResource(R.drawable.ic_account3);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
TabLayout tabLayout = findViewById(R.id.tab_layout);
ViewPager viewPager = findViewById(R.id.view_pager);
ViewPageAdapter viewPageAdapter = new ViewPageAdapter(getSupportFragmentManager());
viewPageAdapter.addFragment(new ChatsFragment(),"Chats");
viewPageAdapter.addFragment(new UsersFragment(),"Users");
viewPageAdapter.addFragment(new ProfileFragment(),"Profile");
viewPager.setAdapter(viewPageAdapter);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch(item.getItemId())
{
case R.id.logout:
FirebaseAuth.getInstance().signOut();
startActivity(new Intent(ChatsActivity.this,Login.class));
finish();
return true;
}
return false;
}
class ViewPageAdapter extends FragmentPagerAdapter
{
private ArrayList<Fragment> fragments;
private ArrayList<String> titles;
ViewPageAdapter(FragmentManager fm)
{
super(fm);
this.fragments = new ArrayList<>();
this.titles = new ArrayList<>();
}
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
public void addFragment(Fragment fragment,String title)
{
fragments.add(fragment);
titles.add(title);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}