Voice recognition can now be disabled via settings

This commit is contained in:
Sebastian Kaspari 2010-09-05 22:04:55 +02:00
parent e29a6ec7af
commit 8901056b17
6 changed files with 39 additions and 12 deletions

View File

@ -75,6 +75,7 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
android:id="@+id/speech"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@android:drawable/ic_btn_speak_now" />
android:drawableLeft="@android:drawable/ic_btn_speak_now"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

View File

@ -20,4 +20,7 @@
<string name="key_fontsize">fontsize</string>
<string name="default_fontsize">11</string>
<string name="key_voice_recognition">voice_recognition</string>
<string name="default_voice_recognition">true</string>
</resources>

View File

@ -162,11 +162,13 @@
<string name="settings_24h_title">24 hour format</string>
<string name="settings_24h_desc">Use 24 hour format for timestamps</string>
<string name="settings_misc">Misc</string>
<string name="settings_quitmessage_title">Misc</string>
<string name="settings_quitmessage_title">Quit message</string>
<string name="settings_quitmessage_desc">Message to show when you disconnect</string>
<string name="settings_quitmessage_dialog_title">Quit message</string>
<string name="settings_quitmessage_dialog_desc">Message to show when you disconnect:</string>
<string name="settings_fontsize_title">Font size</string>
<string name="settings_fontsize_desc">Set the global font size</string>
<string name="settings_fontsize_dialog_title">Font size</string>
<string name="settings_voice_recognition_title">Voice Recognition</string>
<string name="settings_voice_recognition_desc">Show button for voice recognition</string>
</resources>

View File

@ -63,6 +63,11 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
</PreferenceCategory>
<PreferenceCategory
android:title="@string/settings_misc">
<CheckBoxPreference
android:title="@string/settings_voice_recognition_title"
android:summary="@string/settings_voice_recognition_desc"
android:key="@string/key_voice_recognition"
android:defaultValue="@string/default_voice_recognition" />
<EditTextPreference
android:title="@string/settings_quitmessage_title"
android:summary="@string/settings_quitmessage_desc"

View File

@ -45,6 +45,7 @@ import org.yaaic.model.Message;
import org.yaaic.model.Scrollback;
import org.yaaic.model.Server;
import org.yaaic.model.ServerInfo;
import org.yaaic.model.Settings;
import org.yaaic.model.Status;
import org.yaaic.receiver.ConversationReceiver;
import org.yaaic.receiver.ServerReceiver;
@ -62,6 +63,7 @@ import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.os.IBinder;
import android.speech.RecognizerIntent;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
@ -143,16 +145,6 @@ public class ConversationActivity extends Activity implements ServiceConnection,
server.clearConversations();
deckAdapter.clearConversations();
}
// Check if speech recognition is available
PackageManager pm = getPackageManager();
Button speechButton = (Button) findViewById(R.id.speech);
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
((Button) findViewById(R.id.speech)).setOnClickListener(new SpeechClickListener(this));
} else {
speechButton.setVisibility(View.GONE);
}
// Optimization : cache field lookups
Collection<Conversation> mConversations = server.getConversations();
@ -182,6 +174,17 @@ public class ConversationActivity extends Activity implements ServiceConnection,
super.onResume();
// Check if speech recognition is enabled and available
if (new Settings(this).isVoiceRecognitionEnabled()) {
PackageManager pm = getPackageManager();
Button speechButton = (Button) findViewById(R.id.speech);
List<ResolveInfo> activities = pm.queryIntentActivities(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
if (activities.size() != 0) {
((Button) findViewById(R.id.speech)).setOnClickListener(new SpeechClickListener(this));
speechButton.setVisibility(View.VISIBLE);
}
}
((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
// Start service

View File

@ -143,4 +143,17 @@ public class Settings
resources.getString(R.string.default_fontsize)
));
}
/**
* Is voice recognition enabled?
*
* @return True if voice recognition is enabled, false otherwise
*/
public boolean isVoiceRecognitionEnabled()
{
return preferences.getBoolean(
resources.getString(R.string.key_voice_recognition),
Boolean.parseBoolean(resources.getString(R.string.default_voice_recognition))
);
}
}