diff options
Diffstat (limited to 'main')
m--------- | main/openvpn | 0 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/LaunchVPN.java | 125 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java | 5 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java | 9 | ||||
-rw-r--r-- | main/src/main/res/menu/logmenu.xml | 8 | ||||
-rw-r--r-- | main/src/main/res/values-v21/refs.xml | 10 | ||||
-rw-r--r-- | main/src/main/res/values/refs.xml | 10 |
7 files changed, 49 insertions, 118 deletions
diff --git a/main/openvpn b/main/openvpn -Subproject 9fa0b9a7e1240170f964bbca6a3d4f608b6325b +Subproject da9d62d4d329d3fc7b012bc8b9d213d9a4685a8 diff --git a/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java b/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java index 44e355ff..8ffbbfd0 100644 --- a/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java +++ b/main/src/main/java/de/blinkt/openvpn/LaunchVPN.java @@ -5,6 +5,8 @@ package de.blinkt.openvpn; +import se.leap.bitmaskclient.R; + import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; @@ -74,6 +76,7 @@ public class LaunchVPN extends Activity { public static final String EXTRA_NAME = "de.blinkt.openvpn.shortcutProfileName"; public static final String EXTRA_HIDELOG = "de.blinkt.openvpn.showNoLogWindow"; public static final String CLEARLOG = "clearlogconnect"; + public static final String EXTRA_TEMP_VPN_PROFILE = "se.leap.bitmask.tempVpnProfile"; private static final int START_VPN_PROFILE = 70; @@ -89,7 +92,7 @@ public class LaunchVPN extends Activity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - setContentView(R.layout.launchvpn); + // setContentView(R.layout.launchvpn); startVpnFromIntent(); } @@ -137,8 +140,10 @@ public class LaunchVPN extends Activity { String shortcutUUID = intent.getStringExtra(EXTRA_KEY); String shortcutName = intent.getStringExtra(EXTRA_NAME); mhideLog = intent.getBooleanExtra(EXTRA_HIDELOG, false); + VpnProfile profileToConnect = (VpnProfile) intent.getExtras().getSerializable(EXTRA_TEMP_VPN_PROFILE); + if (profileToConnect == null) + profileToConnect = ProfileManager.get(this, shortcutUUID); - VpnProfile profileToConnect = ProfileManager.get(this, shortcutUUID); if (shortcutName != null && profileToConnect == null) profileToConnect = ProfileManager.getInstance(this).getProfileByName(shortcutName); @@ -154,108 +159,30 @@ public class LaunchVPN extends Activity { } } - private void askForPW(final int type) { - - final EditText entry = new EditText(this); - - entry.setSingleLine(); - entry.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); - entry.setTransformationMethod(new PasswordTransformationMethod()); - - AlertDialog.Builder dialog = new AlertDialog.Builder(this); - dialog.setTitle(getString(R.string.pw_request_dialog_title, getString(type))); - dialog.setMessage(getString(R.string.pw_request_dialog_prompt, mSelectedProfile.mName)); - - - @SuppressLint("InflateParams") final View userpwlayout = getLayoutInflater().inflate(R.layout.userpass, null, false); - - if (type == R.string.password) { - ((EditText) userpwlayout.findViewById(R.id.username)).setText(mSelectedProfile.mUsername); - ((EditText) userpwlayout.findViewById(R.id.password)).setText(mSelectedProfile.mPassword); - ((CheckBox) userpwlayout.findViewById(R.id.save_password)).setChecked(!TextUtils.isEmpty(mSelectedProfile.mPassword)); - ((CheckBox) userpwlayout.findViewById(R.id.show_password)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (isChecked) - ((EditText) userpwlayout.findViewById(R.id.password)).setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); - else - ((EditText) userpwlayout.findViewById(R.id.password)).setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); - } - }); - - dialog.setView(userpwlayout); - } else { - dialog.setView(entry); - } + @Override + protected void onActivityResult (int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); - AlertDialog.Builder builder = dialog.setPositiveButton(android.R.string.ok, - new OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - - if (type == R.string.password) { - mSelectedProfile.mUsername = ((EditText) userpwlayout.findViewById(R.id.username)).getText().toString(); - - String pw = ((EditText) userpwlayout.findViewById(R.id.password)).getText().toString(); - if (((CheckBox) userpwlayout.findViewById(R.id.save_password)).isChecked()) { - mSelectedProfile.mPassword = pw; - } else { - mSelectedProfile.mPassword = null; - mTransientAuthPW = pw; - } - } else { - mTransientCertOrPCKS12PW = entry.getText().toString(); - } - Intent intent = new Intent(LaunchVPN.this, OpenVPNStatusService.class); - bindService(intent, mConnection, Context.BIND_AUTO_CREATE); - } - - }); - dialog.setNegativeButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - VpnStatus.updateStateString("USER_VPN_PASSWORD_CANCELLED", "", R.string.state_user_vpn_password_cancelled, - ConnectionStatus.LEVEL_NOTCONNECTED); - finish(); - } - }); - - dialog.create().show(); + if(requestCode==START_VPN_PROFILE) { + SharedPreferences prefs = Preferences.getDefaultSharedPreferences(this); + boolean showLogWindow = prefs.getBoolean("showlogwindow", true); - } + if(!mhideLog && showLogWindow) + showLogWindow(); + //TODO: check line below! + ProfileManager.updateLRU(this, mSelectedProfile); + VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext()); + finish(); - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); + } else if (resultCode == Activity.RESULT_CANCELED) { + // User does not want us to start, so we just vanish + VpnStatus.updateStateString("USER_VPN_PERMISSION_CANCELLED", "", R.string.state_user_vpn_permission_cancelled, + ConnectionStatus.LEVEL_NOTCONNECTED); - if (requestCode == START_VPN_PROFILE) { - if (resultCode == Activity.RESULT_OK) { - int needpw = mSelectedProfile.needUserPWInput(mTransientCertOrPCKS12PW, mTransientAuthPW); - if (needpw != 0) { - VpnStatus.updateStateString("USER_VPN_PASSWORD", "", R.string.state_user_vpn_password, - ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT); - askForPW(needpw); - } else { - SharedPreferences prefs = Preferences.getDefaultSharedPreferences(this); - boolean showLogWindow = prefs.getBoolean("showlogwindow", true); - - if (!mhideLog && showLogWindow) - showLogWindow(); - ProfileManager.updateLRU(this, mSelectedProfile); - VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext()); - finish(); - } - } else if (resultCode == Activity.RESULT_CANCELED) { - // User does not want us to start, so we just vanish - VpnStatus.updateStateString("USER_VPN_PERMISSION_CANCELLED", "", R.string.state_user_vpn_permission_cancelled, - ConnectionStatus.LEVEL_NOTCONNECTED); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) - VpnStatus.logError(R.string.nought_alwayson_warning); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) + VpnStatus.logError(R.string.nought_alwayson_warning); - finish(); - } + finish(); } } diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index a4b7b480..542089be 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -52,7 +52,6 @@ import de.blinkt.openvpn.LaunchVPN; import de.blinkt.openvpn.R; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.activities.DisconnectVPN; -import de.blinkt.openvpn.activities.MainActivity; import de.blinkt.openvpn.core.VpnStatus.ByteCountListener; import de.blinkt.openvpn.core.VpnStatus.StateListener; @@ -60,6 +59,8 @@ import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_CONNECTED; import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT; import static de.blinkt.openvpn.core.NetworkSpace.ipAddress; +import se.leap.bitmaskclient.Dashboard; + public class OpenVPNService extends VpnService implements StateListener, Callback, ByteCountListener, IOpenVPNServiceInternal { public static final String START_SERVICE = "de.blinkt.openvpn.START_SERVICE"; public static final String START_SERVICE_STICKY = "de.blinkt.openvpn.START_SERVICE_STICKY"; @@ -374,7 +375,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac PendingIntent getGraphPendingIntent() { // Let the configure Button show the Log - Class activityClass = MainActivity.class; + Class activityClass = Dashboard.class; if (mNotificationActivityClass != null) { activityClass = mNotificationActivityClass; } diff --git a/main/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java b/main/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java index e64ce2cd..e8aa0b51 100644 --- a/main/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java +++ b/main/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java @@ -23,6 +23,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Handler.Callback; import android.os.Message; +import android.preference.Preference; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.text.SpannableString; @@ -56,8 +57,6 @@ import de.blinkt.openvpn.LaunchVPN; import de.blinkt.openvpn.R; import de.blinkt.openvpn.VpnProfile; import de.blinkt.openvpn.activities.DisconnectVPN; -import de.blinkt.openvpn.activities.MainActivity; -import de.blinkt.openvpn.activities.VPNPreferences; import de.blinkt.openvpn.core.ConnectionStatus; import de.blinkt.openvpn.core.OpenVPNManagement; import de.blinkt.openvpn.core.OpenVPNService; @@ -70,6 +69,8 @@ import de.blinkt.openvpn.core.VpnStatus.StateListener; import static de.blinkt.openvpn.core.OpenVPNService.humanReadableByteCount; +import se.leap.bitmaskclient.Dashboard; + public class LogFragment extends ListFragment implements StateListener, SeekBar.OnSeekBarChangeListener, RadioGroup.OnCheckedChangeListener, VpnStatus.ByteCountListener { private static final String LOGTIMEFORMAT = "logtimeformat"; private static final int START_VPN_CONFIG = 0; @@ -437,7 +438,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar. VpnProfile lastConnectedprofile = ProfileManager.get(getActivity(), VpnStatus.getLastConnectedVPNProfile()); if (lastConnectedprofile != null) { - Intent vprefintent = new Intent(getActivity(), VPNPreferences.class) + Intent vprefintent = new Intent(getActivity(), Dashboard.class) .putExtra(VpnProfile.EXTRA_PROFILEUUID, lastConnectedprofile.getUUIDString()); startActivityForResult(vprefintent, START_VPN_CONFIG); } else { @@ -448,7 +449,7 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar. } else if (item.getItemId() == android.R.id.home) { // This is called when the Home (Up) button is pressed // in the Action Bar. - Intent parentActivityIntent = new Intent(getActivity(), MainActivity.class); + Intent parentActivityIntent = new Intent(getActivity(), Dashboard.class); parentActivityIntent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/main/src/main/res/menu/logmenu.xml b/main/src/main/res/menu/logmenu.xml index 90eba679..2709b723 100644 --- a/main/src/main/res/menu/logmenu.xml +++ b/main/src/main/res/menu/logmenu.xml @@ -37,6 +37,8 @@ android:id="@+id/edit_vpn"
android:alphabeticShortcut="e"
android:icon="@drawable/ic_menu_edit"
- android:showAsAction="ifRoom"
- android:title="@string/edit_vpn"/>
-</menu>
\ No newline at end of file + android:showAsAction="withText|ifRoom"
+ android:title="@string/edit_vpn"
+ android:visible="false"/>
+
+</menu>
diff --git a/main/src/main/res/values-v21/refs.xml b/main/src/main/res/values-v21/refs.xml index ae9be13f..1af5ba02 100644 --- a/main/src/main/res/values-v21/refs.xml +++ b/main/src/main/res/values-v21/refs.xml @@ -12,16 +12,16 @@ <drawable name="ic_menu_save">@drawable/ic_check_white_24dp</drawable> <drawable name="ic_menu_view">@drawable/ic_filter_list_white_24dp</drawable> <drawable name="ic_menu_delete">@drawable/ic_delete_white_24dp</drawable> - <drawable name="ic_menu_copy">@drawable/ic_content_copy_white_24dp</drawable> +<!-- <drawable name="ic_menu_copy">@drawable/ic_content_copy_white_24dp</drawable> --> <drawable name="ic_menu_delete_grey">@drawable/ic_delete_grey600_24dp</drawable> <drawable name="ic_menu_edit">@drawable/ic_edit_white_24dp</drawable> - <drawable name="ic_menu_import">@drawable/ic_archive_white_24dp</drawable> +<!-- <drawable name="ic_menu_import">@drawable/ic_archive_white_24dp</drawable> --> <drawable name="vpn_item_edit">@drawable/ic_edit_grey600_24dp</drawable> - <drawable name="ic_menu_add">@drawable/ic_add_circle_outline_white_24dp</drawable> - <drawable name="ic_dialog_alert">@drawable/ic_warning_black_36dp</drawable> + <!--<drawable name="ic_menu_add">@drawable/ic_add_circle_outline_white_24dp</drawable>--> + <!-- <drawable name="ic_dialog_alert">@drawable/ic_warning_black_36dp</drawable> <drawable name="ic_menu_add_grey">@drawable/ic_add_circle_outline_grey600_24dp</drawable> <drawable name="ic_menu_import_grey">@drawable/ic_archive_grey600_24dp</drawable> <drawable name="ic_receipt">@drawable/ic_receipt_white_24dp</drawable> - <drawable name="ic_sort">@drawable/ic_sort_white_24dp</drawable> + <drawable name="ic_sort">@drawable/ic_sort_white_24dp</drawable> --> </resources>
\ No newline at end of file diff --git a/main/src/main/res/values/refs.xml b/main/src/main/res/values/refs.xml index c968b05c..2b00d5b5 100644 --- a/main/src/main/res/values/refs.xml +++ b/main/src/main/res/values/refs.xml @@ -13,15 +13,15 @@ <drawable name="ic_menu_view">@android:drawable/ic_menu_view</drawable> <drawable name="ic_menu_delete">@android:drawable/ic_menu_delete</drawable> <drawable name="ic_menu_edit">@android:drawable/ic_menu_edit</drawable> - <drawable name="ic_menu_import">@drawable/ic_menu_archive</drawable> - <drawable name="vpn_item_edit">@drawable/vpn_item_settings </drawable> + <!--<drawable name="ic_menu_import">@drawable/ic_menu_archive</drawable>--> + <!--<drawable name="vpn_item_edit">@drawable/vpn_item_settings </drawable>--> <drawable name="ic_menu_add">@android:drawable/ic_menu_add</drawable> <drawable name="ic_dialog_alert">@android:drawable/ic_dialog_alert</drawable> <drawable name="ic_menu_add_grey">@android:drawable/ic_menu_add</drawable> - <drawable name="ic_menu_import_grey">@drawable/ic_menu_archive</drawable> + <!--<drawable name="ic_menu_import_grey">@drawable/ic_menu_archive</drawable>--> <drawable name="ic_menu_delete_grey">@android:drawable/ic_menu_delete</drawable> - <drawable name="ic_menu_copy">@drawable/ic_menu_copy_holo_light</drawable> - <drawable name="ic_receipt">@drawable/ic_menu_log</drawable> + <!--<drawable name="ic_menu_copy">@drawable/ic_menu_copy_holo_light</drawable>--> + <!--<drawable name="ic_receipt">@drawable/ic_menu_log</drawable> --> <drawable name="ic_sort">@android:drawable/ic_menu_sort_by_size</drawable> </resources>
\ No newline at end of file |