package com.applikey.babybook.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.widget.ProgressBar;
import com.applikey.babybook.R;
import com.applikey.babybook.data.model.AlbumModel;
import com.applikey.babybook.database.Update;
import com.applikey.babybook.fragments.AlbumsFragment;
import com.applikey.babybook.fragments.CreateAlbumDialog;
import com.applikey.babybook.fragments.EditAlbumDialog;
import com.applikey.babybook.loaders.LoaderIdMap;
import com.applikey.babybook.utils.BitmapUtils;
import com.applikey.babybook.utils.Lo;
import java.util.ArrayList;
/**
* Created by alex on 1/16/14.
*/
public class MainActivity extends FragmentActivity
implements CreateAlbumDialog.createDialogListener, EditAlbumDialog.EditDialogListener, Update.UpdateListener{
public static final String CURRENT_FRAGMENT_TAG = "CurrentFragment";
public static int max_render_size;
private final Lo lo = new Lo(MainActivity.this);
private static LoaderIdMap loaderIdMap = new LoaderIdMap();
private Fragment currentFragment = null;
private ProgressBar progressBar;
private Update update = null;
private BitmapUtils bitmapUtils;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
init();
setCurrentFragment();
update = new Update(this);
update.setListener(this);
if (bitmapUtils == null) {
bitmapUtils = new BitmapUtils(this);
}
int maxScreedSideSize = bitmapUtils.getMaxSideSize();
max_render_size = bitmapUtils.getMaxBitmapSize(maxScreedSideSize);
}
@Override
public void onBackPressed() {
super.onBackPressed();
currentFragment = getSupportFragmentManager().findFragmentByTag(CURRENT_FRAGMENT_TAG);
}
public void replaceFragment (Fragment fragment) {
lo.g("replaceFragment(fragment): " + fragment.getTag());
currentFragment = fragment;
getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer, currentFragment, CURRENT_FRAGMENT_TAG).addToBackStack(null).commit();
}
private void init() {
progressBar = (ProgressBar) findViewById(R.id.progressBar);
}
private void setCurrentFragment () {
FragmentManager fragmentManager = getSupportFragmentManager();
currentFragment = fragmentManager.findFragmentByTag(CURRENT_FRAGMENT_TAG);
if (currentFragment == null) {
currentFragment = new AlbumsFragment();
fragmentManager.beginTransaction().add(R.id.fragmentContainer, currentFragment, CURRENT_FRAGMENT_TAG).commit();
}
}
public static LoaderIdMap getLoaderIdMap() {
return loaderIdMap;
}
public Fragment getCurrentFragment() {
return currentFragment;
}
/** Database update callbacks */
@Override
public void startUpdate() {
lo.g("startUpdate");
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void stopUpdate() {
lo.g("stopUpdate");
progressBar.setVisibility(View.GONE);
if (currentFragment instanceof AlbumsFragment){
((AlbumsFragment) currentFragment).refresh();
}
}
/** Dialogs callbacks */
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
lo.g("onActivityResult");
}
@Override
public void onEditSubmitListener(ArrayList<AlbumModel> albums) {
lo.g("Dialog callback: onEditSubmitListener");
update.onAlbumsChanged(albums, null);
}
@Override
public void onDeleteAlbumListener(ArrayList<AlbumModel> albums, Integer id) {
lo.g("Dialog callback: onDeleteAlbumListener");
update.onAlbumsChanged(albums, id);
}
@Override
public void onCreateSubmitListener(ArrayList<AlbumModel> albums) {
lo.g("Dialog callback: onCreateSubmitListener");
update.onAlbumsChanged(albums, null);
}
}