Creation of sessionId and passing it between PermissionController fragments.
SessionId will be used in logging of user interactions with PermissionController

Test:  Tested locally with log statements added to each activity.
Bug: 133401502
Change-Id: I04dd387421017b1e663d5933ad37ef24e21ec38a
Merged-In: I04dd387421017b1e663d5933ad37ef24e21ec38a
(cherry picked from commit a0395db9be0eb43445a43bf5135f70eee71602ba)
diff --git a/src/com/android/packageinstaller/Constants.java b/src/com/android/packageinstaller/Constants.java
index c3d7f86..fa25beb 100644
--- a/src/com/android/packageinstaller/Constants.java
+++ b/src/com/android/packageinstaller/Constants.java
@@ -136,4 +136,15 @@
      * set for the names of the roles that an application is always denied for.
      */
     public static final String REQUEST_ROLE_USER_DENIED_ALWAYS_KEY_PREFIX = "denied_always:";
+
+    /**
+     * Intent extra used to pass current sessionId between Permission Controller fragments.
+     */
+    public static final String EXTRA_SESSION_ID =
+            "com.android.packageinstaller.extra.SESSION_ID";
+
+    /**
+     * Invalid session id.
+     */
+    public static final long INVALID_SESSION_ID = 0;
 }
diff --git a/src/com/android/packageinstaller/permission/service/LocationAccessCheck.java b/src/com/android/packageinstaller/permission/service/LocationAccessCheck.java
index e3a2e92..30911e1 100644
--- a/src/com/android/packageinstaller/permission/service/LocationAccessCheck.java
+++ b/src/com/android/packageinstaller/permission/service/LocationAccessCheck.java
@@ -39,6 +39,8 @@
 import static android.provider.Settings.Secure.LOCATION_ACCESS_CHECK_DELAY_MILLIS;
 import static android.provider.Settings.Secure.LOCATION_ACCESS_CHECK_INTERVAL_MILLIS;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
 import static com.android.packageinstaller.Constants.KEY_LAST_LOCATION_ACCESS_NOTIFICATION_SHOWN;
 import static com.android.packageinstaller.Constants.LOCATION_ACCESS_CHECK_ALREADY_NOTIFIED_FILE;
 import static com.android.packageinstaller.Constants.LOCATION_ACCESS_CHECK_JOB_ID;
@@ -516,9 +518,16 @@
         deleteIntent.putExtra(EXTRA_USER, user);
         deleteIntent.setFlags(FLAG_RECEIVER_FOREGROUND);
 
+        long sessionId = INVALID_SESSION_ID;
+
+        while (sessionId == INVALID_SESSION_ID) {
+            sessionId = new Random().nextLong();
+        }
+
         Intent clickIntent = new Intent(mContext, NotificationClickHandler.class);
         clickIntent.putExtra(EXTRA_PACKAGE_NAME, pkgName);
         clickIntent.putExtra(EXTRA_USER, user);
+        clickIntent.putExtra(EXTRA_SESSION_ID, sessionId);
         clickIntent.setFlags(FLAG_RECEIVER_FOREGROUND);
 
         CharSequence appName = getNotificationAppName();
@@ -813,6 +822,7 @@
         public void onReceive(Context context, Intent intent) {
             String pkg = getStringExtraSafe(intent, EXTRA_PACKAGE_NAME);
             UserHandle user = getParcelableExtraSafe(intent, EXTRA_USER);
+            long sessionId = intent.getLongExtra(EXTRA_SESSION_ID, INVALID_SESSION_ID);
 
             new LocationAccessCheck(context, null).markAsNotified(pkg, user);
 
@@ -821,6 +831,8 @@
             manageAppPermission.putExtra(EXTRA_PERMISSION_NAME, ACCESS_FINE_LOCATION);
             manageAppPermission.putExtra(EXTRA_PACKAGE_NAME, pkg);
             manageAppPermission.putExtra(EXTRA_USER, user);
+            manageAppPermission.putExtra(EXTRA_SESSION_ID, sessionId);
+
 
             context.startActivity(manageAppPermission);
         }
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionActivity.java b/src/com/android/packageinstaller/permission/ui/AppPermissionActivity.java
index b425fd8..7e70129 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionActivity.java
@@ -18,6 +18,8 @@
 
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -27,6 +29,7 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 
+import com.android.packageinstaller.Constants;
 import com.android.packageinstaller.DeviceUtils;
 import com.android.packageinstaller.permission.ui.auto.AutoAppPermissionFragment;
 import com.android.packageinstaller.permission.ui.handheld.AppPermissionFragment;
