Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5028e6e6 authored by Chloris Kuo's avatar Chloris Kuo
Browse files

Fix NotificationAssistantPreferenceController constructor

Fix flaky test due to the constructor must either only take Context, or
(Context, String).

Bug: 187998873
Test: CodeInspectionTest, NotificationAssistantPreferenceControllerTest
Change-Id: Ie383ea6773afda05adfb7aa9d7de9e27676f6b29
parent 52ee33df
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@
            android:key="notification_assistant"
            android:order="23"
            android:title="@string/notification_assistant_title"
            android:summary="@string/notification_assistant_summary"/>
            android:summary="@string/notification_assistant_summary"
            settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
    </PreferenceCategory>
</PreferenceScreen>
+12 −7
Original line number Diff line number Diff line
@@ -19,14 +19,11 @@ package com.android.settings.notification;
import android.app.Activity;
import android.app.Application;
import android.app.settings.SettingsEnums;
import android.app.usage.IUsageStatsManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager;

import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
@@ -57,10 +54,11 @@ public class ConfigureNotificationSettings extends DashboardFragment implements
    private static final int REQUEST_CODE = 200;
    private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
    private static final String KEY_ADVANCED_CATEGORY = "configure_notifications_advanced";
    private static final String KEY_NAS = "notification_assistant";

    private RingtonePreference mRequestPreference;

    private NotificationAssistantPreferenceController mNotificationAssistantPreferenceController;

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.CONFIGURE_NOTIFICATION;
@@ -88,6 +86,16 @@ public class ConfigureNotificationSettings extends DashboardFragment implements
        return buildPreferenceControllers(context, app, this);
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

        mNotificationAssistantPreferenceController =
                use(NotificationAssistantPreferenceController.class);
        mNotificationAssistantPreferenceController.setFragment(this);
        mNotificationAssistantPreferenceController.setBackend(new NotificationBackend());
    }

    @Override
    protected boolean isParalleledControllers() {
        return true;
@@ -105,9 +113,6 @@ public class ConfigureNotificationSettings extends DashboardFragment implements
            }

        });
        controllers.add(new NotificationAssistantPreferenceController(context,
                new NotificationBackend(), host, KEY_NAS));

        controllers.add(new EmergencyBroadcastPreferenceController(context,
                "app_and_notif_cell_broadcast_settings"));

+13 −5
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import com.google.common.annotations.VisibleForTesting;

public class NotificationAssistantPreferenceController extends TogglePreferenceController {
    private static final String TAG = "NASPreferenceController";
    private static final String KEY_NAS = "notification_assistant";

    private static final int AVAILABLE = 1;
    private final UserManager mUserManager;
    private Fragment mFragment;
@@ -38,11 +40,8 @@ public class NotificationAssistantPreferenceController extends TogglePreferenceC
    @VisibleForTesting
    protected NotificationBackend mNotificationBackend;

    public NotificationAssistantPreferenceController(Context context, NotificationBackend backend,
            Fragment fragment, String preferenceKey) {
        super(context, preferenceKey);
        mNotificationBackend = backend;
        mFragment = fragment;
    public NotificationAssistantPreferenceController(Context context) {
        super(context, KEY_NAS);
        mUserManager = UserManager.get(context);
    }

@@ -87,4 +86,13 @@ public class NotificationAssistantPreferenceController extends TogglePreferenceC
                NotificationAssistantDialogFragment.newInstance(mFragment, cn);
        dialogFragment.show(mFragment.getFragmentManager(), TAG);
    }

    public void setFragment(Fragment fragment) {
        mFragment = fragment;
    }

    @VisibleForTesting
    void setBackend(NotificationBackend backend) {
        mNotificationBackend = backend;
    }
}
 No newline at end of file
+3 −2
Original line number Diff line number Diff line
@@ -79,8 +79,9 @@ public class NotificationAssistantPreferenceControllerTest {
        when(mFragment.getFragmentManager()).thenReturn(mFragmentManager);
        when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
        when(mBackend.getDefaultNotificationAssistant()).thenReturn(mNASComponent);
        mPreferenceController = new NotificationAssistantPreferenceController(mContext,
                mBackend, mFragment, KEY);
        mPreferenceController = new NotificationAssistantPreferenceController(mContext);
        mPreferenceController.setBackend(mBackend);
        mPreferenceController.setFragment(mFragment);
        when(mUserManager.getProfileIds(eq(0), anyBoolean())).thenReturn(new int[] {0, 10});
        when(mUserManager.getProfileIds(eq(20), anyBoolean())).thenReturn(new int[] {20});
    }