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);
}
}