Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.85 KB | None | 0 0
  1. package com.unfreezeday.unfreezeday.activities;
  2.  
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.graphics.Rect;
  6. import android.media.MediaPlayer;
  7. import android.os.AsyncTask;
  8. import android.os.Bundle;
  9. import android.os.Handler;
  10. import android.support.annotation.NonNull;
  11. import android.support.v7.app.AppCompatActivity;
  12. import android.util.DisplayMetrics;
  13. import android.util.Log;
  14. import android.util.TypedValue;
  15. import android.view.KeyEvent;
  16. import android.view.View;
  17. import android.view.ViewTreeObserver;
  18. import android.view.Window;
  19. import android.view.WindowManager;
  20. import android.widget.EditText;
  21. import android.widget.RelativeLayout;
  22. import android.widget.TextView;
  23. import android.widget.Toast;
  24.  
  25. import com.google.android.gms.tasks.OnCompleteListener;
  26. import com.google.android.gms.tasks.Task;
  27. import com.google.firebase.auth.AuthResult;
  28. import com.google.firebase.auth.FirebaseAuth;
  29. import com.google.firebase.auth.FirebaseUser;
  30. import com.unfreezeday.unfreezeday.R;
  31. import com.unfreezeday.unfreezeday.interfaces.OnTaskCompleted;
  32. import com.unfreezeday.unfreezeday.utils.FontsLoader;
  33. import com.unfreezeday.unfreezeday.utils.SharedPreference;
  34.  
  35. /**
  36. * Created by Arnau on 18/3/17.
  37. */
  38.  
  39. public class LoginActivity extends AppCompatActivity implements OnTaskCompleted {
  40.  
  41. private RelativeLayout rlLogin, rlRegister, rlBackLogin;
  42. private EditText etNomUsuari, password;
  43. private boolean soundMuted;
  44. private FirebaseAuth mAuth;
  45. private FirebaseAuth.AuthStateListener mAuthListener;
  46. private Handler mHandler;
  47. private static final String TAG = "UFD, LoginActivity: ";
  48.  
  49. @Override
  50. protected void onCreate(Bundle savedInstanceState) {
  51. super.onCreate(savedInstanceState);
  52. //makes the activity fullscreen
  53. requestWindowFeature(Window.FEATURE_NO_TITLE);
  54. getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
  55. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  56. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  57. setContentView(R.layout.activity_login);
  58.  
  59. soundMuted = SharedPreference.isSoundMuted(this);
  60. initComponents();
  61. initListeners();
  62. initGUI();
  63. }
  64.  
  65. private Runnable decor_view_settings = new Runnable()
  66. {
  67. public void run()
  68. {
  69. getWindow().getDecorView().setSystemUiVisibility(
  70. View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  71. | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  72. | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  73. | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
  74. | View.SYSTEM_UI_FLAG_FULLSCREEN
  75. | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
  76. }
  77. };
  78.  
  79. private void initComponents() {
  80. // TextView
  81. rlRegister = (RelativeLayout) findViewById(R.id.rlRegister);
  82. rlLogin = (RelativeLayout) findViewById(R.id.rlLogin);
  83. rlBackLogin = (RelativeLayout) findViewById(R.id.rlBackLogin);
  84. mHandler = new Handler();
  85.  
  86. // EditText
  87. etNomUsuari = (EditText) findViewById(R.id.uernameok);
  88. etNomUsuari.setTypeface(FontsLoader.getTypeface(this, FontsLoader.frosw));
  89. password = (EditText) findViewById(R.id.password);
  90. password.setTypeface(FontsLoader.getTypeface(this, FontsLoader.frosw));
  91.  
  92. // Firebase
  93. mAuth = FirebaseAuth.getInstance();
  94. }
  95.  
  96. private void initListeners(){
  97. final MediaPlayer mp = MediaPlayer.create(this, R.raw.click_sound);
  98. rlRegister.setOnClickListener(new View.OnClickListener() {
  99. @Override
  100. public void onClick(View v) {
  101. if (!soundMuted) mp.start();
  102. Intent myIntent = new Intent(LoginActivity.this, RegisterActivity.class);
  103. LoginActivity.this.startActivity(myIntent);
  104. }
  105. });
  106.  
  107. ((RelativeLayout) findViewById(R.id.activity_login)).setOnClickListener(new View.OnClickListener() {
  108. @Override
  109. public void onClick(View v) {
  110. mHandler.post(decor_view_settings);
  111. }
  112. });
  113.  
  114.  
  115. password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  116. @Override
  117. public void onFocusChange(View v, boolean hasFocus) {
  118. if (hasFocus) {
  119. //got focus
  120. } else {
  121. mHandler.post(decor_view_settings);
  122. }
  123. }
  124. });
  125.  
  126. rlBackLogin.setOnClickListener(new View.OnClickListener() {
  127. @Override
  128. public void onClick(View v) {
  129. if (!soundMuted) mp.start();
  130. LoginActivity.this.finish();
  131. }
  132. });
  133.  
  134. rlLogin.setOnClickListener(new View.OnClickListener() {
  135. @Override
  136. public void onClick(View v) {
  137. if (!soundMuted) mp.start();
  138. if (etNomUsuari.getText().toString().equals("") || password.getText().toString().equals("")) {
  139. Toast.makeText(LoginActivity.this, R.string.error_empty_data, Toast.LENGTH_SHORT).show();
  140. } else {
  141. new FirebaseLogin(etNomUsuari.getText().toString(), password.getText().toString(), LoginActivity.this).execute();
  142. }
  143. }
  144. });
  145.  
  146. mAuthListener = new FirebaseAuth.AuthStateListener() {
  147. @Override
  148. public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  149. FirebaseUser user = firebaseAuth.getCurrentUser();
  150. if (user != null) {
  151. // User is signed in
  152. Log.d(TAG, "onAuthStateChanged: signed_in: " + user.getUid());
  153. } else {
  154. // User is signed out
  155. Log.d(TAG, "onAuthStateChanged: signed_out");
  156. }
  157. }
  158. };
  159. }
  160.  
  161. private void initGUI() {
  162. // setFont
  163. ((TextView)findViewById(R.id.txtLogin)).setTypeface(FontsLoader.getTypeface(LoginActivity.this, FontsLoader.frosw));
  164. ((TextView)findViewById(R.id.txtRegister)).setTypeface(FontsLoader.getTypeface(LoginActivity.this, FontsLoader.frosw));
  165.  
  166. }
  167.  
  168.  
  169.  
  170. @Override
  171. protected void onStart() {
  172. super.onStart();
  173. mAuth.addAuthStateListener(mAuthListener);
  174. }
  175.  
  176. @Override
  177. protected void onStop() {
  178. super.onStop();
  179. if (mAuthListener != null) {
  180. mAuth.removeAuthStateListener(mAuthListener);
  181. }
  182. }
  183.  
  184. @Override
  185. public void onWindowFocusChanged(boolean hasFocus)
  186. {
  187. super.onWindowFocusChanged(hasFocus);
  188. if(hasFocus)
  189. {
  190. mHandler.post(decor_view_settings);
  191. }
  192. }
  193.  
  194. @Override
  195. public void onTaskCompleted(boolean successful) {
  196. if (successful) {
  197. SharedPreference.setUserName(LoginActivity.this, etNomUsuari.getText().toString());
  198. Intent myIntent = new Intent(LoginActivity.this, ProfileActivity.class);
  199. LoginActivity.this.startActivity(myIntent);
  200. LoginActivity.this.finish();
  201. } else {
  202. Toast.makeText(LoginActivity.this, LoginActivity.this.getResources().getString(R.string.error_user_password),
  203. Toast.LENGTH_SHORT).show();
  204. }
  205. }
  206.  
  207. private class FirebaseLogin extends AsyncTask<Void, Void, Void> {
  208.  
  209. private String userName, password;
  210. private OnTaskCompleted listener;
  211.  
  212. public FirebaseLogin(String userName, String password, OnTaskCompleted listener) {
  213. super();
  214. this.userName = userName;
  215. this.password = password;
  216. this.listener = listener;
  217. }
  218.  
  219. @Override
  220. protected void onPreExecute() {
  221. super.onPreExecute();
  222. }
  223.  
  224. @Override
  225. protected Void doInBackground(Void... params) {
  226. mAuth.signInWithEmailAndPassword(userName, password)
  227. .addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() {
  228. @Override
  229. public void onComplete(@NonNull Task<AuthResult> task) {
  230. // If sign in fails, display a message to the user. If sign in succeeds
  231. // the auth state listener will be notified and logic to handle the
  232. // signed in user can be handled in the listener.
  233. listener.onTaskCompleted(task.isSuccessful());
  234. }
  235. });
  236. return null;
  237. }
  238.  
  239. @Override
  240. protected void onPostExecute(Void aVoid) {
  241. super.onPostExecute(aVoid);
  242. }
  243. }
  244.  
  245. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement