package com.daviancorp.android.ui.detail; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.LoaderManager; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.daviancorp.android.data.classes.Quest; import com.daviancorp.android.loader.QuestLoader; import com.daviancorp.android.mh3udatabase.R; public class QuestDetailFragment extends Fragment { private static final String ARG_QUEST_ID = "QUEST_ID"; private Quest mQuest; TextView questtv1; TextView questtv2; TextView questtv3; TextView questtv4; TextView questtv5; TextView questtv6; TextView questtv7; public static QuestDetailFragment newInstance(long questId) { Bundle args = new Bundle(); args.putLong(ARG_QUEST_ID, questId); QuestDetailFragment f = new QuestDetailFragment(); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Check for a Quest ID as an argument, and find the monster Bundle args = getArguments(); if (args != null) { long questId = args.getLong(ARG_QUEST_ID, -1); if (questId != -1) { LoaderManager lm = getLoaderManager(); lm.initLoader(R.id.quest_detail_fragment, args, new QuestLoaderCallbacks()); } } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_quest_detail, container, false); questtv1 = (TextView) view.findViewById(R.id.level); questtv2 = (TextView) view.findViewById(R.id.goal); questtv3 = (TextView) view.findViewById(R.id.hrp); questtv4 = (TextView) view.findViewById(R.id.reward); questtv5 = (TextView) view.findViewById(R.id.fee); questtv6 = (TextView) view.findViewById(R.id.quest); questtv7 = (TextView) view.findViewById(R.id.location); questtv7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // The id argument will be the Monster ID; CursorAdapter gives us this // for free Intent i = new Intent(getActivity(), LocationDetailActivity.class); i.putExtra(LocationDetailActivity.EXTRA_LOCATION_ID, (long) v.getTag()); startActivity(i); } }); return view; } private void updateUI() { String cellQuest = mQuest.getName(); String cellLevels = mQuest.getHub() + " " + mQuest.getStars(); String cellGoal = mQuest.getGoal(); String cellHrp = "" + mQuest.getHrp(); String cellReward = "" + mQuest.getReward() + "z"; String cellFee = "" + mQuest.getFee() + "z"; String time = mQuest.getLocationTime().equals("") ? "" : " (" + mQuest.getLocationTime() + ")"; String cellLocation = mQuest.getLocation().getName() + time; questtv1.setText(cellLevels); questtv2.setText(cellGoal); questtv3.setText(cellHrp); questtv4.setText(cellReward); questtv5.setText(cellFee); questtv6.setText(cellQuest); questtv7.setText(cellLocation); questtv7.setTag(mQuest.getLocation().getId()); } private class QuestLoaderCallbacks implements LoaderCallbacks<Quest> { @Override public Loader<Quest> onCreateLoader(int id, Bundle args) { return new QuestLoader(getActivity(), args.getLong(ARG_QUEST_ID)); } @Override public void onLoadFinished(Loader<Quest> loader, Quest run) { mQuest = run; updateUI(); } @Override public void onLoaderReset(Loader<Quest> loader) { // Do nothing } } }