Move TestModeBuilder to SettingsLib
This will allow us to use it from both settings and systemui. Bug: 346519570 Test: builds Flag: TEST_ONLY Change-Id: I3b5ea50458f28d55db275cbd9de93f55f522d5c7
This commit is contained in:
@@ -34,6 +34,7 @@ import android.content.pm.ResolveInfo;
|
||||
import android.os.Bundle;
|
||||
import android.service.notification.ConditionProviderService;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
@@ -33,6 +33,7 @@ import android.service.notification.ZenPolicy;
|
||||
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import android.provider.Settings;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.notification.modes;
|
||||
|
||||
import android.app.AutomaticZenRule;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.ComponentName;
|
||||
import android.net.Uri;
|
||||
import android.service.notification.Condition;
|
||||
import android.service.notification.ZenDeviceEffects;
|
||||
import android.service.notification.ZenModeConfig;
|
||||
import android.service.notification.ZenPolicy;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
class TestModeBuilder {
|
||||
|
||||
private String mId;
|
||||
private AutomaticZenRule mRule;
|
||||
private ZenModeConfig.ZenRule mConfigZenRule;
|
||||
|
||||
public static final ZenMode EXAMPLE = new TestModeBuilder().build();
|
||||
|
||||
TestModeBuilder() {
|
||||
// Reasonable defaults
|
||||
int id = new Random().nextInt(1000);
|
||||
mId = "rule_" + id;
|
||||
mRule = new AutomaticZenRule.Builder("Test Rule #" + id, Uri.parse("rule://" + id))
|
||||
.setPackage("some_package")
|
||||
.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY)
|
||||
.setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
|
||||
.build();
|
||||
mConfigZenRule = new ZenModeConfig.ZenRule();
|
||||
mConfigZenRule.enabled = true;
|
||||
mConfigZenRule.pkg = "some_package";
|
||||
}
|
||||
|
||||
TestModeBuilder(ZenMode previous) {
|
||||
mId = previous.getId();
|
||||
mRule = previous.getRule();
|
||||
|
||||
mConfigZenRule = new ZenModeConfig.ZenRule();
|
||||
mConfigZenRule.enabled = previous.getRule().isEnabled();
|
||||
mConfigZenRule.pkg = previous.getRule().getPackageName();
|
||||
setActive(previous.isActive());
|
||||
}
|
||||
|
||||
TestModeBuilder setId(String id) {
|
||||
mId = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setAzr(AutomaticZenRule rule) {
|
||||
mRule = rule;
|
||||
mConfigZenRule.pkg = rule.getPackageName();
|
||||
mConfigZenRule.conditionId = rule.getConditionId();
|
||||
mConfigZenRule.enabled = rule.isEnabled();
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setConfigZenRule(ZenModeConfig.ZenRule configZenRule) {
|
||||
mConfigZenRule = configZenRule;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setName(String name) {
|
||||
mRule.setName(name);
|
||||
mConfigZenRule.name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setPackage(String pkg) {
|
||||
mRule.setPackageName(pkg);
|
||||
mConfigZenRule.pkg = pkg;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setOwner(ComponentName owner) {
|
||||
mRule.setOwner(owner);
|
||||
mConfigZenRule.component = owner;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setConfigurationActivity(ComponentName configActivity) {
|
||||
mRule.setConfigurationActivity(configActivity);
|
||||
mConfigZenRule.configurationActivity = configActivity;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setConditionId(Uri conditionId) {
|
||||
mRule.setConditionId(conditionId);
|
||||
mConfigZenRule.conditionId = conditionId;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setType(@AutomaticZenRule.Type int type) {
|
||||
mRule.setType(type);
|
||||
mConfigZenRule.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setInterruptionFilter(
|
||||
@NotificationManager.InterruptionFilter int interruptionFilter) {
|
||||
mRule.setInterruptionFilter(interruptionFilter);
|
||||
mConfigZenRule.zenMode = NotificationManager.zenModeFromInterruptionFilter(
|
||||
interruptionFilter, NotificationManager.INTERRUPTION_FILTER_PRIORITY);
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setZenPolicy(@Nullable ZenPolicy policy) {
|
||||
mRule.setZenPolicy(policy);
|
||||
mConfigZenRule.zenPolicy = policy;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setDeviceEffects(@Nullable ZenDeviceEffects deviceEffects) {
|
||||
mRule.setDeviceEffects(deviceEffects);
|
||||
mConfigZenRule.zenDeviceEffects = deviceEffects;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setEnabled(boolean enabled) {
|
||||
mRule.setEnabled(enabled);
|
||||
mConfigZenRule.enabled = enabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setManualInvocationAllowed(boolean allowed) {
|
||||
mRule.setManualInvocationAllowed(allowed);
|
||||
mConfigZenRule.allowManualInvocation = allowed;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setTriggerDescription(@Nullable String triggerDescription) {
|
||||
mRule.setTriggerDescription(triggerDescription);
|
||||
mConfigZenRule.triggerDescription = triggerDescription;
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setIconResId(@DrawableRes int iconResId) {
|
||||
mRule.setIconResId(iconResId);
|
||||
return this;
|
||||
}
|
||||
|
||||
TestModeBuilder setActive(boolean active) {
|
||||
if (active) {
|
||||
mConfigZenRule.enabled = true;
|
||||
mConfigZenRule.condition = new Condition(mRule.getConditionId(), "...",
|
||||
Condition.STATE_TRUE);
|
||||
} else {
|
||||
mConfigZenRule.condition = null;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
ZenMode build() {
|
||||
return new ZenMode(mId, mRule, mConfigZenRule);
|
||||
}
|
||||
}
|
||||
@@ -42,6 +42,7 @@ import androidx.fragment.app.Fragment;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settingslib.applications.ApplicationsState;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
import com.android.settingslib.widget.SelectorWithWidgetPreference;
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
import com.android.settingslib.widget.SelectorWithWidgetPreference;
|
||||
|
||||
@@ -35,6 +35,7 @@ import android.widget.Button;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
@@ -27,6 +27,8 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.service.notification.ZenDeviceEffects;
|
||||
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
@@ -28,6 +28,7 @@ import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ import androidx.fragment.app.testing.FragmentScenario;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.service.notification.ZenModeConfig;
|
||||
import androidx.preference.TwoStatePreference;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ import androidx.preference.PreferenceScreen;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.widget.LayoutPreference;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -39,6 +39,7 @@ import androidx.lifecycle.Lifecycle;
|
||||
import androidx.test.ext.junit.rules.ActivityScenarioRule;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -40,6 +40,7 @@ import android.service.notification.ZenPolicy;
|
||||
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -32,6 +32,7 @@ import android.service.notification.ZenPolicy;
|
||||
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ import android.platform.test.flag.junit.SetFlagsRule;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
@@ -51,6 +51,7 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
import com.android.settingslib.widget.SelectorWithWidgetPreference;
|
||||
|
||||
@@ -34,6 +34,7 @@ import android.service.notification.ZenPolicy;
|
||||
|
||||
import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import androidx.preference.DropDownPreference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settingslib.PrimarySwitchPreference;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.fragment.app.testing.EmptyFragmentActivity;
|
||||
import androidx.test.ext.junit.rules.ActivityScenarioRule;
|
||||
|
||||
import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import android.content.Context;
|
||||
import android.service.notification.ZenModeConfig;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
@@ -37,6 +37,7 @@ import androidx.preference.PreferenceGroup;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
import com.android.settingslib.notification.modes.ZenModesBackend;
|
||||
import com.android.settingslib.search.SearchIndexableRaw;
|
||||
|
||||
@@ -39,6 +39,7 @@ import android.service.notification.ZenDeviceEffects;
|
||||
import android.service.notification.ZenModeConfig;
|
||||
import android.service.notification.ZenPolicy;
|
||||
|
||||
import com.android.settingslib.notification.modes.TestModeBuilder;
|
||||
import com.android.settingslib.notification.modes.ZenMode;
|
||||
|
||||
import org.junit.Before;
|
||||
|
||||
Reference in New Issue
Block a user