@@ -100,8 +103,10 @@
             androidXFragment = AutoAppPermissionFragment.newInstance(packageName, permissionName,
                     groupName, userHandle);
         } else {
+            long sessionId = getIntent().getLongExtra(Constants.EXTRA_SESSION_ID,
+                    INVALID_SESSION_ID);
             androidXFragment = AppPermissionFragment.newInstance(packageName, permissionName,
-                    groupName, userHandle, caller);
+                    groupName, userHandle, caller, sessionId);
         }
 
         getSupportFragmentManager().beginTransaction().replace(android.R.id.content,
diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
index 6dd3279..9ec35ea 100644
--- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsActivity.java
@@ -18,6 +18,8 @@
 
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -27,6 +29,7 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 
+import com.android.packageinstaller.Constants;
 import com.android.packageinstaller.DeviceUtils;
 import com.android.packageinstaller.permission.ui.auto.AutoAllAppPermissionsFragment;
 import com.android.packageinstaller.permission.ui.auto.AutoAppPermissionsFragment;
@@ -38,6 +41,8 @@
 import com.android.packageinstaller.permission.utils.Utils;
 import com.android.permissioncontroller.R;
 
+import java.util.Random;
+
 public final class ManagePermissionsActivity extends FragmentActivity {
     private static final String LOG_TAG = ManagePermissionsActivity.class.getSimpleName();
 
@@ -64,6 +69,11 @@
 
         getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
 
+        long sessionId = getIntent().getLongExtra(Constants.EXTRA_SESSION_ID, INVALID_SESSION_ID);
+        while (sessionId == INVALID_SESSION_ID) {
+            sessionId = new Random().nextLong();
+        }
+
         String permissionName;
         switch (action) {
             case Intent.ACTION_MANAGE_PERMISSIONS:
@@ -74,7 +84,7 @@
                             com.android.packageinstaller.permission.ui.television
                                     .ManagePermissionsFragment.newInstance();
                 } else {
-                    androidXFragment = ManageStandardPermissionsFragment.newInstance();
+                    androidXFragment = ManageStandardPermissionsFragment.newInstance(sessionId);
                 }
                 break;
 
@@ -143,7 +153,8 @@
                                 .AllAppPermissionsFragment.newInstance(packageName, userHandle);
                     } else {
                         androidXFragment = com.android.packageinstaller.permission.ui.handheld
-                                .AppPermissionsFragment.newInstance(packageName, userHandle);
+                                .AppPermissionsFragment.newInstance(
+                                        packageName, userHandle, sessionId);
                     }
                 }
             } break;
@@ -163,7 +174,7 @@
                             .PermissionAppsFragment.newInstance(permissionName);
                 } else {
                     androidXFragment = com.android.packageinstaller.permission.ui.handheld
-                            .PermissionAppsFragment.newInstance(permissionName);
+                            .PermissionAppsFragment.newInstance(permissionName, sessionId);
                 }
             } break;
 
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionFragment.java
index d314bd7..25e7966 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionFragment.java
@@ -52,6 +52,7 @@
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 
+import com.android.packageinstaller.Constants;
 import com.android.packageinstaller.permission.model.AppPermissionGroup;
 import com.android.packageinstaller.permission.model.Permission;
 import com.android.packageinstaller.permission.model.PermissionUsages;
