package com.datonicgroup.narrate.app.ui.entries;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;

import com.datonicgroup.narrate.app.R;
import com.datonicgroup.narrate.app.models.Photo;
import com.datonicgroup.narrate.app.ui.base.BaseActivity;
import com.datonicgroup.narrate.app.util.LogUtil;

import uk.co.senab.photoview.PhotoViewAttacher;

/**
 * Created by timothymiko on 11/14/14.
 */
public class ViewPhotoActivity extends BaseActivity {

    private ImageView mImageView;

    private Bitmap mImage;
    private PhotoViewAttacher mAttacher;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_photo);

        Bundle extras = getIntent().getExtras();

        if ( extras == null ) {
            finish();
            return;
        }

        Photo photo = extras.getParcelable("photo");
        LogUtil.log(ViewPhotoActivity.class.getSimpleName(), "Photo Path: " + photo.path);

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 1;

        mImage = BitmapFactory.decodeFile(photo.path, options);

        if ( mImage.getWidth() > 4096 || mImage.getHeight() > 4096 ) {
            float ratio = (float) mImage.getHeight() / (float) mImage.getWidth();
            int width = mImage.getWidth();
            int height = 0;

            if ( width > 4096 ) {
                width = 4096;
                height = Math.round(width * ratio);
            } else {
                height = 4096;
                width = Math.round(height / ratio);
            }

            mImage = Bitmap.createScaledBitmap(mImage, width, height, false);
        }


        mImageView.setImageBitmap(mImage);
        mAttacher = new PhotoViewAttacher(mImageView);
    }

    @Override
    protected void assignViews() {
        super.assignViews();
        mImageView = (ImageView) findViewById(R.id.image);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mImage.recycle();
    }
}