Вызов API с использованием AsyncTask с логином и отображением данных в RECYCLERVIEW
build.gradle (Module.app)
dependencies {
compile 'com.android.support:recyclerview-v7:23.3.+'
compile 'com.android.support:cardview-v7:23.3.+'
compile 'com.github.bumptech.glide:glide:3.7.0'
}
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_marginRight="10dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Email" />
<EditText
android:id="@+id/edit_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter Password" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="Login" />
</LinearLayout>
MainActivity.java
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity
{
public EditText edit_email,edit_password;
public Button btn_login;
public String str_email,str_password;
public Utils utils;
public String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+.[a-z]+";
public static final String BASE_URL="ffyy/";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
utils=new Utils(MainActivity.this);
edit_email= (EditText) findViewById(R.id.edit_email);
edit_password= (EditText) findViewById(R.id.edit_password);
btn_login= (Button) findViewById(R.id.btn_login);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
if (edit_email.getText().toString().trim().length() == 0)
{
edit_email.setError("Enter Email Id");
return;
}
else if (edit_password.getText().toString().trim().length() == 0) {
edit_password.setError("Enter Password");
return;
}
else {
str_email = edit_email.getText().toString();
str_password = edit_password.getText().toString();
if (utils.isConnectingToInternet(MainActivity.this)) {
new getLoginData().execute();
} else {
Toast.makeText(MainActivity.this, "Please check internet connection.", Toast.LENGTH_SHORT).show();
}
}
}
});
}
private class getLoginData extends AsyncTask<String,String,String>
{
public ProgressDialog pd;
@Override
protected void onPreExecute()
{
super.onPreExecute();
pd=new ProgressDialog(MainActivity.this);
pd.setMessage("Loading...");
pd.setCancelable(false);
pd.show();
}
@Override
protected String doInBackground(String... params)
{
HashMap<String,String> hashMap=new HashMap<>();
hashMap.put("email", str_email);
hashMap.put("password", str_password);
String str_response= utils.getResponseofPost(BASE_URL+"login_for_all.php",hashMap);
return str_response;
}
@Override
protected void onPostExecute(String s)
{
super.onPostExecute(s);
pd.dismiss();
try {
JSONObject jsonObject=new JSONObject(s);
if(jsonObject.getString("status").equalsIgnoreCase("true"))
{
Toast.makeText(MainActivity.this, jsonObject.getString("msg"), Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.this, jsonObject.getString("msg"), Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
Utils.java
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.location.Location;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.StrictMode;
import android.preference.PreferenceManager;
import android.util.Base64;
import android.util.Log;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.net.ssl.HttpsURLConnection;
public class Utils {
static Context context;
SharedPreferences sp;
Location getLocation;
public Utils(Context context) {
this.context = context;
//sp = context.getSharedPreferences(Constant.Prefrence, Context.MODE_PRIVATE);
}
/* public String getReadSharedPrefrenceIsFirstTime(Context activity, String userid) {
String defValue = "";
String resposne = sp.getString(Constant.ISFIRSTTIME, defValue);
return resposne;
}
*/
/*
public static String convertToGson(Object object) {
Gson gson = new Gson();
String loginResult = gson.toJson(object);
return loginResult;
}
public static <T> T GsonToObject(String strObj, Type classObject) {
Gson gson = new Gson();
return gson.fromJson(strObj, classObject);
}
*/
public void clearSharedPreferenceData() {
sp.edit().clear().commit();
}
public String getResponseofPost(String URL, HashMap<String, String> postDataParams) {
URL url;
String response = "";
try {
url = new URL(URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode = conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = br.readLine()) != null) {
response += line;
}
} else {
response = "";
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
public static String getResponseofGet(String URL) {
URL url;
String response = "";
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
url = new URL(URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.flush();
writer.close();
os.close();
int responseCode = conn.getResponseCode();
Log.d("URL - ResponseCode", URL + " - " + responseCode);
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = br.readLine()) != null) {
response += line;
}
} else {
response = "";
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
private String getPostDataString(HashMap<String, String> params) throws
UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;
for (Map.Entry<String, String> entry : params.entrySet()) {
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
return result.toString();
}
public String MakeServiceCall(String URLSTR) {
StringBuilder response = null;
try {
response = new StringBuilder();
URL url = new URL(URLSTR);
HttpURLConnection httpconn = (HttpURLConnection) url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()), 8192);
String strLine = null;
while ((strLine = input.readLine()) != null) {
response.append(strLine);
}
input.close();
}
} catch (Exception e) {
}
return response.toString();
}
private boolean appInstalledOrNot(String packageName) {
PackageManager pm = context.getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
public static boolean isConnectingToInternet(Context context)
{
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Network[] networks = connectivityManager.getAllNetworks();
NetworkInfo networkInfo;
for (Network mNetwork : networks)
{
networkInfo = connectivityManager.getNetworkInfo(mNetwork);
if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) {
return true;
}
}
} else {
if (connectivityManager != null)
{
NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
if (info != null) {
for (NetworkInfo anInfo : info) {
if (anInfo.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
}
return false;
}
public static void WriteSharePrefrence(Context context, String key, String value)
{
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.commit();
}
public static String ReadSharePrefrence(Context context, String key)
{
String data;
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = preferences.edit();
data = preferences.getString(key, "");
editor.commit();
return data;
}
public static void Clear(Context context, String key)
{
String data;
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = preferences.edit().clear();
editor.commit();
}
public static void ClearaSharePrefrence(Context context) {
String data;
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = preferences.edit().clear();
editor.commit();
}
public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality) {
ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
image.compress(compressFormat, quality, byteArrayOS);
return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
}
public static String getLeaveStatus(String status) {
String result = "";
switch (status) {
case "0":
result = "Pending";
break;
case "1":
result = "Aproved";
break;
case "2":
result = "Cancel";
break;
}
return result;
}
public String parseDateToddMMyyyy(String time)
{
String inputPattern = "yyyy-MM-dd HH:mm:ss";
String outputPattern = "yyyy-MM-dd";
SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern);
SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern);
Date date = null;
String str = null;
try {
date = inputFormat.parse(time);
str = outputFormat.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
return str;
}
}