Skip to content

Commit b3cfb85

Browse files
first
1 parent 136127d commit b3cfb85

20 files changed

+582
-137
lines changed

.idea/deploymentTargetDropDown.xml

Lines changed: 0 additions & 17 deletions
This file was deleted.

app/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@ dependencies {
3939
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
4040
implementation("com.google.firebase:firebase-auth:22.3.0")
4141
implementation("com.google.android.gms:play-services-auth:20.7.0")
42+
implementation("com.google.firebase:firebase-database:20.3.0")
43+
implementation("com.google.firebase:firebase-storage:20.3.0")
4244
testImplementation("junit:junit:4.13.2")
4345
androidTestImplementation("androidx.test.ext:junit:1.1.5")
4446
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
47+
implementation("com.github.bumptech.glide:glide:4.14.2")
48+
annotationProcessor("com.github.bumptech.glide:compiler:4.14.2")
49+
implementation("com.github.clans:fab:1.6.4")
4550
}

app/src/main/AndroidManifest.xml

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
xmlns:tools="http://schemas.android.com/tools">
44

55
<uses-permission android:name="android.permission.INTERNET" />
6+
<uses-permission
7+
android:name="android.permission.READ_EXTERNAL_STORAGE"
8+
android:maxSdkVersion="32" />
69

