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); + } + } }