summaryrefslogtreecommitdiff
path: root/wifi/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'wifi/java/src')
-rw-r--r--wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java37
-rw-r--r--wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java2
2 files changed, 16 insertions, 23 deletions
diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
index 30bb98962b3c..af3afa88f5e0 100644
--- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
+++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
@@ -20,8 +20,6 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
@@ -49,14 +47,9 @@ public final class SharedConnectivitySettingsState implements Parcelable {
*/
public static final class Builder {
private boolean mInstantTetherEnabled;
- private Intent mInstantTetherSettingsIntent;
- private final Context mContext;
+ private PendingIntent mInstantTetherSettingsPendingIntent;
private Bundle mExtras = Bundle.EMPTY;
- public Builder(@NonNull Context context) {
- mContext = context;
- }
-
/**
* Sets the state of Instant Tether in settings
*
@@ -69,16 +62,14 @@ public final class SharedConnectivitySettingsState implements Parcelable {
}
/**
- * Sets the intent that will open the Instant Tether settings page.
- * The intent will be stored as a {@link PendingIntent} in the settings object. The pending
- * intent will be set as {@link PendingIntent#FLAG_IMMUTABLE} and
- * {@link PendingIntent#FLAG_ONE_SHOT}.
+ * Sets the {@link PendingIntent} that will open the Instant Tether settings page.
+ * The pending intent must be set as {@link PendingIntent#FLAG_IMMUTABLE}.
*
* @return Returns the Builder object.
*/
@NonNull
- public Builder setInstantTetherSettingsPendingIntent(@NonNull Intent intent) {
- mInstantTetherSettingsIntent = intent;
+ public Builder setInstantTetherSettingsPendingIntent(@NonNull PendingIntent pendingIntent) {
+ mInstantTetherSettingsPendingIntent = pendingIntent;
return this;
}
@@ -100,19 +91,21 @@ public final class SharedConnectivitySettingsState implements Parcelable {
*/
@NonNull
public SharedConnectivitySettingsState build() {
- if (mInstantTetherSettingsIntent != null) {
- PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0,
- mInstantTetherSettingsIntent,
- PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT);
- return new SharedConnectivitySettingsState(mInstantTetherEnabled,
- pendingIntent, mExtras);
- }
- return new SharedConnectivitySettingsState(mInstantTetherEnabled, null, mExtras);
+ return new SharedConnectivitySettingsState(mInstantTetherEnabled,
+ mInstantTetherSettingsPendingIntent, mExtras);
+
+ }
+ }
+
+ private static void validate(PendingIntent pendingIntent) {
+ if (pendingIntent != null && !pendingIntent.isImmutable()) {
+ throw new IllegalArgumentException("Pending intent must be immutable");
}
}
private SharedConnectivitySettingsState(boolean instantTetherEnabled,
PendingIntent pendingIntent, @NonNull Bundle extras) {
+ validate(pendingIntent);
mInstantTetherEnabled = instantTetherEnabled;
mInstantTetherSettingsPendingIntent = pendingIntent;
mExtras = extras;
diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java
index 06a86ccb00ee..2bbe91958383 100644
--- a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java
+++ b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java
@@ -206,7 +206,7 @@ public abstract class SharedConnectivityService extends Service {
// Done lazily since creating it needs a context.
if (mSettingsState == null) {
mSettingsState = new SharedConnectivitySettingsState
- .Builder(getApplicationContext())
+ .Builder()
.setInstantTetherEnabled(false)
.setExtras(Bundle.EMPTY).build();
}