blob: c3c6a07f11423e5de30fb3c784f13448276bb376 (
plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
package se.leap.leapclient;
import se.leap.openvpn.AboutFragment;
import se.leap.openvpn.MainActivity;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewStub;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
public class Dashboard extends Activity {
private static SharedPreferences preferences;
private static Provider provider;
private TextView providerNameTV;
private TextView eipTypeTV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.client_dashboard);
preferences = getPreferences(MODE_PRIVATE);
// Check if we have preferences, run configuration wizard if not
// TODO We should do a better check for config that this!
if (!preferences.contains("provider") )
startActivity(new Intent(this, ProviderListActivity.class));
else
buildDashboard();
}
private void buildDashboard() {
// Get our provider
provider = Provider.getInstance(preferences);
// Set provider name in textview
providerNameTV = (TextView) findViewById(R.id.providerName);
providerNameTV.setText(provider.getName());
providerNameTV.setTextSize(28); // TODO maybe to some calculating, or a marquee?
// TODO Inflate layout fragments for provider's services
if ( provider.hasEIP() )
serviceItemEIP();
}
private void serviceItemEIP() {
// FIXME Provider service (eip/openvpn)
View eipOverview = ((ViewStub) findViewById(R.id.eipOverviewStub)).inflate();
// Set our EIP type title
eipTypeTV = (TextView) findViewById(R.id.eipType);
eipTypeTV.setText(provider.getEIPType());
// TODO Bind our switch to run our EIP
// What happens when our VPN stops running? does it call the listener?
Switch eipSwitch = (Switch) findViewById(R.id.eipSwitch);
eipSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if ( isChecked ){
//TODO startVPN();
} else {
//TODO stopVPN();
}
}
});
//TODO write our info into the view fragment that will expand with details and a settings button
// TODO set eip overview subview
// TODO make eip type clickable, show subview
// TODO attach vpn status feedback to eip overview view
// TODO attach settings button to something
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.client_dashboard, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
Intent intent;
// Handle item selection
switch (item.getItemId()){
case R.id.about_leap:
// TODO move se.leap.openvpn.AboutFragment into our package
Fragment aboutFragment = new AboutFragment();
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(R.id.dashboardLayout, aboutFragment);
trans.addToBackStack(null);
trans.commit();
//intent = new Intent(this,AboutFragment.class);
//startActivity(intent);
return true;
case R.id.legacy_interface:
// TODO call se.leap.openvpn.MainActivity
intent = new Intent(this,MainActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@SuppressWarnings("unused")
private void toggleOverview() {
// TODO Expand the one line overview item to show some details
}
}
|