mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-23 13:59:29 +00:00
Ready to create ApIRequest task file
This commit is contained in:
parent
4a7c5dfc1f
commit
7b217acbdb
@ -12,6 +12,13 @@ android {
|
|||||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
||||||
|
debug {
|
||||||
|
buildConfigField "String", "api_url", "\"http://devweb.local/comunic/api/\""
|
||||||
|
buildConfigField "String", "api_service_name", "testService"
|
||||||
|
buildConfigField "String", "api_service_token", "testPasswd"
|
||||||
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
minifyEnabled false
|
minifyEnabled false
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
@ -2,6 +2,12 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="org.communiquons.android.comunic.client">
|
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
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:fullBackupContent="@xml/backup_scheme"
|
android:fullBackupContent="@xml/backup_scheme"
|
||||||
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -2,12 +2,68 @@ package org.communiquons.android.comunic.client;
|
|||||||
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
public class LoginActivity extends AppCompatActivity {
|
public class LoginActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities object
|
||||||
|
*/
|
||||||
|
private Utilities utils;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_login);
|
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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package org.communiquons.android.comunic.client;
|
package org.communiquons.android.comunic.client;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.util.Patterns;
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -91,4 +93,14 @@ class Utilities {
|
|||||||
//Success
|
//Success
|
||||||
return true;
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,7 @@
|
|||||||
|
|
||||||
<!-- Sign in button -->
|
<!-- Sign in button -->
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/login_submit"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
|
@ -4,4 +4,6 @@
|
|||||||
<string name="activity_login_email_hint">Email address</string>
|
<string name="activity_login_email_hint">Email address</string>
|
||||||
<string name="activity_login_password_hint">Password</string>
|
<string name="activity_login_password_hint">Password</string>
|
||||||
<string name="activity_login_submit_form">Login</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>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user