-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDashboardActivity.java
More file actions
153 lines (130 loc) · 5.98 KB
/
Copy pathDashboardActivity.java
File metadata and controls
153 lines (130 loc) · 5.98 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.codewithharry.firebase;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;
import com.codewithharry.firebase.notifications.Token;
import com.google.android.gms.tasks.Task;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.iid.internal.FirebaseInstanceIdInternal;
import com.google.firebase.installations.FirebaseInstallations;
import com.google.firebase.installations.InstallationTokenResult;
public class DashboardActivity extends AppCompatActivity {
//FireBase aUth
FirebaseAuth firebaseAuth;
ActionBar actionBar;
String mUID;
private final BottomNavigationView.OnNavigationItemSelectedListener selectedListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
//handle item clicks
switch (menuItem.getItemId()) {
case R.id.nav_home:
//home fragment transaction
actionBar.setTitle("Home");//change actionBar title
HomeFragment fragment1 = new HomeFragment();
FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
ft1.replace(R.id.content, fragment1, "");
ft1.commit();
return true;
case R.id.nav_profile:
//profile fragment transaction
actionBar.setTitle("Profile");//change actionBar title
ProfileFragment fragment2 = new ProfileFragment();
FragmentTransaction ft2 = getSupportFragmentManager().beginTransaction();
ft2.replace(R.id.content, fragment2, "");
ft2.commit();
return true;
case R.id.nav_users:
//users fragment transaction
actionBar.setTitle("Users");//change actionBar title
UsersFragment fragment3 = new UsersFragment();
FragmentTransaction ft3 = getSupportFragmentManager().beginTransaction();
ft3.replace(R.id.content, fragment3, "");
ft3.commit();
return true;
case R.id.nav_chat:
//users fragment transaction
actionBar.setTitle("Chats");//change actionBar title
ChatListFragment fragment4 = new ChatListFragment();
FragmentTransaction ft4 = getSupportFragmentManager().beginTransaction();
ft4.replace(R.id.content, fragment4, "");
ft4.commit();
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
//ActionBar and its title
actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setTitle("Profile");
//init
firebaseAuth = FirebaseAuth.getInstance();
//Init views
//Bottom Navigation
BottomNavigationView navigationView = findViewById(R.id.navigation);
navigationView.setOnNavigationItemSelectedListener(selectedListener);
//Home fragment transaction(default, on start)
actionBar.setTitle("Home");//change actionBar title
HomeFragment fragment1 = new HomeFragment();
FragmentTransaction ft1 = getSupportFragmentManager().beginTransaction();
ft1.replace(R.id.content, fragment1, "");
ft1.commit();
checkUserStatus();
}
@Override
protected void onResume() {
checkUserStatus();
super.onResume();
}
public void updateToken(Task<InstallationTokenResult> token) {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Tokens");
Token mToken = new Token(token);
ref.child(mUID).setValue(mToken);
}
private void checkUserStatus() {
//Get current user
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
//User is signed in stay here
//set email of logged in user
//mProfileTv.setText(user.getEmail());
mUID = user.getUid();
SharedPreferences sp = getSharedPreferences("SP_USER", MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Current_USERID", mUID);
editor.apply();
//update token
updateToken(FirebaseInstallations.getInstance().getToken(true));
} else {
//User not signed in go to main activity
startActivity(new Intent(DashboardActivity.this, MainActivity.class));
finish();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
@Override
protected void onStart() {
//check on start of app
checkUserStatus();
super.onStart();
}
}