package com.sap.jam.mobile_sdk; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import com.github.scribejava.core.model.OAuth1AccessToken; import com.github.scribejava.core.model.OAuth1RequestToken; import com.github.scribejava.core.oauth.OAuth10aService; import com.sap.jam.mobile_sdk.session.JamAuthConfig; import com.sap.jam.mobile_sdk.session.JamOAuthDialog; import com.sap.jam.mobile_sdk.views.JamMainTabbedActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.auth_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { beginOAuthLogin(); } }); // Uses Key and Secret from your SAP Cloud Platform Jam instance's OAuth Client to perform OAuth 1.0a authentication JamAuthConfig.instance().configure("developer.sapjam.com", "<Oauth client key>", "<Oauth client secret>"); // Uses Key and Secret from your Jam instance's OAuth Client to perform OAuth 1.0a authentication /*JamAuthConfig.instance().configure("<domain>", "<Oauth client key>", "<Oauth client secret>");*/ if (JamAuthConfig.instance().isLoggedIn()) { goToMainApp(); } else { beginOAuthLogin(); } } private void goToMainApp() { Intent intent = new Intent(this, JamMainTabbedActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } public void beginOAuthLogin() { final OAuth10aService service = JamAuthConfig.instance().getOAuth10aService(); AsyncTask network = new AsyncTask() { @Override protected Object doInBackground(Object[] params) { return service.getRequestToken(); } @Override protected void onPostExecute(Object object) { super.onPostExecute(object); if (object != null) { final OAuth1RequestToken requestToken = (OAuth1RequestToken) object; String authUrl = service.getAuthorizationUrl(requestToken); JamOAuthDialog dialog = new JamOAuthDialog(MainActivity.this, authUrl); dialog.oauthListener = new JamOAuthDialog.ConfirmedOAuthAccessListener() { @Override public void onFinishOAuthAccess(String oauthToken, String oauthVerifier) { processOAuthVerifier(requestToken, oauthVerifier); } }; dialog.show(); } } }; network.execute(); } private void processOAuthVerifier(final OAuth1RequestToken requestToken, final String oauthVerifier) { final OAuth10aService service = JamAuthConfig.instance().getOAuth10aService(); AsyncTask network = new AsyncTask() { @Override protected Object doInBackground(Object[] params) { final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, oauthVerifier); JamAuthConfig.instance().storeCredentials(accessToken); return true; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); goToMainApp(); } }; network.execute(); } }