minafaw3

LoginActivity

Aug 25th, 2015
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.84 KB | None | 0 0
  1. package validate.com;
  2.  
  3. import android.app.Activity;
  4. import android.app.ProgressDialog;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.support.v7.app.ActionBarActivity;
  8. import android.text.Spannable;
  9. import android.text.Spanned;
  10. import android.text.method.HideReturnsTransformationMethod;
  11. import android.text.method.LinkMovementMethod;
  12. import android.text.method.PasswordTransformationMethod;
  13. import android.text.style.ClickableSpan;
  14. import android.view.Menu;
  15. import android.view.MenuItem;
  16. import android.view.MotionEvent;
  17. import android.view.View;
  18. import android.view.View.OnClickListener;
  19. import android.view.ViewGroup;
  20. import android.view.inputmethod.InputMethodManager;
  21. import android.widget.Button;
  22. import android.widget.CheckBox;
  23. import android.widget.CompoundButton;
  24. import android.widget.EditText;
  25. import android.widget.TextView;
  26. import android.widget.Toast;
  27.  
  28. import com.andreabaccega.formedittextvalidator.EmailValidator;
  29. import com.andreabaccega.formedittextvalidator.OrValidator;
  30. import com.andreabaccega.widget.FormEditText;
  31. import com.dd.processbutton.iml.ActionProcessButton;
  32. import com.facebook.CallbackManager;
  33. import com.facebook.FacebookCallback;
  34. import com.facebook.FacebookException;
  35. import com.facebook.FacebookSdk;
  36. import com.facebook.login.LoginResult;
  37. import com.facebook.login.widget.LoginButton;
  38. import com.validate.R;
  39.  
  40. import org.apache.http.NameValuePair;
  41. import org.apache.http.message.BasicNameValuePair;
  42. import org.json.JSONArray;
  43. import org.json.JSONException;
  44.  
  45. import java.io.BufferedReader;
  46. import java.io.BufferedWriter;
  47. import java.io.IOException;
  48. import java.io.InputStreamReader;
  49. import java.io.OutputStream;
  50. import java.io.OutputStreamWriter;
  51. import java.io.UnsupportedEncodingException;
  52. import java.net.HttpURLConnection;
  53. import java.net.URL;
  54. import java.net.URLEncoder;
  55. import java.util.ArrayList;
  56. import java.util.List;
  57.  
  58. import validate.com.Customer.CustomerMainActivity;
  59. import validate.com.WebService_API.API;
  60. import validate.com.WebService_API.AlertManger;
  61. import validate.com.WebService_API.AppStaticMembers;
  62. import validate.com.WebService_API.ConnectionExecutor.HTTPResponse;
  63. import validate.com.WebService_API.ConnectionExecutor.ResponseType;
  64. import validate.com.WebService_API.ConnectionExecutor.onHttpRequestListener;
  65. import validate.com.WebService_API.JsonParser;
  66. import validate.com.classes.User;
  67.  
  68.  
  69. public class LoginActivity extends ActionBarActivity implements OnClickListener {
  70.  
  71. private static final String TAG = "login_activity";
  72.  
  73. Button signup, showpass;
  74.  
  75. FormEditText email, password;
  76. ActionProcessButton sign_in;
  77.  
  78. TextView terms_textview, singup_tv;
  79.  
  80. private CallbackManager mCallbackManager;
  81. private LoginButton mLoginButton;
  82. private String Token = null;
  83.  
  84. private CheckBox Remember_toggle;
  85. private API api;
  86. private ProgressDialog progress;
  87. private boolean remember_me = false;
  88.  
  89.  
  90. @Override
  91. protected void onCreate(Bundle savedInstanceState) {
  92. super.onCreate(savedInstanceState);
  93. FacebookSdk.sdkInitialize(getApplicationContext());
  94. setContentView(R.layout.activity_login);
  95. init();
  96. }
  97.  
  98. private void init() {
  99. api = new API(LoginActivity.this);
  100.  
  101. progress = new ProgressDialog(this);
  102. progress.setCancelable(false);
  103. progress.setMessage(getResources().getString(R.string.Loading));
  104. progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  105.  
  106. mLoginButton = (LoginButton) findViewById(R.id.login_button);
  107. email = (FormEditText) findViewById(R.id.emailtext);
  108. password = (FormEditText) findViewById(R.id.passwordtext);
  109.  
  110. Remember_toggle = (CheckBox) findViewById(R.id.rememberme);
  111. if (api.getSetting(AppStaticMembers.TAG_REMEMBER) != null) {
  112. if (api.getSetting(AppStaticMembers.TAG_REMEMBER).equals("true")) {
  113. email.setText(api.getSetting(AppStaticMembers.TAG_EMAIL));
  114. }
  115. }
  116.  
  117. Remember_toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  118. @Override
  119. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  120. if (isChecked) {
  121. remember_me = true;
  122. } else {
  123. remember_me = false;
  124.  
  125. }
  126. }
  127. });
  128.  
  129. setupUI(findViewById(R.id.loginrelative));
  130.  
  131. mCallbackManager = CallbackManager.Factory.create();
  132.  
  133.  
  134. mLoginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
  135. @Override
  136. public void onSuccess(LoginResult loginResult) {
  137.  
  138. }
  139.  
  140. @Override
  141. public void onCancel() {
  142.  
  143. }
  144.  
  145. @Override
  146. public void onError(FacebookException e) {
  147.  
  148. }
  149. });
  150.  
  151. sign_in = (ActionProcessButton) findViewById(R.id.signin);
  152. sign_in.setMode(ActionProcessButton.Mode.PROGRESS);
  153.  
  154.  
  155. showpass = (Button) findViewById(R.id.showpass);
  156.  
  157.  
  158. password.setTransformationMethod(new PasswordTransformationMethod());
  159.  
  160.  
  161. email.addValidator(new OrValidator("This not E-mail",
  162. new EmailValidator(null))
  163. );
  164.  
  165. terms_textview = (TextView) findViewById(R.id.termstv);
  166. singup_tv = (TextView) findViewById(R.id.singuptv);
  167.  
  168. String terms_text = "By using this application, you agree to the (terms and conditions)";
  169. int start = terms_text.indexOf("(");
  170. int end = terms_text.indexOf(")");
  171. terms_textview.setMovementMethod(LinkMovementMethod.getInstance());
  172.  
  173. terms_textview.setText(terms_text, TextView.BufferType.SPANNABLE);
  174. Spannable mSpannable = (Spannable) terms_textview.getText();
  175. ClickableSpan mClickableSpan = new ClickableSpan() {
  176. @Override
  177. public void onClick(View widget) {
  178. Toast.makeText(LoginActivity.this, "text to show", Toast.LENGTH_LONG).show();
  179. }
  180. };
  181. mSpannable.setSpan(mClickableSpan, start, end + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  182.  
  183. String sign_up_tv = "Don't have account ? Sign Up Now";
  184. int start2 = sign_up_tv.indexOf("?");
  185. int end2 = sign_up_tv.indexOf("w");
  186.  
  187. singup_tv.setMovementMethod(LinkMovementMethod.getInstance());
  188. singup_tv.setText(sign_up_tv, TextView.BufferType.SPANNABLE);
  189. Spannable mspannable2 = (Spannable) singup_tv.getText();
  190. ClickableSpan mclickspan2 = new ClickableSpan() {
  191. @Override
  192. public void onClick(View widget) {
  193. Intent intent = new Intent(LoginActivity.this, loginup.class);
  194. startActivity(intent);
  195. }
  196. };
  197. mspannable2.setSpan(mclickspan2, start2 + 1, end2 + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  198.  
  199.  
  200. sign_in.setOnClickListener(this);
  201. //signup.setOnClickListener(this);
  202. showpass.setOnTouchListener(new View.OnTouchListener() {
  203. @Override
  204. public boolean onTouch(View v, MotionEvent event) {
  205.  
  206. if (event.getAction() == MotionEvent.ACTION_DOWN)
  207. password.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
  208.  
  209.  
  210. else if (event.getAction() == MotionEvent.ACTION_UP)
  211. password.setTransformationMethod(PasswordTransformationMethod.getInstance());
  212.  
  213.  
  214. return false;
  215. }
  216. });
  217. }
  218.  
  219. @Override
  220. public boolean onCreateOptionsMenu(Menu menu) {
  221. // Inflate the menu; this adds items to the action bar if it is present.
  222. getMenuInflater().inflate(R.menu.menu_login, menu);
  223. return true;
  224. }
  225.  
  226. @Override
  227. public boolean onOptionsItemSelected(MenuItem item) {
  228. // Handle action bar item clicks here. The action bar will
  229. // automatically handle clicks on the Home/Up button, so long
  230. // as you specify a parent activity in AndroidManifest.xml.
  231. int id = item.getItemId();
  232.  
  233. //noinspection SimplifiableIfStatement
  234. if (id == R.id.action_settings) {
  235. return true;
  236. }
  237.  
  238. return super.onOptionsItemSelected(item);
  239. }
  240.  
  241. @Override
  242. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  243. mCallbackManager.onActivityResult(requestCode, resultCode, data);
  244. }
  245.  
  246. @Override
  247. public void onClick(View v) {
  248.  
  249. switch (v.getId()) {
  250. case R.id.signin:
  251. loginmethod();
  252. break;
  253.  
  254.  
  255. }
  256. }
  257.  
  258. private void loginmethod() {
  259.  
  260. if (api.isNetworkConneted(LoginActivity.this)) {
  261.  
  262. if (email.testValidity() && password.testValidity()) {
  263. User user = new User();
  264. user.email = email.getText().toString();
  265. user.password = password.getText().toString();
  266.  
  267. try {
  268. progress.show();
  269. api.SingIn(user, sign_response);
  270. } catch (Exception e) {
  271. e.printStackTrace();
  272. }
  273.  
  274. }
  275. } else {
  276. Toast.makeText(getApplicationContext() , getApplicationContext().getString(R.string.no_internet) , Toast.LENGTH_LONG).show();
  277. }
  278.  
  279.  
  280. }
  281.  
  282. onHttpRequestListener sign_response = new onHttpRequestListener() {
  283. @Override
  284. public void onHttpResult(HTTPResponse response, String send_data) {
  285.  
  286. progress.hide();
  287. API api = new API(LoginActivity.this);
  288. User user = null;
  289. Intent intent = null;
  290. if (response.response == ResponseType.SUCCESS) {
  291.  
  292. api.SetSetting(AppStaticMembers.TAG_TOKEN, response.token);
  293. JSONArray jsonArray = (JSONArray) response.data;
  294. JsonParser jsonparser = new JsonParser();
  295. try {
  296. user = jsonparser.getUserData(jsonArray.getJSONObject(0));
  297. api.SetSetting(AppStaticMembers.TAG_EMAIL, user.getEmail());
  298. api.SetSetting(AppStaticMembers.TAG_ID, user.getId());
  299. api.SetSetting(AppStaticMembers.IS_LOGGEDIN , AppStaticMembers.TRUE);
  300.  
  301. if(remember_me){
  302. api.SetSetting(AppStaticMembers.TAG_REMEMBER , AppStaticMembers.TRUE);
  303. }
  304.  
  305. } catch (JSONException e) {
  306. e.printStackTrace();
  307. }
  308. if(user.getType() != null){
  309. if (user.getType().equals(AppStaticMembers.TAG_MERCHANT)){
  310. intent = new Intent(LoginActivity.this, MainActivity.class);
  311. }else if(user.getType().equals(AppStaticMembers.TAG_CUSTOMER)){
  312. intent = new Intent(LoginActivity.this, CustomerMainActivity.class);
  313. }
  314.  
  315. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  316. startActivity(intent);
  317. finish();
  318. }else {
  319. AlertManger.showAlertDialog(LoginActivity.this, "Error", "Invaild user", false);
  320. //Toast.makeText(LoginActivity.this , "Invaild user" , Toast.LENGTH_LONG).show();
  321. }
  322.  
  323. } else {
  324. AlertManger.showAlertDialog(LoginActivity.this , "Error" , response.value , false);
  325. // Toast.makeText(LoginActivity.this, response.value, Toast.LENGTH_LONG).show();
  326. }
  327.  
  328. }
  329. };
  330.  
  331. public String get_request() {
  332.  
  333. final StringBuilder stringBuilder = new StringBuilder();
  334. final String[] line = {null};
  335. final BufferedReader[] reader = {null};
  336.  
  337.  
  338. new Thread(new Runnable() {
  339. @Override
  340. public void run() {
  341. try {
  342.  
  343. List<NameValuePair> params = new ArrayList<NameValuePair>();
  344. params.add(new BasicNameValuePair(AppStaticMembers.TAG_TOKEN, Token));
  345.  
  346. URL url = new URL(AppStaticMembers.BASE_URL);
  347. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  348.  
  349. connection.setRequestMethod("GET");
  350. connection.setReadTimeout(AppStaticMembers.WAIT_RESPONSE_TIMEOUT);
  351.  
  352. OutputStream outputStream = connection.getOutputStream();
  353. BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
  354. writer.write(getQuery(params));
  355. writer.flush();
  356. writer.close();
  357. outputStream.close();
  358. connection.connect();
  359. if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
  360. reader[0] = new BufferedReader(new InputStreamReader(connection.getInputStream()));
  361. while ((line[0] = reader[0].readLine()) != null) {
  362. stringBuilder.append(line[0]);
  363. }
  364. }
  365.  
  366.  
  367. } catch (Exception e) {
  368. e.printStackTrace();
  369.  
  370. } finally {
  371. if (reader[0] != null) {
  372. try {
  373. reader[0].close();
  374. } catch (IOException e) {
  375. e.printStackTrace();
  376. }
  377. }
  378. }
  379.  
  380. runOnUiThread(new Runnable() {
  381. @Override
  382. public void run() {
  383. try {
  384. String message = stringBuilder.toString();
  385.  
  386. Toast.makeText(LoginActivity.this, "token is : " + message, Toast.LENGTH_LONG).show();
  387. } catch (Exception e) {
  388.  
  389. }
  390.  
  391. }
  392. });
  393.  
  394. }
  395.  
  396. }).start();
  397. return stringBuilder.toString();
  398.  
  399. }
  400.  
  401. private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException {
  402. StringBuilder result = new StringBuilder();
  403. boolean first = true;
  404.  
  405. for (NameValuePair pair : params) {
  406. if (first)
  407. first = false;
  408. else
  409. result.append("&");
  410.  
  411. result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
  412. result.append("=");
  413. result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
  414. }
  415.  
  416. return result.toString();
  417. }
  418.  
  419.  
  420. private void hideKeyboard(View view) {
  421. InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
  422. inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
  423.  
  424. }
  425.  
  426. private void setupUI(final View view) {
  427.  
  428. if (!(view instanceof EditText)) {
  429. view.setOnTouchListener(new View.OnTouchListener() {
  430. @Override
  431. public boolean onTouch(View v, MotionEvent event) {
  432.  
  433. hideKeyboard(view);
  434. return false;
  435. }
  436. });
  437. }
  438.  
  439. if (view instanceof ViewGroup) {
  440. for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
  441. View innerView = ((ViewGroup) view).getChildAt(i);
  442. setupUI(innerView);
  443. }
  444. }
  445.  
  446. }
  447.  
  448.  
  449. @Override
  450. protected void onResume() {
  451. super.onResume();
  452. //AppEventsLogger.activateApp(this);
  453. if (sign_in != null) {
  454. sign_in.setProgress(0);
  455. }
  456. }
  457.  
  458. @Override
  459. protected void onStop() {
  460. super.onStop();
  461. // AppEventsLogger.deactivateApp(this);
  462. }
  463. }
Advertisement
Add Comment
Please, Sign In to add comment