package com.niw.adv.activity;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
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.DetailAdapter;
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 DetailActivity extends SherlockActivity {
protected static final String LINK_DETAIL = "keylink";
private List<DetailObj> objects;
private ActionBar actionbar;
private SharedPreferences sharepref;
private TextView catalog_num;
private TextView distributor_num;
private TextView detail_num;
private LoadDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
// 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 dialog
if(dialog==null) dialog=new LoadDialog(this);
objects = new ArrayList<DetailObj>();
Intent intent = getIntent();
int d_ID = intent.getIntExtra(DistributorActivity.DISTRIBUTOR_ID_KEY, -1);
if (d_ID != -1) {
Log.d(getPackageName(), "retive distributor ID " + d_ID);
} else {
Log.e(getPackageName(), "Error get distributor id ");
}
// List view
final ListView lDetails = (ListView) findViewById(R.id.list_detail);
// IconDistributor path from Distributor activity
final String iconDistributor = getIntent().getStringExtra(
DistributorActivity.DISTRIBUTOR_ICON_CACHE);
Log.d(getPackageName(), "Details acti: get icon cache: "
+ iconDistributor);
lDetails.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int pos, long id) {
// put link -> Fullscreen to load
Intent i = new Intent(DetailActivity.this, FullscreenActivity.class);
i.putExtra(LINK_DETAIL, objects.get(pos).getLink());
Log.d(getPackageName(), "Detail send link:"
+ objects.get(pos).getLink());
startActivity(i);
}
});
// check network state
NetworkManager nw = new NetworkManager(this);
if (nw.NetworkState()) {
// set value from json
// retrive distributor_id to query DB , simple add to link
// Json
final JsonFuncs jf = new JsonFuncs(this,
"http://websitebanhang.net/advserver/index.php/getDetails?distributor_id="+ d_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);
for (int i = 0; i < array.length(); i++) {
objects.add(new DetailObj(array.getJSONObject(i)
.getString(DetailObj.TITLE_COLUMN), array
.getJSONObject(i).getString(
DetailObj.LINK_COLUMN), array
.getJSONObject(i).getString(
DetailObj.EXPIRE_COLUMN)));
}
lDetails.setAdapter(new DetailAdapter(
DetailActivity.this, R.layout.detail_item,
objects, iconDistributor));
if (dialog.getDialog() != null) {
dialog.getDialog().dismiss();
dialog.setDialog(null);
}
if (objects.size() == 1) {
// put link -> Fullscreen to load (if 1 child)
Intent i = new Intent(DetailActivity.this,
FullscreenActivity.class);
i.putExtra(LINK_DETAIL, objects.get(0).getLink());
Log.d(getPackageName(), "Detail send link:"
+ objects.get(0).getLink());
startActivity(i);
}
} 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
actionbar = getSupportActionBar();
actionbar.setTitle("");
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setDisplayShowCustomEnabled(true);
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);
}
@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(DetailActivity.this, CatalogActivity.class));
finish();
}
return true;
}
}