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

Commit e6bf71ab authored by Naina Nalluri's avatar Naina Nalluri
Browse files

DO NOT MERGE Add Slices for WifiCalling

Add Slices for WifiCalling
WifiCalling Slice Provider:
  1. If there is no activation needed or if the Wifi calling
     is currently turned on - provide the slice to toggle the
     value
  2. Else display appropriate message with further instructions
WifiCalling Slice Broadcast Receiver:
  1. If the action is turning off wifi or if there is no
     activation needed. Change the setting with ImsManager.
  2. And Ask to requery the slice in one second to display
     updated settings if 1 is valid or display appropriate message

Bug: 63731862
Bug: 78192106
Test: Use support-slices-demos-debug.apk to test on device
Test: Robotests
Change-Id: I29e1822fd24ebcff575fa48ad93f84ed91bf4d87
parent 26453818
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -2348,6 +2348,17 @@
    <!-- Message of private dns that provides a help link. [CHAR LIMIT=NONE] -->
    <!-- Message of private dns that provides a help link. [CHAR LIMIT=NONE] -->
    <string name="private_dns_help_message"><annotation id="url">Learn more</annotation> about Private DNS features</string>
    <string name="private_dns_help_message"><annotation id="url">Learn more</annotation> about Private DNS features</string>
    <!-- Message to display when setting wifi calling are not editable [CHAR LIMIT=NONE] -->
    <string name="wifi_calling_pref_managed_by_carrier">Setting managed by carrier</string>
    <!-- Message to display when wifi calling needs activation [CHAR LIMIT=NONE] -->
    <string name="wifi_calling_settings_activation_instructions">Activate Wi\u2011Fi Calling</string>
    <!-- Message to display when wifi calling should be on [CHAR LIMIT=NONE] -->
    <string name="wifi_calling_turn_on">Turn on Wi\u2011Fi calling</string>
    <!-- Message to display when carrier does not support wifi calling or doesn't want the user
         to modify the settings [CHAR LIMIT=NONE] -->
    <string name="wifi_calling_not_supported">Wi\u2011Fi calling is not supported for %1$s</string>
    <!-- Carrier string to use in other messages -->
    <string name="carrier">Carrier</string>
    <!-- Sound and alerts settings -->
    <!-- Sound and alerts settings -->
    <skip/>
    <skip/>
    <string name="display_settings_title">Display</string>
    <string name="display_settings_title">Display</string>
+13 −5
Original line number Original line Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.slices;


import static android.Manifest.permission.READ_SEARCH_INDEXABLES;
import static android.Manifest.permission.READ_SEARCH_INDEXABLES;


import static com.android.settings.wifi.calling.WifiCallingSliceHelper.PATH_WIFI_CALLING;

import android.app.PendingIntent;
import android.app.PendingIntent;
import android.app.slice.SliceManager;
import android.app.slice.SliceManager;
import android.content.ContentResolver;
import android.content.ContentResolver;
@@ -36,7 +38,13 @@ import android.util.ArrayMap;
import android.util.Log;
import android.util.Log;
import android.util.Pair;
import android.util.Pair;


import androidx.slice.Slice;
import androidx.slice.SliceProvider;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;

import com.android.settings.R;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.utils.ThreadUtils;


import java.net.URISyntaxException;
import java.net.URISyntaxException;
@@ -46,11 +54,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.WeakHashMap;


import androidx.slice.Slice;
import androidx.slice.SliceProvider;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;

/**
/**
 * A {@link SliceProvider} for Settings to enabled inline results in system apps.
 * A {@link SliceProvider} for Settings to enabled inline results in system apps.
 *
 *
@@ -165,6 +168,11 @@ public class SettingsSliceProvider extends SliceProvider {
        switch (path) {
        switch (path) {
            case "/" + PATH_WIFI:
            case "/" + PATH_WIFI:
                return createWifiSlice(sliceUri);
                return createWifiSlice(sliceUri);
            case "/" + PATH_WIFI_CALLING:
                return FeatureFactory.getFactory(getContext())
                        .getSlicesFeatureProvider()
                        .getNewWifiCallingSliceHelper(getContext())
                        .createWifiCallingSlice(sliceUri);
        }
        }


        SliceData cachedSliceData = mSliceWeakDataCache.get(sliceUri);
        SliceData cachedSliceData = mSliceWeakDataCache.get(sliceUri);
+7 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.settings.slices.SettingsSliceProvider.ACTION_TOGGLE_CH
import static com.android.settings.slices.SettingsSliceProvider.ACTION_WIFI_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.ACTION_WIFI_CHANGED;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED;
import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED;


import android.app.slice.Slice;
import android.app.slice.Slice;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
@@ -79,6 +80,12 @@ public class SliceBroadcastReceiver extends BroadcastReceiver {
                    context.getContentResolver().notifyChange(uri, null);
                    context.getContentResolver().notifyChange(uri, null);
                }, 1000);
                }, 1000);
                break;
                break;
            case ACTION_WIFI_CALLING_CHANGED:
                FeatureFactory.getFactory(context)
                      .getSlicesFeatureProvider()
                      .getNewWifiCallingSliceHelper(context)
                      .handleWifiCallingChanged(intent);
                break;
        }
        }
    }
    }


+8 −1
Original line number Original line Diff line number Diff line
@@ -2,6 +2,8 @@ package com.android.settings.slices;


import android.content.Context;
import android.content.Context;


import com.android.settings.wifi.calling.WifiCallingSliceHelper;

/**
/**
 * Manages Slices in Settings.
 * Manages Slices in Settings.
 */
 */
@@ -24,4 +26,9 @@ public interface SlicesFeatureProvider {
     * If the data is already indexed, the data will not change.
     * If the data is already indexed, the data will not change.
     */
     */
    void indexSliceData(Context context);
    void indexSliceData(Context context);

    /**
     * Gets new WifiCallingSliceHelper object
     */
    WifiCallingSliceHelper getNewWifiCallingSliceHelper(Context context);
}
}
+7 −1
Original line number Original line Diff line number Diff line
@@ -2,6 +2,7 @@ package com.android.settings.slices;


import android.content.Context;
import android.content.Context;


import com.android.settings.wifi.calling.WifiCallingSliceHelper;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.utils.ThreadUtils;


/**
/**
@@ -39,4 +40,9 @@ public class SlicesFeatureProviderImpl implements SlicesFeatureProvider {
        SlicesIndexer indexer = getSliceIndexer(context);
        SlicesIndexer indexer = getSliceIndexer(context);
        indexer.indexSliceData();
        indexer.indexSliceData();
    }
    }

    @Override
    public WifiCallingSliceHelper getNewWifiCallingSliceHelper(Context context) {
        return new WifiCallingSliceHelper(context);
    }
}
}
Loading