Advertisement
Guest User

Tendencies

a guest
May 4th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.05 KB | None | 0 0
  1. package rasmus_kurstein.budgetapp;
  2.  
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.MenuItem;
  7. import android.view.View;
  8. import android.widget.AdapterView;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.Spinner;
  11. import android.widget.TextView;
  12.  
  13. import java.util.ArrayList;
  14. import java.util.Calendar;
  15.  
  16.  
  17. public class Tendencies extends ActionBarActivity {
  18.  
  19.     ApplicationObject app;
  20.  
  21.     Spinner spinner;
  22.     TextView monthlyAvg;
  23.     TextView weeklyAvg;
  24.     TextView dailyAvg;
  25.  
  26.     long avgDay;
  27.  
  28.     @Override
  29.     protected void onCreate(Bundle savedInstanceState) {
  30.         super.onCreate(savedInstanceState);
  31.         setContentView(R.layout.activity_tendencies);
  32.  
  33.         app = (ApplicationObject) getApplicationContext();
  34.  
  35.         monthlyAvg = (TextView) findViewById(R.id.monthlyAvg);
  36.         weeklyAvg = (TextView) findViewById(R.id.weeklyAvg);
  37.         dailyAvg = (TextView) findViewById(R.id.dailyAvg);
  38.  
  39.         ArrayList<String> categories = new ArrayList();
  40.         categories.add("Total");
  41.         categories.add("Category 1");
  42.         categories.add("Category 2");
  43.         categories.add("Category 3");
  44.         categories.add("Category 4");
  45.         categories.add("Category 5");
  46.         categories.add("Category 6");
  47.  
  48.         //drop-down menu from http://developer.android.com/guide/topics/ui/controls/spinner.html
  49.         spinner = (Spinner) findViewById(R.id.spinner);
  50.         // Create an ArrayAdapter using the string array and a default spinner layout
  51.         ArrayAdapter<String> adapter = new ArrayAdapter(this,
  52.                android.R.layout.simple_spinner_item, categories);
  53.         // Specify the layout to use when the list of choices appears
  54.         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  55.         // Apply the adapter to the spinner
  56.         spinner.setAdapter(adapter);
  57. /*
  58.         if(daysPast()>0){
  59.             avgDay=(long)totalSpent("Total")/daysPast();
  60.         } else{
  61.             avgDay=(long)totalSpent("Total");
  62.         }
  63.  
  64.         long avgWeek = avgDay*7;
  65.         long avgMonth = avgDay*365/12;
  66.  
  67.         dailyAvg.setText(""+avgDay);
  68.         weeklyAvg.setText(""+avgWeek);
  69.         monthlyAvg.setText(""+avgMonth);
  70. */
  71.         // spinner action from http://stackoverflow.com/questions/1337424/android-spinner-get-the-selected-item-change-event
  72.         spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  73.  
  74.             @Override
  75.             public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
  76.                 if(daysPast()>0){
  77.                     avgDay=(long)totalSpent(spinner.getSelectedItem().toString())/daysPast();
  78.                 } else{
  79.                     avgDay=(long)totalSpent(spinner.getSelectedItem().toString());
  80.                 }
  81.  
  82.                 long avgWeek = avgDay*7;
  83.                 long avgMonth = avgDay*365/12;
  84.  
  85.                 dailyAvg.setText(""+avgDay);
  86.                 weeklyAvg.setText(""+avgWeek);
  87.                 monthlyAvg.setText(""+avgMonth);
  88.             }
  89.  
  90.             @Override
  91.             public void onNothingSelected(AdapterView<?> parentView) {
  92.                 if(daysPast()>0){
  93.                     avgDay=(long)totalSpent("Total")/daysPast();
  94.                 } else{
  95.                     avgDay=(long)totalSpent("Total");
  96.                 }
  97.  
  98.                 long avgWeek = avgDay*7;
  99.                 long avgMonth = avgDay*365/12;
  100.  
  101.                 dailyAvg.setText(""+avgDay);
  102.                 weeklyAvg.setText(""+avgWeek);
  103.                 monthlyAvg.setText(""+avgMonth);
  104.             }
  105.         });
  106.  
  107.     }
  108.  
  109.     public long daysPast(){
  110.         Transaction firstTrans = app.getTransactions().get(app.getTransactions().size()-1);
  111.         Calendar calendar1 = Calendar.getInstance();
  112.         Calendar calendar2 = Calendar.getInstance();
  113.         calendar1.set(firstTrans.getYear(), (firstTrans.getMonth()-1), firstTrans.getDay());
  114.         long milsecs1= calendar1.getTimeInMillis();
  115.         long milsecs2 = calendar2.getTimeInMillis();
  116.         long diff = milsecs2 - milsecs1;
  117.         long ddays = diff / (24 * 60 * 60 * 1000);
  118.         return ddays;
  119.     }
  120.  
  121.     public int totalSpent(String category){
  122.         int total = 0;
  123.         ArrayList<Transaction> transactions = new ArrayList<Transaction>();
  124.         int size = app.getTransactions().size();
  125.         if (size>0) {
  126.             for (int i = 0; i < size; i++) {
  127.                 Transaction trans = app.getTransactions().get(i);
  128.                 switch(category){
  129.                     case "Total":
  130.                         transactions.add(trans);
  131.                         break;
  132.                     case "Category 1":
  133.                         if (category==trans.getCategory()){
  134.                             transactions.add(trans);
  135.                         }
  136.                     case "Category 2":
  137.                         if (category==trans.getCategory()){
  138.                             transactions.add(trans);
  139.                         }
  140.                     case "Category 3":
  141.                         if (category==trans.getCategory()){
  142.                             transactions.add(trans);
  143.                         }
  144.                     case "Category 4":
  145.                         if (category==trans.getCategory()){
  146.                             transactions.add(trans);
  147.                         }
  148.                     case "Category 5":
  149.                         if (category==trans.getCategory()){
  150.                             transactions.add(trans);
  151.                         }
  152.                     case "Category 6":
  153.                         if (category==trans.getCategory()){
  154.                             transactions.add(trans);
  155.                         }
  156.  
  157.                 }
  158.             }
  159.         }
  160.  
  161.         int size2 = transactions.size();
  162.         if (size2>0) {
  163.             for (int i = 0; i < size2; i++) {
  164.                 total = total+transactions.get(i).getAmount();
  165.             }
  166.         }
  167.         return total;
  168.     }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement