package io.c0nnector.github.paradise.ui.screenshot;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityOptionsCompat;
import android.view.View;
import com.f2prateek.dart.InjectExtra;
import java.util.ArrayList;
import butterknife.Bind;
import butterknife.OnClick;
import io.c0nnector.github.paradise.R;
import io.c0nnector.github.paradise.api.model.Screenshot;
import io.c0nnector.github.paradise.ui.BaseActivity;
import io.c0nnector.github.paradise.ui.startup.photos.FragmentStartupGalleryImage;
import io.c0nnector.github.paradise.ui.views.ScreenshotViewPager;
import io.c0nnector.github.paradise.util.Intents;
import io.c0nnector.github.paradise.util.Val;
public class ActivityScreenshot extends BaseActivity {
@Bind(R.id.vPager)
ScreenshotViewPager viewPager;
//Can't user @Extra for arraylist, so we need retrieve them the old fashioned way
ArrayList<Screenshot> screenshots;
@InjectExtra
Integer position;
@OnClick(R.id.vWrapper)
public void onBtnClose(){
supportFinishAfterTransition();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screenshot);
postponeEnterTransition();
}
@Override
protected void validate(){
setScreenshotsFromExtras();
if (Val.isNull(screenshots) || Val.isNull(position)) throw new RuntimeException("You need to supply a valid screenshot list");
}
@Override
protected void afterViews() {
super.afterViews();
setupAdapter();
}
/**
* Will try to retrieve passed screenshots
*/
private void setScreenshotsFromExtras(){
this.screenshots = getIntent().getExtras().getParcelableArrayList("screenshots");
}
/**
* Screenshot adapter
*/
private void setupAdapter(){
ScreenshotAdapter adapter = new ScreenshotAdapter(getSupportFragmentManager(), screenshots);
viewPager.setAdapter(adapter);
//select the position clicked
viewPager.setCurrentItem(position);
}
/*****************************************************
* ---------------- * Intents * --------------------
*
*
*
****************************************************/
/**
* Start activity
*
* @param context
* @param screenshots a list of screenshots to show
* @param position preselected position for the viewpager
*/
public static void start(Context context, ArrayList<Screenshot> screenshots, int position) {
Intents.with(context, ActivityScreenshot.class)
.extra("position", position)
.extra("screenshots", screenshots)
.open();
}
/**
* Start activity
*
* @param activity
* @param screenshots a list of screenshots to show
* @param position preselected position for the viewpager
*/
public static void start(Activity activity, ArrayList<Screenshot> screenshots, int position, View sharedView) {
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedView, FragmentStartupGalleryImage.TRANSITION_NAME_SCREENSHOT+position);
Intents.with(activity, ActivityScreenshot.class)
.extra("position", position)
.extra("screenshots", screenshots)
.open(options.toBundle());
}
}