Support target intent data relay in SearchResultTrampoline

Bug: 240391954
Test: manual & robotest
Change-Id: I2798839dd03f3f2fd165c8cba86b748aa6257804
This commit is contained in:
Jason Chiu
2022-08-22 18:05:11 +08:00
parent f2bbdf5035
commit 2118ea589b
2 changed files with 7 additions and 3 deletions

View File

@@ -438,6 +438,8 @@ public class SettingsHomepageActivity extends FragmentActivity implements
return; return;
} }
targetIntent.setData(intent.getParcelableExtra(
SettingsHomepageActivity.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA));
final ComponentName targetComponentName = targetIntent.resolveActivity(getPackageManager()); final ComponentName targetComponentName = targetIntent.resolveActivity(getPackageManager());
if (targetComponentName == null) { if (targetComponentName == null) {
Log.e(TAG, "No valid target for the deep link intent: " + targetIntent); Log.e(TAG, "No valid target for the deep link intent: " + targetIntent);
@@ -457,9 +459,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements
targetIntent.putExtra(EXTRA_IS_FROM_SETTINGS_HOMEPAGE, true); targetIntent.putExtra(EXTRA_IS_FROM_SETTINGS_HOMEPAGE, true);
targetIntent.putExtra(SettingsActivity.EXTRA_IS_FROM_SLICE, false); targetIntent.putExtra(SettingsActivity.EXTRA_IS_FROM_SLICE, false);
targetIntent.setData(intent.getParcelableExtra(
SettingsHomepageActivity.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA));
// Set 2-pane pair rule for the deep link page. // Set 2-pane pair rule for the deep link page.
ActivityEmbeddingRulesController.registerTwoPanePairRule(this, ActivityEmbeddingRulesController.registerTwoPanePairRule(this,
new ComponentName(getApplicationContext(), getClass()), new ComponentName(getApplicationContext(), getClass()),

View File

@@ -22,6 +22,7 @@ import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB;
import android.app.Activity; import android.app.Activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
@@ -86,8 +87,12 @@ public class SearchResultTrampoline extends Activity {
return; return;
} }
final Uri data = intent.getParcelableExtra(
SettingsHomepageActivity.EXTRA_SETTINGS_LARGE_SCREEN_DEEP_LINK_INTENT_DATA,
Uri.class);
try { try {
intent = Intent.parseUri(intentUriString, Intent.URI_INTENT_SCHEME); intent = Intent.parseUri(intentUriString, Intent.URI_INTENT_SCHEME);
intent.setData(data);
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
Log.e(TAG, "Failed to parse deep link intent: " + e); Log.e(TAG, "Failed to parse deep link intent: " + e);
finish(); finish();