package com.example.kristal.p_retrofit;
import android.content.Context;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;
import com.example.kristal.p_retrofit.Reset.APIClient;
import com.example.kristal.p_retrofit.Reset.APIInterface;
import java.util.ArrayList;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class MainActivity extends AppCompatActivity
{
ArrayList<Displaymodel.Result> app_data;
RecyclerView rv;
LinearLayoutManager lm;
String fname,lname;
DBExample de;
Cursor c;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rv=(RecyclerView)findViewById(R.id.recycler);
// lv=(ListView)findViewById(R.id.listview);
de=new DBExample(this);
app_data=new ArrayList<>();
ConnectivityManager connectivity=(ConnectivityManager) getApplication().getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivity.getActiveNetworkInfo()!=null)
{
de.drop();
display();
// Toast.makeText(MainActivity.this, "Network Connected",Toast.LENGTH_LONG).show(); }
else {
app_data.clear();
c=de.displayrecored();
if(c.moveToFirst())
{
do {
Displaymodel.Result userdata=new Displaymodel.Result();
userdata.setF_nm(c.getString(1));
userdata.setL_nm(c.getString(2));
app_data.add(userdata);
}while (c.moveToNext());
}
lm=new LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(lm);
Customadapter adapter=new Customadapter(MainActivity.this,app_data);
rv.setAdapter(adapter);
// Toast.makeText(MainActivity.this, (CharSequence) Mylist,Toast.LENGTH_LONG).show(); }
}
public void display()
{
APIInterface apiInterface=APIClient.getClient().create(APIInterface.class);
Call<Displaymodel> call=apiInterface.displayall();
call.enqueue(new Callback<Displaymodel>()
{
@Override public void onResponse(Call<Displaymodel> call, Response<Displaymodel> response)
{
if(response.body().getSuccess().equals("true"))
{
for(int i = 0; i < response.body().result.size(); i++)
{
Displaymodel.Result userdata = new Displaymodel.Result();
//Toast.makeText(MainActivity.this, "Id" + response.body().result.get(i).getId(), Toast.LENGTH_SHORT).show(); fname=response.body().result.get(i).getF_nm();
lname=response.body().result.get(i).getL_nm();
userdata.setId(response.body().result.get(i).getId());
userdata.setF_nm(response.body().result.get(i).getF_nm());
userdata.setL_nm(response.body().result.get(i).getL_nm());
userdata.setImage(response.body().result.get(i).getImage());
app_data.add(userdata);
DBExample de=new DBExample(getApplication());
de.insertrecored(fname,lname);
}
}
lm=new LinearLayoutManager(getApplicationContext());
rv.setLayoutManager(lm);
Customadapter adapter=new Customadapter(MainActivity.this,app_data);
rv.setAdapter(adapter);
}
@Override public void onFailure(Call<Displaymodel> call, Throwable t) {
Toast.makeText(MainActivity.this, "Error"+t.toString(), Toast.LENGTH_SHORT).show();
}
});
}
}
Customadapter.java
package com.example.kristal.p_retrofit;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
public class Customadapter extends RecyclerView.Adapter<Customadapter.myviewholder>
{
ArrayList<Displaymodel.Result>pnm=new ArrayList<>();
Context context;
public Customadapter(MainActivity context, ArrayList<Displaymodel.Result> pnm)
{
this.context=context;
this.pnm=pnm;
}
@Override
public myviewholder onCreateViewHolder(ViewGroup parent, int viewType)
{
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.display,parent,false);
myviewholder vh=new myviewholder(v);
return vh;
}
@Override
public void onBindViewHolder(myviewholder holder, int position)
{
holder.fnm.setText(pnm.get(position).getF_nm());
holder.lnm.setText(pnm.get(position).getL_nm());
Picasso.with(context).load(pnm.get(position).getImage()).into(holder.img);
}
@Override
public int getItemCount() {
if(pnm!=null) {
return pnm.size();
}
else {
return 0;
}
}
public class myviewholder extends RecyclerView.ViewHolder
{
TextView fnm,lnm;
ImageView img;
public myviewholder(View itemView)
{
super(itemView);
fnm=(TextView)itemView.findViewById(R.id.textView1);
lnm=(TextView)itemView.findViewById(R.id.textView2);
img=(ImageView)itemView.findViewById(R.id.image);
}
}
}
Customadapter.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="170dp"
android:layout_height="120dp"
android:id="@+id/image"
android:layout_marginRight="5dp"
android:src="@mipmap/ic_launcher"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:layout_marginBottom="5dp"
android:id="@+id/textView1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:id="@+id/textView2" />
</LinearLayout>
</LinearLayout>
package com.example.kristal.p_retrofit;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
/** * Created by kristal on 6/25/2018. */public class DBExample extends SQLiteOpenHelper
{
SQLiteDatabase db;
private Context context;
public DBExample(Context context)
{
super(context, "Person.db", null, 1);
this.context = context;
}
@Override public void onCreate(SQLiteDatabase db)
{
//Toast.makeText(context, "onCreate ", Toast.LENGTH_SHORT).show(); db.execSQL("create table if not exists Demo(id integer PRIMARY KEY AUTOINCREMENT,fnm varchar,lnm varchar);");
}
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS Demo");
onCreate(db);
}
public void insertrecored(String fname, String lname)
{
db = getWritableDatabase();
String Query = "insert into Demo(fnm ,lnm)values('" + fname + "','" + lname + "')";
db.execSQL(Query);
Toast.makeText(context, "Recored Inserted.....", Toast.LENGTH_SHORT).show();
}
public Cursor displayrecored()
{
db=getReadableDatabase();
String query="select * from Demo";
Cursor c=db.rawQuery(query,null);
/*if(c.moveToFirst())
{
do {
Mylist.add(c.getString(1));
Mylist.add(c.getString(2));
}while (c.moveToNext()); }*/
return c;
}
public void drop()
{
db=getWritableDatabase();
db.execSQL("DROP TABLE IF EXISTS Demo");
//Toast.makeText(context, "table deleted ", Toast.LENGTH_SHORT).show(); onCreate(db);
}
}
Displaymodel.java
package com.example.kristal.p_retrofit;
import com.google.gson.annotations.SerializedName;
import java.util.List;
/** * Created by kristal on 6/25/2018. */public class Displaymodel
{
@SerializedName("result")
public List<Result> result;
@SerializedName("success")
public String success;
public List<Result> getResult() {
return result;
}
public void setResult(List<Result> result) {
this.result = result;
}
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public static class Result {
@SerializedName("id")
public String id;
@SerializedName("f_nm")
public String f_nm;
@SerializedName("l_nm")
public String l_nm;
@SerializedName("image")
public String image;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getF_nm() {
return f_nm;
}
public void setF_nm(String f_nm) {
this.f_nm = f_nm;
}
public String getL_nm() {
return l_nm;
}
public void setL_nm(String l_nm) {
this.l_nm = l_nm;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
}
No comments:
Post a Comment