package de.vanmar.android.yarrn; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v7.app.AppCompatActivity; import com.androidquery.util.AQUtility; import org.scribe.builder.ServiceBuilder; import org.scribe.oauth.OAuthService; import de.vanmar.android.yarrn.ravelry.GetAccessTokenActivity; import de.vanmar.android.yarrn.ravelry.GetAccessTokenActivity_; import de.vanmar.android.yarrn.ravelry.IRavelryActivity; import de.vanmar.android.yarrn.ravelry.RavelryApi; import de.vanmar.android.yarrn.util.NetworkHelper; import de.vanmar.android.yarrn.util.NetworkHelper_; import de.vanmar.android.yarrn.util.RequestCode; public abstract class AbstractRavelryActivity extends AppCompatActivity implements IRavelryActivity { public de.vanmar.android.yarrn.YarrnPrefs_ prefs; public NetworkHelper networkHelper; protected OAuthService service; @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RequestCode.REQUEST_CODE_GET_TOKEN && resultCode == RESULT_OK) { prefs.username().put( data.getStringExtra(GetAccessTokenActivity.EXTRA_USERNAME)); prefs.accessToken() .put(data .getStringExtra(GetAccessTokenActivity.EXTRA_ACCESSTOKEN)); prefs.accessSecret() .put(data .getStringExtra(GetAccessTokenActivity.EXTRA_ACCESSSECRET)); prefs.requestToken() .put(data .getStringExtra(GetAccessTokenActivity.EXTRA_REQUESTTOKEN)); } } @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); final String apiKey = getString(R.string.api_key); final String apiSecret = getString(R.string.api_secret); final String callback = getString(R.string.api_callback); service = new ServiceBuilder() .provider(new RavelryApi(getString(R.string.ravelry_url))) .apiKey(apiKey).apiSecret(apiSecret).callback(callback).build(); prefs = new YarrnPrefs_(this); networkHelper = NetworkHelper_.getInstance_(this); } @Override protected void onDestroy() { super.onDestroy(); if (isTaskRoot()) { AQUtility.cleanCacheAsync(this); } } @Override protected void onResume() { super.onResume(); } @Override public void requestToken() { startActivityForResult(new Intent(AbstractRavelryActivity.this, GetAccessTokenActivity_.class), RequestCode.REQUEST_CODE_GET_TOKEN); } }