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

Commit a2187ca7 authored by Paulz Chen's avatar Paulz Chen Committed by Android (Google) Code Review
Browse files

Merge "Reland add FeatureProvider for SyncAcrossDevices Settings integration." into main

parents a56a64ad 5f391359
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -13182,4 +13182,7 @@
    <!-- Provider Model: summary of converted in SIM category. [CHAR LIMIT=50] -->
    <string name="sim_category_converted_sim">Converted to eSIM. Remove and discard.</string>
    <!--Title for Sync Across Devices category-->
    <string name="sync_across_devices_title">Sync across devices</string>
</resources>
+5 −0
Original line number Diff line number Diff line
@@ -108,6 +108,11 @@

    </PreferenceCategory>

    <PreferenceCategory
        android:key="sync_across_devices"
        android:title="@string/sync_across_devices_title"
        settings:controller="com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesPreferenceController"/>

    <PreferenceCategory
        android:key="advanced_section_header"
        android:title="@string/advanced_section_header">
+38 −0
Original line number Diff line number Diff line
/*
 * 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.syncacrossdevices;

import androidx.annotation.Nullable;
import androidx.preference.Preference;

/** Callback to add or remove {@link Preference} in Sync Across Devices feature. */
public interface SyncAcrossDevicesFeatureCallback {

    /**
     * Called when a sync across devices feature is added
     *
     * @param preference present the feature
     */
    void onFeatureAdded(@Nullable Preference preference);

    /**
     * Called when a sync across devices feature is removed
     *
     * @param preference present the feature
     */
    void onFeatureRemoved(@Nullable Preference preference);
}
+32 −0
Original line number Diff line number Diff line
/*
 * 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.syncacrossdevices;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/** Feature provider for the Sync Across Devices. */
public interface SyncAcrossDevicesFeatureProvider {

    /** Returns the SyncAcrossDevicesFeatureUpdater of the Sync Across Devices feature */
    @Nullable
    SyncAcrossDevicesFeatureUpdater getSyncAcrossDevicesFeatureUpdater(
            @NonNull Context context,
            @NonNull SyncAcrossDevicesFeatureCallback featurePreferenceCallback);
}
+34 −0
Original line number Diff line number Diff line
/*
 * 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.syncacrossdevices;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/** Default implementation for {@link SyncAcrossDevicesFeatureProvider} */
public class SyncAcrossDevicesFeatureProviderImpl implements SyncAcrossDevicesFeatureProvider {

    @Override
    @Nullable
    public SyncAcrossDevicesFeatureUpdater getSyncAcrossDevicesFeatureUpdater(
            @NonNull Context context,
            @NonNull SyncAcrossDevicesFeatureCallback featurePreferenceCallback) {
        return new SyncAcrossDevicesFeatureUpdater() {};
    }
}
Loading