diff --git a/app-android/res/drawable-hdpi/layout_bg.xml b/app-android/res/drawable-hdpi/layout_bg.xml
new file mode 100644
index 0000000..cf1bf73
--- /dev/null
+++ b/app-android/res/drawable-hdpi/layout_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app-android/res/layout/activity_canvas.xml b/app-android/res/layout/activity_canvas.xml
index 6fd299c..17b2a7e 100644
--- a/app-android/res/layout/activity_canvas.xml
+++ b/app-android/res/layout/activity_canvas.xml
@@ -1,7 +1,9 @@
diff --git a/app-android/res/values/colors.xml b/app-android/res/values/colors.xml
new file mode 100644
index 0000000..c48a7a8
--- /dev/null
+++ b/app-android/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #FFFFFF
+ #000000
+
+
diff --git a/app-android/res/values/strings.xml b/app-android/res/values/strings.xml
index 8e01210..287484a 100644
--- a/app-android/res/values/strings.xml
+++ b/app-android/res/values/strings.xml
@@ -9,5 +9,6 @@
About / Help
Title bar will only be hidden when hardware menu button is present
Ignores touch events from fingers
+ Use Dark Background
diff --git a/app-android/res/xml/layout_preferences.xml b/app-android/res/xml/layout_preferences.xml
new file mode 100644
index 0000000..fcdf25e
--- /dev/null
+++ b/app-android/res/xml/layout_preferences.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app-android/res/xml/network_preferences.xml b/app-android/res/xml/network_preferences.xml
index 306ae20..6d6ff1c 100644
--- a/app-android/res/xml/network_preferences.xml
+++ b/app-android/res/xml/network_preferences.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/app-android/res/xml/preference_headers.xml b/app-android/res/xml/preference_headers.xml
index 3b9039a..82034ae 100644
--- a/app-android/res/xml/preference_headers.xml
+++ b/app-android/res/xml/preference_headers.xml
@@ -5,5 +5,7 @@
android:title="Networking" />
+
diff --git a/app-android/src/at/bitfire/gfxtablet/CanvasActivity.java b/app-android/src/at/bitfire/gfxtablet/CanvasActivity.java
index ea128e2..a3be925 100644
--- a/app-android/src/at/bitfire/gfxtablet/CanvasActivity.java
+++ b/app-android/src/at/bitfire/gfxtablet/CanvasActivity.java
@@ -3,22 +3,27 @@ package at.bitfire.gfxtablet;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.graphics.drawable.GradientDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewConfiguration;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
import android.widget.Toast;
-
-public class CanvasActivity extends Activity {
+public class CanvasActivity extends Activity implements OnSharedPreferenceChangeListener {
CanvasView canvas;
SharedPreferences settings;
NetworkClient netClient;
+ LinearLayout layout;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -27,6 +32,7 @@ public class CanvasActivity extends Activity {
PreferenceManager.setDefaultValues(this, R.xml.drawing_preferences, false);
settings = PreferenceManager.getDefaultSharedPreferences(this);
+ settings.registerOnSharedPreferenceChangeListener(this);
if (settings.getBoolean(SettingsActivity.KEY_PREF_FULLSCREEN, false)) {
if (ViewConfiguration.get(this).hasPermanentMenuKey())
requestWindowFeature(Window.FEATURE_NO_TITLE);
@@ -38,14 +44,47 @@ public class CanvasActivity extends Activity {
}
setContentView(R.layout.activity_canvas);
- LinearLayout layout = (LinearLayout)findViewById(R.id.canvas_layout);
+ layout = (LinearLayout)findViewById(R.id.canvas_layout);
new Thread(netClient = new NetworkClient(PreferenceManager.getDefaultSharedPreferences(this))).start();
-
+
canvas = new CanvasView(this, netClient);
layout.addView(canvas);
+
+ this.reconfigureLayout();
+ this.reconfigureColor();
}
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences pref, String key) {
+ if (key.equals(SettingsActivity.KEY_PREF_PADDING))
+ this.reconfigureLayout();
+ else if (key.equals(SettingsActivity.KEY_PREF_DARKCANVAS))
+ this.reconfigureColor();
+ }
+
+ void reconfigureLayout()
+ {
+ String padding = settings.getString(SettingsActivity.KEY_PREF_PADDING, "0");
+ int p = Integer.parseInt(padding);
+ RelativeLayout l = (RelativeLayout)findViewById(R.id.relative_layout);
+ l.setPadding(p, p, p, p);
+ }
+
+ void reconfigureColor()
+ {
+ GradientDrawable sd = (GradientDrawable) layout.getBackground().mutate();
+ if (settings.getBoolean(SettingsActivity.KEY_PREF_DARKCANVAS, false))
+ sd.setColor(0xFF263248);
+ else
+ sd.setColor(0xFF7E8AA2);
+ sd.invalidateSelf();
+ }
+
+ @Override
+ public void onBackPressed() {
+ }
+
@Override
protected void onDestroy() {
netClient.getQueue().add(new NetEvent(NetEvent.Type.TYPE_DISCONNECT));
diff --git a/app-android/src/at/bitfire/gfxtablet/CanvasView.java b/app-android/src/at/bitfire/gfxtablet/CanvasView.java
index 52cb10d..7c4c6c6 100644
--- a/app-android/src/at/bitfire/gfxtablet/CanvasView.java
+++ b/app-android/src/at/bitfire/gfxtablet/CanvasView.java
@@ -1,10 +1,17 @@
package at.bitfire.gfxtablet;
+import org.xmlpull.v1.XmlPullParser;
+
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.graphics.drawable.ShapeDrawable;
import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.view.MotionEvent;
@@ -24,12 +31,13 @@ public class CanvasView extends View implements OnSharedPreferenceChangeListener
// disable until networking has been configured
setEnabled(false);
- setBackgroundColor(0xFFD0D0D0);
-
+
settings = PreferenceManager.getDefaultSharedPreferences(context);
settings.registerOnSharedPreferenceChangeListener(this);
+
reconfigureAcceptedInputDevices();
+ //this.reconfigureLayout();
this.netClient = netClient;
new ConfigureNetworkingTask().execute();
}
@@ -39,8 +47,9 @@ public class CanvasView extends View implements OnSharedPreferenceChangeListener
if (key.equals(SettingsActivity.KEY_PREF_HOST))
new ConfigureNetworkingTask().execute();
else if (key.equals(SettingsActivity.KEY_PREF_STYLUS_ONLY))
- reconfigureAcceptedInputDevices();
+ this.reconfigureAcceptedInputDevices();
}
+
void reconfigureAcceptedInputDevices() {
acceptStylusOnly = settings.getBoolean(SettingsActivity.KEY_PREF_STYLUS_ONLY, false);
diff --git a/app-android/src/at/bitfire/gfxtablet/NetworkClient.java b/app-android/src/at/bitfire/gfxtablet/NetworkClient.java
index 69d5a4c..69a8b3b 100644
--- a/app-android/src/at/bitfire/gfxtablet/NetworkClient.java
+++ b/app-android/src/at/bitfire/gfxtablet/NetworkClient.java
@@ -6,6 +6,7 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.LinkedBlockingQueue;
+import android.bluetooth.BluetoothSocket;
import android.content.SharedPreferences;
import android.util.Log;
import at.bitfire.gfxtablet.NetEvent.Type;
diff --git a/app-android/src/at/bitfire/gfxtablet/SettingsActivity.java b/app-android/src/at/bitfire/gfxtablet/SettingsActivity.java
index aa8d76a..9f588cc 100644
--- a/app-android/src/at/bitfire/gfxtablet/SettingsActivity.java
+++ b/app-android/src/at/bitfire/gfxtablet/SettingsActivity.java
@@ -18,7 +18,9 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
public static final String
KEY_PREF_HOST = "host_preference",
KEY_PREF_STYLUS_ONLY = "stylus_only_preference",
- KEY_PREF_FULLSCREEN = "fullscreen_preference";
+ KEY_PREF_FULLSCREEN = "fullscreen_preference",
+ KEY_PREF_DARKCANVAS = "darkcanvas_preference",
+ KEY_PREF_PADDING = "canvaspadding_preference";
@Override
@@ -30,7 +32,7 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
PreferenceManager.getDefaultSharedPreferences(this)
.registerOnSharedPreferenceChangeListener(this);
}
-
+
@Override
public void onBuildHeaders(List target) {
loadHeadersFromResource(R.xml.preference_headers, target);
@@ -64,4 +66,12 @@ public class SettingsActivity extends PreferenceActivity implements OnSharedPref
addPreferencesFromResource(R.xml.drawing_preferences);
}
}
+
+ public static class LayoutPrefsFragment extends PreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.layout_preferences);
+ }
+ }
}