710
<application
811
android:allowBackup="true"
@@ -14,6 +17,21 @@
1417
android:supportsRtl="true"
1518
android:theme="@style/Theme.MyApplication9777"
1619
tools:targetApi="31">
20+
<activity
21+
android:name=".MainViewActivity"
22+
android:exported="false" />
23+
<activity
24+
android:name=".DetailActivity"
25+
android:exported="false" />
26+
<activity
27+
android:name=".ViewActivity"
28+
android:exported="false" />
29+
<activity
30+
android:name=".DetailsActivity"
31+
android:exported="false" />
32+
<activity
33+
android:name=".UploadActivity"
34+
android:exported="false" />
1735
<activity
1836
android:name=".MainMenu"
1937
android:exported="false" />
@@ -23,9 +41,6 @@
2341
<activity
2442
android:name=".SignUp"
2543
android:exported="false" />
26-
<activity
27-
android:name=".LoginMenu"
28-
android:exported="false" />
2944
<activity
3045
android:name=".MainActivity"
3146
android:exported="true">
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.example.myapplication9777;
2+
3+
public class DataClass {
4+
5+
private String stdRegNo;
6+
private String stdName;
7+
private Integer stdAge;
8+
private String stdGender;
9+
private Integer stdTeleNo;
10+
private Integer stdParTeleNo;
11+
private String dataImage;
12+
private String key;
13+
14+
public String getKey() {
15+
return key;
16+
}
17+
public void setKey(String key) {
18+
this.key = key;
19+
}
20+
21+
public String getStdRegNo() {
22+
return stdRegNo;
23+
}
24+
25+
public String getStdName() {
26+
return stdName;
27+
}
28+
29+
public Integer getStdAge() {
30+
return stdAge;
31+
}
32+
33+
public String getStdGender() {
34+
return stdGender;
35+
}
36+
37+
public Integer getStdTeleNo() {
38+
return stdTeleNo;
39+
}
40+
41+
public Integer getStdParTeleNo() {
42+
return stdParTeleNo;
43+
}
44+
45+
public String getDataImage() {return dataImage;}
46+
47+
public DataClass(String stdRegNo, String stdName, Integer stdAge, String stdGender, Integer stdTeleNo, Integer stdParTeleNo,
48+
String dataImage) {
49+
this.stdRegNo = stdRegNo;
50+
this.stdName = stdName;
51+
this.stdAge = stdAge;
52+
this.stdGender = stdGender;
53+
this.stdTeleNo = stdTeleNo;
54+
this.stdParTeleNo = stdParTeleNo;
55+
this.dataImage = dataImage;
56+
}
57+
58+
public DataClass() {
59+
60+
}
61+
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,8 @@ public void onClick(View v) {
5050
@Override
5151
public void onSuccess(AuthResult authResult) {
5252
Toast.makeText(LogIn.this, "Logged in as "+loginName.getText().toString(), Toast.LENGTH_SHORT).show();
53-
//startActivity(new Intent(LogIn.this, MainMenu.class));
5453
finish();
55-
Intent intent = new Intent(LogIn.this, MainMenu.class);
54+
Intent intent = new Intent(LogIn.this, MainViewActivity.class);
5655
intent.putExtra("USER_NAME", name);
5756
intent.putExtra("USER_EMAIL", email);
5857
startActivity(intent);

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import androidx.appcompat.app.AppCompatActivity;
44

55
import android.content.Intent;
6+
import android.net.Uri;
67
import android.os.Bundle;
78
import android.os.Handler;
89
import android.view.WindowManager;
10+
import android.widget.VideoView;
911

1012
public class MainActivity extends AppCompatActivity {
1113

@@ -17,6 +19,7 @@ protected void onCreate(Bundle savedInstanceState) {
1719
super.onCreate(savedInstanceState);
1820
setContentView(R.layout.activity_main);
1921

22+
2023
new Handler().postDelayed(new Runnable(){
2124

2225
@Override

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package com.example.myapplication9777;
22

3+
import androidx.annotation.NonNull;
4+
import androidx.appcompat.app.AlertDialog;
35
import androidx.appcompat.app.AppCompatActivity;
6+
import androidx.cardview.widget.CardView;
7+
import androidx.recyclerview.widget.GridLayoutManager;
8+
import androidx.recyclerview.widget.RecyclerView;
49

510
import android.content.Intent;
611
import android.os.Bundle;
@@ -9,7 +14,16 @@
914
import android.widget.TextView;
1015
import android.widget.Toast;
1116

17+
import com.google.android.material.floatingactionbutton.FloatingActionButton;
1218
import com.google.firebase.auth.FirebaseAuth;
19+
import com.google.firebase.database.DataSnapshot;
20+
import com.google.firebase.database.DatabaseError;
21+
import com.google.firebase.database.DatabaseReference;
22+
import com.google.firebase.database.FirebaseDatabase;
23+
import com.google.firebase.database.ValueEventListener;
24+
25+
import java.util.ArrayList;
26+
import java.util.List;
1327

1428
public class MainMenu extends AppCompatActivity {
1529

@@ -18,6 +32,7 @@ public class MainMenu extends AppCompatActivity {
1832
public TextView user_name, user_email;
1933

2034
private Button signoutBtn;
35+
private FloatingActionButton fab;
2136

2237
@Override
2338
protected void onCreate(Bundle savedInstanceState) {
@@ -30,6 +45,7 @@ protected void onCreate(Bundle savedInstanceState) {
3045
user_email = findViewById(R.id.email);
3146
signoutBtn = findViewById(R.id.signOutBtn);
3247

48+
3349
String userName = getIntent().getStringExtra("USER_NAME");
3450
String userEmail = getIntent().getStringExtra("USER_EMAIL");
3551

@@ -43,6 +59,8 @@ public void onClick(View v) {
4359
}
4460
});
4561

62+
63+
4664
}
4765

4866
private void signOut() {
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
package com.example.myapplication9777;
2+
3+
import android.app.Activity;
4+
import android.app.AlertDialog;
5+
import android.content.Intent;
6+
import android.net.Uri;
7+
import android.os.Bundle;
8+
import android.view.View;
9+
import android.widget.Button;
10+
import android.widget.EditText;
11+
import android.widget.ImageView;
12+
import android.widget.Toast;
13+
14+
import androidx.activity.result.ActivityResult;
15+
import androidx.activity.result.ActivityResultCallback;
16+
import androidx.activity.result.ActivityResultLauncher;
17+
import androidx.activity.result.contract.ActivityResultContracts;
18+
import androidx.annotation.NonNull;
19+
import androidx.appcompat.app.AppCompatActivity;
20+
import androidx.recyclerview.widget.GridLayoutManager;
21+
import androidx.recyclerview.widget.RecyclerView;
22+
23+
import com.google.android.gms.tasks.OnCompleteListener;
24+
import com.google.android.gms.tasks.OnFailureListener;
25+
import com.google.android.gms.tasks.OnSuccessListener;
26+
import com.google.android.gms.tasks.Task;
27+
import com.google.firebase.database.DataSnapshot;
28+
import com.google.firebase.database.DatabaseError;
29+
import com.google.firebase.database.DatabaseReference;
30+
import com.google.firebase.database.FirebaseDatabase;
31+
import com.google.firebase.database.ValueEventListener;
32+
import com.google.firebase.storage.FirebaseStorage;
33+
import com.google.firebase.storage.StorageReference;
34+
import com.google.firebase.storage.UploadTask;
35+
36+
import java.util.ArrayList;
37+
import java.util.List;
38+
39+
public class UploadActivity extends AppCompatActivity {
40+
41+
ImageView uploadImage;
42+
Button saveButton;
43+
EditText regNo, stdName, stdAge, stdGender, contactNo, parentTeleNo;
44+
String imageURL;
45+
Uri uri;
46+
47+
48+
@Override
49+
protected void onCreate(Bundle savedInstanceState) {
50+
super.onCreate(savedInstanceState);
51+
setContentView(R.layout.activity_upload);
52+
53+
uploadImage = findViewById(R.id.uploadImage);
54+
saveButton = findViewById(R.id.saveButton);
55+
regNo = findViewById(R.id.stdRegNo);
56+
stdName = findViewById(R.id.stdName);
57+
stdAge = findViewById(R.id.stdAge);
58+
stdGender = findViewById(R.id.stdGender);
59+
contactNo = findViewById(R.id.stdMobNo);
60+
parentTeleNo = findViewById(R.id.stdParentNo);
61+
62+
ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(
63+
new ActivityResultContracts.StartActivityForResult(),
64+
new ActivityResultCallback<ActivityResult>() {
65+
@Override
66+
public void onActivityResult(ActivityResult o) {
67+
if (o.getResultCode() == Activity.RESULT_OK) {
68+
Intent data = o.getData();
69+
uri = data.getData();
70+
uploadImage.setImageURI(uri);
71+
} else {
72+
Toast.makeText(UploadActivity.this, "No Image Selected!", Toast.LENGTH_SHORT).show();
73+
}
74+
75+
}
76+
});
77+
78+
uploadImage.setOnClickListener(new View.OnClickListener() {
79+
@Override
80+
public void onClick(View v) {
81+
Intent photoPicker = new Intent(Intent.ACTION_PICK);
82+
photoPicker.setType("image/*");
83+
activityResultLauncher.launch(photoPicker);
84+
}
85+
});
86+
87+
saveButton.setOnClickListener(new View.OnClickListener() {
88+
@Override
89+
public void onClick(View v) {
90+
saveData();
91+
}
92+
});
93+
94+
95+
}
96+
97+
public void saveData() {
98+
StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("Student Images")
99+
.child(uri.getLastPathSegment());
100+
101+
AlertDialog.Builder builder = new AlertDialog.Builder(UploadActivity.this);
102+
builder.setCancelable(false);
103+
builder.setView(R.layout.progress_layout);
104+
AlertDialog dialog = builder.create();
105+
dialog.show();
106+
107+
storageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
108+
@Override
109+
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
110+
Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
111+
while (!uriTask.isComplete());
112+
Uri urlImage = uriTask.getResult();
113+
imageURL = urlImage.toString();
114+
uploadData();
115+
dialog.dismiss();
116+
117+
}
118+
}).addOnFailureListener(new OnFailureListener() {
119+
@Override
120+
public void onFailure(@NonNull Exception e) {
121+
dialog.dismiss();
122+
}
123+
});
124+
}
125+
126+
public void uploadData() {
127+
128+
String registerNumber = regNo.getText().toString();
129+
String studentName = stdName.getText().toString();
130+
Integer studentAge = Integer.valueOf(stdAge.getText().toString());
131+
String studentGender = stdGender.getText().toString();
132+
Integer studentContactNumber = Integer.valueOf(contactNo.getText().toString());
133+
Integer studentParentNumber = Integer.valueOf(parentTeleNo.getText().toString());
134+
135+
DataClass dataClass = new DataClass(registerNumber, studentName, studentAge, studentGender, studentContactNumber,
136+
studentParentNumber, imageURL);
137+
138+
FirebaseDatabase.getInstance().getReference("Students").child(registerNumber)
139+
.setValue(dataClass).addOnCompleteListener(new OnCompleteListener<Void>() {
140+
@Override
141+
public void onComplete(@NonNull Task<Void> task) {
142+
if (task.isSuccessful()) {
143+
Toast.makeText(UploadActivity.this, "Saved!", Toast.LENGTH_SHORT).show();
144+
finish();
145+
}
146+
}
147+
}).addOnFailureListener(new OnFailureListener() {
148+
@Override
149+
public void onFailure(@NonNull Exception e) {
150+
Toast.makeText(UploadActivity.this, e.getMessage().toString(), Toast.LENGTH_SHORT).show();
151+
}
152+
});
153+
154+
}
155+
156+
}
477 KB
Loading
34.5 MB
Loading

0 commit comments

Comments
 (0)