Added some quick & dirty activity to show addresses and the network state

This commit is contained in:
Christian Basler 2016-01-14 16:41:10 +01:00
parent abd25f4010
commit 2d2916f498
8 changed files with 160 additions and 44 deletions

View File

@ -1,17 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest
xmlns:tools="http://schemas.android.com/tools" package="ch.dissem.apps.abit"
package="ch.dissem.apps.abit"> xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<application <application
android:allowBackup="true" android:allowBackup="true"
@ -22,9 +23,9 @@
android:name=".MainActivity" android:name=".MainActivity"
android:label="@string/app_name"> android:label="@string/app_name">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
@ -34,7 +35,7 @@
tools:ignore="UnusedAttribute"> tools:ignore="UnusedAttribute">
<meta-data <meta-data
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" /> android:value=".MainActivity"/>
</activity> </activity>
<activity <activity
android:name=".SubscriptionDetailActivity" android:name=".SubscriptionDetailActivity"
@ -43,7 +44,7 @@
tools:ignore="UnusedAttribute"> tools:ignore="UnusedAttribute">
<meta-data <meta-data
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" /> android:value=".MainActivity"/>
</activity> </activity>
<activity <activity
android:name=".ComposeMessageActivity" android:name=".ComposeMessageActivity"
@ -51,30 +52,30 @@
android:parentActivityName=".MainActivity"> android:parentActivityName=".MainActivity">
<meta-data <meta-data
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" /> android:value=".MainActivity"/>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SENDTO" /> <action android:name="android.intent.action.SENDTO"/>
<data android:scheme="bitmessage" /> <data android:scheme="bitmessage"/>
<data android:scheme="bitmsg" /> <data android:scheme="bitmsg"/>
<data android:scheme="bm" /> <data android:scheme="bm"/>
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SEND" /> <action android:name="android.intent.action.SEND"/>
<data android:mimeType="text/plain" /> <data android:mimeType="text/plain"/>
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" /> <action android:name="android.intent.action.SEND_MULTIPLE"/>
<data android:mimeType="text/plain" /> <data android:mimeType="text/plain"/>
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
@ -82,43 +83,45 @@
android:label="@string/settings" android:label="@string/settings"
android:parentActivityName=".MainActivity"> android:parentActivityName=".MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MANAGE_NETWORK_USAGE" /> <action android:name="android.intent.action.MANAGE_NETWORK_USAGE"/>
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".OpenBitmessageLinkActivity" android:name=".OpenBitmessageLinkActivity"
android:label="@string/title_activity_open_bitmessage_link" android:label="@string/title_activity_open_bitmessage_link"
android:theme="@style/Theme.AppCompat.Light.Dialog"> android:theme="@style/Theme.AppCompat.Light.Dialog">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW"/>
<data android:scheme="bitmessage" /> <data android:scheme="bitmessage"/>
<data android:scheme="bitmsg" /> <data android:scheme="bitmsg"/>
<data android:scheme="bm" /> <data android:scheme="bm"/>
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE"/>
</intent-filter> </intent-filter>
</activity> </activity>
<service android:name=".service.BitmessageService" />
<service android:name=".service.ProofOfWorkService" /> <service android:name=".service.BitmessageService"/>
<service android:name=".service.ProofOfWorkService"/>
<!-- Synchronization --> <!-- Synchronization -->
<provider <provider
android:name=".synchronization.StubProvider" android:name=".synchronization.StubProvider"
android:authorities="ch.dissem.apps.abit.provider" android:authorities="ch.dissem.apps.abit.provider"
android:exported="false" android:exported="false"
android:syncable="true" /> android:syncable="true"/>
<service android:name=".synchronization.AuthenticatorService"> <service android:name=".synchronization.AuthenticatorService">
<intent-filter> <intent-filter>
<action android:name="android.accounts.AccountAuthenticator" /> <action android:name="android.accounts.AccountAuthenticator"/>
</intent-filter> </intent-filter>
<meta-data <meta-data
android:name="android.accounts.AccountAuthenticator" android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" /> android:resource="@xml/authenticator"/>
</service> </service>
<service <service
android:name=".synchronization.SyncService" android:name=".synchronization.SyncService"
@ -126,16 +129,27 @@
<intent-filter> <intent-filter>
<action android:name="android.content.SyncAdapter"/> <action android:name="android.content.SyncAdapter"/>
</intent-filter> </intent-filter>
<meta-data android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" /> <meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter"/>
</service> </service>
<!-- Receive Wi-Fi connection state changes --> <!-- Receive Wi-Fi connection state changes -->
<receiver android:name=".listener.WifiReceiver"> <receiver android:name=".listener.WifiReceiver">
<intent-filter> <intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter> </intent-filter>
</receiver> </receiver>
<activity
android:name=".StatusActivity"
android:label="@string/title_activity_status"
android:parentActivityName=".SettingsActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".SettingsActivity"/>
</activity>
</application> </application>
</manifest> </manifest>

