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 UserInfo userInfo = um.getUserInfo(getUser().getIdentifier());
if (userInfo.isManagedProfile()) {
trampolineIntent.putExtra(EXTRA_USER_HANDLE, getUser());
trampolineIntent.setClass(this, DeepLinkHomepageActivityInternal.class)
.putExtra(EXTRA_USER_HANDLE, getUser());
startActivityAsUser(trampolineIntent, um.getPrimaryUser().getUserHandle());
} else {
startActivity(trampolineIntent);

View File

@@ -27,9 +27,11 @@ import android.app.ActivityManager;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.FeatureFlagUtils;
@@ -153,11 +155,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements
return mMainFragment;
}
/** Whether the activity is showing in two-pane */
public boolean isTwoPane() {
return mIsTwoPane;
}
@Override
public CategoryMixin getCategoryMixin() {
return mCategoryMixin;
@@ -166,10 +163,26 @@ public class SettingsHomepageActivity extends FragmentActivity implements
@Override
protected void onCreate(Bundle 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();
setContentView(R.layout.settings_homepage_container);
mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
mSplitController = SplitController.getInstance();
mIsTwoPane = mSplitController.isActivityEmbedded(this);
@@ -423,7 +436,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
// To prevent launchDeepLinkIntentToRight again for configuration change.
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);
// Sender of intent may want to send intent extra data to the destination of targetIntent.