Skip to content

Commit 2d145ba

Browse files
Initial commit
1 parent b3cfb85 commit 2d145ba

22 files changed

+951
-16
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@
1818
android:theme="@style/Theme.MyApplication9777"
1919
tools:targetApi="31">
2020
<activity
21-
android:name=".MainViewActivity"
21+
android:name=".UpdateActivity"
2222
android:exported="false" />
2323
<activity
2424
android:name=".DetailActivity"
2525
android:exported="false" />
26+
<activity
27+
android:name=".MainViewActivity"
28+
android:exported="false" />
2629
<activity
2730
android:name=".ViewActivity"
2831
android:exported="false" />
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package com.example.myapplication9777;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.ImageView;
7+
import android.widget.TextView;
8+
import android.widget.Toast;
9+
10+
import androidx.appcompat.app.AppCompatActivity;
11+
12+
import com.bumptech.glide.Glide;
13+
import com.github.clans.fab.FloatingActionButton;
14+
import com.google.android.gms.tasks.OnSuccessListener;
15+
import com.google.firebase.database.DatabaseReference;
16+
import com.google.firebase.database.FirebaseDatabase;
17+
import com.google.firebase.storage.FirebaseStorage;
18+
import com.google.firebase.storage.StorageReference;
19+
20+
public class DetailActivity extends AppCompatActivity {
21+
22+
TextView detailName, detailRegNo, detailAge, detailGender, detailContact, detailParent;
23+
ImageView detailImage;
24+
25+
FloatingActionButton deleteBtn, editBtn;
26+
String key = "";
27+
String imageUrl = "";
28+
29+
@Override
30+
protected void onCreate(Bundle savedInstanceState) {
31+
super.onCreate(savedInstanceState);
32+
setContentView(R.layout.activity_detail);
33+
34+
detailName = findViewById(R.id.detailName);
35+
detailRegNo = findViewById(R.id.detialRegNo);
36+
detailAge = findViewById(R.id.detialAge);
37+
detailGender = findViewById(R.id.detialGender);
38+
detailContact = findViewById(R.id.detialContact);
39+
detailParent = findViewById(R.id.detialParentNo);
40+
detailImage = findViewById(R.id.detailImage);
41+
deleteBtn = findViewById(R.id.deleteBtn);
42+
editBtn = findViewById(R.id.editBtn);
43+
44+
Bundle bundle = getIntent().getExtras();
45+
if (bundle != null) {
46+
detailName.setText(bundle.getString("Name"));
47+
detailRegNo.setText(bundle.getString("RegNo"));
48+
detailAge.setText(String.valueOf(bundle.getInt("Age"))); // Convert to String
49+
detailGender.setText(bundle.getString("Gender"));
50+
detailContact.setText(String.valueOf(bundle.getInt("ContactNo"))); // Convert to String
51+
detailParent.setText(String.valueOf(bundle.getInt("ParentNo"))); // Convert to String
52+
key = bundle.getString("Key");
53+
imageUrl = bundle.getString("Image");
54+
Glide.with(this).load(bundle.getString("Image")).into(detailImage);
55+
}
56+
57+
deleteBtn.setOnClickListener(new View.OnClickListener() {
58+
@Override
59+
public void onClick(View v) {
60+
final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Students");
61+
FirebaseStorage storage = FirebaseStorage.getInstance();
62+
63+
StorageReference storageReference = storage.getReferenceFromUrl(imageUrl);
64+
storageReference.delete().addOnSuccessListener(new OnSuccessListener<Void>() {
65+
@Override
66+
public void onSuccess(Void unused) {
67+
reference.child(key).removeValue();
68+
Toast.makeText(DetailActivity.this, "Deleted!", Toast.LENGTH_SHORT).show();
69+
startActivity(new Intent(getApplicationContext(), MainViewActivity.class));
70+
finish();
71+
}
72+
});
73+
}
74+
});
75+
76+
editBtn.setOnClickListener(new View.OnClickListener() {
77+
@Override
78+
public void onClick(View v) {
79+
Intent intent = new Intent(DetailActivity.this, UpdateActivity.class)
80+
.putExtra("Name", detailName.getText().toString())
81+
.putExtra("RegNo", detailRegNo.getText().toString())
82+
.putExtra("Age", Integer.parseInt(detailAge.getText().toString()))
83+
.putExtra("Gender", detailGender.getText().toString())
84+
.putExtra("ContactNo", Integer.parseInt(detailContact.getText().toString()))
85+
.putExtra("ParentNo", Integer.parseInt(detailParent.getText().toString()))
86+
.putExtra("Image", imageUrl)
87+
.putExtra("Key", key);
88+
89+
startActivity(intent);
90+
}
91+
});
92+
}
93+
}

