/*******************************************************************************
* Copyright 2013 PAR Works, Inc
*
* 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.parworks.mars.view.siteexplorer;
import android.app.Activity;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ProgressBar;
import com.parworks.arviewer.MiniARViewer;
import com.parworks.mars.cache.BitmapCache;
import com.parworks.mars.cache.BitmapWorkerTask;
import com.parworks.mars.cache.BitmapWorkerTask.BitmapWorkerListener;
import com.parworks.mars.model.db.SiteInfoTable;
public class PosterImageManager {
private final MiniARViewer miniARViewer;
private final ProgressBar mSiteImageProgressBar;
private final Activity mActivity;
private final String mSiteId;
private final ViewDimensionCalculator mViewDimensionCalculator;
public static final String TAG = PosterImageManager.class.getName();
public PosterImageManager(String siteId, MiniARViewer miniARView, ProgressBar siteImageProgressBar, Activity activity) {
this.miniARViewer = miniARView;
mSiteImageProgressBar = siteImageProgressBar;
mActivity = activity;
mSiteId = siteId;
mViewDimensionCalculator = new ViewDimensionCalculator(mActivity);
}
public void setSiteImage(Cursor data) {
String posterImageUrl = data.getString(
data.getColumnIndex(SiteInfoTable.COLUMN_AUG_POSTER_IMAGE_URL));
final String posterContent = data.getString(
data.getColumnIndex(SiteInfoTable.COLUMN_AUG_POSTER_IMAGE_CONTENT));
final int width = data.getInt(
data.getColumnIndex(SiteInfoTable.COLUMN_AUG_POSTER_IMAGE_WIDTH));
final int height = data.getInt(
data.getColumnIndex(SiteInfoTable.COLUMN_AUG_POSTER_IMAGE_HEIGHT));
int imageWidth = mViewDimensionCalculator.getScreenWidth();
miniARViewer.setSize(imageWidth, (int) (imageWidth * 0.6));
if (posterImageUrl != null) {
Bitmap posterImageBitmap = BitmapCache.get().getBitmap(
BitmapCache.getImageKeyFromURL(posterImageUrl));
if (posterImageBitmap == null) {
new BitmapWorkerTask(posterImageUrl, new BitmapWorkerListener() {
@Override
public void bitmapLoaded(Bitmap bitmap) {
miniARViewer.setImageBitmap(bitmap);
miniARViewer.setOriginalSize(width, height);
miniARViewer.setAugmentedData(posterContent);
showSiteImageView();
}
}).execute();
} else {
miniARViewer.setImageBitmap(posterImageBitmap);
miniARViewer.setOriginalSize(width, height);
miniARViewer.setAugmentedData(posterContent);
showSiteImageView();
}
}
}
private void showSiteImageView() {
miniARViewer.setVisibility(View.VISIBLE);
mSiteImageProgressBar.setVisibility(View.INVISIBLE);
}
}