@@ -112,8 +113,8 @@
      * @return A new fragment
      */
     public static @NonNull AppPermissionFragment newInstance(@NonNull String packageName,
-            @NonNull String permName, @Nullable String groupName, @NonNull UserHandle userHandle,
-            @Nullable String caller) {
+            @NonNull String permName, @Nullable String groupName,
+            @NonNull UserHandle userHandle, @Nullable String caller, long sessionId) {
         AppPermissionFragment fragment = new AppPermissionFragment();
         Bundle arguments = new Bundle();
         arguments.putString(Intent.EXTRA_PACKAGE_NAME, packageName);
@@ -124,6 +125,7 @@
         }
         arguments.putParcelable(Intent.EXTRA_USER, userHandle);
         arguments.putString(AppPermissionActivity.EXTRA_CALLER_NAME, caller);
+        arguments.putLong(Constants.EXTRA_SESSION_ID, sessionId);
         fragment.setArguments(arguments);
         return fragment;
     }
@@ -209,6 +211,8 @@
             root.requireViewById(R.id.usage_summary).setVisibility(View.GONE);
         }
 
+        long sessionId = getArguments().getLong(Constants.EXTRA_SESSION_ID);
+
         TextView footer1Link = root.requireViewById(R.id.footer_link_1);
         footer1Link.setText(context.getString(R.string.app_permission_footer_app_permissions_link,
                 appLabel));
@@ -216,6 +220,7 @@
             UserHandle user = UserHandle.getUserHandleForUid(mGroup.getApp().applicationInfo.uid);
             Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSIONS);
             intent.putExtra(Intent.EXTRA_PACKAGE_NAME, mGroup.getApp().packageName);
+            intent.putExtra(Constants.EXTRA_SESSION_ID, sessionId);
             intent.putExtra(Intent.EXTRA_USER, user);
             context.startActivity(intent);
         });
@@ -225,6 +230,7 @@
         footer2Link.setOnClickListener((v) -> {
             Intent intent = new Intent(Intent.ACTION_MANAGE_PERMISSION_APPS);
             intent.putExtra(Intent.EXTRA_PERMISSION_NAME, mGroup.getName());
+            intent.putExtra(Constants.EXTRA_SESSION_ID, sessionId);
             context.startActivity(intent);
         });
 
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
index 26cebb5..615fbd1 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java
@@ -16,6 +16,9 @@
 
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+
 import android.app.ActionBar;
 import android.app.Activity;
 import android.content.Context;
@@ -71,15 +74,18 @@
      * @return A new fragment
      */
     public static AppPermissionsFragment newInstance(@NonNull String packageName,
-            @NonNull UserHandle userHandle) {
-        return setPackageNameAndUserHandle(new AppPermissionsFragment(), packageName, userHandle);
+            @NonNull UserHandle userHandle, long sessionId) {
+        return setPackageNameAndUserHandleAndSessionId(
+                new AppPermissionsFragment(), packageName, userHandle, sessionId);
     }
 