app/src/main/java/com/example/myapplication9777/LogIn.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void onClick(View v) {
5151
public void onSuccess(AuthResult authResult) {
5252
Toast.makeText(LogIn.this, "Logged in as "+loginName.getText().toString(), Toast.LENGTH_SHORT).show();
5353
finish();
54-
Intent intent = new Intent(LogIn.this, MainViewActivity.class);
54+
Intent intent = new Intent(LogIn.this, MainMenu.class);
5555
intent.putExtra("USER_NAME", name);
5656
intent.putExtra("USER_EMAIL", email);
5757
startActivity(intent);

app/src/main/java/com/example/myapplication9777/MainMenu.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,10 @@ protected void onCreate(Bundle savedInstanceState) {
4545
user_email = findViewById(R.id.email);
4646
signoutBtn = findViewById(R.id.signOutBtn);
4747

48+
// Initialize fab here
49+
fab = findViewById(R.id.fab);
4850

51+
//Later I need to pass the data to those below by storing them it in the Login
4952
String userName = getIntent().getStringExtra("USER_NAME");
5053
String userEmail = getIntent().getStringExtra("USER_EMAIL");
5154

@@ -59,10 +62,19 @@ public void onClick(View v) {
5962
}
6063
});
6164

62-
63-
65+
// Check if fab is not null before setting OnClickListener
66+
if (fab != null) {
67+
fab.setOnClickListener(new View.OnClickListener() {
68+
@Override
69+
public void onClick(View v) {
70+
Intent intent = new Intent(MainMenu.this, MainViewActivity.class);
71+
startActivity(intent);
72+
}
73+
});
74+
}
6475
}
6576

