package com.niw.adv.activity;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.adv.activity.R;
import com.niw.adv.adapter.CatalogAdapter;
import com.niw.adv.helper.JsonFuncs;
import com.niw.adv.helper.LoadDialog;
import com.niw.adv.helper.LoadFooter;
import com.niw.adv.helper.NetworkManager;
import com.niw.adv.object.CatalogObj;
import com.niw.adv.object.DetailObj;
import com.niw.adv.object.DistributorObj;
public class CatalogActivity extends SherlockActivity {
public static String CATALOG_ID_KEY = "catalog_id";
private boolean preExit = false;
private ActionBar actionbar;
private TextView catalog_num;
private TextView distributor_num;
private TextView detail_num;
private Editor sharepref;
private LoadDialog dialog;
private SharedPreferences spref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
// load banner
ImageView banner=(ImageView)findViewById(R.id.banner_img);
LoadFooter footer=new LoadFooter(this,banner);
footer.execute("http://websitebanhang.net/advserver/index.php/getFooter");
// retrive previous value
spref=getSharedPreferences("com.niw.adv", Context.MODE_PRIVATE);
catalog_num=(TextView)findViewById(R.id.catalog_num);
catalog_num.setText(spref.getString(CatalogObj.CATALOG_NUM, ""));
distributor_num=(TextView)findViewById(R.id.distributor_num);
distributor_num.setText(spref.getString(DistributorObj.DISTRIBUTOR_NUM, ""));
detail_num=(TextView)findViewById(R.id.detail_num);
detail_num.setText(spref.getString(DetailObj.DETAIL_NUM, ""));
sharepref=spref.edit();
Log.d(getPackageName(), getPackageName());
// load dialog
if(dialog==null) dialog=new LoadDialog(this);
// Listview
final ListView lCatalog = (ListView) findViewById(R.id.list_catalog);
final List<CatalogObj> objects = new ArrayList<CatalogObj>();
// listview onclick item
lCatalog.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int pos,
long id) {
// send catalog id -> distribtor
Intent i = new Intent(CatalogActivity.this, DistributorActivity.class);
i.putExtra(CATALOG_ID_KEY, objects.get(pos).getId());
startActivity(i);
Log.d(getPackageName(), "Catalog ->Send ID:"
+ objects.get(pos).getId());
}
});
// check network state
NetworkManager nw = new NetworkManager(this);
if (nw.NetworkState()) {
// Json
final JsonFuncs jf = new JsonFuncs(this,
"http://websitebanhang.net/advserver/index.php/getCatalog");
new AsyncTask<Void, Integer, String>() {
protected void onPreExecute() {
dialog.getDialog().setCancelable(false);
dialog.getDialog().show();
};
@Override
protected String doInBackground(Void... params) {
return jf.getJson();
}
protected void onPostExecute(String result) {
Log.d(getPackageName(), result);
// get all data from json
// json format: [ {}, {},....]
try {
JSONArray array = new JSONArray(result);
JSONObject jsonOBJ;
for (int i = 0; i < array.length(); i++) {
jsonOBJ=array.getJSONObject(i);
objects.add(new CatalogObj(jsonOBJ.getInt(CatalogObj.ID_COLUMN),
jsonOBJ.getString(CatalogObj.NAME_COLUMN),
jsonOBJ.getString(CatalogObj.ICON_COLUMN),
jsonOBJ.getInt(CatalogObj.RECORDS_COLUMN)));
}
lCatalog.setAdapter(new CatalogAdapter(
getApplicationContext(), R.layout.base_item, objects));
if (dialog.getDialog() != null) {
dialog.getDialog().dismiss();
dialog.setDialog(null);
}
} catch (JSONException e) {
e.printStackTrace();
}
};
}.execute();
// json header -> share preference
final JsonFuncs jheader = new JsonFuncs(this,
"http://websitebanhang.net/advserver/index.php/getRownum");
new AsyncTask<Void, Integer, String>() {
@Override
protected String doInBackground(Void... params) {
return jheader.getJson();
}
protected void onPostExecute(String result) {
try {
JSONObject jsonObject = new JSONObject(result);
catalog_num.setText(jsonObject
.getString(CatalogObj.CATALOG_NUM));
distributor_num.setText(jsonObject
.getString(DistributorObj.DISTRIBUTOR_NUM));
detail_num.setText(jsonObject
.getString(DetailObj.DETAIL_NUM));
sharepref.putString(CatalogObj.CATALOG_NUM,
jsonObject.getString(CatalogObj.CATALOG_NUM));
sharepref
.putString(
DistributorObj.DISTRIBUTOR_NUM,
jsonObject
.getString(DistributorObj.DISTRIBUTOR_NUM));
sharepref.putString(DetailObj.DETAIL_NUM,
jsonObject.getString(DetailObj.DETAIL_NUM));
sharepref.commit();
} catch (JSONException e) {
Log.e(getPackageName(),
"Parse string -> json object failed:"
+ e.toString());
}
};
}.execute();
} else {
Toast toast=Toast.makeText(this, "Không có kết nối mạng", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER , 0, 0);
toast.show();
}
// action bar setting
actionbar = getSupportActionBar();
actionbar.setTitle("");
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setCustomView(R.layout.actionbar_title); //custom title
}
@Override
protected void onResume() {
super.onResume();
preExit = false;
}
@Override
public void onBackPressed() {
if (preExit) {
super.onBackPressed();
return;
}
preExit = true;
Toast.makeText(CatalogActivity.this, "Ấn lại lần nữa để thoát",
Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu, menu);
menu.findItem(R.id.action_home).setIcon(R.drawable.close);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId,
com.actionbarsherlock.view.MenuItem item) {
if(item.getItemId()==R.id.action_home){
this.finish();
}
return true;
}
}