Added support for building jni in osx. Also forgot to add new source files from last commit.

This commit is contained in:
meeh
2012-08-12 04:02:24 +00:00
parent 6e130185de
commit f8fe3f082a
3 changed files with 168 additions and 4 deletions

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Addressbook Settings"
android:textAppearance="?android:attr/textAppearanceLarge" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Subscriptions"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/subscriptions_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textMultiLine"
android:maxLines="@integer/min_lines"
android:minLines="@integer/min_lines" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button_save_subscriptions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save subscriptions.txt" />
</FrameLayout>
</LinearLayout>
</ScrollView>

View File

@ -14,7 +14,8 @@
#
#THISDIR=$(realpath $(dirname $(which $0)))
THISDIR=$(dirname $(readlink -f $0))
## Making it work on osx too.
THISDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd $THISDIR
LIBFILE=$PWD/libjbigi.so
@ -33,8 +34,13 @@ I2PBASE=${1:-../../../i2p.i2p}
# the dot at the end ensures that it is a directory, and not a file.
#
#export NDK=$(realpath ../../android-ndk-r5b/)
export NDK=readlink -ne $(for last in ../../android-ndk-r*/.; do true; done ; echo $last)
## Simple fix for osx development
if [ "`uname -s`" == "Darwin" ]; then
export NDK=/Developer/android/ndk/
else
export NDK=readlink -ne $(for last in ../../android-ndk-r*/.; do true; done ; echo $last)
fi
#
# API level, must match that in ../AndroidManifest.xml
#
@ -51,7 +57,7 @@ STRIP="$NDK/toolchains/$AABI/prebuilt/$SYSTEM/bin/${BINPREFIX}strip"
#echo "CC is $CC"
JBIGI=$(realpath $I2PBASE/core/c/jbigi)
JBIGI="$I2PBASE/core/c/jbigi"
#
# GMP Version
#
@ -87,7 +93,11 @@ fi
echo "Building GMP..."
make || exit 1
export JAVA_HOME=$(dirname $(dirname $(realpath $(which javac))))
if [ "`uname -s`" == "Darwin" ]; then
export JAVA_HOME="/Library/Java/Home"
else
export JAVA_HOME=$(dirname $(dirname $(realpath $(which javac))))
fi
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then
echo "Cannot find jni.h! Looked in '$JAVA_HOME/include/jni.h'"
echo "Please set JAVA_HOME to a java home that has the JNI"

View File

@ -0,0 +1,102 @@
package net.i2p.android.router.activity;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import net.i2p.android.router.R;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class AddressbookSettingsActivity extends Activity {
protected EditText text_content_subscriptions;
protected Button btn_save_subscriptions;
private String filename = "/addressbook/subscriptions.txt";
private String i2pDir;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addressbook_settings);
text_content_subscriptions = (EditText) findViewById(R.id.subscriptions_content);
btn_save_subscriptions = (Button) findViewById(R.id.button_save_subscriptions);
init_actions();
i2pDir = getFilesDir().getAbsolutePath();
load();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_addressbook_settings, menu);
return true;
}
private void init_actions() {
btn_save_subscriptions.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Context context = getApplicationContext();
CharSequence text = "";
if (save()) {
text = "subscriptions.txt successfully saved!";
} else {
text = "there was a problem saving subscriptions.txt! Try fix permissions or reinstall i2p.";
}
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
});
}
private boolean load() {
String res = null;
FileInputStream in;
try {
in = new FileInputStream(new File(i2pDir+filename));
if (in != null) {
InputStreamReader input = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(input);
res="";
String line = null;
while (( line = buffreader.readLine()) != null) {
res += line+"\n";
}
in.close();
text_content_subscriptions.setText(res);
return true;
}
} catch (Exception e) {
Log.e("I2P-AddressbookSettings", "Can't read subscriptions.txt");
//TODO: Add error reporting support
e.printStackTrace();
return false;
}
return false;
}
private boolean save() {
//
String content = text_content_subscriptions.getText().toString();
try {
FileOutputStream out = new FileOutputStream(new File(i2pDir+filename));
byte[] contentInBytes = content.getBytes();
out.write(contentInBytes);
out.flush();
out.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}