package com.android.settings.slices; import android.content.Context; import android.net.Uri; import com.android.settings.network.telephony.Enhanced4gLteSliceHelper; import com.android.settings.wifi.calling.WifiCallingSliceHelper; /** * Manages Slices in Settings. */ public interface SlicesFeatureProvider { boolean DEBUG = false; SliceDataConverter getSliceDataConverter(Context context); /** * Starts a new UI session for the purpose of using Slices. * * A UI session is defined as a duration of time when user stays in a UI screen. Screen rotation * does not break the continuation of session, going to a sub-page and coming out does not break * the continuation either. Leaving the page and coming back breaks it. */ void newUiSession(); /** * Returns the token created in {@link #newUiSession}. */ long getUiSessionToken(); /** * Asynchronous call to index the data used to build Slices. * If the data is already indexed, the data will not change. */ void indexSliceDataAsync(Context context); /** * Indexes the data used to build Slices. * If the data is already indexed, the data will not change. */ void indexSliceData(Context context); /** * Return a {@link CustomSliceable} associated to the Uri. *

* Do not change this method signature to accommodate for a special-case sliceable - a context * is the only thing that should be needed to create the object. */ CustomSliceable getSliceableFromUri(Context context, Uri uri); /** * Gets new WifiCallingSliceHelper object */ WifiCallingSliceHelper getNewWifiCallingSliceHelper(Context context); /** * Gets new Enhanced4gLteSliceHelper object */ Enhanced4gLteSliceHelper getNewEnhanced4gLteSliceHelper(Context context); }