diff --git a/astrid/src/com/todoroo/astrid/activity/EditPreferences.java b/astrid/src/com/todoroo/astrid/activity/EditPreferences.java index b80139bff..09ca18c63 100644 --- a/astrid/src/com/todoroo/astrid/activity/EditPreferences.java +++ b/astrid/src/com/todoroo/astrid/activity/EditPreferences.java @@ -11,7 +11,6 @@ import java.util.Map.Entry; import org.weloveastrid.rmilk.MilkPreferences; import org.weloveastrid.rmilk.MilkUtilities; -import android.content.ActivityNotFoundException; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; @@ -19,7 +18,6 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.res.Resources; -import android.net.Uri; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; @@ -303,25 +301,13 @@ public class EditPreferences extends TodorooPreferences { @Override public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - // User wants to install voice search, take him to the market - Intent marketIntent = new Intent(Intent.ACTION_VIEW, - Uri.parse("market://search?q=pname:" + //$NON-NLS-1$ - "com.google.android.voicesearch.x")); //$NON-NLS-1$ - try { - startActivity(marketIntent); - } catch (ActivityNotFoundException ane) { - DialogUtilities.okDialog(EditPreferences.this, - r.getString(R.string.EPr_marketUnavailable_dlg), - new OnClickListener() { - @Override - public void onClick(DialogInterface dialog1, - int which1) { - ((CheckBoxPreference)preference).setChecked(false); - dialog1.dismiss(); - } - }); - } + voiceInputAssistant.showVoiceInputMarketSearch(new OnClickListener() { + @Override + public void onClick(DialogInterface dialog1, + int which1) { + ((CheckBoxPreference)preference).setChecked(false); + } + }); } }, new OnClickListener() { diff --git a/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java b/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java index 91e1bb826..37285d69d 100644 --- a/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java +++ b/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java @@ -6,9 +6,12 @@ import java.util.List; import junit.framework.Assert; import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.net.Uri; import android.speech.RecognizerIntent; import android.view.View; import android.view.View.OnClickListener; @@ -16,6 +19,8 @@ import android.widget.EditText; import android.widget.ImageButton; import com.timsu.astrid.R; +import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.Preferences; /** @@ -204,4 +209,23 @@ public class VoiceInputAssistant { voiceButton.setVisibility(View.GONE); } } + + public void showVoiceInputMarketSearch(DialogInterface.OnClickListener onFail) { + String packageName; + if(AndroidUtilities.getSdkVersion() <= 7) + packageName = "com.google.android.voicesearch.x"; + else + packageName = "com.google.android.voicesearch"; + + // User wants to install voice search, take him to the market + Intent marketIntent = new Intent(Intent.ACTION_VIEW, + Uri.parse("market://search?q=pname:" + packageName)); //$NON-NLS-1$ + try { + activity.startActivity(marketIntent); + } catch (ActivityNotFoundException ane) { + DialogUtilities.okDialog(activity, + activity.getString(R.string.EPr_marketUnavailable_dlg), + onFail); + } + } }