Clover Coverage Report - AnCal Coverage Report
Coverage timestamp: gio dic 18 2014 12:18:42 EST
../../../../../img/srcFileCovDistChart9.png 40% of files have more coverage
39   167   19   4,33
20   114   0,49   4,5
9     2,11  
2    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  AlarmService       Line # 16 29 12 87% 0.8695652
  AlarmService.AlarmPrefs       Line # 19 10 7 77,3% 0.77272725
 
No Tests
 
1   
2    package pl.magot.vetch.ancal.reminder;
3   
4   
5    import java.util.Calendar;
6    import pl.magot.vetch.ancal.CommonActivity;
7    import pl.magot.vetch.ancal.Prefs;
8    import pl.magot.vetch.ancal.Utils;
9    import pl.magot.vetch.ancal.database.Database;
10    import android.app.Service;
11    import android.content.Context;
12    import android.content.Intent;
13    import android.os.*;
14   
15   
 
16    public class AlarmService extends Service
17    {
18    //local service alarm prefs
 
19    protected class AlarmPrefs extends Prefs
20    {
21    //methods
 
22  1 toggle public AlarmPrefs(Context ctx)
23    {
24  1 super(ctx);
25    }
 
26  1 toggle protected void GetServicePrefs(Bundle arguments)
27    {
28  1 if (arguments != null)
29    {
30  1 if (arguments.containsKey("b24HourMode"))
31  1 b24HourMode = arguments.getBoolean("b24HourMode");
32  1 if (arguments.containsKey("iFirstDayOfWeek"))
33  1 iFirstDayOfWeek = arguments.getInt("iFirstDayOfWeek");
34  1 if (arguments.containsKey("iSnoozeCount"))
35  1 iSnoozeCount = arguments.getInt("iSnoozeCount");
36  1 if (arguments.containsKey("iSnoozeMinutesOverdue"))
37  1 iSnoozeMinutesOverdue = arguments.getInt("iSnoozeMinutesOverdue");
38    }
39    }
40    }
41   
42    //fields
43    protected static final int GET_PID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION;
44   
45    //fields
46    private Utils utils = null;
47    private AlarmPrefs prefs = null;
48    private Database db = null;
49    private AlarmDataView dataView = null;
50    private AlarmReminder reminder = null;
51   
52    //fields
53    private Calendar dateToday = Calendar.getInstance();
54    private Handler handlerUpdateDate = new Handler();
55    private final static int iHandlerUpdateTime = 1000 * 3;
56    private int iUpdateDate_minute = 0;
57   
58   
59    // The IAlarmService interface is defined through IDL
60    /*
61    private final IAlarmService.Stub mBinder = new IAlarmService.Stub()
62    {
63    public int getPid()
64    {
65    return Process.myPid();
66    }
67    };
68    */
69   
70   
 
71  1 toggle @Override
72    public void onCreate()
73    {
74    //initialize local alarm prefs
75  1 db = new Database(this);
76  1 utils = new Utils(this);
77  1 prefs = new AlarmPrefs(this);
78   
79  1 dataView = new AlarmDataView(this, db, prefs, utils);
80  1 reminder = new AlarmReminder(this, prefs, utils);
81   
82    //schedule handler update date task
83  1 handlerUpdateDate.removeCallbacks(handlerUpdateDateTask);
84  1 handlerUpdateDate.postDelayed(handlerUpdateDateTask, iHandlerUpdateTime);
85    }
86   
 
87  25 toggle @Override
88    public void onStart(Intent intent, int startId)
89    {
90  25 Bundle args = intent.getExtras();
91  25 if (args != null)
92    {
93    //if data tables updated, refresh data
94  24 if (args.containsKey(CommonActivity.bundleTableUpdated))
95    {
96  23 RefreshAlarmData();
97    }
98    //if prefs updated, reload prefs
99  24 if (args.containsKey(CommonActivity.bundleOptionsUpdated))
100    {
101    //get updated options
102  1 prefs.GetServicePrefs(args);
103    }
104    }
105    }
106   
 
107  0 toggle @Override
108    public void onDestroy()
109    {
110    //service stopped
111  0 reminder.RemoveNotify();
112  0 handlerUpdateDate.removeCallbacks(handlerUpdateDateTask);
113    }
114   
115    /*
116    @Override
117    public IBinder getBinder()
118    {
119    return mBinder;
120    }
121    */
122   
 
123  118 toggle public synchronized void UpdateTodayDate()
124    {
125  118 dateToday.setTimeInMillis(System.currentTimeMillis());
126  118 dateToday.setFirstDayOfWeek(prefs.iFirstDayOfWeek);
127    }
128   
129    private Runnable handlerUpdateDateTask = new Runnable()
130    {
 
131  118 toggle public void run()
132    {
133  118 try
134    {
135  118 UpdateTodayDate();
136    //refresh data, if system timer minute changed
137  118 if (iUpdateDate_minute != dateToday.get(Calendar.MINUTE))
138    {
139  7 RefreshAlarmData();
140    }
141    } finally {
142  118 handlerUpdateDate.postDelayed(this, iHandlerUpdateTime);
143    }
144    }
145    };
146   
 
147  30 toggle private synchronized void RefreshAlarmData()
148    {
149  30 iUpdateDate_minute = dateToday.get(Calendar.MINUTE);
150  30 if (dataView.CollectAlarmItems())
151    {
152  30 reminder.Clear();
153  30 reminder.AddAlarmData(dataView.GetApptsData());
154  30 reminder.AddAlarmData(dataView.GetTasksData());
155  30 reminder.ShowNotification();
156    }
157    }
158   
 
159  0 toggle @Override
160    public IBinder onBind(Intent intent)
161    {
162    // TODO Auto-generated method stub
163  0 return null;
164    }
165   
166    }
167