Skip to content

Commit

Permalink
Merge pull request #2128 from marunjar/search_icons
Browse files Browse the repository at this point in the history
app specific search icon
  • Loading branch information
marunjar authored Jul 17, 2023
2 parents 6f8eaaf + 1c3d1ff commit 94d74c2
Showing 1 changed file with 42 additions and 26 deletions.
68 changes: 42 additions & 26 deletions app/src/main/java/fr/neamar/kiss/result/SearchResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,27 @@ public View display(Context context, View view, @NonNull ViewGroup parent, Fuzzy
image.setImageResource(R.drawable.search);

boolean hideIcons = getHideIcons(context);
if (isGoogleSearch() && !hideIcons) {
Drawable icon = getIconByPackageName(context, "com.google.android.googlequicksearchbox");
if (icon != null) {
image.setImageDrawable(icon);
hasCustomIcon = true;
if (!hideIcons) {
if (isGoogleSearch()) {
Drawable icon = getIconByPackageName(context, "com.google.android.googlequicksearchbox");
if (icon != null) {
image.setImageDrawable(icon);
hasCustomIcon = true;
}
} else if (isDuckDuckGo()) {
Drawable icon = getIconByPackageName(context, "com.duckduckgo.mobile.android");
if (icon != null) {
image.setImageDrawable(icon);
hasCustomIcon = true;
}
}
}

if (isDuckDuckGo() && !hideIcons) {
Drawable icon = getIconByPackageName(context, "com.duckduckgo.mobile.android");
if (icon != null) {
image.setImageDrawable(icon);
hasCustomIcon = true;
if (!hasCustomIcon) {
Intent intent = createSearchQueryIntent();
Drawable icon = getIconByIntent(context, intent);
if (icon != null) {
image.setImageDrawable(icon);
hasCustomIcon = true;
}
}
}
} else if (searchPojo.type == SearchPojo.CALCULATOR_QUERY) {
Expand All @@ -97,7 +105,7 @@ public View display(Context context, View view, @NonNull ViewGroup parent, Fuzzy
image.setImageResource(R.drawable.ic_public);

if (!getHideIcons(context)) {
Intent intent = createUriIntent();
Intent intent = createUriQueryIntent();
Drawable icon = getIconByIntent(context, intent);
if (icon != null) {
image.setImageDrawable(icon);
Expand All @@ -119,15 +127,32 @@ public View display(Context context, View view, @NonNull ViewGroup parent, Fuzzy
}

/**
* Creates intent to start activity with given uri.
* Creates intent to start activity for given uri query.
*
* @return intent
*/
private Intent createUriIntent() {
private Intent createUriQueryIntent() {
Uri uri = Uri.parse(searchPojo.query);
return PackageManagerUtils.createUriIntent(uri);
}

/**
* Creates intent to start activity for given search query.
*
* @return intent
*/
private Intent createSearchQueryIntent() {
String query;
try {
query = URLEncoder.encode(searchPojo.query, "UTF-8");
} catch (UnsupportedEncodingException e) {
query = URLEncoder.encode(searchPojo.query);
}
String urlWithQuery = searchPojo.url.replaceAll("%s|\\{q\\}", query);
Uri uri = Uri.parse(urlWithQuery);
return PackageManagerUtils.createUriIntent(uri);
}

/**
* @param context
* @param intent
Expand Down Expand Up @@ -177,16 +202,7 @@ public void doLaunch(Context context, View v) {
// Google app not found, fall back to default method
}
}
String query;
try {
query = URLEncoder.encode(searchPojo.query, "UTF-8");
} catch (UnsupportedEncodingException e) {
query = URLEncoder.encode(searchPojo.query);
}
String urlWithQuery = searchPojo.url.replaceAll("%s|\\{q\\}", query);
Uri uri = Uri.parse(urlWithQuery);
Intent search = new Intent(Intent.ACTION_VIEW, uri);
search.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent search = createSearchQueryIntent();
try {
context.startActivity(search);
} catch (ActivityNotFoundException e) {
Expand All @@ -198,7 +214,7 @@ public void doLaunch(Context context, View v) {
Toast.makeText(context, R.string.copy_confirmation, Toast.LENGTH_SHORT).show();
break;
case SearchPojo.URI_QUERY:
Intent intent = createUriIntent();
Intent intent = createUriQueryIntent();
try {
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
Expand Down

0 comments on commit 94d74c2

Please sign in to comment.