1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
package de.blinkt.openvpn.fragments;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import de.blinkt.openvpn.R;
import de.blinkt.openvpn.VpnProfile;
import de.blinkt.openvpn.core.ProfileManager;
public class ShowConfigFragment extends Fragment {
private String configtext;
public android.view.View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
String profileUUID = getArguments().getString(getActivity().getPackageName() + ".profileUUID");
final VpnProfile vp = ProfileManager.get(getActivity(),profileUUID);
View v=inflater.inflate(R.layout.viewconfig, container,false);
final TextView cv = (TextView) v.findViewById(R.id.configview);
int check=vp.checkProfile(getActivity());
if(check!=R.string.no_error_found) {
cv.setText(check);
configtext = getString(check);
}
else {
// Run in own Thread since Keystore does not like to be queried from the main thread
cv.setText("Generating config...");
startGenConfig(vp, cv);
}
return v;
}
private void startGenConfig(final VpnProfile vp, final TextView cv) {
new Thread() {
public void run() {
final String cfg=vp.getConfigFile(getActivity(),false);
configtext= cfg;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
cv.setText(cfg);
}
});
}
}.start();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.configmenu, menu);
}
private void shareConfig() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, configtext);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.export_config_title));
shareIntent.setType("text/plain");
startActivity(Intent.createChooser(shareIntent, "Export Configfile"));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
final int itemId = item.getItemId();
if (itemId == R.id.sendConfig) {
shareConfig();
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
}
|