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.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.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
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.DistributorAdapter;
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 DistributorActivity extends SherlockActivity {
protected static final String DISTRIBUTOR_ID_KEY = "distributorID";
protected static final String DISTRIBUTOR_ICON_CACHE = "distributorIconCache";
private List<DistributorObj> objects;
private ActionBar actionbar;
private int catalog_id;
private TextView detail_num;
private TextView distributor_num;
private TextView catalog_num;
private SharedPreferences sharepref;
private LoadDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_distributors);
// load banner from cache
ImageView banner=(ImageView)findViewById(R.id.banner_img);
LoadFooter footer=new LoadFooter(this,banner);
footer.loadCache();
// load header sharepref
sharepref = getSharedPreferences("com.niw.adv", Context.MODE_PRIVATE);
catalog_num = (TextView) findViewById(R.id.catalog_num);
catalog_num.setText(sharepref.getString(CatalogObj.CATALOG_NUM, ""));
distributor_num = (TextView) findViewById(R.id.distributor_num);
distributor_num.setText(sharepref.getString(DistributorObj.DISTRIBUTOR_NUM, ""));
detail_num = (TextView) findViewById(R.id.detail_num);
detail_num.setText(sharepref.getString(DetailObj.DETAIL_NUM, ""));
//Load
if(dialog==null) dialog=new LoadDialog(this);
// catalog_id to query DB
// get catalogID
Intent retrive = getIntent();
Log.d(getPackageName(), "Distributor <- get ID:" + retrive.getIntExtra(CatalogActivity.CATALOG_ID_KEY, -1));
catalog_id=retrive.getIntExtra(CatalogActivity.CATALOG_ID_KEY, -1);
// set value from Json
// fix link chuan
objects=new ArrayList<DistributorObj>();
final ListView lDistributor = (ListView) findViewById(R.id.list_distributor);
lDistributor.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int pos,
long id) {
Intent i = new Intent(DistributorActivity.this,
DetailActivity.class);
// send distributor -> detail
i.putExtra(DISTRIBUTOR_ID_KEY, objects.get(pos).getId());
// send icon cache path -> detail to get image logo from cache
i.putExtra(DISTRIBUTOR_ICON_CACHE, objects.get(pos).getIcon());
Log.d(getPackageName(), "Distributor Activity: send ID : "
+ objects.get(pos).getId());
Log.d(getPackageName(),
"Distributor Activity: send Icon cache : "
+ objects.get(pos).getIcon());
startActivity(i);
}
});
// check network state
NetworkManager nw = new NetworkManager(this);
if (nw.NetworkState()) {
// get catalog_id => add to link
// Json
final JsonFuncs jf = new JsonFuncs(this,
"http://websitebanhang.net/advserver/index.php/getDistributors?catalog_id="
+ catalog_id);
new AsyncTask<Void, Integer, String>() {
protected void onPreExecute() {
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 DistributorObj(jsonOBJ.getInt(DistributorObj.ID_COLUMN),
jsonOBJ.getString(DistributorObj.NAME_COLUMN),
jsonOBJ.getString(DistributorObj.ICON_COLUMN),
catalog_id,
jsonOBJ.getInt(DistributorObj.RECORDS_COLUMN)));
}
lDistributor.setAdapter(new DistributorAdapter(
getApplicationContext(), R.layout.base_item,
objects));
if (dialog.getDialog() != null) {
dialog.getDialog().dismiss();
dialog.setDialog(null);
}
} catch (JSONException e) {
e.printStackTrace();
}
};
}.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();
}
actionbar = getSupportActionBar();
actionbar.setTitle("");
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setCustomView(R.layout.actionbar_title); //custom title
}
@Override
public void onBackPressed() {
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
// event select item action bar
@Override
public boolean onMenuItemSelected(int featureId,
com.actionbarsherlock.view.MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
} else if (item.getItemId() == R.id.action_home) {
startActivity(new Intent(DistributorActivity.this, CatalogActivity.class));
finish();
}
return true;
}
}