Android Open Source - activity-tracker List Workouts Activity






From Project

Back to project page activity-tracker.

License

The source code is released under:

MIT License

If you think the Android project activity-tracker listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.hopto.mjancola.activity;
//from   w  w w  .j a v  a  2s  . c  o m
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Spinner;
import org.hopto.mjancola.R;
import org.hopto.mjancola.adapter.WorkoutDAOAdapter;
import org.hopto.mjancola.utility.WorkoutDAO;
import org.hopto.mjancola.utility.WorkoutDataSource;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

public class ListWorkoutsActivity extends Activity
{

    private ListView       listView1;
    private WorkoutDataSource datasource;
    public static final long MILLIS_ONE_DAY = 1000L * 60L * 60L * 24L;
    public static SimpleDateFormat formatter;
    private       Spinner          WorkoutDAOFilterDropdown;
    private       long             filterDeltaMS;
    private       WorkoutDAOAdapter  adapter;
    private boolean debug = false;
    private static final long DEBUG_MODE = -1L;


    @Override
    public void onCreate( Bundle savedInstanceState )
    {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.workout_list );
        WorkoutDAOFilterDropdown = (Spinner) findViewById( R.id.workout_filter_spinner );
        WorkoutDAOFilterDropdown.setOnItemSelectedListener( new WorkoutDAOFilterChange() );
        WorkoutDAOFilterDropdown.setSelection( 0 );

        datasource = new WorkoutDataSource( this );
        datasource.open();

        listView1 = (ListView) findViewById( R.id.listView1 );
        formatter = new SimpleDateFormat( "dd MMM yyyy" );
    }

    private void updateData()
    {
        List<WorkoutDAO> allWorkoutDAOs = datasource.getAllWorkoutDAOs();
        List<WorkoutDAO> values = new ArrayList<WorkoutDAO>();
         // filter out WorkoutDAOs which are not DUE:
        int beforeCount = allWorkoutDAOs.size();
        for (WorkoutDAO w : allWorkoutDAOs)
        {
            if ( !filterWorkout( w ))
            {
                // due, add to working list
                values.add( w );
            }
        }
        int after = values.size();
        Log.d( "THISWEEK:", beforeCount + " before filter; " + after + " after" );


         WorkoutDAO[] overdue_WorkoutDAOs = values.toArray(new WorkoutDAO[values.size()]);

         adapter = new WorkoutDAOAdapter(this,
           R.layout.list_row, overdue_WorkoutDAOs);


         listView1.setAdapter(adapter);

         listView1.setOnItemClickListener( new AdapterView.OnItemClickListener()
         {
             public void onItemClick( AdapterView<?> parent, View view, int position, long id )
             {

                 Intent editWorkoutDAOIntent = EditWorkoutDAOActivity.createIntent( parent.getContext() );
                 editWorkoutDAOIntent.putExtra( WorkoutDAO.INTENT_ID, adapter.getItem( position ).getId() );

                 startActivity( editWorkoutDAOIntent );
             }
         } );

    }

    private boolean filterWorkout( WorkoutDAO w )
    {
        if (filterDeltaMS == DEBUG_MODE)
        {
            return false;
        }
        else if (w.getDuration() < (2 * (1000L))) // TODO FIX THISSpeedActivity.MIN_DURATION_MS)) // filter out short workouts
        {
            return true;
        }

        if  (( filterDeltaMS == 0 ) ||                                          // if we are not filtering
            ( w.getStart()  > (System.currentTimeMillis() - filterDeltaMS) ) )  // OR apply filter
        {
            return false;
        }
        else
        {
            return true;
        }
    }


    //      // Will be called via the onClick attribute
//      // of the buttons in main.xml
//    public void onClick(View view) {
//
//        switch (view.getId()) {
//        case R.id.add:
//            Intent addIntent = WorkoutDAOActivity.createIntent( this );
//            startActivity(addIntent);
//          break;
//        }
//    }

    @Override
     protected void onResume() {
         super.onResume();
         updateData();
     }

     @Override
     protected void onPause() {
         //datasource.close();
         super.onPause();
     }


    private class WorkoutDAOFilterChange implements AdapterView.OnItemSelectedListener
    {

        @Override public void onItemSelected( AdapterView<?> parent, View view, int pos, long l )
        {
            String filter = parent.getItemAtPosition( pos ).toString();
            String[] allFilters = getResources().getStringArray( R.array.workout_filters );

            if ( filter.equals( allFilters[0] ) ) // HACK - this should be programmatically linked: "This week"
            {
                filterDeltaMS = ( 7L * MILLIS_ONE_DAY );
            }
            else if ( filter.equals( allFilters[1] ) )
            {
                filterDeltaMS = ( 30L * MILLIS_ONE_DAY );
            }
            else if ( filter.equals( allFilters[2] ) ) // all
            {
                filterDeltaMS = 0L;
            }
            else // debug
            {
                filterDeltaMS = DEBUG_MODE;
            }
            adapter.notifyDataSetChanged();
            updateData();
        }

        @Override public void onNothingSelected( AdapterView<?> adapterView )
        {
        }
    }
}




Java Source Code List

org.hopto.mjancola.ActivityTrackerApplication.java
org.hopto.mjancola.activity.ActivityRecognitionActivity.java
org.hopto.mjancola.activity.ActivityTracker.java
org.hopto.mjancola.activity.DemoDetailsList.java
org.hopto.mjancola.activity.DemoDetails.java
org.hopto.mjancola.activity.EditWorkoutDAOActivity.java
org.hopto.mjancola.activity.FeatureView.java
org.hopto.mjancola.activity.LegalInfoActivity.java
org.hopto.mjancola.activity.ListWorkoutsActivity.java
org.hopto.mjancola.activity.MyLocationDemoActivity.java
org.hopto.mjancola.activity.SpeedActivity.java
org.hopto.mjancola.activity.UserSettingsActivity.java
org.hopto.mjancola.adapter.WorkoutDAOAdapter.java
org.hopto.mjancola.fragment.EditWorkoutDAOFragment.java
org.hopto.mjancola.model.DataPoint.java
org.hopto.mjancola.model.GenericMovement.java
org.hopto.mjancola.model.GenericWorkout.java
org.hopto.mjancola.model.LearningMode.java
org.hopto.mjancola.model.MyMovement.java
org.hopto.mjancola.model.WorkoutTotal.java
org.hopto.mjancola.model.WorkoutType.java
org.hopto.mjancola.model.Workout.java
org.hopto.mjancola.service.ActivityRecognitionService.java
org.hopto.mjancola.service.MovementListenerService.java
org.hopto.mjancola.service.MovementTrackerService.java
org.hopto.mjancola.utility.Converter.java
org.hopto.mjancola.utility.MySQLiteHelper.java
org.hopto.mjancola.utility.SettingsHelper.java
org.hopto.mjancola.utility.WorkoutDAO.java
org.hopto.mjancola.utility.WorkoutDataSource.java