package com.daviancorp.android.ui.detail;
import java.io.IOException;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import com.daviancorp.android.data.classes.Weapon;
import com.daviancorp.android.loader.WeaponLoader;
import com.daviancorp.android.mh3udatabase.R;
import com.daviancorp.android.ui.dialog.WishlistDataAddDialogFragment;
public class WeaponDetailFragment extends Fragment {
protected static final String ARG_WEAPON_ID = "WEAPON_ID";
protected Weapon mWeapon;
protected TextView mWeaponLabelTextView, mWeaponTypeTextView,
mWeaponAttackTextView, mWeaponElementTextView,
mWeaponRarityTextView, mWeaponSlotTextView,
mWeaponAffinityTextView, mWeaponDefenseTextView,
mWeaponCreationTextView, mWeaponUpgradeTextView;
public static WeaponDetailFragment newInstance(long weaponId) {
Bundle args = new Bundle();
args.putLong(ARG_WEAPON_ID, weaponId);
WeaponDetailFragment f = new WeaponDetailFragment();
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
// Check for a Weapon ID as an argument, and find the weapon
Bundle args = getArguments();
if (args != null) {
long weaponId = args.getLong(ARG_WEAPON_ID, -1);
if (weaponId != -1) {
LoaderManager lm = getLoaderManager();
lm.initLoader(R.id.weapon_detail_fragment, args, new WeaponLoaderCallbacks());
}
}
}
protected void updateUI() throws IOException {
mWeaponLabelTextView.setText(mWeapon.getName());
mWeaponTypeTextView.setText(mWeapon.getWtype());
mWeaponAttackTextView.setText("" + mWeapon.getAttack());
mWeaponRarityTextView.setText("" + mWeapon.getRarity());
mWeaponSlotTextView.setText("" + mWeapon.getNumSlots());
mWeaponAffinityTextView.setText("" + mWeapon.getAffinity() + "%");
mWeaponDefenseTextView.setText("" + mWeapon.getDefense());
String createCost = "" + mWeapon.getCreationCost() + "z";
String upgradeCost = "" + mWeapon.getUpgradeCost() + "z";
if (createCost.equals("0z")) {
createCost = "-";
}
if (upgradeCost.equals("0z")) {
upgradeCost = "-";
}
mWeaponCreationTextView.setText(createCost);
mWeaponUpgradeTextView.setText(upgradeCost);
/* Element */
String element = "";
if (mWeapon.getElementalAttack() != null) {
element = mWeapon.getElementalAttack();
} else if (mWeapon.getAwakenedElementalAttack() != null) {
element = mWeapon.getAwakenedElementalAttack();
}
if (element.contains(",")) {
String[] twoElements = element.split(", ");
String elementOne = twoElements[0];
String elementTwo = twoElements[1];
element = getElementData(elementOne) + ", " + getElementData(elementTwo);
}
else {
element = getElementData(element);
}
if (mWeapon.getAwakenedElementalAttack() != null) {
element = "(" + element + ")";
}
mWeaponElementTextView.setText(element);
}
private String getElementData(String element) {
if (element.startsWith("FI")) {
return "Fire " + element.substring(2);
} else if (element.startsWith("WA")) {
return "Water " + element.substring(2);
} else if (element.startsWith("IC")) {
return "Ice " + element.substring(2);
} else if (element.startsWith("TH")) {
return "Thunder " + element.substring(2);
} else if (element.startsWith("DR")) {
return "Dragon " + element.substring(2);
} else if (element.startsWith("PA")) {
return "Paralysis " + element.substring(2);
} else if (element.startsWith("PO")) {
return "Poison " + element.substring(2);
} else if (element.startsWith("SLP")) {
return "Sleep " + element.substring(3);
} else if (element.startsWith("SLM")) {
return "Slime " + element.substring(3);
} else {
return "";
}
}
private class WeaponLoaderCallbacks implements LoaderCallbacks<Weapon> {
@Override
public Loader<Weapon> onCreateLoader(int id, Bundle args) {
return new WeaponLoader(getActivity(), args.getLong(ARG_WEAPON_ID));
}
@Override
public void onLoadFinished(Loader<Weapon> loader, Weapon run) {
mWeapon = run;
try {
updateUI();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onLoaderReset(Loader<Weapon> loader) {
// Do nothing
}
}
}