Search in sources :

Example 6 with Call

use of zipkin2.Call in project Android by Tracman-org.

the class LoginActivity method authenticateWithTracmanServer.

private void authenticateWithTracmanServer(final Request request) throws Exception {
    // Needed to support TLS 1.1 and 1.2
    //		TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
    //				TrustManagerFactory.getDefaultAlgorithm());
    //		trustManagerFactory.init((KeyStore) null);
    //		TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
    //		if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
    //			throw new IllegalStateException("Unexpected default trust managers:"
    //					+ Arrays.toString(trustManagers));
    //		}
    //		X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
    OkHttpClient client = new OkHttpClient.Builder().build();
    client.newCall(request).enqueue(new Callback() {

        @Override
        public void onFailure(Call call, IOException e) {
            //Log.e(TAG, "Failed to connect to Tracman server!");
            showError(R.string.server_connection_error);
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, Response res) throws IOException {
            if (!res.isSuccessful()) {
                showError(R.string.login_no_user_error);
                res.body().close();
                throw new IOException("Unexpected code: " + res);
            } else {
                //Log.d(TAG, "Response code: " + res.code());
                String userString = res.body().string();
                System.out.println("Full response: " + userString);
                String userID, userName, userSK;
                try {
                    JSONObject user = new JSONObject(userString);
                    userID = user.getString("_id");
                    userName = user.getString("name");
                    userSK = user.getString("sk32");
                //Log.v(TAG, "User retrieved with ID: " + userID);
                } catch (JSONException e) {
                    //Log.e(TAG, "Unable to parse user JSON: ", e);
                    //Log.e(TAG, "JSON String used: " + userString);
                    userID = null;
                    userName = null;
                    userSK = null;
                }
                // Save user as loggedInUser
                SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                SharedPreferences.Editor editor = sharedPref.edit();
                editor.putString("loggedInUser", userString);
                editor.putString("loggedInUserId", userID);
                editor.putString("loggedInUserName", userName);
                editor.putString("loggedInUserSk", userSK);
                editor.commit();
                startActivityForResult(new Intent(LoginActivity.this, SettingsActivity.class), SIGN_OUT);
            }
        }
    });
}
Also used : Call(okhttp3.Call) OkHttpClient(okhttp3.OkHttpClient) SharedPreferences(android.content.SharedPreferences) JSONException(org.json.JSONException) Intent(android.content.Intent) IOException(java.io.IOException) Response(okhttp3.Response) Callback(okhttp3.Callback) ResultCallback(com.google.android.gms.common.api.ResultCallback) JSONObject(org.json.JSONObject)

Example 7 with Call

use of zipkin2.Call in project Tusky by Vavassor.

the class AccountActivity method follow.

private void follow(final String id) {
    Callback<Relationship> cb = new Callback<Relationship>() {

        @Override
        public void onResponse(Call<Relationship> call, Response<Relationship> response) {
            if (response.isSuccessful()) {
                Relationship relationship = response.body();
                if (relationship.following) {
                    followState = FollowState.FOLLOWING;
                } else if (relationship.requested) {
                    followState = FollowState.REQUESTED;
                    Snackbar.make(container, R.string.state_follow_requested, Snackbar.LENGTH_LONG).show();
                } else {
                    followState = FollowState.NOT_FOLLOWING;
                    broadcast(TimelineReceiver.Types.UNFOLLOW_ACCOUNT, id);
                }
                updateButtons();
            } else {
                onFollowFailure(id);
            }
        }

        @Override
        public void onFailure(Call<Relationship> call, Throwable t) {
            onFollowFailure(id);
        }
    };
    Assert.expect(followState != FollowState.REQUESTED);
    switch(followState) {
        case NOT_FOLLOWING:
            {
                mastodonAPI.followAccount(id).enqueue(cb);
                break;
            }
        case FOLLOWING:
            {
                mastodonAPI.unfollowAccount(id).enqueue(cb);
                break;
            }
    }
}
Also used : Response(retrofit2.Response) Call(retrofit2.Call) Callback(retrofit2.Callback) Relationship(com.keylesspalace.tusky.entity.Relationship)

Example 8 with Call

use of zipkin2.Call in project Tusky by Vavassor.

the class BaseActivity method disablePushNotifications.

protected void disablePushNotifications() {
    Callback<ResponseBody> callback = new Callback<ResponseBody>() {

        @Override
        public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
            if (response.isSuccessful()) {
                pushNotificationClient.unsubscribeToTopic(getPushNotificationTopic());
            } else {
                onDisablePushNotificationsFailure();
            }
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            onDisablePushNotificationsFailure();
        }
    };
    String deviceToken = pushNotificationClient.getDeviceToken();
    Session session = new Session(getDomain(), getAccessToken(), deviceToken);
    tuskyApi.unregister(session).enqueue(callback);
}
Also used : Response(okhttp3.Response) Call(retrofit2.Call) Callback(retrofit2.Callback) ResponseBody(okhttp3.ResponseBody) Session(com.keylesspalace.tusky.entity.Session)

