main_page.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/linear1"
android:layout_weight="1" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="#ffffffff" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:id="@+id/linear2"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:id="@+id/test_image" android:src="@drawable/header"
android:layout_width="fill_parent" android:layout_height="fill_parent" />
</LinearLayout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:columnWidth="90dp"
android:numColumns="2" android:verticalSpacing="5dp"
android:horizontalSpacing="5dp" android:stretchMode="columnWidth"
android:gravity="center" android:background="@layout/black_white_gradient" />
</LinearLayout>
Home.class
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class Home extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_page);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.custom_title);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Intent myIntent = null;
String positionString = "";
switch (position) {
case 0:
// FlightInfo
positionString = "Flight Info";
myIntent = new Intent(Home.this, SearchFlights.class);
startActivity(myIntent);
break;
// case 1:
// // AirportInfo
// positionString = "Airport Info";
// myIntent = new Intent(Home.this, SearchFlights.class);
// startActivity(myIntent);
// break;
default:
break;
}
Toast.makeText(Home.this, "" + positionString,
Toast.LENGTH_SHORT).show();
}
});
}
}
ImageAdapter.class
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some
// attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(126, 126));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = { R.drawable.flight_info,
R.drawable.flight_schedule, R.drawable.check_in,
R.drawable.check_out };
}
list_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<TextView
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items"/>
</LinearLayout>
ListViewByFligh.class
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.al.srv.dto.FlightVO;
import com.al.srv.parser.Parser;
import com.serendibit.flightstats.webservice.WebserviceClient;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class ListViewByFlight extends ListActivity {
private ProgressDialog m_ProgressDialog = null;
private ArrayList<FlightVO> m_flights = null;
private FlightsAdapter m_adapter;
private Runnable viewFlights;
Intent myIntent = null;
private String strAirLine, strFlightNo, strFlightFromDate, strFlightToDate;
public static SearchByFlightNo byFlightNo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view_by_flight);
strAirLine = byFlightNo.getStrAirLine();
strFlightNo = byFlightNo.getStrFlightNo();
strFlightFromDate = byFlightNo.getStrFlightFromDate();
strFlightToDate = byFlightNo.getStrFlightToDate();
m_flights = new ArrayList<FlightVO>();
this.m_adapter = new FlightsAdapter(this, R.layout.row, m_flights);
setListAdapter(this.m_adapter);
viewFlights = new Runnable() {
@Override
public void run() {
getFlights();
}
};
Thread thread = new Thread(null, viewFlights, "MagentoBackground");
thread.start();
m_ProgressDialog = ProgressDialog.show(ListViewByFlight.this,
"Please wait...", "Retrieving data ...", true);
}
private Runnable returnRes = new Runnable() {
@Override
public void run() {
if (m_flights != null && m_flights.size() > 0) {
m_adapter.notifyDataSetChanged();
for (int i = 0; i < m_flights.size(); i++)
m_adapter.add(m_flights.get(i));
}
m_ProgressDialog.dismiss();
m_adapter.notifyDataSetChanged();
}
};
private void getFlights() {
try {
int count = 0;
int objLength;
// Call flight info web service
WebserviceClient client = new WebserviceClient();
String resultXML = client.getFlightInfoByFlightNo(strAirLine,
strFlightNo, strFlightFromDate, strFlightToDate);
Object obj = new Parser().parse(resultXML);
if (obj instanceof String) {
// SearchByFlightNo.error =
// "Incorrect parameter or Connection error";
myIntent = new Intent(ListViewByFlight.this,
SearchByFlightNo.class);
startActivity(myIntent);
} else if (obj instanceof List) {
m_flights = new ArrayList<FlightVO>();
FlightVO o1;
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
for (count = 0; count < ((List<FlightVO>) obj).size(); count++) {
o1 = new FlightVO();
o1.setFlightNumber(((List<FlightVO>) obj).get(count)
.getAirline().getAirlineCode()
+ ((List<FlightVO>) obj).get(count)
.getFlightNumber());
o1.setDepartureDate(((List<FlightVO>) obj).get(count)
.getDepartureDate().substring(0, 10)
+ " "
+ ((List<FlightVO>) obj).get(count)
.getDepartureDate().substring(11, 16));
o1.setFlyRoot("from ("
+ ((List<FlightVO>) obj).get(count).getOrigin()
.getAirportCode()
+ ") to "
+ "("
+ ((List<FlightVO>) obj).get(count).getDestination()
.getAirportCode() + ")");
m_flights.add(o1);
}
}
Thread.sleep(5000);
Log.i("ARRAY", "" + m_flights.size());
} catch (Exception e) {
Log.e("BACKGROUND_PROC", e.getMessage());
}
runOnUiThread(returnRes);
}
private class FlightsAdapter extends ArrayAdapter<FlightVO> {
private ArrayList<FlightVO> items;
public FlightsAdapter(Context context, int textViewResourceId,
ArrayList<FlightVO> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
FlightVO o = items.get(position);
if (o != null) {
TextView tvFlightNo = (TextView) v
.findViewById(R.id.flightNumber);
TextView tvDateTime = (TextView) v.findViewById(R.id.dateTime);
if (tvFlightNo != null) {
tvFlightNo.setText("Flight: " + o.getFlightNumber());
}
if (tvDateTime != null) {
tvDateTime.setText("Fly Date: "
+ o.getDepartureDate()
+ "\nRoot: "
+ o.getFlyRoot());
}
}
return v;
}
}
}
WebserviceClient.class
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.util.Log;
public class WebserviceClient {
String URLbase = "http://www.pathfinder-xml.com/development/xml?Service=FlightHistoryGetRecordsService&login.accountID=6686&login.userID=nhliyanage&login.password=nandika";
private String call(String url) {
Log.i("URL :", url);
String content = null;
HttpClient mClient = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
try {
mClient.execute(get);
HttpResponse res = mClient.execute(get);
InputStream is = res.getEntity().getContent();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while ((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
content = response.toString();
System.out.println("content :" + content);
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
public String getFlightInfoByFlightNo(String airlineCode, String flightNo,
String fromDate, String toDate) {
String url = URLbase
+ "&info.specificationFlights[0].airline.airlineCode="
+ airlineCode + "&info.specificationFlights[0].flightNumber="
+ flightNo
+ "&info.specificationFlights[0].searchCodeshares=true"
+ "&info.specificationDateRange.departureDateTimeMin="
+ fromDate + "T00:00"
+ "&info.specificationDateRange.departureDateTimeMax=" + toDate
+ "T23:59";
return call(url);
}
public String getFlightInfoByDestination(String from, String to,
String fromDate, String toDate) {
String url = URLbase
+ "&info.specificationDepartures[0].airport.airportCode="
+ from + "&info.specificationArrivals[0].airport.airportCode="
+ to + "&info.specificationDateRange.departureDateTimeMin="
+ fromDate + "T00:00"
+ "&info.specificationDateRange.departureDateTimeMax=" + toDate
+ "T23:59"
+ "&info.flightHistoryGetRecordsRequestedData.codeshares=true";
return call(url);
}
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment