Refactor WifiSlice to CustomSliceManager
Modify the WifiSliceCode to follow the pattern for Slices that do not match existing UI components. Test: robotests Bug: 80263568 Change-Id: Id69e019608777282f4b64ff945e8c30c97aaf577
This commit is contained in:
committed by
Matt Fritze
parent
3df19f92b0
commit
7f0a30226a
@@ -16,6 +16,7 @@ package com.android.settings.slices;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
@@ -24,7 +25,8 @@ import android.util.Log;
|
||||
import com.android.settings.bluetooth.BluetoothSliceBuilder;
|
||||
import com.android.settings.location.LocationSliceBuilder;
|
||||
import com.android.settings.notification.ZenModeSliceBuilder;
|
||||
import com.android.settings.wifi.WifiSliceBuilder;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.wifi.WifiSlice;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
|
||||
@@ -50,23 +52,28 @@ public class SliceDeepLinkSpringBoard extends Activity {
|
||||
if (ACTION_VIEW_SLICE.equals(intent.getAction())) {
|
||||
// This shouldn't matter since the slice is shown instead of the device
|
||||
// index caring about the launch uri.
|
||||
final Uri slice = Uri.parse(intent.getStringExtra(EXTRA_SLICE));
|
||||
final Intent launchIntent;
|
||||
final Uri sliceUri = Uri.parse(intent.getStringExtra(EXTRA_SLICE));
|
||||
Intent launchIntent;
|
||||
|
||||
// TODO (b/80263568) Avoid duplicating this list of Slice Uris.
|
||||
if (WifiSliceBuilder.WIFI_URI.equals(slice)) {
|
||||
launchIntent = WifiSliceBuilder.getIntent(this /* context */);
|
||||
} else if (ZenModeSliceBuilder.ZEN_MODE_URI.equals(slice)) {
|
||||
final CustomSliceManager customSliceManager = FeatureFactory.getFactory(this)
|
||||
.getSlicesFeatureProvider().getCustomSliceManager(this);
|
||||
if (customSliceManager.isValidUri(sliceUri)) {
|
||||
final CustomSliceable sliceable =
|
||||
customSliceManager.getSliceableFromUri(sliceUri);
|
||||
launchIntent = sliceable.getIntent();
|
||||
} else if (ZenModeSliceBuilder.ZEN_MODE_URI.equals(sliceUri)) {
|
||||
launchIntent = ZenModeSliceBuilder.getIntent(this /* context */);
|
||||
} else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(slice)) {
|
||||
} else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(sliceUri)) {
|
||||
launchIntent = BluetoothSliceBuilder.getIntent(this /* context */);
|
||||
} else if (LocationSliceBuilder.LOCATION_URI.equals(slice)) {
|
||||
} else if (LocationSliceBuilder.LOCATION_URI.equals(sliceUri)) {
|
||||
launchIntent = LocationSliceBuilder.getIntent(this /* context */);
|
||||
} else {
|
||||
final SlicesDatabaseAccessor slicesDatabaseAccessor =
|
||||
new SlicesDatabaseAccessor(this /* context */);
|
||||
// Sadly have to block here because we don't know where to go.
|
||||
final SliceData sliceData = slicesDatabaseAccessor.getSliceDataFromUri(slice);
|
||||
final SliceData sliceData =
|
||||
slicesDatabaseAccessor.getSliceDataFromUri(sliceUri);
|
||||
launchIntent = SliceBuilderUtils.getContentIntent(this, sliceData);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user