Example 9 with Call

use of zipkin2.Call in project Tusky by Vavassor.

the class BaseActivity method enablePushNotifications.

protected void enablePushNotifications() {
    Callback<ResponseBody> callback = new Callback<ResponseBody>() {

        @Override
        public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
            if (response.isSuccessful()) {
                pushNotificationClient.subscribeToTopic(getPushNotificationTopic());
                pushNotificationClient.connect(BaseActivity.this);
            } else {
                onEnablePushNotificationsFailure(response.message());
            }
        }

        @Override
        public void onFailure(Call<ResponseBody> call, Throwable t) {
            onEnablePushNotificationsFailure(t.getMessage());
        }
    };
    String deviceToken = pushNotificationClient.getDeviceToken();
    Session session = new Session(getDomain(), getAccessToken(), deviceToken);
    tuskyApi.register(session).enqueue(callback);
}
Also used : Response(okhttp3.Response) Call(retrofit2.Call) Callback(retrofit2.Callback) ResponseBody(okhttp3.ResponseBody) Session(com.keylesspalace.tusky.entity.Session)

Example 10 with Call

use of zipkin2.Call in project Tusky by Vavassor.

the class LoginActivity method onStart.

@Override
protected void onStart() {
    super.onStart();
    /* Check if we are resuming during authorization by seeing if the intent contains the
         * redirect that was given to the server. If so, its response is here! */
    Uri uri = getIntent().getData();
    String redirectUri = getOauthRedirectUri();
    preferences = getSharedPreferences(getString(R.string.preferences_file_key), Context.MODE_PRIVATE);
    if (preferences.getString("accessToken", null) != null && preferences.getString("domain", null) != null) {
        // We are already logged in, go to MainActivity
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
        return;
    }
    if (uri != null && uri.toString().startsWith(redirectUri)) {
        // This should either have returned an authorization code or an error.
        String code = uri.getQueryParameter("code");
        String error = uri.getQueryParameter("error");
        if (code != null) {
            /* During the redirect roundtrip this Activity usually dies, which wipes out the
                 * instance variables, so they have to be recovered from where they were saved in
                 * SharedPreferences. */
            domain = preferences.getString("domain", null);
            clientId = preferences.getString("clientId", null);
            clientSecret = preferences.getString("clientSecret", null);
            setLoading(true);
            /* Since authorization has succeeded, the final step to log in is to exchange
                 * the authorization code for an access token. */
            Callback<AccessToken> callback = new Callback<AccessToken>() {

                @Override
                public void onResponse(Call<AccessToken> call, Response<AccessToken> response) {
                    if (response.isSuccessful()) {
                        onLoginSuccess(response.body().accessToken);
                    } else {
                        setLoading(false);
                        editText.setError(getString(R.string.error_retrieving_oauth_token));
                        Log.e(TAG, String.format("%s %s", getString(R.string.error_retrieving_oauth_token), response.message()));
                    }
                }

                @Override
                public void onFailure(Call<AccessToken> call, Throwable t) {
                    setLoading(false);
                    editText.setError(getString(R.string.error_retrieving_oauth_token));
                    Log.e(TAG, String.format("%s %s", getString(R.string.error_retrieving_oauth_token), t.getMessage()));
                }
            };
            getApiFor(domain).fetchOAuthToken(clientId, clientSecret, redirectUri, code, "authorization_code").enqueue(callback);
        } else if (error != null) {
            /* Authorization failed. Put the error response where the user can read it and they
                 * can try again. */
            setLoading(false);
            editText.setError(getString(R.string.error_authorization_denied));
            Log.e(TAG, getString(R.string.error_authorization_denied) + error);
        } else {
            setLoading(false);
            // This case means a junk response was received somehow.
            editText.setError(getString(R.string.error_authorization_unknown));
        }
    }
}
Also used : Response(retrofit2.Response) Call(retrofit2.Call) Callback(retrofit2.Callback) AccessToken(com.keylesspalace.tusky.entity.AccessToken) CustomTabsIntent(android.support.customtabs.CustomTabsIntent) Intent(android.content.Intent) Uri(android.net.Uri)

Aggregations

Call (okhttp3.Call)421 Response (okhttp3.Response)317 Request (okhttp3.Request)287 IOException (java.io.IOException)238 Callback (okhttp3.Callback)137 Call (retrofit2.Call)136 OkHttpClient (okhttp3.OkHttpClient)102 Test (org.junit.Test)91 ResponseBody (okhttp3.ResponseBody)80 RequestBody (okhttp3.RequestBody)62 Response (retrofit2.Response)49 Retrofit (retrofit2.Retrofit)48 Gson (com.google.gson.Gson)47 File (java.io.File)45 Callback (retrofit2.Callback)43 Headers (okhttp3.Headers)41 GsonBuilder (com.google.gson.GsonBuilder)40 JSONObject (org.json.JSONObject)40 MockResponse (okhttp3.mockwebserver.MockResponse)38 List (java.util.List)36