77+
6678
private void signOut() {
6779
auth.signOut();
6880
Toast.makeText(this, "Signed out Successfully!", Toast.LENGTH_SHORT).show();
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
package com.example.myapplication9777;
2+
3+
import androidx.annotation.NonNull;
4+
import androidx.appcompat.app.AlertDialog;
5+
import androidx.appcompat.app.AppCompatActivity;
6+
import androidx.appcompat.widget.SearchView;
7+
import androidx.recyclerview.widget.GridLayoutManager;
8+
import androidx.recyclerview.widget.RecyclerView;
9+
10+
import android.content.Intent;
11+
import android.os.Bundle;
12+
import android.view.View;
13+
14+
import com.google.android.material.floatingactionbutton.FloatingActionButton;
15+
import com.google.firebase.database.DataSnapshot;
16+
import com.google.firebase.database.DatabaseError;
17+
import com.google.firebase.database.DatabaseReference;
18+
import com.google.firebase.database.FirebaseDatabase;
19+
import com.google.firebase.database.ValueEventListener;
20+
21+
import java.util.ArrayList;
22+
import java.util.List;
23+
24+
public class MainViewActivity extends AppCompatActivity {
25+
26+
FloatingActionButton fabView, fabMainMenu;
27+
RecyclerView recyclerView;
28+
List<DataClass> datalist;
29+
DatabaseReference databaseReference;
30+
ValueEventListener eventListener;
31+
SearchView searchView;
32+
MyAdapter adapter;
33+
34+
@Override
35+
protected void onCreate(Bundle savedInstanceState) {
36+
super.onCreate(savedInstanceState);
37+
setContentView(R.layout.activity_main_view);
38+
39+
fabView = findViewById(R.id.fabView);
40+
fabMainMenu = findViewById(R.id.fabMainMenu);
41+
recyclerView = findViewById(R.id.recyclerView);
42+
searchView = findViewById(R.id.search);
43+
searchView.clearFocus();
44+
45+
GridLayoutManager gridLayoutManager = new GridLayoutManager(MainViewActivity.this, 1);
46+
recyclerView.setLayoutManager(gridLayoutManager);
47+
48+
AlertDialog.Builder builder = new AlertDialog.Builder(MainViewActivity.this);
49+
builder.setCancelable(false);
50+
builder.setView(R.layout.progress_layout);
51+
AlertDialog dialog = builder.create();
52+
dialog.show();
53+
54+
datalist = new ArrayList<>();
55+
56+
adapter = new MyAdapter(MainViewActivity.this, datalist);
57+
recyclerView.setAdapter(adapter);
58+
59+
databaseReference = FirebaseDatabase.getInstance().getReference("Students");
60+
dialog.show();
61+
62+
eventListener = databaseReference.addValueEventListener(new ValueEventListener() {
63+
@Override
64+
public void onDataChange(@NonNull DataSnapshot snapshot) {
65+
datalist.clear();
66+
for (DataSnapshot itemSnapShot: snapshot.getChildren()) {
67+
DataClass dataClass = itemSnapShot.getValue(DataClass.class);
68+
dataClass.setKey(itemSnapShot.getKey());
69+
datalist.add(dataClass);
70+
}
71+
adapter.notifyDataSetChanged();
72+
dialog.dismiss();
73+
}
74+
75+
@Override
76+
public void onCancelled(@NonNull DatabaseError error) {
77+
dialog.dismiss();
78+
}
79+
});
80+
81+
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
82+
@Override
83+
public boolean onQueryTextSubmit(String query) {
84+
return false;
85+
}
86+
87+
@Override
88+
public boolean onQueryTextChange(String newText) {
89+
searchList(newText);
90+
return true;
91+
}
92+
});
93+
94+
fabView.setOnClickListener(new View.OnClickListener() {
95+
@Override
96+
public void onClick(View v) {
97+
Intent intent = new Intent(MainViewActivity.this, UploadActivity.class);
98+
startActivity(intent);
99+
}
100+
});
101+
102+
fabMainMenu.setOnClickListener(new View.OnClickListener() {
103+
@Override
104+
public void onClick(View v) {
105+
Intent intent = new Intent(MainViewActivity.this, MainMenu.class);
106+
startActivity(intent);
107+
}
108+
});
109+
}
110+
111+
public void searchList(String text){
112+
ArrayList<DataClass> searchList = new ArrayList<>();
113+
for (DataClass dataClass: datalist){
114+
if (dataClass.getStdName().toLowerCase().contains(text.toLowerCase())){
115+
searchList.add(dataClass);
116+
}
117+
}
118+
adapter.searchDataList(searchList);
119+
}
120+
}
121+
122+
123+
124+
125+
126+
127+
128+
129+
130+
131+
132+
133+
134+
135+
136+
137+
138+
139+
140+
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package com.example.myapplication9777;
2+
3+
import android.content.Context;
4+
import android.content.Intent;
5+
import android.view.LayoutInflater;
6+
import android.view.View;
7+
import android.view.ViewGroup;
8+
import android.widget.ImageView;
9+
import android.widget.TextView;
10+
11+
import androidx.annotation.NonNull;
12+
import androidx.cardview.widget.CardView;
13+
import androidx.recyclerview.widget.RecyclerView;
14+
15+
import com.bumptech.glide.Glide;
16+
17+
import java.util.ArrayList;
18+
import java.util.List;
19+
20+
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> {
21+
22+
private Context context;
23+
private List<DataClass> datalist;
24+
25+
public MyAdapter(Context context, List<DataClass> datalist) {
26+
this.context = context;
27+
this.datalist = datalist;
28+
}
29+
30+
@NonNull
31+
@Override
32+
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
33+
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_item, parent, false);
34+
return new MyViewHolder(view);
35+
}
36+
37+
@Override
38+
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
39+
Glide.with(context).load(datalist.get(position).getDataImage()).into(holder.recImage);
40+
holder.recName.setText(datalist.get(position).getStdName());
41+
holder.recRegNo.setText(datalist.get(position).getStdRegNo());
42+
43+
holder.recCard.setOnClickListener(new View.OnClickListener() {
44+
@Override
45+
public void onClick(View v) {
46+
Intent intent = new Intent(context, DetailActivity.class);
47+
intent.putExtra("Image", datalist.get(holder.getAdapterPosition()).getDataImage());
48+
intent.putExtra("Name", datalist.get(holder.getAdapterPosition()).getStdName());
49+
intent.putExtra("RegNo", datalist.get(holder.getAdapterPosition()).getStdRegNo());
50+
intent.putExtra("Age", datalist.get(holder.getAdapterPosition()).getStdAge());
51+
intent.putExtra("Gender", datalist.get(holder.getAdapterPosition()).getStdGender());
52+
intent.putExtra("ContactNo", datalist.get(holder.getAdapterPosition()).getStdTeleNo());
53+
intent.putExtra("ParentNo", datalist.get(holder.getAdapterPosition()).getStdParTeleNo());
54+
intent.putExtra("Key", datalist.get(holder.getAdapterPosition()).getKey());
55+
56+
57+
context.startActivity(intent);
58+
}
59+
});
60+
}
61+
62+
@Override
63+
public int getItemCount() {
64+
return datalist.size();
65+
}
66+
67+
public void searchDataList(ArrayList<DataClass> searchList){
68+
datalist = searchList;
69+
notifyDataSetChanged();
70+
}
71+
}
72+
73+
class MyViewHolder extends RecyclerView.ViewHolder{
74+
75+
ImageView recImage;
76+
TextView recRegNo, recName;
77+
CardView recCard;
78+
79+
public MyViewHolder(@NonNull View itemView) {
80+
super(itemView);
81+
82+
recImage = itemView.findViewById(R.id.recImage);
83+
recRegNo = itemView.findViewById(R.id.recRegNo);
84+
recName = itemView.findViewById(R.id.recName);
85+
recCard = itemView.findViewById(R.id.recCard);
86+
}
87+
}

0 commit comments

Comments
 (0)