View File

@ -1,6 +1,7 @@
package ch.dissem.apps.abit; package ch.dissem.apps.abit;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
@ -42,6 +43,15 @@ public class SettingsFragment
return true; return true;
} }
}); });
Preference status = findPreference("status");
status.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivity(new Intent(getActivity(), StatusActivity.class));
return true;
}
});
} }
@Override @Override

View File

@ -0,0 +1,36 @@
package ch.dissem.apps.abit;
import android.os.Bundle;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.widget.TextView;
import ch.dissem.apps.abit.service.Singleton;
import ch.dissem.bitmessage.BitmessageContext;
import ch.dissem.bitmessage.entity.BitmessageAddress;
public class StatusActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_status);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(false);
BitmessageContext bmc = Singleton.getBitmessageContext(this);
StringBuilder status = new StringBuilder();
for (BitmessageAddress address : bmc.addresses().getIdentities()) {
status.append(address.getAddress()).append('\n');
}
status.append('\n');
status.append(bmc.status());
((TextView) findViewById(R.id.content)).setText(status);
}
}

View File

@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
import java.io.Serializable; import java.io.Serializable;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import ch.dissem.apps.abit.R;
import ch.dissem.apps.abit.notification.NetworkNotification; import ch.dissem.apps.abit.notification.NetworkNotification;
import ch.dissem.bitmessage.BitmessageContext; import ch.dissem.bitmessage.BitmessageContext;
import ch.dissem.bitmessage.entity.BitmessageAddress; import ch.dissem.bitmessage.entity.BitmessageAddress;
@ -101,6 +102,8 @@ public class BitmessageService extends Service {
switch (msg.what) { switch (msg.what) {
case MSG_CREATE_IDENTITY: { case MSG_CREATE_IDENTITY: {
BitmessageAddress identity = bmc.createIdentity(false); BitmessageAddress identity = bmc.createIdentity(false);
identity.setAlias(service.get().getString(R.string.alias_default_identity));
bmc.addresses().save(identity);
if (msg.replyTo != null) { if (msg.replyTo != null) {
try { try {
Message message = Message.obtain(this, MSG_CREATE_IDENTITY); Message message = Message.obtain(this, MSG_CREATE_IDENTITY);

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="ch.dissem.apps.abit.StatusActivity">
<TextView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fontFamily="monospace"
android:padding="16dp"
android:text=""
android:textIsSelectable="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</TextView>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:title="@string/status"
app:title="@string/status"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

View File

@ -52,4 +52,8 @@
<string name="server_pow">Server POW</string> <string name="server_pow">Server POW</string>
<string name="server_pow_summary">Der vertrauenswürdige Knoten macht den Proof of Work</string> <string name="server_pow_summary">Der vertrauenswürdige Knoten macht den Proof of Work</string>
<string name="full_node_warning">Ein aktiver Bitmessage-Knoten muss viel hoch- und herunterladen, was auf einem mobilen Netzwerk teuer sein kann. Soll tatsächlich ein aktiver Knoten gestartet werden?</string> <string name="full_node_warning">Ein aktiver Bitmessage-Knoten muss viel hoch- und herunterladen, was auf einem mobilen Netzwerk teuer sein kann. Soll tatsächlich ein aktiver Knoten gestartet werden?</string>
<string name="status">Debugging</string>
<string name="alias_default_identity">Ich</string>
<string name="title_activity_status">Debugging</string>
<string name="status_summary">Technische Infos</string>
</resources> </resources>

View File

@ -55,4 +55,8 @@
<string name="full_node_warning">Running a full Bitmessage node uses a lot of traffic, which could be expensive on a mobile network. Are you sure you want to start a full node?</string> <string name="full_node_warning">Running a full Bitmessage node uses a lot of traffic, which could be expensive on a mobile network. Are you sure you want to start a full node?</string>
<string name="about">About Abit</string> <string name="about">About Abit</string>
<string name="about_summary">Open source dependencies.</string> <string name="about_summary">Open source dependencies.</string>
<string name="title_activity_status">Debugging</string>
<string name="status">Debugging</string>
<string name="status_summary">Technical information</string>
<string name="alias_default_identity">Me</string>
</resources> </resources>

View File

@ -36,4 +36,9 @@
android:title="@string/about" android:title="@string/about"
android:summary="@string/about_summary" android:summary="@string/about_summary"
/> />
<Preference
android:key="status"
android:title="@string/status"
android:summary="@string/status_summary"
/>
</PreferenceScreen> </PreferenceScreen>