package com.example.asamles.app.picassogridimage;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.example.asamles.app.R;
import com.example.asamles.app.dialog.ADialogs;
import com.example.asamles.app.json.JsonFromAssets;
import com.joanzapata.android.iconify.IconDrawable;
import com.joanzapata.android.iconify.Iconify;
import java.util.ArrayList;
public class PicassoMain extends Fragment {
private Fragment grid, list;
private boolean isGrid;
private SharedPreferences sPref;
private SharedPreferences.Editor ed;
public final String IS_GRID = "isGrid";
public static final String ASSETS_FILE = "images.json";
private IconDrawable gridIcon;
private IconDrawable listIcon;
public static PicassoMain newInstance() {
return new PicassoMain();
}
public PicassoMain() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
isGrid = sPref.getBoolean(IS_GRID, true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
View rootView = inflater.inflate(R.layout.fragment_picasso, container, false);
ed = sPref.edit();
JsonFromAssets JFA = new JsonFromAssets(ASSETS_FILE, getActivity());
ArrayList<String> imgs = JFA.getFromJson();
if (imgs == null) {
ADialogs alertDialog = new ADialogs(getActivity());
alertDialog.alert(false, this.getString(R.string.error), this.getString(R.string.json_error), this.getString(R.string.ok), null);
return rootView;
}
grid = PicassoGridImages.newInstance(imgs);
list = PicassoListImages.newInstance(imgs);
showContent(isGrid);
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.grid_menu, menu);
gridIcon = new IconDrawable(getActivity(), Iconify.IconValue.icon_th_grid)
.colorRes(R.color.grey_light)
.actionBarSize();
listIcon = new IconDrawable(getActivity(), Iconify.IconValue.icon_th_list)
.colorRes(R.color.grey_light)
.actionBarSize();
MenuItem gridList = menu.findItem(R.id.action_list);
if (gridList != null) {
if (isGrid) {
gridList.setIcon(gridIcon);
} else {
gridList.setIcon(listIcon);
}
}
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_list:
if (isGrid) {
isGrid = false;
item.setIcon(listIcon);
} else {
isGrid = true;
item.setIcon(gridIcon);
}
ed.putBoolean(IS_GRID, isGrid);
ed.commit();
showContent(isGrid);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void showContent(boolean isGrid) {
if (isGrid) {
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.frag_content, grid)
.commit();
} else {
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.frag_content, list)
.commit();
}
}
}