Thursday 7 June 2012

MAinListActivity.java


package com.qualcomm.QCARSamples.ImageTargets;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONArray;
import org.json.JSONException;

import android.util.Log;
import android.view.LayoutInflater;

import android.view.Gravity;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.TextUtils.TruncateAt;
import android.text.TextWatcher;

public class MainListActivity extends Activity {

// set text size appropriately programmatically for websupport

ProgressDialog dialog;
JSONArray jArray, jSubArray;
EditText searchtext;
TextView[] data, heading;
LinearLayout datalist, photolist, morelist;

Button[] more_arrow;
ImageView[] photo;

LayoutInflater inflater;
ImageLoader1 imageLoader;
Button back, home, filter;
int[] flag;
int length, height, width;
ImageView i1, i2, i3, i4;

int total = 10;
LinearLayout.LayoutParams layout_button;
String URL = MainURL.URL + "getnamelist";
String responseBody;

String[] items;
String[] thumb, one_liner, spot_id, cat, name, thumb_temp, one_liner_temp,
name_temp, cat_id, spot_id_temp;
ImageView[] categories;

String info;

ListView customlist;
int k;
String u_id;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainlist);
dialog = ProgressDialog.show(MainListActivity.this, "",
"Loading Data ...Please Wait", true);
back = (Button) findViewById(R.id.back);

home = (Button) findViewById(R.id.home);
filter = (Button) findViewById(R.id.filter);

Bundle extras = getIntent().getExtras();

if (extras != null) {
String no = extras.getString("no");
u_id = extras.getString("u_id");

}

searchtext = (EditText) findViewById(R.id.searchtext);
height = getWindowManager().getDefaultDisplay().getHeight();
width = getWindowManager().getDefaultDisplay().getWidth();

customlist = (ListView) findViewById(R.id.customlist);
customlist.setCacheColorHint(Color.WHITE);
LinearLayout mainlayout = (LinearLayout) findViewById(R.id.mainlayout);
mainlayout.getLayoutParams().height = (int) (height * 0.90);

// customlist.getLayoutParams().height = (int) (height * 0.6);

home.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainListActivity.this,
ZoomByEnterPageActivity.class);
MainListActivity.this.finish();
startActivity(intent);

}
});
TabHost tabH = new TabHost(this);
TabWidget tabWidget = new TabWidget(this);
LinearLayout lin = new LinearLayout(this);
lin.setOrientation(LinearLayout.HORIZONTAL);
tabWidget.setId(android.R.id.tabs);
tabH.addView(tabWidget);
tabH.addView(lin);
FrameLayout fl = new FrameLayout(this);
fl.setId(android.R.id.tabcontent);

fl.setPadding(0, (int) (getWindowManager().getDefaultDisplay()
.getHeight() * 0.90), 0, 0);

lin.addView(fl);
tabH.setup();
// android.widget.TabHost.TabSpec ts1 = tabH.newTabSpec("hi");

