~opensatnav-admins/opensatnav/release-1.0

« back to all changes in this revision

Viewing changes to src/org/opensatnav/android/TripStatisticsController.java

  • Committer: Kieran Fleming
  • Date: 2010-12-13 13:13:48 UTC
  • Revision ID: kieran.fleming@gmail.com-20101213131348-pixo12i0wjf11jk3
Add all the missing stuff from the failed package rename

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.opensatnav.android;
 
2
 
 
3
import org.opensatnav.android.R;
 
4
import org.opensatnav.android.services.TripStatistics;
 
5
import org.opensatnav.android.services.TripStatisticsListener;
 
6
import org.opensatnav.android.services.TripStatistics.TripStatisticsStrings;
 
7
 
 
8
import android.content.Context;
 
9
import android.util.Log;
 
10
import android.view.View;
 
11
import android.view.ViewGroup.LayoutParams;
 
12
import android.widget.Button;
 
13
import android.widget.RelativeLayout;
 
14
import android.widget.TextView;
 
15
 
 
16
public class TripStatisticsController implements TripStatisticsListener {
 
17
 
 
18
        private static TripStatisticsListener instance;
 
19
 
 
20
        private View mStatsView;
 
21
        
 
22
        private TextView tripDurationMsecView;
 
23
        private TextView averTripSpeedView;
 
24
        private TextView currentSpeedView;
 
25
        private TextView tripDistanceMetersView;
 
26
        
 
27
        private Context context;
 
28
        
 
29
        public TripStatisticsController(final Context context) {
 
30
                
 
31
                this.context = context;
 
32
 
 
33
                // pre-subscribe the controller as a listener
 
34
                TripStatisticsService.setController(this);
 
35
                
 
36
                // service
 
37
                TripStatisticsService.start(context);
 
38
 
 
39
                // view
 
40
                mStatsView = View.inflate(context,R.layout.tripstatistics, null );
 
41
                mStatsView.setVisibility(View.GONE);
 
42
                
 
43
                averTripSpeedView = (TextView)mStatsView.findViewById(R.id.aver_trip_speed);
 
44
                currentSpeedView = (TextView)mStatsView.findViewById(R.id.current_speed);
 
45
                tripDurationMsecView = (TextView)mStatsView.findViewById(R.id.trip_duration);
 
46
                tripDistanceMetersView = (TextView)mStatsView.findViewById(R.id.trip_distance);
 
47
                
 
48
                
 
49
                /*averSpeedUnitsView = (TextView)mStatsView.findViewById(R.id.aver_speed_units);
 
50
                currentSpeedUnitsView = (TextView)mStatsView.findViewById(R.id.current_speed_units);
 
51
                tripDistanceUnitsView = (TextView)mStatsView.findViewById(R.id.distance_units);
 
52
                tripDurationUnitsView = (TextView)mStatsView.findViewById(R.id.trip_duration_units);*/
 
53
                
 
54
                
 
55
                Button closeStatsButton = (Button) mStatsView.findViewById(R.id.closeStatistics);
 
56
                Button resetStatsButton = (Button) mStatsView.findViewById(R.id.resetStatistics);
 
57
                
 
58
                closeStatsButton.setOnClickListener(new View.OnClickListener() {
 
59
                        public void onClick(View view) {
 
60
                                ((SatNavActivity)context).setViewingTripStats(false);
 
61
                                ((SatNavActivity)context).showTripStatistics(false);
 
62
                        }
 
63
                });
 
64
                
 
65
                resetStatsButton.setOnClickListener(new View.OnClickListener() {
 
66
                        public void onClick(View view) {
 
67
                                Log.v("TripStatsController", "Tried to rset");
 
68
                                TripStatisticsService.getService().resetStatistics();
 
69
                        }
 
70
                });
 
71
                
 
72
                instance = this;
 
73
        }
 
74
        
 
75
        @Override
 
76
        public void tripStatisticsChanged(TripStatistics statistics) {
 
77
                
 
78
                averTripSpeedView.setText(statistics.getAverageTripSpeedString());
 
79
                currentSpeedView.setText(statistics.getInstantSpeedString());
 
80
                tripDistanceMetersView.setText(statistics.getTripDistanceString());
 
81
                tripDurationMsecView.setText(statistics.getTripTimeString());
 
82
        }
 
83
 
 
84
        public View getView() {
 
85
                return mStatsView;
 
86
        }
 
87
 
 
88
        public void addViewTo(RelativeLayout parentView) {
 
89
                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
 
90
                                LayoutParams.FILL_PARENT,
 
91
                                LayoutParams.FILL_PARENT);;
 
92
                parentView.removeView(mStatsView);
 
93
                parentView.addView(mStatsView,params);
 
94
        }
 
95
 
 
96
        public void setVisible(boolean flag) {
 
97
                if( flag ) {
 
98
                        mStatsView.setVisibility(View.VISIBLE);
 
99
                } else {
 
100
                        mStatsView.setVisibility(View.GONE);
 
101
                }
 
102
        }
 
103
 
 
104
        public Object getAllStatistics() {
 
105
                final TripStatistics.TripStatisticsStrings stats = new TripStatistics.TripStatisticsStrings();
 
106
                stats.averSpeed = averTripSpeedView.getText() + "";
 
107
                stats.instSpeed = currentSpeedView.getText() + "";
 
108
                stats.tripDistance = tripDistanceMetersView.getText() + "";
 
109
                stats.tripDuration = tripDurationMsecView.getText() + "";
 
110
                return stats;
 
111
        }
 
112
 
 
113
        public void setAllStats(TripStatisticsStrings stats) {
 
114
                averTripSpeedView.setText(stats.averSpeed);
 
115
                currentSpeedView.setText(stats.instSpeed);
 
116
                tripDistanceMetersView.setText(stats.tripDistance);
 
117
                tripDurationMsecView.setText(stats.tripDuration);
 
118
        }
 
119
 
 
120
        public void stop() {
 
121
                TripStatisticsService.stop(context);
 
122
                
 
123
        }
 
124
        
 
125
        public void start() {
 
126
                TripStatisticsService.start(context);
 
127
        }
 
128
}