From a132e7e07742c0da975a59559103af9fb5b98c64 Mon Sep 17 00:00:00 2001 From: str4d Date: Sat, 17 May 2014 03:46:27 +0000 Subject: [PATCH] Simple network info page --- AndroidManifest.xml | 3 ++ res/layout/fragment_network_info.xml | 51 +++++++++++++++++++ res/values/strings.xml | 6 +++ src/i2p/bote/android/EmailListActivity.java | 3 +- src/i2p/bote/android/NetworkInfoActivity.java | 21 ++++++++ src/i2p/bote/android/NetworkInfoFragment.java | 48 +++++++++++++++++ 6 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 res/layout/fragment_network_info.xml create mode 100644 src/i2p/bote/android/NetworkInfoActivity.java create mode 100644 src/i2p/bote/android/NetworkInfoFragment.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d139301..bbd8be8 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -37,6 +37,9 @@ + diff --git a/res/layout/fragment_network_info.xml b/res/layout/fragment_network_info.xml new file mode 100644 index 0000000..b2955a2 --- /dev/null +++ b/res/layout/fragment_network_info.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 48bfe6c..e515a4a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -58,6 +58,12 @@ Browse Save contact + Local Destination: + Not set + Kademlia Peers: + Relay Peers: + Banned Peers: + General General settings and default identity settings Auto-check mail diff --git a/src/i2p/bote/android/EmailListActivity.java b/src/i2p/bote/android/EmailListActivity.java index ff49946..d2bcc0a 100644 --- a/src/i2p/bote/android/EmailListActivity.java +++ b/src/i2p/bote/android/EmailListActivity.java @@ -164,7 +164,8 @@ public class EmailListActivity extends ActionBarActivity implements }); mNetworkStatus.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { - // TODO: network status page + Intent nii = new Intent(EmailListActivity.this, NetworkInfoActivity.class); + startActivity(nii); } }); diff --git a/src/i2p/bote/android/NetworkInfoActivity.java b/src/i2p/bote/android/NetworkInfoActivity.java new file mode 100644 index 0000000..1e8ae58 --- /dev/null +++ b/src/i2p/bote/android/NetworkInfoActivity.java @@ -0,0 +1,21 @@ +package i2p.bote.android; + +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; + +public class NetworkInfoActivity extends ActionBarActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setTitle(R.string.compose); + + // Enable ActionBar app icon to behave as action to go back + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + if (savedInstanceState == null) { + NetworkInfoFragment f = new NetworkInfoFragment(); + getSupportFragmentManager().beginTransaction() + .add(android.R.id.content, f).commit(); + } + } +} diff --git a/src/i2p/bote/android/NetworkInfoFragment.java b/src/i2p/bote/android/NetworkInfoFragment.java new file mode 100644 index 0000000..feb0362 --- /dev/null +++ b/src/i2p/bote/android/NetworkInfoFragment.java @@ -0,0 +1,48 @@ +package i2p.bote.android; + +import java.util.Collection; +import java.util.Set; + +import net.i2p.data.Destination; +import i2p.bote.I2PBote; +import i2p.bote.Util; +import i2p.bote.network.BannedPeer; +import i2p.bote.network.DhtPeerStats; +import i2p.bote.network.RelayPeer; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +public class NetworkInfoFragment extends Fragment { + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_network_info, container, false); + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + Destination dest = I2PBote.getInstance().getLocalDestination(); + if (dest != null) + ((TextView) view.findViewById(R.id.local_destination)).setText( + Util.toBase32(dest)); + + DhtPeerStats dhtStats = I2PBote.getInstance().getDhtStats(); + if (dhtStats != null) + ((TextView) view.findViewById(R.id.kademlia_peers)).setText( + "" + dhtStats.getData().size()); + + Set relayPeers = I2PBote.getInstance().getRelayPeers(); + ((TextView) view.findViewById(R.id.relay_peers)).setText( + "" + relayPeers.size()); + + Collection bannedPeers = I2PBote.getInstance().getBannedPeers(); + ((TextView) view.findViewById(R.id.banned_peers)).setText( + "" + bannedPeers.size()); + } +}