tabH.addTab(tabH.newTabSpec("tag")

.setIndicator("").setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag) {
// -- this tab contains multiple control grouped in a panel --
// //
LinearLayout panel = new LinearLayout(MainListActivity.this);
panel.setOrientation(LinearLayout.HORIZONTAL);

panel.setBackgroundResource(R.drawable.bottom_bar);
i1 = new ImageView(MainListActivity.this);
i1.setBackgroundResource(R.drawable.map_file);
i2 = new ImageView(MainListActivity.this);
i2.setBackgroundResource(R.drawable.urhere_file);

i3 = new ImageView(MainListActivity.this);
i3.setBackgroundResource(R.drawable.navigate_file);

i4 = new ImageView(MainListActivity.this);
i4.setBackgroundResource(R.drawable.arroundme_file);

panel.addView(i1);
panel.addView(i2);
panel.addView(i3);
panel.addView(i4);

// i1.getLayoutParams().width = getWindowManager()
// .getDefaultDisplay().getWidth() / 4;
// i2.getLayoutParams().width = getWindowManager()
// .getDefaultDisplay().getWidth() / 4;
// i3.getLayoutParams().width = getWindowManager()
// .getDefaultDisplay().getWidth() / 4;
// i4.getLayoutParams().width = getWindowManager()
// .getDefaultDisplay().getWidth() / 4;

MarginLayoutParams marginParams_i1 = new MarginLayoutParams(i1
.getLayoutParams());
if (height >= 800) {
marginParams_i1.setMargins(12, 0, 12, 0);

} else if (height < 480) {
marginParams_i1.setMargins(8, 0, 8, 0);
} else {

marginParams_i1.setMargins(12, 0, 12, 0);
}
LinearLayout.LayoutParams layoutParams_i1 = new LinearLayout.LayoutParams(
marginParams_i1);
i1.setLayoutParams(layoutParams_i1);

MarginLayoutParams marginParams_i2 = new MarginLayoutParams(i2
.getLayoutParams());
if (height >= 800) {
marginParams_i2.setMargins(12, 0, 12, 0);

} else if (height < 480) {
marginParams_i2.setMargins(8, 0, 8, 0);
} else {
marginParams_i2.setMargins(12, 0, 12, 0);
}
LinearLayout.LayoutParams layoutParams_i2 = new LinearLayout.LayoutParams(
marginParams_i2);
i2.setLayoutParams(layoutParams_i2);

MarginLayoutParams marginParams_i3 = new MarginLayoutParams(i3
.getLayoutParams());
if (height >= 800) {
marginParams_i3.setMargins(12, 0, 12, 0);

} else if (height < 480) {
marginParams_i3.setMargins(8, 0, 8, 0);
} else {
marginParams_i3.setMargins(12, 0, 12, 0);
}
LinearLayout.LayoutParams layoutParams_i3 = new LinearLayout.LayoutParams(
marginParams_i3);
i3.setLayoutParams(layoutParams_i3);

MarginLayoutParams marginParams_i4 = new MarginLayoutParams(i4
.getLayoutParams());
if (height >= 800) {
marginParams_i4.setMargins(12, 0, 12, 0);
} else if (height < 480) {
marginParams_i4.setMargins(8, 0, 8, 0);
} else {
marginParams_i4.setMargins(12, 0, 12, 0);
}
LinearLayout.LayoutParams layoutParams_i4 = new LinearLayout.LayoutParams(
marginParams_i4);
i4.setLayoutParams(layoutParams_i4);
return panel;
} // TAB 1 done
}));
// ts1.setContent(new Intent(this,Tab1.class));
// tabH.addTab(ts1);
tabH.getTabWidget().getChildAt(0).getLayoutParams().height = (int) 0.000000001;
tabH.getTabWidget().getChildAt(0).getLayoutParams().width = (int) 0.0000000001;

RelativeLayout.LayoutParams tab = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

// tab.setMargins(0,(int)
// (getWindowManager().getDefaultDisplay().getHeight()*0.8) , 0, 0);
addContentView(tabH, tab);
i1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// do whatever you need
Intent intent = new Intent(MainListActivity.this, Map.class);

startActivity(intent);
}
});

i2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// do whatever you need
Intent intent = new Intent(MainListActivity.this, Mapper.class);

startActivity(intent);
}
});
i3.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// do whatever you need
Intent intent = new Intent(MainListActivity.this,
navigateAllActivity.class);

startActivity(intent);
}
});
i4.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// do whatever you need
Intent intent = new Intent(MainListActivity.this,
AroundmeActivity.class);

startActivity(intent);
}
});

// dialog = ProgressDialog.show(MainListActivity.this, "",
// "Loading Data ...Please Wait", true);
fetchData.start();
// if (dialog.isShowing()) {
// dialog.dismiss();
// }

}

