@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View myView = inflater.inflate(R.layout.finance_summary, container, false); // Access the purchaseListFragment in order to calculate total expenses PurchaseListFragment purchaseListFragment = (PurchaseListFragment) getFragmentManager().findFragmentById(R.id.financePurchaseListContainer); if (myView != null) { TextView travelTimeProgressTextView = (TextView) myView.findViewById(R.id.travelTimeProgressTextView); TextView budgetSpentProgressTextView = (TextView) myView.findViewById(R.id.budgetSpentProgressTextView); ProgressBar travelTimeProgressBar = (ProgressBar) myView.findViewById(R.id.travelTimeProgressBar); ProgressBar budgetSpentProgressBar = (ProgressBar) myView.findViewById(R.id.budgetSpentProgressBar); // Fill the travelProgress views with data if (currentTrip != null) { int totalDays = Days.daysBetween(currentTrip.getStartDate(), currentTrip.getEndDate()).getDays(); int daysTraveled = Days.daysBetween(currentTrip.getStartDate(), new DateTime()).getDays(); int progress = (int) Math.ceil(((double) daysTraveled / (double) totalDays) * 100); travelTimeProgressTextView.setText(daysTraveled + " / " + totalDays + " Days"); travelTimeProgressBar.setProgress(progress); } // Fill the budgetSpentProgress views with data if (purchaseListFragment != null && currentTrip != null) { double totalBudget = currentTrip.getTotalBudget(); double expenses = purchaseListFragment.calculateTotalExpenses(); Log.d("Expenses calculated", String.valueOf(expenses)); budgetSpentProgressTextView.setText( String.format("%.2f", expenses) + " / " + String.format("%.2f", totalBudget)); budgetSpentProgressBar.setProgress(getBudgetProgress(expenses)); } else { Log.d("No purchaseListFragment", "blah"); } // Listens for when the user taps on the summary fragment myView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { try { viewTripSettings(currentTrip); } catch (Exception e) { Log.e("Exception", "Can't get trip"); } } }); } // Inflate the view and place it on the screen return myView; }
/** * Returns the budget spent out of total budget as an int between 0 and 100 * * @param sumTotal sum price of all purchases * @return progress as an int between 0 and 100 */ public int getBudgetProgress(double sumTotal) { return (int) Math.ceil((sumTotal / currentTrip.getTotalBudget()) * 100); }