Skip to content

Commit

Permalink
Fixing a bug that stopping check causes error. Do not speak in manner…
Browse files Browse the repository at this point in the history
… mode.
  • Loading branch information
gimite committed Apr 12, 2009
1 parent f279144 commit 4b253b8
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
7 changes: 6 additions & 1 deletion AndroidManifest.xml
Expand Up @@ -18,10 +18,15 @@
<activity android:name=".FoldersActivity"
android:label="@string/app_name">
</activity>
<service android:name=".MailCheckerService"></service>
<service android:name=".MailCheckerService">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</service>
</application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
Binary file added res/drawable/alert_dialog_icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 7 additions & 2 deletions src/net/gimite/mailspeaks/MailChecker.java
Expand Up @@ -9,17 +9,20 @@
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.media.AudioManager;
import android.util.Log;

import com.android.email.mail.internet.BinaryTempFileBody;
import com.google.tts.TTS;

public class MailChecker {

private static String tempDirPath = "/data/data/net.gimite.mailspeaks/tmp";

private TTS tts;
private Context context;
private SQLiteDatabase db;
private static String tempDirPath = "/sdcard/net/gimite/tmp";
private AudioManager audioManager;

final int MAX_NOTIFICATIONS = 3;

Expand All @@ -28,6 +31,7 @@ public MailChecker(Context context) {
BinaryTempFileBody.setTempDirectory(new File(tempDirPath));
tts = new TTS(context, onTtsInit, true);
initDatabase();
audioManager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
}

private TTS.InitListener onTtsInit = new TTS.InitListener() {
Expand All @@ -50,7 +54,8 @@ public boolean checkMails() {
}
return success;
} finally {
if (!speech.equals("")) {
if (!speech.equals("") &&
audioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) {
tts.setLanguage("en-us");
tts.speak(speech, 1, null);
}
Expand Down
27 changes: 22 additions & 5 deletions src/net/gimite/mailspeaks/MailCheckerService.java
Expand Up @@ -61,7 +61,7 @@ public void run() {
try{
for (int i = 0; i < 6; ++i) {
try {
Thread.sleep(10 * 1000);
if (i > 0) Thread.sleep(10 * 1000);
mailChecker.setGlobalStatus(
String.format("Attempt %d: Checking...", i + 1));
log(wifiStatus());
Expand Down Expand Up @@ -100,6 +100,8 @@ public void run() {
}
});
thread.start();
} else if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
Log.i("MailChecker", "boot");
} else {
setTimer(0);
}
Expand Down Expand Up @@ -134,9 +136,7 @@ private boolean inWifiArea() {
if (info != null) {
SupplicantState state = info.getSupplicantState();
if (state == SupplicantState.DORMANT) {
log("reenable wifi");
wifiManager.setWifiEnabled(false);
wifiManager.setWifiEnabled(true);
reenableWifi();
return true;
}
return state != SupplicantState.DISCONNECTED &&
Expand All @@ -150,14 +150,31 @@ private boolean inWifiArea() {
}
}

private void reenableWifi() {
if (!wifiManager.isWifiEnabled()) return;
log("reenable wifi");
wifiManager.setWifiEnabled(false);
try {
Thread.sleep(3000);
} catch (InterruptedException e) { }
wifiManager.setWifiEnabled(true);
}

@Override
public void onDestroy() {
super.onDestroy();
Log.i("MailCheckerService", "destroyed");
alive = false;
alarmManager.cancel(checkMailPendingIntent);
if (thread != null && thread.isAlive()) {
thread.interrupt();
try {
thread.join();
} catch (InterruptedException e) { }
}
mailChecker.setGlobalStatus("Disabled.");
tts.shutdown();
mailChecker.destroy();
alarmManager.cancel(checkMailPendingIntent);
}

@Override
Expand Down

0 comments on commit 4b253b8

Please sign in to comment.