Advertisement
Guest User

Untitled

a guest
Jan 27th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.61 KB | None | 0 0
  1. package pc.ltechz.totalsport;
  2.  
  3. import android.app.Dialog;
  4. import android.app.ProgressDialog;
  5. import android.content.Intent;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.support.annotation.NonNull;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.text.TextUtils;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.EditText;
  15. import android.widget.ScrollView;
  16. import android.widget.Toast;
  17.  
  18. import com.google.android.gms.appindexing.Action;
  19. import com.google.android.gms.appindexing.AppIndex;
  20. import com.google.android.gms.appindexing.Thing;
  21. import com.google.android.gms.common.api.GoogleApiClient;
  22. import com.google.android.gms.tasks.OnCompleteListener;
  23. import com.google.android.gms.tasks.Task;
  24. import com.google.firebase.auth.AuthResult;
  25. import com.google.firebase.auth.FirebaseAuth;
  26. import com.google.firebase.auth.FirebaseUser;
  27.  
  28. public class HomeActivity extends AppCompatActivity implements View.OnClickListener {
  29.  
  30. FirebaseAuth firebaseAuth;
  31. FirebaseUser firebaseUser;
  32. Button btnReg, btnLogin;//dialog buttons
  33. Button btnMainLogin, btnMainRegister;
  34. EditText etEmail, etPass, etName;
  35. Button btnRecover;
  36. Dialog d;
  37. Dialog dialogs;
  38. int mode = 0; // o means register 1 means login
  39. ProgressDialog progressDialog;
  40. Button btnAllPost;
  41. String EmailReset;
  42. Button btnForgot;
  43. EditText etRecoverEmail;
  44. Button btnSettings_home;
  45. boolean isLogin = false;
  46. ScrollView mScrollView;
  47. Handler mHandler;
  48. int k=0;
  49. /**
  50. * ATTENTION: This was auto-generated to implement the App Indexing API.
  51. * See https://g.co/AppIndexing/AndroidStudio for more information.
  52. */
  53. private GoogleApiClient client;
  54.  
  55. @Override
  56. protected void onCreate(Bundle savedInstanceState) {
  57. super.onCreate(savedInstanceState);
  58. setContentView(R.layout.activity_home);
  59.  
  60. firebaseAuth = FirebaseAuth.getInstance();
  61. btnMainLogin = (Button) findViewById(R.id.btnLogin);
  62. btnMainLogin.setOnClickListener(this);
  63. btnAllPost = (Button) findViewById(R.id.btnAllPost);
  64.  
  65. btnMainRegister = (Button) findViewById(R.id.btnRegister);
  66. btnMainRegister.setOnClickListener(this);
  67. progressDialog = new ProgressDialog(this);
  68.  
  69. btnSettings_home = (Button) findViewById(R.id.btnSettings_home);
  70. btnSettings_home.setOnClickListener(this);
  71. mScrollView = (ScrollView) findViewById(R.id.mScroll);
  72.  
  73. mScrollView.setHorizontalScrollBarEnabled(false);
  74. mScrollView.setVerticalScrollBarEnabled(false);
  75. mScrollView.setEnabled(false);
  76.  
  77.  
  78.  
  79.  
  80. firebaseUser = firebaseAuth.getCurrentUser();
  81. if (firebaseUser != null) {
  82. isLogin = true;
  83. if (isLogin) {
  84. btnMainRegister.setVisibility(View.GONE);
  85. btnSettings_home.setVisibility(View.VISIBLE);
  86. btnMainLogin.setText("התנתקות");
  87. }
  88. }
  89. if (firebaseUser == null) {
  90. isLogin = false;
  91. if (!isLogin) {
  92. btnMainRegister.setVisibility(View.VISIBLE);
  93. btnSettings_home.setVisibility(View.GONE);
  94. btnMainLogin.setText("התחברות");
  95. }
  96. }
  97.  
  98.  
  99.  
  100.  
  101.  
  102. // ATTENTION: This was auto-generated to implement the App Indexing API.
  103. // See https://g.co/AppIndexing/AndroidStudio for more information.
  104. client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
  105. }
  106.  
  107. private void refreshView() {
  108. mScrollView.setVisibility(View.GONE);
  109. mScrollView.setVisibility(View.VISIBLE);
  110. }
  111.  
  112. public boolean isVisible(Button btn){
  113.  
  114. if(btn.getVisibility()==View.VISIBLE){
  115. return true;
  116. }
  117. return false;
  118. }
  119.  
  120.  
  121.  
  122. public void createRegisterDialog() {
  123. d = new Dialog(this);
  124. d.setContentView(R.layout.register_layout);
  125. d.setTitle("Register");
  126. d.setCancelable(true);
  127. etName = (EditText) d.findViewById(R.id.etName);
  128. etEmail = (EditText) d.findViewById(R.id.etEmail);
  129. etPass = (EditText) d.findViewById(R.id.etPass);
  130. btnReg = (Button) d.findViewById(R.id.btReg);
  131. btnReg.setOnClickListener(this);
  132.  
  133. d.show();
  134.  
  135. }
  136.  
  137. public void createLoginDialog() {
  138. d = new Dialog(this);
  139. d.setContentView(R.layout.login_layout);
  140. d.setTitle("Login");
  141. d.setCancelable(true);
  142. etEmail = (EditText) d.findViewById(R.id.etEmail);
  143. etPass = (EditText) d.findViewById(R.id.etPass);
  144. btnLogin = (Button) d.findViewById(R.id.btnLogin);
  145. btnForgot = (Button) d.findViewById(R.id.forgotPass);
  146. btnForgot.setOnClickListener(this);
  147. btnLogin.setOnClickListener(this);
  148. d.show();
  149.  
  150. }
  151.  
  152. //This method used to recovery forgotten password by requesting user to enter registered email id.
  153. public void showRecoveryForgottenPasswordDialog() {
  154. dialogs = new Dialog(this);
  155. dialogs.setContentView(R.layout.forgot_pass);
  156. etRecoverEmail = (EditText) dialogs.findViewById(R.id.etEmailRecover);
  157. btnRecover = (Button) dialogs.findViewById(R.id.btnRecover);
  158. btnRecover.setOnClickListener(this);
  159.  
  160. dialogs.show();
  161.  
  162. }
  163.  
  164. //This method used to recovery forgotten password by sending reset link to registered email id.
  165. private void recoveryForgottenPassword(String currentEmailId) {
  166.  
  167. if (TextUtils.isEmpty(currentEmailId)) {
  168. Toast.makeText(HomeActivity.this, "Enter your registered email id", Toast.LENGTH_SHORT).show();
  169. return;
  170. }
  171.  
  172. //You can send a password reset email to a user with the sendPasswordResetEmail method.
  173. firebaseAuth.sendPasswordResetEmail(currentEmailId)
  174. .addOnCompleteListener(new OnCompleteListener<Void>() {
  175. @Override
  176. public void onComplete(@NonNull Task<Void> task) {
  177. if (task.isSuccessful()) {
  178. Toast.makeText(HomeActivity.this, "We have sent you instructions to reset your password!", Toast.LENGTH_SHORT).show();
  179. } else {
  180. Toast.makeText(HomeActivity.this, "Failed to send reset email!", Toast.LENGTH_SHORT).show();
  181. }
  182.  
  183. }
  184. });
  185. }
  186.  
  187. public void register() {
  188.  
  189. progressDialog.setMessage("Registering, Please Wait...");
  190. progressDialog.show();
  191.  
  192. firebaseAuth.createUserWithEmailAndPassword(etEmail.getText().toString(), etPass.getText().toString()).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
  193. @Override
  194. public void onComplete(Task<AuthResult> task) {
  195. if (task.isSuccessful()) {
  196. Toast.makeText(HomeActivity.this, "Successfully registered", Toast.LENGTH_LONG).show();
  197. btnMainLogin.setText("התנתקות");
  198.  
  199. } else {
  200. Toast.makeText(HomeActivity.this, "Registration Error", Toast.LENGTH_LONG).show();
  201.  
  202. }
  203. d.dismiss();
  204. progressDialog.dismiss();
  205. }
  206. });
  207.  
  208. }
  209.  
  210. public void login() {
  211. progressDialog.setMessage("Login, Please Wait...");
  212. progressDialog.show();
  213.  
  214. firebaseAuth.signInWithEmailAndPassword(etEmail.getText().toString(), etPass.getText().toString())
  215. .addOnCompleteListener(HomeActivity.this, new OnCompleteListener<AuthResult>() {
  216. @Override
  217. public void onComplete(Task<AuthResult> task) {
  218.  
  219. if (task.isSuccessful()) {
  220. Toast.makeText(HomeActivity.this, "auth_success", Toast.LENGTH_SHORT).show();
  221. btnMainLogin.setText("התנתקות");
  222.  
  223. } else {
  224. Toast.makeText(HomeActivity.this, "auth_failed", Toast.LENGTH_SHORT).show();
  225.  
  226. }
  227. d.dismiss();
  228. progressDialog.dismiss();
  229.  
  230. }
  231. });
  232.  
  233. }
  234.  
  235. @Override
  236. public void onClick(View v) {
  237.  
  238. if (v == btnMainLogin) {
  239. if (btnMainLogin.getText().toString().equals("התחברות")) {
  240. createLoginDialog();
  241. } else if (btnMainLogin.getText().toString().equals("התנתקות")) {
  242. firebaseAuth.signOut();
  243. btnMainLogin.setText("התחברות");
  244. }
  245. } else if (v == btnMainRegister) {
  246. createRegisterDialog();
  247. } else if (btnReg == v) {
  248. register();
  249. } else if (v == btnLogin) {
  250. login();
  251. } else if (v == btnRecover) {
  252. recoveryForgottenPassword(etRecoverEmail.getText().toString());
  253. dialogs.dismiss();
  254. } else if (v == btnForgot) {
  255. showRecoveryForgottenPasswordDialog();
  256.  
  257. }
  258. else if (v == btnSettings_home){
  259. Intent intent = new Intent(HomeActivity.this,SettingsActivity.class);
  260. startActivity(intent);
  261. }
  262. }
  263.  
  264. /**
  265. * ATTENTION: This was auto-generated to implement the App Indexing API.
  266. * See https://g.co/AppIndexing/AndroidStudio for more information.
  267. */
  268. public Action getIndexApiAction() {
  269. Thing object = new Thing.Builder()
  270. .setName("Home Page") // TODO: Define a title for the content shown.
  271. // TODO: Make sure this auto-generated URL is correct.
  272. .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
  273. .build();
  274. return new Action.Builder(Action.TYPE_VIEW)
  275. .setObject(object)
  276. .setActionStatus(Action.STATUS_TYPE_COMPLETED)
  277. .build();
  278. }
  279.  
  280. @Override
  281. public void onStart() {
  282. super.onStart();
  283.  
  284. // ATTENTION: This was auto-generated to implement the App Indexing API.
  285. // See https://g.co/AppIndexing/AndroidStudio for more information.
  286. client.connect();
  287. AppIndex.AppIndexApi.start(client, getIndexApiAction());
  288. }
  289.  
  290. @Override
  291. public void onStop() {
  292. super.onStop();
  293.  
  294. // ATTENTION: This was auto-generated to implement the App Indexing API.
  295. // See https://g.co/AppIndexing/AndroidStudio for more information.
  296. AppIndex.AppIndexApi.end(client, getIndexApiAction());
  297. client.disconnect();
  298. }
  299. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement