1
0
mirror of https://github.com/moparisthebest/Yaaic synced 2024-08-13 16:53:50 -04:00

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:id="@+id/speech"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="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>
</LinearLayout> </LinearLayout>

View File

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

View File

@ -162,11 +162,13 @@
<string name="settings_24h_title">24 hour format</string> <string name="settings_24h_title">24 hour format</string>
<string name="settings_24h_desc">Use 24 hour format for timestamps</string> <string name="settings_24h_desc">Use 24 hour format for timestamps</string>
<string name="settings_misc">Misc</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_desc">Message to show when you disconnect</string>
<string name="settings_quitmessage_dialog_title">Quit message</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_quitmessage_dialog_desc">Message to show when you disconnect:</string>
<string name="settings_fontsize_title">Font size</string> <string name="settings_fontsize_title">Font size</string>
<string name="settings_fontsize_desc">Set the global 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_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> </resources>

View File

@ -63,6 +63,11 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/settings_misc"> 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 <EditTextPreference
android:title="@string/settings_quitmessage_title" android:title="@string/settings_quitmessage_title"
android:summary="@string/settings_quitmessage_desc" 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.Scrollback;
import org.yaaic.model.Server; import org.yaaic.model.Server;
import org.yaaic.model.ServerInfo; import org.yaaic.model.ServerInfo;
import org.yaaic.model.Settings;
import org.yaaic.model.Status; import org.yaaic.model.Status;
import org.yaaic.receiver.ConversationReceiver; import org.yaaic.receiver.ConversationReceiver;
import org.yaaic.receiver.ServerReceiver; import org.yaaic.receiver.ServerReceiver;
@ -62,6 +63,7 @@ import android.content.pm.ResolveInfo;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.speech.RecognizerIntent; import android.speech.RecognizerIntent;
import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -144,16 +146,6 @@ public class ConversationActivity extends Activity implements ServiceConnection,
deckAdapter.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 // Optimization : cache field lookups
Collection<Conversation> mConversations = server.getConversations(); Collection<Conversation> mConversations = server.getConversations();
@ -182,6 +174,17 @@ public class ConversationActivity extends Activity implements ServiceConnection,
super.onResume(); 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()); ((ImageView) findViewById(R.id.status)).setImageResource(server.getStatusIcon());
// Start service // Start service

View File

@ -143,4 +143,17 @@ public class Settings
resources.getString(R.string.default_fontsize) 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))
);
}
} }