Guest User

Untitled

a guest
Nov 2nd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1. package com.example.azo.loginapp;
  2.  
  3. //Android packages
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.content.Intent;
  7. import android.text.TextUtils;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13.  
  14. //Project packages
  15. import com.example.azo.loginapp.data.model.Post;
  16. import com.example.azo.loginapp.data.remote.APIService;
  17. import com.example.azo.loginapp.data.remote.ApiUtils;
  18.  
  19. //Retrofit packages
  20. import org.json.JSONException;
  21. import org.json.JSONObject;
  22. import retrofit2.Call;
  23. import retrofit2.Callback;
  24. import retrofit2.Response;
  25.  
  26. public class LoginPage extends AppCompatActivity{
  27. private EditText Name;
  28. private EditText Password;
  29. private TextView Info;
  30. private Button Login;
  31. private int counter = 5;
  32.  
  33. private APIService mAPIService;
  34.  
  35. @Override
  36. protected void onCreate(Bundle savedInstanceState) {
  37. super.onCreate(savedInstanceState);
  38. setContentView(R.layout.login_page);
  39. mAPIService = ApiUtils.getAPIService();
  40. Name = findViewById(R.id.etName);
  41. Password = findViewById(R.id.etPass);
  42. Info = findViewById(R.id.tvInfo);
  43. Login = findViewById(R.id.btnLogin);
  44.  
  45. Info.setText("No of attempts remaining: 5");
  46.  
  47. Login.setOnClickListener(new View.OnClickListener() {
  48. @Override
  49. public void onClick(View view) {
  50. validate(Name.getText().toString(),Password.getText().toString());
  51. }
  52. });
  53. }
  54.  
  55. public void sendPost(String username, String password) {
  56. try {
  57. JSONObject paramObject = new JSONObject();
  58. paramObject.put("username", username);
  59. paramObject.put("password", password);
  60. Call<Post> postCall = mAPIService.savePost(paramObject.toString());
  61. postCall.enqueue(new Callback<Post>(){
  62. @Override
  63. public void onResponse(Call<Post> call,Response<Post> response) {
  64. Toast.makeText(LoginPage.this, "It worked!",Toast.LENGTH_SHORT).show();
  65. }
  66.  
  67. @Override
  68. public void onFailure(Call<Post> call, Throwable t) {
  69. Toast.makeText(LoginPage.this, "Something went wrong :(", Toast.LENGTH_SHORT).show();
  70. }
  71. });
  72. }catch(JSONException e){
  73. e.printStackTrace();
  74. }
  75. }
  76.  
  77. private void validate(String userName, String userPass){
  78. if(!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(userPass)){
  79. sendPost(userName, userPass);
  80. }else{
  81. counter--;
  82. Info.setText("No of atttempts remaining: " + String.valueOf(counter));
  83. if(counter == 0) {
  84. Login.setEnabled(false);
  85. }
  86. }
  87. }
  88. }
  89.  
  90. package com.example.azo.loginapp.data.remote;
  91. import com.example.azo.loginapp.data.model.Post;
  92. import retrofit2.Call;
  93. import retrofit2.http.Body;
  94. import retrofit2.http.Headers;
  95. import retrofit2.http.POST;
  96. /**
  97. * Created by azotherian on 11/1/17.
  98. */
  99.  
  100. public interface APIService {
  101. @Headers("Content-Type: application/json")
  102. @POST("login")
  103. Call<Post> savePost(@Body String body);
  104. }
  105.  
  106. package com.example.azo.loginapp.data.model;
  107. /**
  108. * Created by azotherian on 11/1/17.
  109. */
  110. import com.google.gson.annotations.Expose;
  111. import com.google.gson.annotations.SerializedName;
  112.  
  113. public class Post {
  114. @SerializedName("username")
  115. @Expose
  116. private String username;
  117.  
  118. @SerializedName("password")
  119. @Expose
  120. private String password;
  121.  
  122. public String getUsername(){
  123. return username;
  124. }
  125.  
  126. public void setUsername(String username){
  127. username = username;
  128. }
  129.  
  130. public String getPassword(){
  131. return password;
  132. }
  133.  
  134. public void setPassword(String password){
  135. password = password;
  136. }
  137.  
  138. @Override
  139. public String toString(){
  140. return "Post{" +
  141. "username='" + username + ''' +
  142. ", password='" + password + ''' +
  143. '}';
  144. }
  145. }
  146.  
  147. package com.example.azo.loginapp.data.remote;
  148.  
  149. import retrofit2.Retrofit;
  150. import retrofit2.converter.gson.GsonConverterFactory;
  151.  
  152. /**
  153. * Created by azotherian on 11/1/17.
  154. */
  155.  
  156. public class RetrofitClient {
  157. private static Retrofit retrofit = null;
  158.  
  159. public static Retrofit getClient(String baseUrl) {
  160. if (retrofit==null) {
  161. retrofit = new Retrofit.Builder()
  162. .baseUrl(baseUrl)
  163. .addConverterFactory(GsonConverterFactory.create())
  164. .build();
  165. }
  166. return retrofit;
  167. }
  168. }
  169.  
  170. package com.example.azo.loginapp.data.remote;
  171.  
  172. /**
  173. * Created by azotherian on 11/1/17.
  174. */
  175.  
  176. public class ApiUtils {
  177. private ApiUtils() {}
  178.  
  179. public static final String BASE_URL = "http://107.170.239.46/";
  180.  
  181. public static APIService getAPIService() {
  182. return RetrofitClient.getClient(BASE_URL).create(APIService.class);
  183. }
  184. }
Add Comment
Please, Sign In to add comment