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

Commit 3f790b76 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix DND crash from SpringboardActivity" into pi-dev

parents d87ce094 a559103b
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -98,6 +98,17 @@ public class BluetoothSliceBuilder {
                .build();
    }

    public static Intent getIntent(Context context) {
        final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString();
        final Uri contentUri = new Uri.Builder().appendPath(
                SettingsSlicesContract.KEY_BLUETOOTH).build();
        return DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle,
                MetricsProto.MetricsEvent.SETTINGS_CONNECTED_DEVICE_CATEGORY)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);
    }

    /**
     * Update the current Bluetooth status to the boolean value keyed by
     * {@link android.app.slice.Slice#EXTRA_TOGGLE_STATE} on {@param intent}.
@@ -119,15 +130,7 @@ public class BluetoothSliceBuilder {
    }

    private static PendingIntent getPrimaryAction(Context context) {
        final String screenTitle = context.getText(R.string.bluetooth_settings_title).toString();
        final Uri contentUri = new Uri.Builder().appendPath(
                SettingsSlicesContract.KEY_BLUETOOTH).build();
        final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                BluetoothDashboardFragment.class.getName(), null /* key */, screenTitle,
                MetricsProto.MetricsEvent.SETTINGS_CONNECTED_DEVICE_CATEGORY)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);

        final Intent intent = getIntent(context);
        return PendingIntent.getActivity(context, 0 /* requestCode */,
                intent, 0 /* flags */);
    }
+5 −2
Original line number Diff line number Diff line
@@ -79,15 +79,18 @@ public class LocationSliceBuilder {
                .build();
    }

    private static PendingIntent getPrimaryAction(Context context) {
    public static Intent getIntent(Context context) {
        final String screenTitle = context.getText(R.string.location_settings_title).toString();
        final Uri contentUri = new Uri.Builder().appendPath(KEY_LOCATION).build();
        final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(context,
        return DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                LocationSettings.class.getName(), KEY_LOCATION, screenTitle,
                MetricsEvent.LOCATION)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);
    }

    private static PendingIntent getPrimaryAction(Context context) {
        final Intent intent = getIntent(context);
        return PendingIntent.getActivity(context, 0 /* requestCode */,
                intent, 0 /* flags */);
    }
+12 −10
Original line number Diff line number Diff line
@@ -123,6 +123,16 @@ public class ZenModeSliceBuilder {
        // handle it.
    }

    public static Intent getIntent(Context context) {
        final Uri contentUri = new Uri.Builder().appendPath(ZEN_MODE_KEY).build();
        final String screenTitle = context.getText(R.string.zen_mode_settings_title).toString();
        return DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                ZenModeSettings.class.getName(), ZEN_MODE_KEY, screenTitle,
                MetricsEvent.NOTIFICATION_ZEN_MODE)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);
    }

    private static boolean isZenModeEnabled(Context context) {
        final NotificationManager manager = context.getSystemService(NotificationManager.class);
        final int zenMode = manager.getZenMode();
@@ -139,16 +149,8 @@ public class ZenModeSliceBuilder {
    }

    private static PendingIntent getPrimaryAction(Context context) {
        final String screenTitle = context.getText(R.string.zen_mode_settings_title).toString();
        final Uri contentUri = new Uri.Builder().appendPath(ZEN_MODE_KEY).build();
        final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                ZenModeSettings.class.getName(), ZEN_MODE_KEY, screenTitle,
                MetricsEvent.NOTIFICATION_ZEN_MODE)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);

        return PendingIntent.getActivity(context, 0 /* requestCode */,
                intent, 0 /* flags */);
        final Intent intent = getIntent(context);
        return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
    }

    private static PendingIntent getBroadcastIntent(Context context) {
+32 −5
Original line number Diff line number Diff line
@@ -18,8 +18,16 @@ import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
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.overlay.FeatureFactory;
import com.android.settings.wifi.WifiSliceBuilder;
import com.android.settings.wifi.calling.WifiCallingSliceHelper;

import java.net.URISyntaxException;

public class SliceDeepLinkSpringBoard extends Activity {
@@ -44,11 +52,26 @@ 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.
                Uri slice = Uri.parse(intent.getStringExtra(EXTRA_SLICE));
                SlicesDatabaseAccessor slicesDatabaseAccessor = new SlicesDatabaseAccessor(this);
                final Uri slice = Uri.parse(intent.getStringExtra(EXTRA_SLICE));
                final 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)) {
                    launchIntent = ZenModeSliceBuilder.getIntent(this /* context */);
                } else if (BluetoothSliceBuilder.BLUETOOTH_URI.equals(slice)) {
                    launchIntent = BluetoothSliceBuilder.getIntent(this /* context */);
                } else if (LocationSliceBuilder.LOCATION_URI.equals(slice)) {
                    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);
                Intent launchIntent = SliceBuilderUtils.getContentIntent(this, sliceData);
                    launchIntent = SliceBuilderUtils.getContentIntent(this, sliceData);
                }

                startActivity(launchIntent);
            } else {
                startActivity(intent);
@@ -57,6 +80,10 @@ public class SliceDeepLinkSpringBoard extends Activity {
        } catch (URISyntaxException e) {
            Log.e(TAG, "Error decoding uri", e);
            finish();
        } catch (IllegalStateException e) {
            Log.w(TAG, "Couldn't launch Slice intent", e);
            startActivity(new Intent(Settings.ACTION_SETTINGS));
            finish();
        }
    }

+13 −8
Original line number Diff line number Diff line
@@ -121,6 +121,18 @@ public class WifiSliceBuilder {
        // handle it.
    }

    public static Intent getIntent(Context context) {
        final String screenTitle = context.getText(R.string.wifi_settings).toString();
        final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build();
        final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                WifiSettings.class.getName(), KEY_WIFI, screenTitle,
                MetricsEvent.DIALOG_WIFI_AP_EDIT)
                .setClassName(context.getPackageName(), SubSettings.class.getName())
                .setData(contentUri);

        return intent;
    }

    private static boolean isWifiEnabled(Context context) {
        final WifiManager wifiManager = context.getSystemService(WifiManager.class);

@@ -159,14 +171,7 @@ public class WifiSliceBuilder {
    }

    private static PendingIntent getPrimaryAction(Context context) {
        final String screenTitle = context.getText(R.string.wifi_settings).toString();
        final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build();
        final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(context,
                WifiSettings.class.getName(), KEY_WIFI, screenTitle,
                MetricsEvent.DIALOG_WIFI_AP_EDIT);
        intent.setClassName(context.getPackageName(), SubSettings.class.getName());
        intent.setData(contentUri);

        final Intent intent = getIntent(context);
        return PendingIntent.getActivity(context, 0 /* requestCode */,
                intent, 0 /* flags */);
    }
Loading