use of com.android.volley.Response in project MVCHelper by LuckyJayce.
the class LoginAsyncTask method execute.
@Override
public RequestHandle execute(final ResponseSender<User> sender) throws Exception {
String url = "https://www.baidu.com";
Uri.Builder builder = Uri.parse(url).buildUpon();
builder.appendQueryParameter("userName", name);
builder.appendQueryParameter("password", password);
StringRequest jsonObjRequest = new StringRequest(Request.Method.GET, builder.toString(), new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (TextUtils.isEmpty(name)) {
sender.sendError(new BizException("请输入用户名"));
} else if (TextUtils.isEmpty(password)) {
sender.sendError(new BizException("请输入密码"));
} else if (name.equals("LuckyJayce") && password.equals("111")) {
sender.sendData(new User("1", "LuckyJayce", 23, "中国人"));
} else {
sender.sendError(new BizException("用户名或者密码不正确"));
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
sender.sendError(error);
}
});
MyVolley.getRequestQueue().add(jsonObjRequest);
return new VolleyRequestHandle(jsonObjRequest);
}
use of com.android.volley.Response in project Space-Station-Tracker by Kiarasht.
the class MapsActivity method updatePolyline.
/**
* Update polyline sets the future predictions of ISS's position for up to 90 minutes.
*/
private void updatePolyline(Date currentDate) {
long currentLong = currentDate.getTime() / 1000;
final long[] futureTen = new long[10];
for (int i = 0; i < futureTen.length; ++i) {
futureTen[i] = currentLong + (30 * mPoly++);
}
final StringBuilder urlBuilder = new StringBuilder();
for (long aFutureTen : futureTen) {
urlBuilder.append(aFutureTen).append(",");
}
urlBuilder.setLength(urlBuilder.length() - 1);
//TODO: As a user, I would like the option of changing the units from metric to imperial
final String units = "miles";
final String url = "https://api.wheretheiss.at/v1/satellites/25544/positions?timestamps=" + urlBuilder.toString() + "&units=" + units;
final int finalStart = mPoly;
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
final LatLng[] latLngs = new LatLng[10];
for (int i = 0; i < response.length(); ++i) {
latLngs[i] = new LatLng(response.getJSONObject(i).getDouble("latitude"), response.getJSONObject(i).getDouble("longitude"));
}
MapsActivity.this.runOnUiThread(new Runnable() {
public void run() {
if (finalStart == 10) {
for (int i = 0; i < futureTen.length - 1; ++i) {
mPolyLine = mMap.addPolyline(new PolylineOptions().add(latLngs[i], latLngs[i + 1]).width(mCurrentWidth).color(mCurrentColor));
mPolyArray[mPolyCounter++] = mPolyLine;
}
mLast = latLngs[latLngs.length - 1];
++mProgress;
} else {
mPolyArray[mPolyCounter++] = mMap.addPolyline(new PolylineOptions().add(mLast, latLngs[0]).width(mCurrentWidth).color(mCurrentColor));
for (int i = 0; i < futureTen.length - 1; ++i) {
mPolyArray[mPolyCounter++] = mMap.addPolyline(new PolylineOptions().add(latLngs[i], latLngs[i + 1]).width(mCurrentWidth).color(mCurrentColor));
}
mLast = latLngs[latLngs.length - 1];
++mProgress;
}
}
});
} catch (Exception e) {
if (mLast == null) {
FirebaseCrash.report(new Exception("mLast was null"));
}
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
}
});
mRequestQueue.add(jsonArrayRequest);
}
use of com.android.volley.Response in project Space-Station-Tracker by Kiarasht.
the class MapsActivity method trackISS.
/**
* Get the Lat and Lon of ISS and move the map to that position when called.
*/
private void trackISS() {
final String url = "https://api.wheretheiss.at/v1/satellites/25544";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
// Server responded successfully
mSuccess = 0;
final double latParameter = Double.parseDouble(response.getString("latitude"));
final double lngParameter = Double.parseDouble(response.getString("longitude"));
final LatLng ISS = new LatLng(latParameter, lngParameter);
final String LAT;
final String LNG;
if (latParameter < 0) {
LAT = mDecimalFormat.format(latParameter) + "° S";
} else {
LAT = mDecimalFormat.format(latParameter) + "° N";
}
if (lngParameter < 0) {
LNG = mDecimalFormat.format(lngParameter) + "° W";
} else {
LNG = mDecimalFormat.format(lngParameter) + "° E";
}
final String position = LAT + ", " + LNG;
final String visibility = response.getString("visibility");
final StringBuilder moreInfo = new StringBuilder();
moreInfo.append("Altitude: ").append(mDecimalFormat.format(Double.parseDouble(response.getString("altitude")))).append(" km").append("\n").append("Velocity: ").append(mDecimalFormat.format(Double.parseDouble(response.getString("velocity")))).append(" kph").append("\n").append("Footprint: ").append(mDecimalFormat.format(Double.parseDouble(response.getString("footprint")))).append(" km").append("\n").append("Solar LAT: ").append(mDecimalFormat.format(Double.parseDouble(response.getString("solar_lat")))).append("°").append("\n").append("Solar LON: ").append(mDecimalFormat.format(Double.parseDouble(response.getString("solar_lon")))).append("°").append("\n").append("Visibility: ").append(visibility.substring(0, 1).toUpperCase()).append(visibility.substring(1)).append("\n");
MapsActivity.this.runOnUiThread(new Runnable() {
public void run() {
if (mOnce) {
mMap.moveCamera(CameraUpdateFactory.newLatLng(ISS));
if (mMap.getUiSettings().isScrollGesturesEnabled()) {
mMap.getUiSettings().setScrollGesturesEnabled(false);
}
mOnce = false;
} else if (mSharedPreferences.getBoolean("lock_ISS", false)) {
mMap.moveCamera(CameraUpdateFactory.newLatLng(ISS));
if (mMap.getUiSettings().isScrollGesturesEnabled()) {
mMap.getUiSettings().setScrollGesturesEnabled(false);
}
} else if (!mSharedPreferences.getBoolean("lock_ISS", false)) {
mMap.getUiSettings().setScrollGesturesEnabled(true);
}
if (mMarker != null) {
mMarker.remove();
}
mDescription.setText(moreInfo.toString());
mLatLong.setText(position);
mMarkerOptions.position(ISS);
mMarker = mMap.addMarker(mMarkerOptions);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
// Server did not respond. Got 5 chances before stop trying.
if (++mSuccess <= 4) {
Toast.makeText(MapsActivity.this, getResources().getString(R.string.errorLessFive, mSuccess, mRefreshrate), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MapsActivity.this, R.string.errorFiveTimes, Toast.LENGTH_LONG).show();
if (mTimer != null) {
mTimer.cancel();
mTimer.purge();
}
mTimer = null;
}
}
});
jsonObjectRequest.setTag(TAG);
mRequestQueue.add(jsonObjectRequest);
}
use of com.android.volley.Response in project Space-Station-Tracker by Kiarasht.
the class Locations method displayPasses.
/**
* After successfully getting a city and country from the last JSON parsing, search a database
* to see when ISS will pass by this city, country.
*/
public List<Date> displayPasses(final String latitude, final String longitude, final Context applicationContext) {
// Used for Alert service
final List<Date> passes = new ArrayList<>();
final String url;
if (latitude == null && longitude == null) {
// Location.java is calling this method
url = "http://api.open-notify.org/iss-pass.json?lat=" + mLatitude + "&lon=" + mLongitude + "&n=20";
} else {
// Alert.java is calling this method
url = "http://api.open-notify.org/iss-pass.json?lat=" + latitude + "&lon=" + longitude;
}
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
final JSONArray results = response.getJSONArray("response");
final List<SightSee> dates = new ArrayList<>();
for (int i = 0; i < results.length(); ++i) {
final JSONObject aPass = results.getJSONObject(i);
passes.add(new Date(Long.parseLong(aPass.getString("risetime")) * 1000L));
final SightSee aSightSee = new SightSee(aPass.getInt("duration"), aPass.getInt("risetime"));
dates.add(aSightSee);
}
final View headerView = LayoutInflater.from(mActivity).inflate(R.layout.locations_header, null);
headerView.post(new Runnable() {
@Override
public void run() {
headerView.getLayoutParams().height = mFlexibleSpaceImageHeight;
}
});
mAdapter = new LocationAdapter(mActivity, headerView);
mAdapter.setDataSet(dates);
mRecyclerView.setAdapter(mAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
if (latitude == null && longitude == null) {
Toast.makeText(Locations.this, R.string.errorConnection, Toast.LENGTH_LONG).show();
}
}
});
// If Alert.java called us
if (requestQueue == null) {
RequestQueue requestQueue = Volley.newRequestQueue(applicationContext);
requestQueue.add(jsonObjectRequest);
} else {
// If Locations.java called us
jsonObjectRequest.setTag(TAG);
requestQueue.add(jsonObjectRequest);
}
// Only Alert.java benefits from this return
return passes;
}
use of com.android.volley.Response in project Space-Station-Tracker by Kiarasht.
the class PeopleinSpace method display_people.
/**
* Displays a list of astronauts in a RecyclerView
*/
private void display_people() {
final String url = "http://www.howmanypeopleareinspacerightnow.com/peopleinspace.json";
final List<Astronaut> peopleInSpace = new ArrayList<>();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
LinearLayoutManager layoutManager = new LinearLayoutManager(mActivity, LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new PeopleInSpaceAdapter(mActivity, peopleInSpace);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setNestedScrollingEnabled(true);
mAdapter.setDataSet(peopleInSpace);
mRecyclerView.setAdapter(mAdapter);
} catch (Exception e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
}
}) {
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
JSONObject jsonResponse = new JSONObject(jsonString);
try {
JSONArray astronauts = jsonResponse.getJSONArray("people");
for (int i = 0; i < astronauts.length(); ++i) {
JSONObject anAstronaut = astronauts.getJSONObject(i);
final String name = anAstronaut.getString("name");
final String image = anAstronaut.getString("biophoto");
final String countryLink = anAstronaut.getString("countryflag");
final String launchDate = anAstronaut.getString("launchdate");
String role = anAstronaut.getString("title");
final String location = anAstronaut.getString("location");
final String bio = anAstronaut.getString("bio");
final String wiki = anAstronaut.getString("biolink");
final String twitter = anAstronaut.getString("twitter");
if (role != null && !role.isEmpty())
role = role.substring(0, 1).toUpperCase() + role.substring(1);
Astronaut storeAnAstronaut = new Astronaut(name, image, countryLink, launchDate, role, location, bio, wiki, twitter);
peopleInSpace.add(storeAnAstronaut);
}
Collections.sort(peopleInSpace);
} catch (Exception e) {
e.printStackTrace();
}
return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
};
mRequestQueue.add(jsonObjectRequest);
}
Aggregations