final Handler handler = new Handler() {
public void handleMessage(Message msg) {
try {
// int start = responseBody.indexOf("{");
// int end = responseBody.length();
// String result = responseBody.substring(start, end);
// // Toast.makeText(getApplicationContext(), result,
// 9000).show();

int start = responseBody.indexOf("status");
int end = responseBody.length();
String result = responseBody.substring(start, end);
String result1 = "[{" + '"' + result.toString().trim();
// Toast.makeText(getApplicationContext(), result1,
// 9000).show();
// Log.e("result", "" + result1);

try {
jArray = new JSONArray(result1.toString());
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}

try {
items = new String[jArray.length()];

for (int i = 0; i < jArray.length(); i++) {

items[i] = jArray.getJSONObject(i).getString("status")
.toString();
info = jArray.getJSONObject(i).getString("info")
.toString();
}
jSubArray = new JSONArray(info.toString());

spot_id = new String[jSubArray.length()];
cat_id = new String[jSubArray.length()];
name = new String[jSubArray.length()];
cat = new String[jSubArray.length()];
// one_liner = new String[jSubArray.length()];
thumb = new String[jSubArray.length()];
// Toast.makeText(getApplicationContext(),
// jSubArray.toString(), 6000).show();

for (int j = 0; j < jSubArray.length(); j++) {
spot_id[j] = jSubArray.getJSONObject(j)
.getString("spot_id").toString().trim();
name[j] = jSubArray.getJSONObject(j).getString("name")
.toString().trim();
cat[j] = jSubArray.getJSONObject(j).getString("cat")
.toString().trim();
// one_liner[j] = jSubArray.getJSONObject(j)
// .getString("one_liner").toString().trim();
thumb[j] = jSubArray.getJSONObject(j)
.getString("thumb").toString().trim();
cat_id[j] = jSubArray.getJSONObject(j)
.getString("cat_id").toString().trim();

total = jSubArray.length();
}

} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
if (items[0].equalsIgnoreCase("OK")) {
if ((dialog.isShowing()))
dialog.dismiss();

} else {
if ((dialog.isShowing()))
dialog.dismiss();
Toast.makeText(getApplicationContext(),
"try after some time", 4000).show();
}
} catch (NullPointerException e) {
if ((dialog.isShowing()))
dialog.dismiss();
Toast.makeText(getApplicationContext(), "try after some time",
4000).show();
}

customlist
.setAdapter(new ImageAdapter(MainListActivity.this, thumb));
if ((dialog.isShowing()))
dialog.dismiss();

filter.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

Intent intent = new Intent(MainListActivity.this,
CategoryActivity.class);

Bundle b = new Bundle();
b.putStringArray("spot_id", cat_id);
b.putStringArray("mainspot_id", spot_id);
b.putStringArray("thumb", thumb);
b.putStringArray("one_liner", one_liner);
b.putStringArray("name", name);
b.putInt("total", total);
b.putString("kind", "spot");

intent.putExtras(b);

startActivity(intent);

}
});

searchtext.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
updateText();
}

@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
updateText();
}

@Override
public void afterTextChanged(Editable s) {
updateText();
}

private void updateText() {
// Update the filter according to the contents of the field.
flag = new int[total];
name_temp = new String[total];
spot_id_temp = new String[total];
// one_liner_temp = new String[total];
thumb_temp = new String[total];
k = -1;
for (int i = 0; i < total; i++) {

if (name[i].startsWith(searchtext.getText().toString())) {
k++;
flag[i] = 1;
name_temp[k] = name[i];
// one_liner_temp[k] = one_liner[i];
thumb_temp[k] = thumb[i];
spot_id_temp[k] = spot_id[i];

} else {
flag[i] = 0;
}
}

customlist.setAdapter(new ImageAdapter_searchtext(
MainListActivity.this, thumb_temp));

}
});

}
};

Thread fetchData = new Thread() {// worker thread or background thread
public void run() {

double TIMEOUT_MILLISEC = 1234567890;

HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams,
(int) TIMEOUT_MILLISEC);
HttpConnectionParams.setSoTimeout(httpParams,
(int) TIMEOUT_MILLISEC);
//
HttpParams p = new BasicHttpParams();
// p.setParameter("name", pvo.getName());

p.setParameter("Get List", "Get List");
p.setParameter("type", "4");

p.setParameter("key", "c89a7662dae613ea3d20d334339b6dff");

// Instantiate an HttpClient
HttpClient httpclient = new DefaultHttpClient(p);

HttpPost httppost = new HttpPost(URL);

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);

nameValuePairs.add(new BasicNameValuePair("Get List", "Get List"));
nameValuePairs.add(new BasicNameValuePair("key",
"c89a7662dae613ea3d20d334339b6dff"));
nameValuePairs.add(new BasicNameValuePair("type", "4"));

try {
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
} catch (UnsupportedEncodingException e) { // TODO Auto-generated
// catch
;
}

ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
responseBody = httpclient.execute(httppost, responseHandler);
Log.e("aaaaaaaaaaaaaaaaaaaaaaaaa+++", responseBody.toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}

};

private class ImageAdapter extends BaseAdapter {
public final String ImageLoader = null;
private Activity activity;
private String[] data;

public ImageAdapter(Activity a, String[] d) {
activity = a;
data = d;
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

imageLoader = new ImageLoader1(activity.getApplicationContext());
}

public class ViewHolder {
public ImageView pic;
// public TextView oneliner;
public TextView heading;
public RelativeLayout thumblayout;
public ImageView pic_aerrow;
public LinearLayout mainlayout;

}

public ImageAdapter(Context c) {
mContext = c;
}

public int getCount() {
return DATA.length;
}

public Object getItem(int position) {

return position;
}

public long getItemId(int position) {

return position;
}

@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder;
View v = convertView;

if (convertView == null) {
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.customtspot, null, true);
holder = new ViewHolder();
// holder.oneliner = (TextView) v.findViewById(R.id.oneliner);
holder.heading = (TextView) v.findViewById(R.id.heading);

holder.pic = (ImageView) v.findViewById(R.id.pic);
holder.pic_aerrow = (ImageView) v.findViewById(R.id.pic_aerrow);
holder.thumblayout = (RelativeLayout) v
.findViewById(R.id.thumblayout);
holder.mainlayout = (LinearLayout) v
.findViewById(R.id.mainlayout);

v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
// holder.oneliner.setText(one_liner[position]);
holder.heading.setText(name[position]);
holder.pic_aerrow.setBackgroundResource(R.drawable.more);
holder.thumblayout.setBackgroundResource(R.drawable.frame_ts);
holder.pic.setTag(data[position]);
imageLoader.DisplayImage(data[position], activity, holder.pic);
holder.mainlayout.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainListActivity.this,
TSpotDetailActivity.class);

Bundle b = new Bundle();

b.putString("mainspot_id", spot_id[position]);
b.putString("sname", name[position]);
b.putString("spotpic", thumb[position]);
b.putString("u_id", u_id);

intent.putExtras(b);

startActivity(intent);

}
});

return v;
}

private Context mContext;
Integer[] DATA = new Integer[total];
{
for (int o = 0; o < total; o++) {
DATA[o] = R.drawable.icon_vuforia;
}
}

}

private class ImageAdapter_searchtext extends BaseAdapter {
public final String ImageLoader = null;
private Activity activity;
private String[] data;

public ImageAdapter_searchtext(Activity a, String[] d) {
activity = a;
data = d;
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

imageLoader = new ImageLoader1(activity.getApplicationContext());
}

public class ViewHolder {
public ImageView pic;
public TextView oneliner;
public TextView heading;
public RelativeLayout thumblayout;
public ImageView pic_aerrow;
public LinearLayout mainlayout;
}

public ImageAdapter_searchtext(Context c) {
mContext = c;
}

public int getCount() {
return DATA.length;
}

public Object getItem(int position) {

return position;
}

public long getItemId(int position) {

return position;
}

@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
ViewHolder holder;
View v = convertView;

if (convertView == null) {
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.customtspot, null, true);
holder = new ViewHolder();
// holder.oneliner = (TextView) v.findViewById(R.id.oneliner);
holder.heading = (TextView) v.findViewById(R.id.heading);
holder.pic_aerrow = (ImageView) v.findViewById(R.id.pic_aerrow);
holder.thumblayout = (RelativeLayout) v
.findViewById(R.id.thumblayout);
holder.pic = (ImageView) v.findViewById(R.id.pic);
holder.mainlayout = (LinearLayout) v
.findViewById(R.id.mainlayout);

v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}

// holder.oneliner.setText(one_liner_temp[position]);
holder.heading.setText(name_temp[position]);
holder.pic_aerrow.setBackgroundResource(R.drawable.more);
holder.thumblayout.setBackgroundResource(R.drawable.frame_ts);

holder.pic.setTag(data[position]);
imageLoader.DisplayImage(data[position], activity, holder.pic);
holder.mainlayout.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainListActivity.this,
TSpotDetailActivity.class);

Bundle b = new Bundle();

b.putString("mainspot_id", spot_id_temp[position]);
b.putString("sname", name_temp[position]);
b.putString("spotpic", thumb_temp[position]);

intent.putExtras(b);

startActivity(intent);

}
});

return v;
}

private Context mContext;
Integer[] DATA = new Integer[k + 1];
{
for (int o = 0; o < k + 1; o++) {
DATA[o] = R.drawable.icon_vuforia;
}
}

}

}

No comments:

Post a Comment