Merge "Fix the work profile's deep link problem" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-05-20 08:23:15 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 8 deletions

View File

@@ -433,7 +433,8 @@ public class SettingsActivity extends SettingsBaseActivity
final UserManager um = getSystemService(UserManager.class); final UserManager um = getSystemService(UserManager.class);
final UserInfo userInfo = um.getUserInfo(getUser().getIdentifier()); final UserInfo userInfo = um.getUserInfo(getUser().getIdentifier());
if (userInfo.isManagedProfile()) { if (userInfo.isManagedProfile()) {
trampolineIntent.putExtra(EXTRA_USER_HANDLE, getUser()); trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal.class)
.putExtra(EXTRA_USER_HANDLE, getUser());
startActivityAsUser(trampolineIntent, um.getPrimaryUser().getUserHandle()); startActivityAsUser(trampolineIntent, um.getPrimaryUser().getUserHandle());
} else { } else {
startActivity(trampolineIntent); startActivity(trampolineIntent);

View File

@@ -27,9 +27,11 @@ import android.app.ActivityManager;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.content.pm.UserInfo;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
@@ -153,11 +155,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements
return mMainFragment; return mMainFragment;
} }
/** Whether the activity is showing in two-pane */
public boolean isTwoPane() {
return mIsTwoPane;
}
@Override @Override
public CategoryMixin getCategoryMixin() { public CategoryMixin getCategoryMixin() {
return mCategoryMixin; return mCategoryMixin;
@@ -166,10 +163,26 @@ public class SettingsHomepageActivity extends FragmentActivity implements
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
if (mIsEmbeddingActivityEnabled) {
final UserManager um = getSystemService(UserManager.class);
final UserInfo userInfo = um.getUserInfo(getUser().getIdentifier());
if (userInfo.isManagedProfile()) {
final Intent intent = new Intent(getIntent())
.setClass(this, DeepLinkHomepageActivityInternal.class)
.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
.putExtra(EXTRA_USER_HANDLE, getUser());
intent.removeFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityAsUser(intent, um.getPrimaryUser().getUserHandle());
finish();
return;
}
}
setupEdgeToEdge(); setupEdgeToEdge();
setContentView(R.layout.settings_homepage_container); setContentView(R.layout.settings_homepage_container);
mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
mSplitController = SplitController.getInstance(); mSplitController = SplitController.getInstance();
mIsTwoPane = mSplitController.isActivityEmbedded(this); mIsTwoPane = mSplitController.isActivityEmbedded(this);
@@ -423,7 +436,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
// To prevent launchDeepLinkIntentToRight again for configuration change. // To prevent launchDeepLinkIntentToRight again for configuration change.
intent.setAction(null); intent.setAction(null);
targetIntent.setFlags(targetIntent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); targetIntent.removeFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
targetIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); targetIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
// Sender of intent may want to send intent extra data to the destination of targetIntent. // Sender of intent may want to send intent extra data to the destination of targetIntent.