Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.app.ProgressDialog;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.media.ExifInterface;
- import android.net.Uri;
- import android.provider.MediaStore;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.TextUtils;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.android.gms.tasks.Task;
- 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.StorageMetadata;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- import com.google.zxing.BarcodeFormat;
- import com.google.zxing.MultiFormatWriter;
- import com.google.zxing.WriterException;
- import com.google.zxing.common.BitMatrix;
- import java.io.ByteArrayOutputStream;
- import static android.R.attr.bitmap;
- public class Register extends AppCompatActivity {
- //firebase auth object
- private FirebaseAuth firebaseAuth;
- private StorageReference mStorage;
- private DatabaseReference mDatabse;
- //our new views
- private EditText editTextName, editTextAddress, editTextEmail, editTextPhoneOrRid, editTextPassword;
- private Button buttonSave;
- private ProgressDialog progressDialog;
- public final static int QRcodeWidth = 500;
- private Bitmap bitmap;
- private FirebaseUser user;
- private ExifInterface exif;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_register);
- progressDialog = new ProgressDialog(this);
- firebaseAuth = FirebaseAuth.getInstance();
- user = firebaseAuth.getCurrentUser();
- mDatabse = FirebaseDatabase.getInstance().getReferenceFromUrl("https://lpuevents-8f661.firebaseio.com/AppUsers");
- mStorage = FirebaseStorage.getInstance().getReferenceFromUrl("gs://lpuevents-8f661.appspot.com/QR codes/");
- //getting the views from xml resource
- editTextAddress = (EditText) findViewById(R.id.editText7);
- editTextName = (EditText) findViewById(R.id.editText3);
- editTextEmail = (EditText) findViewById(R.id.editText4);
- editTextPhoneOrRid = (EditText) findViewById(R.id.editText6);
- editTextPassword = (EditText) findViewById(R.id.editText8);
- buttonSave = (Button) findViewById(R.id.button3);
- if (user == null) {
- //closing this activity
- finish();
- //starting login activity
- startActivity(new Intent(this, Login.class));
- }
- buttonSave.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- saveUserInformation();
- // wait(360000);
- registerUser();
- }
- });
- }
- Bitmap TextToImageEncode(String Value) throws WriterException {
- BitMatrix bitMatrix;
- try {
- bitMatrix = new MultiFormatWriter().encode(
- Value,
- BarcodeFormat.DATA_MATRIX.QR_CODE,
- QRcodeWidth, QRcodeWidth, null
- );
- } catch (IllegalArgumentException Illegalargumentexception) {
- return null;
- }
- int bitMatrixWidth = bitMatrix.getWidth();
- int bitMatrixHeight = bitMatrix.getHeight();
- int[] pixels = new int[bitMatrixWidth * bitMatrixHeight];
- for (int y = 0; y < bitMatrixHeight; y++) {
- int offset = y * bitMatrixWidth;
- for (int x = 0; x < bitMatrixWidth; x++) {
- pixels[offset + x] = bitMatrix.get(x, y) ?
- getResources().getColor(R.color.black) : getResources().getColor(R.color.white);
- }
- }
- Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight, Bitmap.Config.ARGB_4444);
- bitmap.setPixels(pixels, 0, 500, 0, 0, bitMatrixWidth, bitMatrixHeight);
- return bitmap;
- }
- private void saveUserInformation() {
- //Getting values from database
- final String name = editTextName.getText().toString().trim();
- final String address = editTextAddress.getText().toString().trim();
- final String email = editTextEmail.getText().toString().trim();
- final String phone = editTextPhoneOrRid.getText().toString().trim();
- //String id = user.getUid().trim();
- try {
- bitmap = TextToImageEncode(phone+" "+email);
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
- byte[] data = baos.toByteArray();
- UploadTask uploadTask = mStorage.putBytes(data);
- uploadTask.addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception exception) {
- // Handle unsuccessful uploads
- }
- }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
- Toast.makeText(Register.this, "Succesfully Saved...", Toast.LENGTH_LONG).show();
- DatabaseReference userInfo = mDatabse.push();
- Uri downloadUrl = taskSnapshot.getDownloadUrl();
- taskSnapshot.getMetadata();
- userInfo.child("name").setValue(name);
- userInfo.child("email").setValue(email);
- userInfo.child("address").setValue(address);
- userInfo.child("phone").setValue(phone);
- userInfo.child("image").setValue(downloadUrl.toString());
- }
- });
- //imageView.setImageBitmap(bitmap);
- } catch (WriterException e) {
- e.printStackTrace();
- }
- }
- private void registerUser() {
- String email = editTextEmail.getText().toString().trim();
- String password = editTextPassword.getText().toString().trim();
- //checking if email and passwords are empty
- if (TextUtils.isEmpty(email)) {
- Toast.makeText(this, "Please enter email", Toast.LENGTH_LONG).show();
- return;
- }
- if (TextUtils.isEmpty(password)) {
- Toast.makeText(this, "Please enter password", Toast.LENGTH_LONG).show();
- return;
- }
- progressDialog.setMessage("Registering Please Wait...");
- progressDialog.show();
- progressDialog.dismiss();
- //creating a new user
- firebaseAuth.createUserWithEmailAndPassword(email, password)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- //checking if success
- if (task.isSuccessful()) {
- //display some message here
- Toast.makeText(Register.this, "Successfully registered", Toast.LENGTH_LONG).show();
- } else {
- //display some message here
- Toast.makeText(Register.this, "Registration Error", Toast.LENGTH_LONG).show();
- }
- progressDialog.dismiss();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement