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

Commit 3db59a84 authored by jackqdyulei's avatar jackqdyulei
Browse files

Add feature provider for Bluetooth

Also add method to check whether pairing page is enabled.

Bug: 38134564
Test: RunSettingsGoogleRoboTests
Change-Id: Ib74ece46f9624242895a366eac889957924f84c6
parent 910f69c6
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.bluetooth;

/**
 * Feature provider for bluetooth feature
 */
public interface BluetoothFeatureProvider {
    /**
     * Check whether additional pairing page is enabled
     */
    boolean isPairingPageEnabled();
}
+12 −0
Original line number Diff line number Diff line
package com.android.settings.bluetooth;

/**
 * Impl for bluetooth feature provider
 */
public class BluetoothFeatureProviderImpl implements BluetoothFeatureProvider {

    @Override
    public boolean isPairingPageEnabled() {
        return false;
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.util.Log;

import com.android.settings.R;
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
@@ -97,6 +98,8 @@ public abstract class FeatureFactory {

    public abstract UserFeatureProvider getUserFeatureProvider(Context context);

    public abstract BluetoothFeatureProvider getBluetoothFeatureProvider(Context context);

    public static final class FactoryNotFoundException extends RuntimeException {
        public FactoryNotFoundException(Throwable throwable) {
            super("Unable to create factory. Did you misconfigure Proguard?", throwable);
+11 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.ApplicationFeatureProviderImpl;
import com.android.settings.applications.IPackageManagerWrapperImpl;
import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.bluetooth.BluetoothFeatureProviderImpl;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProviderImpl;
@@ -66,6 +68,7 @@ public class FeatureFactoryImpl extends FeatureFactory {
    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
    private AssistGestureFeatureProvider mAssistGestureFeatureProvider;
    private UserFeatureProvider mUserFeatureProvider;
    private BluetoothFeatureProvider mBluetoothFeatureProvider;

    @Override
    public SupportFeatureProvider getSupportFeatureProvider(Context context) {
@@ -168,6 +171,14 @@ public class FeatureFactoryImpl extends FeatureFactory {
        return mUserFeatureProvider;
    }

    @Override
    public BluetoothFeatureProvider getBluetoothFeatureProvider(Context context) {
        if (mBluetoothFeatureProvider == null) {
            mBluetoothFeatureProvider = new BluetoothFeatureProviderImpl();
        }
        return mBluetoothFeatureProvider;
    }

    @Override
    public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
        if (mAssistGestureFeatureProvider == null) {
+9 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.testutils;
import android.content.Context;

import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
@@ -34,6 +35,7 @@ import com.android.settings.users.UserFeatureProvider;

import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockingDetails;
import static org.mockito.Mockito.when;

/**
@@ -55,6 +57,7 @@ public class FakeFeatureFactory extends FeatureFactory {
    public final SuggestionFeatureProvider suggestionsFeatureProvider;
    public final UserFeatureProvider userFeatureProvider;
    public final AssistGestureFeatureProvider assistGestureFeatureProvider;
    public final BluetoothFeatureProvider bluetoothFeatureProvider;

    /**
     * Call this in {@code @Before} method of the test class to use fake factory.
@@ -90,6 +93,7 @@ public class FakeFeatureFactory extends FeatureFactory {
        suggestionsFeatureProvider = mock(SuggestionFeatureProvider.class);
        userFeatureProvider = mock(UserFeatureProvider.class);
        assistGestureFeatureProvider = mock(AssistGestureFeatureProvider.class);
        bluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
    }

    @Override
@@ -152,6 +156,11 @@ public class FakeFeatureFactory extends FeatureFactory {
        return userFeatureProvider;
    }

    @Override
    public BluetoothFeatureProvider getBluetoothFeatureProvider(Context context) {
        return bluetoothFeatureProvider;
    }

    @Override
    public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
        return assistGestureFeatureProvider;