Ready to create ApIRequest task file

This commit is contained in:
Pierre 2017-10-31 09:48:28 +01:00
parent 4a7c5dfc1f
commit 7b217acbdb
9 changed files with 202 additions and 0 deletions

View File

@ -12,6 +12,13 @@ android {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
buildConfigField "String", "api_url", "\"http://devweb.local/comunic/api/\""
buildConfigField "String", "api_service_name", "testService"
buildConfigField "String", "api_service_token", "testPasswd"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

View File

@ -2,6 +2,12 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.communiquons.android.comunic.client">
<!-- Internet access is required to access the API -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:fullBackupContent="@xml/backup_scheme"

View File

@ -0,0 +1,46 @@
package org.communiquons.android.comunic.client;
import java.util.ArrayList;
/**
* This class handles the setup of the parametres required to setup an API request
*
* Created by pierre on 10/31/17.
*/
class APIParameters {
/**
* Parameters of the request
*/
private ArrayList<APIPostData> parameters;
/**
* The URI on the server
*/
private String request_uri;
/**
* The class constructor
*
* @param uri The request URI on the server
*/
APIParameters(String uri){
//Save request URI
request_uri = uri;
//Intializate parametres array
parameters = new ArrayList<>();
}
/**
* Add a new parameter to the request
*
* @param name The name of the new key
* @param value The value of the new key
*/
void addParameter(String name, String value){
parameters.add(new APIPostData(name, value));
}
}

View File

@ -0,0 +1,57 @@
package org.communiquons.android.comunic.client;
import java.net.URLEncoder;
/**
* This class stores on parameter for a POST request
*
* Created by pierre on 10/31/17.
*/
class APIPostData {
/**
* The name of the key
*/
private String key_name;
/**
* The value of the key
*/
private String key_value;
/**
* Public constructor of the class
*
* @param name The name of the parameter
* @param value The value of the parameter
*/
APIPostData(String name, String value){
key_name = name;
key_value = value;
}
/**
* Get the the name and the value of the key in an encoded form
*
* @return The result
*/
String get_encoded(){
String encoded_key;
String encoded_value;
try {
encoded_key = URLEncoder.encode(key_name, "UTF-8");
encoded_value = URLEncoder.encode(key_value, "UTF-8");
} catch (java.io.UnsupportedEncodingException e){
e.printStackTrace();
return "";
}
//Return result
return encoded_key + "&" + encoded_value;
}
}

View File

@ -0,0 +1,15 @@
package org.communiquons.android.comunic.client;
import android.os.AsyncTask;
import org.json.JSONObject;
/**
* Created by pierre on 10/31/17.
*/
abstract class APIRequestTask extends AsyncTask<APIParameters, Void, JSONObject> {
}

View File

@ -2,12 +2,68 @@ package org.communiquons.android.comunic.client;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends AppCompatActivity {
/**
* Utilities object
*/
private Utilities utils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//Create utilities object
utils = new Utilities(this);
//Make login submit button lives
findViewById(R.id.login_submit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Submit login form
submitLogin();
}
});
}
/**
* Handle login form submission
*/
void submitLogin(){
//Get the fields
EditText login_mail = (EditText) findViewById(R.id.email_field);
EditText login_password = (EditText) findViewById(R.id.password_field);
int stop = 0;
//Check password
if(login_password.length()<3){
login_password.setError(getString(R.string.activity_login_err_invalid_password));
login_password.requestFocus();
stop = 1;
}
//Check email address
if(login_mail.length() < 3 || !utils.isValidMail(login_mail.getText())){
login_mail.setError(getString(R.string.activity_login_err_invalid_email));
login_mail.requestFocus();
stop = 1;
}
//Stop if required
if(stop != 0)
return;
}
}

View File

@ -1,7 +1,9 @@
package org.communiquons.android.comunic.client;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import android.util.Patterns;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@ -91,4 +93,14 @@ class Utilities {
//Success
return true;
}
/**
* Check whether a specified email address is valid or not
*
* @param mail The E-Mail address to check
* @return True if the mail is valid / false else
*/
boolean isValidMail(CharSequence mail){
return !TextUtils.isEmpty(mail) && Patterns.EMAIL_ADDRESS.matcher(mail).matches();
}
}

View File

@ -65,6 +65,7 @@
<!-- Sign in button -->
<Button
android:id="@+id/login_submit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"

View File

@ -4,4 +4,6 @@
<string name="activity_login_email_hint">Email address</string>
<string name="activity_login_password_hint">Password</string>
<string name="activity_login_submit_form">Login</string>
<string name="activity_login_err_invalid_password">The password is invalid!</string>
<string name="activity_login_err_invalid_email">The email specified is invalid !</string>
</resources>