Advertisement
Guest User

Untitled

a guest
Nov 14th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.96 KB | None | 0 0
  1. import android.app.ProgressDialog;
  2. import android.content.Intent;
  3. import android.graphics.Bitmap;
  4. import android.media.ExifInterface;
  5. import android.net.Uri;
  6. import android.provider.MediaStore;
  7. import android.support.annotation.NonNull;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.os.Bundle;
  10. import android.text.TextUtils;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.EditText;
  14. import android.widget.Toast;
  15. import com.google.android.gms.tasks.OnCompleteListener;
  16. import com.google.android.gms.tasks.OnFailureListener;
  17. import com.google.android.gms.tasks.OnSuccessListener;
  18. import com.google.android.gms.tasks.Task;
  19. import com.google.firebase.auth.AuthResult;
  20. import com.google.firebase.auth.FirebaseAuth;
  21. import com.google.firebase.auth.FirebaseUser;
  22. import com.google.firebase.database.DatabaseReference;
  23. import com.google.firebase.database.FirebaseDatabase;
  24. import com.google.firebase.storage.FirebaseStorage;
  25. import com.google.firebase.storage.StorageMetadata;
  26. import com.google.firebase.storage.StorageReference;
  27. import com.google.firebase.storage.UploadTask;
  28. import com.google.zxing.BarcodeFormat;
  29. import com.google.zxing.MultiFormatWriter;
  30. import com.google.zxing.WriterException;
  31. import com.google.zxing.common.BitMatrix;
  32.  
  33. import java.io.ByteArrayOutputStream;
  34.  
  35. import static android.R.attr.bitmap;
  36.  
  37. public class Register extends AppCompatActivity {
  38. //firebase auth object
  39. private FirebaseAuth firebaseAuth;
  40. private StorageReference mStorage;
  41.  
  42. private DatabaseReference mDatabse;
  43.  
  44. //our new views
  45. private EditText editTextName, editTextAddress, editTextEmail, editTextPhoneOrRid, editTextPassword;
  46. private Button buttonSave;
  47. private ProgressDialog progressDialog;
  48. public final static int QRcodeWidth = 500;
  49. private Bitmap bitmap;
  50. private FirebaseUser user;
  51. private ExifInterface exif;
  52.  
  53.  
  54. @Override
  55. protected void onCreate(Bundle savedInstanceState) {
  56. super.onCreate(savedInstanceState);
  57. setContentView(R.layout.activity_register);
  58. progressDialog = new ProgressDialog(this);
  59. firebaseAuth = FirebaseAuth.getInstance();
  60. user = firebaseAuth.getCurrentUser();
  61. mDatabse = FirebaseDatabase.getInstance().getReferenceFromUrl("https://lpuevents-8f661.firebaseio.com/AppUsers");
  62. mStorage = FirebaseStorage.getInstance().getReferenceFromUrl("gs://lpuevents-8f661.appspot.com/QR codes/");
  63. //getting the views from xml resource
  64. editTextAddress = (EditText) findViewById(R.id.editText7);
  65. editTextName = (EditText) findViewById(R.id.editText3);
  66. editTextEmail = (EditText) findViewById(R.id.editText4);
  67. editTextPhoneOrRid = (EditText) findViewById(R.id.editText6);
  68. editTextPassword = (EditText) findViewById(R.id.editText8);
  69. buttonSave = (Button) findViewById(R.id.button3);
  70. if (user == null) {
  71. //closing this activity
  72. finish();
  73. //starting login activity
  74. startActivity(new Intent(this, Login.class));
  75. }
  76.  
  77. buttonSave.setOnClickListener(new View.OnClickListener() {
  78. @Override
  79. public void onClick(View v) {
  80. saveUserInformation();
  81. // wait(360000);
  82.  
  83.  
  84. registerUser();
  85.  
  86. }
  87. });
  88. }
  89.  
  90.  
  91. Bitmap TextToImageEncode(String Value) throws WriterException {
  92. BitMatrix bitMatrix;
  93. try {
  94. bitMatrix = new MultiFormatWriter().encode(
  95. Value,
  96. BarcodeFormat.DATA_MATRIX.QR_CODE,
  97. QRcodeWidth, QRcodeWidth, null
  98. );
  99.  
  100. } catch (IllegalArgumentException Illegalargumentexception) {
  101.  
  102. return null;
  103. }
  104. int bitMatrixWidth = bitMatrix.getWidth();
  105.  
  106. int bitMatrixHeight = bitMatrix.getHeight();
  107.  
  108. int[] pixels = new int[bitMatrixWidth * bitMatrixHeight];
  109.  
  110. for (int y = 0; y < bitMatrixHeight; y++) {
  111. int offset = y * bitMatrixWidth;
  112.  
  113. for (int x = 0; x < bitMatrixWidth; x++) {
  114.  
  115. pixels[offset + x] = bitMatrix.get(x, y) ?
  116. getResources().getColor(R.color.black) : getResources().getColor(R.color.white);
  117. }
  118. }
  119. Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight, Bitmap.Config.ARGB_4444);
  120.  
  121. bitmap.setPixels(pixels, 0, 500, 0, 0, bitMatrixWidth, bitMatrixHeight);
  122. return bitmap;
  123. }
  124.  
  125.  
  126. private void saveUserInformation() {
  127. //Getting values from database
  128. final String name = editTextName.getText().toString().trim();
  129. final String address = editTextAddress.getText().toString().trim();
  130. final String email = editTextEmail.getText().toString().trim();
  131. final String phone = editTextPhoneOrRid.getText().toString().trim();
  132. //String id = user.getUid().trim();
  133. try {
  134.  
  135. bitmap = TextToImageEncode(phone+" "+email);
  136.  
  137. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  138. bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  139. byte[] data = baos.toByteArray();
  140.  
  141. UploadTask uploadTask = mStorage.putBytes(data);
  142. uploadTask.addOnFailureListener(new OnFailureListener() {
  143. @Override
  144. public void onFailure(@NonNull Exception exception) {
  145. // Handle unsuccessful uploads
  146. }
  147. }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  148. @Override
  149. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  150. // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
  151. Toast.makeText(Register.this, "Succesfully Saved...", Toast.LENGTH_LONG).show();
  152. DatabaseReference userInfo = mDatabse.push();
  153. Uri downloadUrl = taskSnapshot.getDownloadUrl();
  154. taskSnapshot.getMetadata();
  155. userInfo.child("name").setValue(name);
  156. userInfo.child("email").setValue(email);
  157. userInfo.child("address").setValue(address);
  158. userInfo.child("phone").setValue(phone);
  159. userInfo.child("image").setValue(downloadUrl.toString());
  160.  
  161. }
  162. });
  163.  
  164. //imageView.setImageBitmap(bitmap);
  165.  
  166. } catch (WriterException e) {
  167. e.printStackTrace();
  168. }
  169. }
  170.  
  171.  
  172. private void registerUser() {
  173. String email = editTextEmail.getText().toString().trim();
  174. String password = editTextPassword.getText().toString().trim();
  175. //checking if email and passwords are empty
  176. if (TextUtils.isEmpty(email)) {
  177. Toast.makeText(this, "Please enter email", Toast.LENGTH_LONG).show();
  178. return;
  179. }
  180.  
  181. if (TextUtils.isEmpty(password)) {
  182. Toast.makeText(this, "Please enter password", Toast.LENGTH_LONG).show();
  183. return;
  184. }
  185.  
  186. progressDialog.setMessage("Registering Please Wait...");
  187. progressDialog.show();
  188. progressDialog.dismiss();
  189.  
  190. //creating a new user
  191. firebaseAuth.createUserWithEmailAndPassword(email, password)
  192. .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  193. @Override
  194. public void onComplete(@NonNull Task<AuthResult> task) {
  195. //checking if success
  196. if (task.isSuccessful()) {
  197. //display some message here
  198. Toast.makeText(Register.this, "Successfully registered", Toast.LENGTH_LONG).show();
  199. } else {
  200. //display some message here
  201. Toast.makeText(Register.this, "Registration Error", Toast.LENGTH_LONG).show();
  202. }
  203. progressDialog.dismiss();
  204. }
  205. });
  206.  
  207. }
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement