On android 2.2 and up, the voice search application has a different package name

pull/14/head
Tim Su 15 years ago
parent b88d5e5527
commit 91b84d2a53

@ -11,7 +11,6 @@ import java.util.Map.Entry;
import org.weloveastrid.rmilk.MilkPreferences; import org.weloveastrid.rmilk.MilkPreferences;
import org.weloveastrid.rmilk.MilkUtilities; import org.weloveastrid.rmilk.MilkUtilities;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnClickListener;
import android.content.Intent; import android.content.Intent;
@ -19,7 +18,6 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
import android.preference.Preference; import android.preference.Preference;
@ -303,26 +301,14 @@ public class EditPreferences extends TodorooPreferences {
@Override @Override
public void onClick(DialogInterface dialog, public void onClick(DialogInterface dialog,
int which) { int which) {
dialog.dismiss(); voiceInputAssistant.showVoiceInputMarketSearch(new OnClickListener() {
// 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 @Override
public void onClick(DialogInterface dialog1, public void onClick(DialogInterface dialog1,
int which1) { int which1) {
((CheckBoxPreference)preference).setChecked(false); ((CheckBoxPreference)preference).setChecked(false);
dialog1.dismiss();
} }
}); });
} }
}
}, },
new OnClickListener() { new OnClickListener() {
@Override @Override

@ -6,9 +6,12 @@ import java.util.List;
import junit.framework.Assert; import junit.framework.Assert;
import android.app.Activity; import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.speech.RecognizerIntent; import android.speech.RecognizerIntent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -16,6 +19,8 @@ import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
/** /**
@ -204,4 +209,23 @@ public class VoiceInputAssistant {
voiceButton.setVisibility(View.GONE); 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);
}
}
} }

Loading…
Cancel
Save