diff options
| author | Chia-chi Yeh <chiachi@android.com> | 2011-07-04 03:38:16 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-04 03:38:16 -0700 |
| commit | 0d244a6fead28ca140bfd6dd42ef0339da752e36 (patch) | |
| tree | 08f666922852555a37b3bff751bb559297c47a5a /core/java | |
| parent | fc8a3b222aa8b03bf2acbaa4db04acb5e91dc6c0 (diff) | |
| parent | 2e46764a707bd14cad22bc179669eeecb2d7c647 (diff) | |
Merge "VPN: implement status report for legacy VPN."
Diffstat (limited to 'core/java')
4 files changed, 95 insertions, 5 deletions
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index 57f5967e61a7..d6f564351e0a 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -23,6 +23,7 @@ import android.net.ProxyProperties; import android.os.IBinder; import android.os.ParcelFileDescriptor; +import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; /** @@ -105,5 +106,7 @@ interface IConnectivityManager ParcelFileDescriptor establishVpn(in VpnConfig config); - void doLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); + void startLegacyVpn(in VpnConfig config, in String[] racoon, in String[] mtpd); + + LegacyVpnInfo getLegacyVpnInfo(); } diff --git a/core/java/com/android/internal/net/LegacyVpnInfo.aidl b/core/java/com/android/internal/net/LegacyVpnInfo.aidl new file mode 100644 index 000000000000..0ca26272cca1 --- /dev/null +++ b/core/java/com/android/internal/net/LegacyVpnInfo.aidl @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.net; + +parcelable LegacyVpnInfo; diff --git a/core/java/com/android/internal/net/LegacyVpnInfo.java b/core/java/com/android/internal/net/LegacyVpnInfo.java new file mode 100644 index 000000000000..b620abac6b9e --- /dev/null +++ b/core/java/com/android/internal/net/LegacyVpnInfo.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.net; + +import android.app.PendingIntent; +import android.os.Parcel; +import android.os.Parcelable; + +/** + * A simple container used to carry information of the ongoing legacy VPN. + * Internal use only. + * + * @hide + */ +public class LegacyVpnInfo implements Parcelable { + public static final int STATE_DISCONNECTED = 0; + public static final int STATE_INITIALIZING = 1; + public static final int STATE_CONNECTING = 2; + public static final int STATE_CONNECTED = 3; + public static final int STATE_TIMEOUT = 4; + public static final int STATE_FAILED = 5; + + public String key; + public int state = -1; + public PendingIntent intent; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeString(key); + out.writeInt(state); + out.writeParcelable(intent, flags); + } + + public static final Parcelable.Creator<LegacyVpnInfo> CREATOR = + new Parcelable.Creator<LegacyVpnInfo>() { + @Override + public LegacyVpnInfo createFromParcel(Parcel in) { + LegacyVpnInfo info = new LegacyVpnInfo(); + info.key = in.readString(); + info.state = in.readInt(); + info.intent = in.readParcelable(null); + return info; + } + + @Override + public LegacyVpnInfo[] newArray(int size) { + return new LegacyVpnInfo[size]; + } + }; +} diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java index 003c244b2183..d36be10e0038 100644 --- a/core/java/com/android/internal/net/VpnConfig.java +++ b/core/java/com/android/internal/net/VpnConfig.java @@ -21,7 +21,6 @@ import android.content.Context; import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; -import android.os.SystemClock; import java.util.List; @@ -43,14 +42,14 @@ public class VpnConfig implements Parcelable { return intent; } - public static PendingIntent getIntentForNotification(Context context, VpnConfig config) { - config.startTime = SystemClock.elapsedRealtime(); + public static PendingIntent getIntentForStatusPanel(Context context, VpnConfig config) { Intent intent = new Intent(); intent.setClassName("com.android.vpndialogs", "com.android.vpndialogs.ManageDialog"); intent.putExtra("config", config); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); + return PendingIntent.getActivity(context, 0, intent, (config == null) ? + PendingIntent.FLAG_NO_CREATE : PendingIntent.FLAG_CANCEL_CURRENT); } public String packagz; |
