package uk.co.imallan.tuchongdaily.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.ViewTreeObserver;
import uk.co.imallan.tuchongdaily.service.ServiceReceiver;
/**
* Created by allan on 15/2/17.
*/
public abstract class AbstractActivity extends ActionBarActivity implements ServiceReceiver.Receiver {
protected ServiceReceiver serviceReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (this.prepareServiceReceiver()) {
serviceReceiver = new ServiceReceiver(new Handler());
}
}
abstract boolean prepareServiceReceiver();
@Override
protected void onResume() {
super.onResume();
if (serviceReceiver != null) {
serviceReceiver.setReceiver(this);
}
}
@Override
protected void onPause() {
super.onPause();
if (serviceReceiver != null) {
serviceReceiver.setReceiver(null);
}
}
@Override
public void onReceiveResult(int resultCode, Bundle resultData, Intent originalIntent, Bundle originalBundle) {
}
public void scheduleStartPostponedTransition(final View sharedElement) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
sharedElement.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@SuppressLint("NewApi")
@Override
public boolean onPreDraw() {
sharedElement.getViewTreeObserver().removeOnPreDrawListener(this);
startPostponedEnterTransition();
return true;
}
});
}
}
}