-    private static <T extends Fragment> T setPackageNameAndUserHandle(@NonNull T fragment,
-            @NonNull String packageName, @NonNull UserHandle userHandle) {
+    private static <T extends Fragment> T setPackageNameAndUserHandleAndSessionId(
+            @NonNull T fragment, @NonNull String packageName, @NonNull UserHandle userHandle,
+            long sessionId) {
         Bundle arguments = new Bundle();
         arguments.putString(Intent.EXTRA_PACKAGE_NAME, packageName);
         arguments.putParcelable(Intent.EXTRA_USER, userHandle);
+        arguments.putLong(EXTRA_SESSION_ID, sessionId);
         fragment.setArguments(arguments);
         return fragment;
     }
@@ -215,6 +221,8 @@
         allowed.setOrderingAsAdded(true);
         denied.setOrderingAsAdded(true);
 
+        long sessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID);
+
         for (int i = 0; i < groups.size(); i++) {
             AppPermissionGroup group = groups.get(i);
             if (!Utils.shouldShowPermission(getContext(), group)) {
@@ -224,7 +232,7 @@
             boolean isPlatform = group.getDeclaringPackage().equals(Utils.OS_PKG);
 
             PermissionControlPreference preference = new PermissionControlPreference(context,
-                    group, AppPermissionsFragment.class.getName());
+                    group, AppPermissionsFragment.class.getName(), sessionId);
             preference.setKey(group.getName());
             Drawable icon = Utils.loadDrawable(context.getPackageManager(),
                     group.getIconPkg(), group.getIconResId());
@@ -278,9 +286,10 @@
         if (mExtraScreen != null) {
             extraPerms.setOnPreferenceClickListener(preference -> {
                 AdditionalPermissionsFragment frag = new AdditionalPermissionsFragment();
-                setPackageNameAndUserHandle(frag,
+                setPackageNameAndUserHandleAndSessionId(frag,
                         getArguments().getString(Intent.EXTRA_PACKAGE_NAME),
-                        getArguments().getParcelable(Intent.EXTRA_USER));
+                        getArguments().getParcelable(Intent.EXTRA_USER),
+                        getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID));
                 frag.setTargetFragment(AppPermissionsFragment.this, 0);
                 getFragmentManager().beginTransaction()
                         .replace(android.R.id.content, frag)
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/ManageCustomPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/ManageCustomPermissionsFragment.java
index ffd0829..8249053 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/ManageCustomPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/ManageCustomPermissionsFragment.java
@@ -16,12 +16,27 @@
 
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+
+import android.os.Bundle;
 import android.view.MenuItem;
 
 /**
  * Fragment that allows the user to manage custom permissions.
  */
 public class ManageCustomPermissionsFragment extends ManagePermissionsFragment {
+
+    /**
+     * @return A new fragment
+     */
+    public static ManageCustomPermissionsFragment newInstance(long sessionId) {
+        ManageCustomPermissionsFragment fragment = new ManageCustomPermissionsFragment();
+        Bundle arguments = new Bundle();
+        arguments.putLong(EXTRA_SESSION_ID, sessionId);
+        fragment.setArguments(arguments);
+        return fragment;
+    }
+
     @Override
     public void onStart() {
         super.onStart();
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/ManagePermissionsFragment.java
index cf2c56f..638c3a6 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/ManagePermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/ManagePermissionsFragment.java
@@ -15,6 +15,9 @@
  */
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+
 import android.app.ActionBar;
 import android.content.ActivityNotFoundException;
 import android.content.Context;
@@ -75,7 +78,9 @@
         }
 
         Intent intent = new Intent(Intent.ACTION_MANAGE_PERMISSION_APPS)
-                .putExtra(Intent.EXTRA_PERMISSION_NAME, key);
+                .putExtra(Intent.EXTRA_PERMISSION_NAME, key)
+                .putExtra(EXTRA_SESSION_ID,
+                        getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID));
         try {
             getActivity().startActivity(intent);
         } catch (ActivityNotFoundException e) {
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/ManageStandardPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/ManageStandardPermissionsFragment.java
index cc4558f..3d793f0 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/ManageStandardPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/ManageStandardPermissionsFragment.java
@@ -15,6 +15,8 @@
  */
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+
 import android.os.Bundle;
 import android.view.MenuItem;
 
@@ -38,11 +40,14 @@
     /**
      * @return A new fragment
      */
-    public static ManageStandardPermissionsFragment newInstance() {
-        return new ManageStandardPermissionsFragment();
+    public static ManageStandardPermissionsFragment newInstance(long sessionId) {
+        ManageStandardPermissionsFragment fragment = new ManageStandardPermissionsFragment();
+        Bundle arguments = new Bundle();
+        arguments.putLong(EXTRA_SESSION_ID, sessionId);
+        fragment.setArguments(arguments);
+        return fragment;
     }
 
-
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -95,8 +100,9 @@
                         android.R.attr.colorControlNormal));
                 additionalPermissionsPreference.setTitle(R.string.additional_permissions);
                 additionalPermissionsPreference.setOnPreferenceClickListener(preference -> {
+                    long sessionId = getArguments().getLong(EXTRA_SESSION_ID);
                     ManageCustomPermissionsFragment frag =
-                            new ManageCustomPermissionsFragment();
+                            ManageCustomPermissionsFragment.newInstance(sessionId);
                     frag.setTargetFragment(ManageStandardPermissionsFragment.this, 0);
                     FragmentTransaction ft = getFragmentManager().beginTransaction();
                     ft.replace(android.R.id.content, frag);
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
index 70ea65a..885f05b 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java
@@ -15,6 +15,9 @@
  */
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+import static com.android.packageinstaller.Constants.INVALID_SESSION_ID;
+
 import android.app.ActionBar;
 import android.content.Context;
 import android.content.Intent;
@@ -60,13 +63,19 @@
     private static final String SHOW_SYSTEM_KEY = PermissionAppsFragment.class.getName()
             + KEY_SHOW_SYSTEM_PREFS;
 
-    public static PermissionAppsFragment newInstance(String permissionName) {
-        return setPermissionName(new PermissionAppsFragment(), permissionName);
+    /**
+     * @return A new fragment
+     */
+    public static PermissionAppsFragment newInstance(String permissionName, long sessionId) {
+        return setPermissionNameAndSessionId(
+                new PermissionAppsFragment(), permissionName, sessionId);
     }
 
-    private static <T extends Fragment> T setPermissionName(T fragment, String permissionName) {
+    private static <T extends Fragment> T setPermissionNameAndSessionId(
+            T fragment, String permissionName, long sessionId) {
         Bundle arguments = new Bundle();
         arguments.putString(Intent.EXTRA_PERMISSION_NAME, permissionName);
+        arguments.putLong(EXTRA_SESSION_ID, sessionId);
         fragment.setArguments(arguments);
         return fragment;
     }
@@ -245,6 +254,8 @@
             return result;
         });
 
+        long sessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID);
+
         for (int i = 0; i < sortedApps.size(); i++) {
             PermissionApp app = sortedApps.get(i);
             AppPermissionGroup group = app.getPermissionGroup();
@@ -302,7 +313,7 @@
             }
 
             PermissionControlPreference pref = new PermissionControlPreference(context, group,
-                    PermissionAppsFragment.class.getName());
+                    PermissionAppsFragment.class.getName(), sessionId);
             pref.setKey(key);
             pref.setIcon(app.getIcon());
             pref.setTitle(Utils.getFullAppLabel(app.getAppInfo(), context));
@@ -338,7 +349,8 @@
                 pref.setTitle(R.string.preference_show_system_apps);
                 pref.setOnPreferenceClickListener(preference -> {
                     SystemAppsFragment frag = new SystemAppsFragment();
-                    setPermissionName(frag, getArguments().getString(Intent.EXTRA_PERMISSION_NAME));
+                    setPermissionNameAndSessionId(frag,
+                            getArguments().getString(Intent.EXTRA_PERMISSION_NAME), sessionId);
                     frag.setTargetFragment(PermissionAppsFragment.this, 0);
                     getFragmentManager().beginTransaction()
                         .replace(android.R.id.content, frag)
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionControlPreference.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionControlPreference.java
index 362358b..da86a6d 100644
--- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionControlPreference.java
+++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionControlPreference.java
@@ -16,6 +16,8 @@
 
 package com.android.packageinstaller.permission.ui.handheld;
 
+import static com.android.packageinstaller.Constants.EXTRA_SESSION_ID;
+
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
@@ -51,6 +53,11 @@
 
     public PermissionControlPreference(@NonNull Context context,
             @NonNull AppPermissionGroup group, @NonNull String caller) {
+        this(context, group, caller, 0);
+    }
+
+    public PermissionControlPreference(@NonNull Context context,
+            @NonNull AppPermissionGroup group, @NonNull String caller, long sessionId) {
         super(context);
         mContext = context;
         mWidgetIcon = null;
@@ -64,6 +71,7 @@
             intent.putExtra(Intent.EXTRA_PERMISSION_NAME, group.getPermissions().get(0).getName());
             intent.putExtra(Intent.EXTRA_USER, group.getUser());
             intent.putExtra(AppPermissionActivity.EXTRA_CALLER_NAME, caller);
+            intent.putExtra(EXTRA_SESSION_ID, sessionId);
             context.startActivity(intent);
             return true;
         });