Return null when setting can't be changed.

If a Slice cannot be changed, return null instead of
an error slice.

Bug: 80155832
Test: robotestst
Change-Id: Ib94136c449c6d9c1911f89833bba62fd2263daa4
This commit is contained in:
Matthew Fritze
2018-05-22 18:24:06 -07:00
parent c4a3393b45
commit 417693021e
5 changed files with 31 additions and 67 deletions

View File

@@ -25,13 +25,14 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.PersistableBundle;
import androidx.core.graphics.drawable.IconCompat;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;
@@ -121,7 +122,7 @@ public class WifiCallingSliceHelper {
return getNonActionableWifiCallingSlice(
mContext.getString(R.string.wifi_calling_settings_title),
mContext.getString(R.string.wifi_calling_not_supported, carrierName),
sliceUri, SliceBuilderUtils.getSettingsIntent(mContext));
sliceUri, getSettingsIntent(mContext));
}
final ImsManager imsManager = getImsManager(subId);
@@ -132,7 +133,7 @@ public class WifiCallingSliceHelper {
return getNonActionableWifiCallingSlice(
mContext.getString(R.string.wifi_calling_settings_title),
mContext.getString(R.string.wifi_calling_not_supported, carrierName),
sliceUri, SliceBuilderUtils.getSettingsIntent(mContext));
sliceUri, getSettingsIntent(mContext));
}
try {
@@ -338,6 +339,14 @@ public class WifiCallingSliceHelper {
return intent;
}
/**
* @return {@link PendingIntent} to the Settings home page.
*/
public static PendingIntent getSettingsIntent(Context context) {
final Intent intent = new Intent(Settings.ACTION_SETTINGS);
return PendingIntent.getActivity(context, 0 /* requestCode */, intent, 0 /* flags */);
}
private PendingIntent getBroadcastIntent(String action) {
final Intent intent = new Intent(action);
intent.setClass(mContext, SliceBroadcastReceiver.class);