summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/blinkt/openvpn
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-05-28 17:15:44 +0200
committerParménides GV <parmegv@sdf.org>2014-05-28 17:15:44 +0200
commit6fcd101fcbc7779ffd7239cc35e5c3359ae38fcf (patch)
tree190d57ad5785b1397d6a8346726136b83d0aa870 /app/src/main/java/de/blinkt/openvpn
parenta0a7be518a758ad3c17111e8a5f3694d1a711d73 (diff)
Resources merge correctly.
Diffstat (limited to 'app/src/main/java/de/blinkt/openvpn')
-rw-r--r--app/src/main/java/de/blinkt/openvpn/FileProvider.java142
-rw-r--r--app/src/main/java/de/blinkt/openvpn/LaunchVPN.java72
-rw-r--r--app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java36
-rw-r--r--app/src/main/java/de/blinkt/openvpn/VpnProfile.java2
-rw-r--r--app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java19
5 files changed, 10 insertions, 261 deletions
diff --git a/app/src/main/java/de/blinkt/openvpn/FileProvider.java b/app/src/main/java/de/blinkt/openvpn/FileProvider.java
deleted file mode 100644
index f9fedd02..00000000
--- a/app/src/main/java/de/blinkt/openvpn/FileProvider.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package de.blinkt.openvpn;
-
-import se.leap.bitmaskclient.R;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import android.content.ContentProvider;
-import android.content.ContentProvider.PipeDataWriter;
-import android.content.ContentValues;
-import android.content.res.AssetFileDescriptor;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.ParcelFileDescriptor;
-import android.provider.OpenableColumns;
-import android.util.Log;
-import de.blinkt.openvpn.core.VpnStatus;
-
-/**
- * A very simple content provider that can serve arbitrary asset files from
- * our .apk.
- */
-public class FileProvider extends ContentProvider
-implements PipeDataWriter<InputStream> {
- @Override
- public boolean onCreate() {
- return true;
- }
-
- @Override
- public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
- String sortOrder) {
- try {
- File dumpfile = getFileFromURI(uri);
-
-
- MatrixCursor c = new MatrixCursor(projection);
-
- Object[] row = new Object[projection.length];
- int i=0;
- for (String r:projection) {
- if(r.equals(OpenableColumns.SIZE))
- row[i] = dumpfile.length();
- if(r.equals(OpenableColumns.DISPLAY_NAME))
- row[i] = dumpfile.getName();
- i++;
- }
- c.addRow(row);
- return c;
- } catch (FileNotFoundException e) {
- VpnStatus.logException(e);
- return null;
- }
-
-
- }
-
- @Override
- public Uri insert(Uri uri, ContentValues values) {
- // Don't support inserts.
- return null;
- }
-
- @Override
- public int delete(Uri uri, String selection, String[] selectionArgs) {
- // Don't support deletes.
- return 0;
- }
-
- @Override
- public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
- // Don't support updates.
- return 0;
- }
-
- @Override
- public String getType(Uri uri) {
- // For this sample, assume all files are .apks.
- return "application/octet-stream";
- }
-
- @Override
- public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException {
- File dumpfile = getFileFromURI(uri);
-
- try {
-
- InputStream is = new FileInputStream(dumpfile);
- // Start a new thread that pipes the stream data back to the caller.
- return new AssetFileDescriptor(
- openPipeHelper(uri, null, null, is, this), 0,
- dumpfile.length());
- } catch (IOException e) {
- throw new FileNotFoundException("Unable to open minidump " + uri);
- }
- }
-
- private File getFileFromURI(Uri uri) throws FileNotFoundException {
- // Try to open an asset with the given name.
- String path = uri.getPath();
- if(path.startsWith("/"))
- path = path.replaceFirst("/", "");
-
- // I think this already random enough, no need for magic secure cookies
- // 1f9563a4-a1f5-2165-255f2219-111823ef.dmp
- if (!path.matches("^[0-9a-z-.]*(dmp|dmp.log)$"))
- throw new FileNotFoundException("url not in expect format " + uri);
- File cachedir = getContext().getCacheDir();
- return new File(cachedir,path);
- }
-
- @Override
- public void writeDataToPipe(ParcelFileDescriptor output, Uri uri, String mimeType,
- Bundle opts, InputStream args) {
- // Transfer data from the asset to the pipe the client is reading.
- byte[] buffer = new byte[8192];
- int n;
- FileOutputStream fout = new FileOutputStream(output.getFileDescriptor());
- try {
- while ((n=args.read(buffer)) >= 0) {
- fout.write(buffer, 0, n);
- }
- } catch (IOException e) {
- Log.i("OpenVPNFileProvider", "Failed transferring", e);
- } finally {
- try {
- args.close();
- } catch (IOException e) {
- }
- try {
- fout.close();
- } catch (IOException e) {
- }
- }
- }
-}
diff --git a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java
index cfd0efb0..6b4addb3 100644
--- a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java
+++ b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java
@@ -2,6 +2,8 @@ package de.blinkt.openvpn;
import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.R;
+
import java.io.IOException;
import android.app.Activity;
@@ -108,75 +110,7 @@ public class LaunchVPN extends Activity {
}
}
-
- private void askForPW(final int type) {
-
- final EditText entry = new EditText(this);
- final View userpwlayout = getLayoutInflater().inflate(R.layout.userpass, null);
-
- 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("Need " + getString(type));
- dialog.setMessage("Enter the password for profile " + mSelectedProfile.mName);
-
- 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);
- }
-
- 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;
- mSelectedProfile.mTransientPW = pw;
- }
- } else {
- mSelectedProfile.mTransientPCKS12PW = entry.getText().toString();
- }
- onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null);
-
- }
-
- });
- 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();
-
- }
+
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
diff --git a/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java b/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java
deleted file mode 100644
index 129d8d1c..00000000
--- a/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.blinkt.openvpn;
-
-import se.leap.bitmaskclient.R;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import de.blinkt.openvpn.core.ProfileManager;
-
-
-public class OnBootReceiver extends BroadcastReceiver {
-
- // Debug: am broadcast -a android.intent.action.BOOT_COMPLETED
- @Override
- public void onReceive(Context context, Intent intent) {
-
- final String action = intent.getAction();
-
- if(Intent.ACTION_BOOT_COMPLETED.equals(action)) {
- VpnProfile bootProfile = ProfileManager.getOnBootProfile(context);
- if(bootProfile != null) {
- launchVPN(bootProfile, context);
- }
- }
- }
-
- void launchVPN(VpnProfile profile, Context context) {
- Intent startVpnIntent = new Intent(Intent.ACTION_MAIN);
- startVpnIntent.setClass(context, LaunchVPN.class);
- startVpnIntent.putExtra(LaunchVPN.EXTRA_KEY,profile.getUUIDString());
- startVpnIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- startVpnIntent.putExtra(LaunchVPN.EXTRA_HIDELOG, true);
-
- context.startActivity(startVpnIntent);
- }
-}
diff --git a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java
index afa70100..000fc47c 100644
--- a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java
+++ b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java
@@ -2,6 +2,8 @@ package de.blinkt.openvpn;
import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.R;
+
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
diff --git a/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java b/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java
index fe7a8bd3..2f04d235 100644
--- a/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java
+++ b/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java
@@ -2,6 +2,8 @@ package de.blinkt.openvpn.fragments;
import se.leap.bitmaskclient.R;
+import se.leap.bitmaskclient.R;
+
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
@@ -22,8 +24,7 @@ import android.widget.*;
import android.widget.AdapterView.OnItemLongClickListener;
import de.blinkt.openvpn.*;
import de.blinkt.openvpn.activities.DisconnectVPN;
-import de.blinkt.openvpn.activities.MainActivity;
-import de.blinkt.openvpn.activities.VPNPreferences;
+import se.leap.bitmaskclient.Dashboard;
import de.blinkt.openvpn.core.OpenVPNManagement;
import de.blinkt.openvpn.core.VpnStatus;
import de.blinkt.openvpn.core.VpnStatus.ConnectionStatus;
@@ -424,24 +425,14 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar.
Intent intent = new Intent(getActivity(),DisconnectVPN.class);
startActivity(intent);
return true;
- } else if(item.getItemId()==R.id.send) {
+ } else if(item.getItemId()==R.id.send) {
ladapter.shareLog();
- } else if(item.getItemId()==R.id.edit_vpn) {
- VpnProfile lastConnectedprofile = ProfileManager.getLastConnectedVpn();
-
- if(lastConnectedprofile!=null) {
- Intent vprefintent = new Intent(getActivity(),VPNPreferences.class)
- .putExtra(VpnProfile.EXTRA_PROFILEUUID,lastConnectedprofile.getUUIDString());
- startActivityForResult(vprefintent,START_VPN_CONFIG);
- } else {
- Toast.makeText(getActivity(), R.string.log_no_last_vpn, Toast.LENGTH_LONG).show();
- }
} else if(item.getItemId() == R.id.toggle_time) {
showHideOptionsPanel();
} 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);