Search in sources :

Example 1 with Response

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);
}
Also used : Response(com.android.volley.Response) VolleyError(com.android.volley.VolleyError) User(com.shizhefei.test.models.enties.User) VolleyRequestHandle(com.shizhefei.test.models.datasource.volley.VolleyRequestHandle) StringRequest(com.android.volley.toolbox.StringRequest) BizException(com.shizhefei.test.models.exception.BizException) Uri(android.net.Uri)

Example 2 with Response

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);
}
Also used : VolleyError(com.android.volley.VolleyError) JsonArrayRequest(com.android.volley.toolbox.JsonArrayRequest) JSONArray(org.json.JSONArray) PolylineOptions(com.google.android.gms.maps.model.PolylineOptions) Response(com.android.volley.Response) LatLng(com.google.android.gms.maps.model.LatLng)

Example 3 with Response

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);
}
Also used : Response(com.android.volley.Response) VolleyError(com.android.volley.VolleyError) JSONObject(org.json.JSONObject) JsonObjectRequest(com.android.volley.toolbox.JsonObjectRequest) LatLng(com.google.android.gms.maps.model.LatLng)

Example 4 with Response

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;
}
Also used : VolleyError(com.android.volley.VolleyError) LocationAdapter(com.restart.spacestationtracker.adapter.LocationAdapter) ArrayList(java.util.ArrayList) JSONArray(org.json.JSONArray) JSONException(org.json.JSONException) ImageView(android.widget.ImageView) ObservableRecyclerView(com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView) View(android.view.View) AdView(com.google.android.gms.ads.AdView) TextView(android.widget.TextView) Date(java.util.Date) Response(com.android.volley.Response) JSONObject(org.json.JSONObject) SightSee(com.restart.spacestationtracker.data.SightSee) RequestQueue(com.android.volley.RequestQueue) ArrayList(java.util.ArrayList) List(java.util.List) JsonObjectRequest(com.android.volley.toolbox.JsonObjectRequest)

Example 5 with Response

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);
}
Also used : VolleyError(com.android.volley.VolleyError) Astronaut(com.restart.spacestationtracker.data.Astronaut) ArrayList(java.util.ArrayList) JSONArray(org.json.JSONArray) UnsupportedEncodingException(java.io.UnsupportedEncodingException) JSONException(org.json.JSONException) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) PeopleInSpaceAdapter(com.restart.spacestationtracker.adapter.PeopleInSpaceAdapter) JSONException(org.json.JSONException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Response(com.android.volley.Response) NetworkResponse(com.android.volley.NetworkResponse) JSONObject(org.json.JSONObject) NetworkResponse(com.android.volley.NetworkResponse) ParseError(com.android.volley.ParseError) JsonObjectRequest(com.android.volley.toolbox.JsonObjectRequest)

Aggregations

Response (com.android.volley.Response)201 VolleyError (com.android.volley.VolleyError)192 JSONObject (org.json.JSONObject)138 RequestQueue (com.android.volley.RequestQueue)100 JsonObjectRequest (com.android.volley.toolbox.JsonObjectRequest)92 HashMap (java.util.HashMap)83 JSONException (org.json.JSONException)79 StringRequest (com.android.volley.toolbox.StringRequest)50 User (model.User)50 JSONArray (org.json.JSONArray)46 Gson (com.google.gson.Gson)30 Context (android.content.Context)24 NetworkResponse (com.android.volley.NetworkResponse)21 GsonBuilder (com.google.gson.GsonBuilder)21 Toast (android.widget.Toast)20 CustomRequestArray (dz.easy.androidclient.Util.CustomRequestArray)18 TextView (android.widget.TextView)15 DefaultRetryPolicy (com.android.volley.DefaultRetryPolicy)12 Test (org.junit.Test)12 Intent (android.content.Intent)11