diff --git a/Count/ChartShow.java b/Count/ChartShow.java new file mode 100644 index 0000000000000000000000000000000000000000..f1b8436850b22219a778d3597257ab259481b7d5 --- /dev/null +++ b/Count/ChartShow.java @@ -0,0 +1,239 @@ +package com.example.count; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import com.github.mikephil.charting.charts.BarChart; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.utils.ColorTemplate; +import com.google.android.gms.tasks.OnFailureListener; +import com.google.android.gms.tasks.OnSuccessListener; +import com.google.firebase.auth.AuthResult; +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.storage.FirebaseStorage; +import com.google.firebase.storage.OnProgressListener; +import com.google.firebase.storage.StorageReference; +import com.google.firebase.storage.UploadTask; + +import java.io.ByteArrayOutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +public class ChartShow extends AppCompatActivity { + FirebaseStorage storage; + StorageReference storageReference; + public String urilist=""; + public String resuilt=""; + public int count=0; + FirebaseAuth mAuth = FirebaseAuth.getInstance(); + private DatabaseReference mDatabase= FirebaseDatabase.getInstance().getReference("StudentData"); + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.chart_layout); + + GlobleVariable.wait=false; + urilist=""; + resuilt=""; + count=0; + storage = FirebaseStorage.getInstance(); + storageReference = storage.getReference(); + BarChart chart = (BarChart) findViewById(R.id.chart); + + ArrayList NoOfresult= new ArrayList(); + for(int i=0;i<GlobleVariable.resultList.size();i++){ + NoOfresult.add(new BarEntry(GlobleVariable.resultList.get(i), i)); + } + + + ArrayList tryNo = new ArrayList(); + for(int i=0;i<GlobleVariable.resultList.size();i++){ + tryNo.add(Integer.toString(i+1)+"Attempt"); + } + + + BarDataSet bardataset = new BarDataSet(NoOfresult, "Student Progress"); + chart.animateY(3000); + BarData data = new BarData(tryNo, bardataset); + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + chart.setData(data); + + Button btn = findViewById(R.id.upload); + + btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + final ProgressBar uploadPB=(ProgressBar) findViewById(R.id.uploadbar); + uploadPB.setVisibility(View.VISIBLE); + background newbackGP = new background(); + newbackGP.start(); + } + }); + + + } + class background extends Thread{ + @Override + public void run(){ + + for (int i=0;i<GlobleVariable.bitmapNo.size();i++){ + uploadImage(GlobleVariable.bitmapNo.get(i),i); + while(true){ + if(GlobleVariable.wait){ + GlobleVariable.wait=false; + break; + } + + } + } + + for(int y=0;y<GlobleVariable.resultList.size();y++){ + String result= GlobleVariable.resultList.get(y).toString(); + resuilt= resuilt + result + " "; + } + uploaddata(); + startActivity(new Intent(ChartShow.this, Done.class)); + } + public String Geanrate_Name() { + String DATA = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghtjklmnopqrstunvzxyz"; + Random RANDOM = new Random(); + StringBuilder sb = new StringBuilder(10); + + for (int i = 0; i < 10; i++) { + sb.append(DATA.charAt(RANDOM.nextInt(DATA.length()))); + } + + return sb.toString(); + } + public void uploaddata(){ + UserDetails data = new UserDetails(resuilt,urilist); + mDatabase.child("students").child(GlobleVariable.StudentID).setValue(data); + } + private void uploadImage(Bitmap converetdImage, final int i){ + + if(converetdImage != null) + { + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + converetdImage.compress(Bitmap.CompressFormat.JPEG, 100, stream); + byte[] byteArray = stream.toByteArray(); + converetdImage.recycle(); + + final String randomname=Geanrate_Name(); + GlobleVariable.nameurl=randomname; + StorageReference ref = storageReference.child("uploaded/"+randomname+".jpeg"); + UploadTask uploadTask=ref.putBytes(byteArray); + uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { + @Override + public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { + //progressDialog.dismiss(); + Geturl(GlobleVariable.nameurl); + try { + // code runs in a thread + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(ChartShow.this, "Uploaded Image "+String.valueOf(i+1), Toast.LENGTH_SHORT).show(); + } + }); + } catch (final Exception ex) { + Log.i("---","Exception in thread"); + } + + } + }) + .addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception e) { + final Exception xe=e; + //progressDialog.dismiss(); + try { + // code runs in a thread + runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(ChartShow.this, "Failed "+xe.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + } catch (final Exception ex) { + Log.i("---","Exception in thread"); + } + + } + }) + .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { + @Override + public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { + /*double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot + .getTotalByteCount()); + progressDialog.setMessage("Uploading Data Please Wait! "+(int)progress+"%");*/ + } + }); + } + //deleteImage(); + } + public void Geturl(String name){ + storageReference.child("uploaded/"+name+".jpeg").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { + @Override + public void onSuccess(Uri uri) { + String url= uri.toString(); + urilist= urilist + url + " "; + GlobleVariable.wait=true; + + } + }).addOnFailureListener(new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception exception) { + } + }); + + } + } + + + @Override + public void onStart() { + super.onStart(); + // Check if user is signed in (non-null) and update UI accordingly. + FirebaseUser currentUser = mAuth.getCurrentUser(); + if (currentUser != null) { + // do your stuff + } else { + signInAnonymously(); + } + } + private void signInAnonymously() { + mAuth.signInAnonymously().addOnSuccessListener(this, new OnSuccessListener<AuthResult>() { + @Override + public void onSuccess(AuthResult authResult) { + // do your stuff + } + }) + .addOnFailureListener(this, new OnFailureListener() { + @Override + public void onFailure(@NonNull Exception exception) { + + } + }); + } + + +}