/*
* Copyright © 2011-2012 Neurowork S.L.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.emobc.android.activities;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import com.emobc.android.ApplicationData;
import com.emobc.android.SearchResult;
import com.emobc.android.activities.generators.AbstractActivtyGenerator;
/**
* Defines an activity of type GALLERY_ACTIVITY, and
* initialize all screen menu and the screen rotations. In its
* method onCreate(), call its GalleryActivityGenerator generator.
*
* @author Jonatan Alcocer Luna
*/
public class GalleryActivity extends CoverActivity {
/**
*
*/
private static final long serialVersionUID = -1387331718231365946L;
protected static final Context Activity = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//overridePendingTransition(R.anim.fadein, R.anim.fadeout);
setContentView(R.layout.image_galery);
boolean isEntryPoint = false;
rotateScreen(this);
Intent intent = getIntent();
isEntryPoint=(Boolean)intent.getSerializableExtra(ApplicationData.IS_ENTRY_POINT_TAG);
Gallery g = (Gallery) findViewById(R.id.galery);
final ImageView i = (ImageView) findViewById(R.id.imageGalery);
final AssetManager am = getAssets();
ApplicationData applicationData = getApplicationData();
final List<SearchResult> listaImagenes = applicationData.findAllLevelsImages(this);
g.setAdapter(new ImageAdapter(this, listaImagenes));
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
final int position, long id) {
BufferedInputStream buf;
try {
buf = new BufferedInputStream(
am.open(listaImagenes.get(position).getText()));
i.setImageBitmap(BitmapFactory.decodeStream(buf));
i.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
AbstractActivtyGenerator.showNextLevel(GalleryActivity.this, listaImagenes.get(position).getNextLevel());
}
});
} catch (IOException e) {
Log.e("eMobc", e.getMessage());
}
}
});
//createToolBar(isEntryPoint);
setEntryPoint(isEntryPoint);
createMenus();
}
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private List<SearchResult> images;
public ImageAdapter(Context c, List<SearchResult> images) {
mContext = c;
this.images = images;
}
public int getCount() {
return images.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(mContext);
AssetManager assetManager = getAssets();
BufferedInputStream buf;
try {
buf = new BufferedInputStream(assetManager.open(images.get(
position).getText()));
i.setImageBitmap(BitmapFactory.decodeStream(buf));
i.setLayoutParams(new Gallery.LayoutParams(100, 100));
i.setScaleType(ImageView.ScaleType.FIT_XY);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return i;
}
}
}