android/sdremote/AndroidManifest.xml                                           
   |   10 -
 android/sdremote/res/drawable/icon_options.png                                 
   |binary
 android/sdremote/res/drawable/rectangle_black.xml                              
   |   11 +
 android/sdremote/res/drawable/up_indicator_white.png                           
   |binary
 android/sdremote/res/layout/activity_settings.xml                              
   |    6 
 android/sdremote/res/layout/fragment_blankscreen.xml                           
   |   44 +++++
 android/sdremote/res/values/strings.xml                                        
   |    7 
 android/sdremote/res/values/styles.xml                                         
   |   13 +
 android/sdremote/res/xml/preferences.xml                                       
   |   15 ++
 android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java    
   |   65 ++++++++
 android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java   
   |   74 +++++++++-
 android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java       
   |   27 +++
 android/sdremote/src/org/libreoffice/impressremote/SettingsFragment.java       
   |   13 +
 android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java      
   |    5 
 android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java 
   |    4 
 
android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java 
  |    5 
 
android/sdremote/src/org/libreoffice/impressremote/communication/Transmitter.java
 |    6 
 17 files changed, 289 insertions(+), 16 deletions(-)

New commits:
commit cc05a22a2d12d4e25be0f3fa15098e375363915b
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 16:36:13 2012 +0200

    Fixed some bugs affecting resuming of slideshow.
    
    Change-Id: I I I8797eca1fc4f992374a09f74454a5f034b47a96a

diff --git a/android/sdremote/res/values/strings.xml 
b/android/sdremote/res/values/strings.xml
index b803ff0..ac51b86 100644
--- a/android/sdremote/res/values/strings.xml
+++ b/android/sdremote/res/values/strings.xml
@@ -14,8 +14,11 @@
     <string name="clock_timer_restart">Restart</string>
     <string name="clock_timer_reset">Reset</string>
     <string name="clock_timer_resume">Resume</string>
-    <string name="options_autodecline">Auto-decline calls</string>
-    <string name="options_volumeswitching">Change slides using volume 
buttons</string>
+    <string name="options_autodecline">Decline Calls</string>
+    <string name="options_description">Automatically decline all incoming 
calls.</string>
+    <string name="options_volumeswitching">Volume Switching</string>
+    <string name="options_volumeswitching_descripton">Change slides using 
volume buttons</string>
     <string name="options_switchcomputer">Switch computer</string>
     <string name="blankscreen_return">Return to Slide</string>
+
 </resources>
\ No newline at end of file
diff --git a/android/sdremote/res/xml/preferences.xml 
b/android/sdremote/res/xml/preferences.xml
index e039995..5d7e68b 100644
--- a/android/sdremote/res/xml/preferences.xml
+++ b/android/sdremote/res/xml/preferences.xml
@@ -5,7 +5,8 @@
     <SwitchPreference
         android:defaultValue="false"
         android:key="option_volumeswitching"
-        android:title="@string/options_volumeswitching" />
+        android:title="@string/options_volumeswitching"
+         android:summary="@string/options_volumeswitching_descripton"/>
 
     <Preference
         android:key="option_switchcomputer"
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java 
b/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
index 74a806d..1de6c01 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
@@ -136,11 +136,14 @@ public class ThumbnailFragment extends Fragment {
        }
 
        public void handleMessage(Message aMessage) {
+               if (!isVisible()) {
+                       return;
+               }
+
                Bundle aData = aMessage.getData();
                switch (aMessage.what) {
                case CommunicationService.MSG_SLIDE_CHANGED:
                        int aSlide = aData.getInt("slide_number");
-                       setSelected(aSlide);
                        break;
                case CommunicationService.MSG_SLIDE_PREVIEW:
                        mGrid.invalidateViews();
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
 
b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
index 6a0496f..e78f07e 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
@@ -20,7 +20,7 @@ public class Receiver {
 
        private Messenger mActivityMessenger;
 
-       private SlideShow mSlideShow = null;
+       private SlideShow mSlideShow = new SlideShow();
 
        public SlideShow getSlideShow() {
                return mSlideShow;
@@ -38,7 +38,7 @@ public class Receiver {
                if (aInstruction.equals("slideshow_started")) {
                        int aSlideShowlength = 
Integer.parseInt(aCommand.get(1));
                        int aCurrentSlide = Integer.parseInt(aCommand.get(2));
-                       mSlideShow = new SlideShow(aSlideShowlength);
+                       mSlideShow.setLength(aSlideShowlength);
                        mSlideShow.setCurrentSlide(aCurrentSlide);
 
                        Message aMessage = Message.obtain(null,
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
 
b/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
index 34cf8aa..75b13a8 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
@@ -18,7 +18,10 @@ public class SlideShow {
        private int mSize = 0;
        private int mCurrentSlide = 0;
 
-       protected SlideShow(int aSize) {
+       protected SlideShow() {
+       }
+
+       protected void setLength(int aSize) {
                mSize = aSize;
        }
 
commit 18a807397931fbf6847e4951ce4ee9854fd35a34
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 16:26:49 2012 +0200

    Blank screen essentially working.
    
    Change-Id: I I I645fab156d9803a2f076b7e5b45a5035a6854fab

diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
index d87565c..4418431 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
@@ -1,5 +1,7 @@
 package org.libreoffice.impressremote;
 
+import org.libreoffice.impressremote.communication.CommunicationService;
+
 import android.app.Fragment;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -14,10 +16,10 @@ import android.widget.ImageView;
 
 public class BlankScreenFragment extends Fragment {
 
-       Bitmap mBitmap;
+       CommunicationService mCommunicationService;
 
-       public BlankScreenFragment(Bitmap aBitmap) {
-               mBitmap = aBitmap;
+       public BlankScreenFragment(CommunicationService aCommunicationService) {
+               mCommunicationService = aCommunicationService;
        }
 
        @Override
@@ -27,6 +29,9 @@ public class BlankScreenFragment extends Fragment {
                View v = inflater.inflate(R.layout.fragment_blankscreen, 
container,
                                false);
 
+               Bitmap aBitmap = mCommunicationService.getSlideShow().getImage(
+                               
mCommunicationService.getSlideShow().getCurrentSlide());
+
                // Process the image
                final int borderWidth = 8;
 
@@ -34,19 +39,27 @@ public class BlankScreenFragment extends Fragment {
                p.setShadowLayer(borderWidth, 0, 0, Color.BLACK);
 
                RectF aRect = new RectF(borderWidth, borderWidth, borderWidth
-                               + mBitmap.getWidth(), borderWidth + 
mBitmap.getHeight());
-               Bitmap aOut = Bitmap.createBitmap(mBitmap.getWidth() + 2 * 
borderWidth,
-                               mBitmap.getHeight() + 2 * borderWidth,
-                               mBitmap.getConfig());
+                               + aBitmap.getWidth(), borderWidth + 
aBitmap.getHeight());
+               Bitmap aOut = Bitmap.createBitmap(aBitmap.getWidth() + 2 * 
borderWidth,
+                               aBitmap.getHeight() + 2 * borderWidth,
+                               aBitmap.getConfig());
                Canvas canvas = new Canvas(aOut);
                canvas.drawColor(Color.TRANSPARENT);
                canvas.drawRect(aRect, p);
-               canvas.drawBitmap(mBitmap, null, aRect, null);
+               canvas.drawBitmap(aBitmap, null, aRect, null);
 
                ImageView aImage = (ImageView) v
                                .findViewById(R.id.blankscreen_slidepreview);
                aImage.setImageBitmap(aOut);
+
+               mCommunicationService.getTransmitter().blankScreen();
                // TODO Auto-generated method stub
                return v;
        }
+
+       @Override
+       public void onDestroyView() {
+               super.onDestroyView();
+               mCommunicationService.getTransmitter().resume();
+       }
 }
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index a6f6d38..c6b80fe 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -17,7 +17,6 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
-import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -152,11 +151,9 @@ public class PresentationActivity extends Activity {
                        boolean aRelevantFragmentVisible = mPresentationFragment
                                        .isVisible() || 
mThumbnailFragment.isVisible();
                        if (aRelevantFragmentVisible) {
-                               Bitmap aBitmap = 
mCommunicationService.getSlideShow().getImage(
-                                               
mCommunicationService.getSlideShow()
-                                                               
.getCurrentSlide());
 
-                               BlankScreenFragment aFragment = new 
BlankScreenFragment(aBitmap);
+                               BlankScreenFragment aFragment = new 
BlankScreenFragment(
+                                               mCommunicationService);
 
                                FragmentTransaction ft = getFragmentManager()
                                                .beginTransaction();
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/communication/Transmitter.java
 
b/android/sdremote/src/org/libreoffice/impressremote/communication/Transmitter.java
index 8c3c69f..1a95604 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/communication/Transmitter.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/communication/Transmitter.java
@@ -52,10 +52,14 @@ public class Transmitter {
         * @param aColor
         */
        public void blankScreen(Color aColor) {
-               // Fixme: check how to get colour in integer form.
+               // FIXME: check how to get colour in integer form.
                mClient.sendCommand("presentation_blank_screen\n" + aColor + 
"\n\n");
        }
 
+       public void resume() {
+               mClient.sendCommand("presentation_resume\n\n");
+       }
+
        public void startPresentation() {
                mClient.sendCommand("presentation_start\n\n");
        }
commit 45923c50b320d94d7cbd70946162196d6287a93e
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 16:13:31 2012 +0200

    Blank screen view showing.
    
    Change-Id: Ica6b740029bb1eb7d55dedec189c944af0027566

diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
index 934baea..d87565c 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
@@ -1,7 +1,52 @@
 package org.libreoffice.impressremote;
 
 import android.app.Fragment;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
 
 public class BlankScreenFragment extends Fragment {
 
+       Bitmap mBitmap;
+
+       public BlankScreenFragment(Bitmap aBitmap) {
+               mBitmap = aBitmap;
+       }
+
+       @Override
+       public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                       Bundle savedInstanceState) {
+
+               View v = inflater.inflate(R.layout.fragment_blankscreen, 
container,
+                               false);
+
+               // Process the image
+               final int borderWidth = 8;
+
+               Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
+               p.setShadowLayer(borderWidth, 0, 0, Color.BLACK);
+
+               RectF aRect = new RectF(borderWidth, borderWidth, borderWidth
+                               + mBitmap.getWidth(), borderWidth + 
mBitmap.getHeight());
+               Bitmap aOut = Bitmap.createBitmap(mBitmap.getWidth() + 2 * 
borderWidth,
+                               mBitmap.getHeight() + 2 * borderWidth,
+                               mBitmap.getConfig());
+               Canvas canvas = new Canvas(aOut);
+               canvas.drawColor(Color.TRANSPARENT);
+               canvas.drawRect(aRect, p);
+               canvas.drawBitmap(mBitmap, null, aRect, null);
+
+               ImageView aImage = (ImageView) v
+                               .findViewById(R.id.blankscreen_slidepreview);
+               aImage.setImageBitmap(aOut);
+               // TODO Auto-generated method stub
+               return v;
+       }
 }
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index efb3ae8..a6f6d38 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -17,6 +17,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
+import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -143,15 +144,27 @@ public class PresentationActivity extends Activity {
                Intent aIntent;
                switch (item.getItemId()) {
                case R.id.actionbar_presentation_submenu_options:
-                       //                      FragmentTransaction ft = 
getFragmentManager().beginTransaction();
-                       //                      
ft.replace(R.id.presentation_innerFrame, new SettingsFragment());
-                       //                      
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
-                       //                      ft.addToBackStack(null);
-                       //                      ft.commit();
+
                        aIntent = new Intent(this, SettingsActivity.class);
                        startActivity(aIntent);
                        return true;
                case R.id.actionbar_presentation_submenu_blank:
+                       boolean aRelevantFragmentVisible = mPresentationFragment
+                                       .isVisible() || 
mThumbnailFragment.isVisible();
+                       if (aRelevantFragmentVisible) {
+                               Bitmap aBitmap = 
mCommunicationService.getSlideShow().getImage(
+                                               
mCommunicationService.getSlideShow()
+                                                               
.getCurrentSlide());
+
+                               BlankScreenFragment aFragment = new 
BlankScreenFragment(aBitmap);
+
+                               FragmentTransaction ft = getFragmentManager()
+                                               .beginTransaction();
+                               ft.replace(R.id.presentation_innerFrame, 
aFragment);
+                               
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
+                               ft.addToBackStack(null);
+                               ft.commit();
+                       }
                        return true;
                default:
                        return super.onOptionsItemSelected(item);
commit 99029f1de9af2ae86124718329804a802ae2fc90
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 15:32:24 2012 +0200

    Initial Blank screen layout.
    
    Change-Id: I I I I7af89267be559a44cc3ed2c3ae999a252709b730

diff --git a/android/sdremote/res/drawable/rectangle_black.xml 
b/android/sdremote/res/drawable/rectangle_black.xml
new file mode 100644
index 0000000..f854e60
--- /dev/null
+++ b/android/sdremote/res/drawable/rectangle_black.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android";
+    android:shape="rectangle" >
+
+    <size
+        android:height="240dip"
+        android:width="320dip" />
+
+    <solid android:color="@color/black" />
+
+</shape>
\ No newline at end of file
diff --git a/android/sdremote/res/layout/fragment_blankscreen.xml 
b/android/sdremote/res/layout/fragment_blankscreen.xml
new file mode 100644
index 0000000..f717f24
--- /dev/null
+++ b/android/sdremote/res/layout/fragment_blankscreen.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android";
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_margin="10dip"
+    android:gravity="left"
+    android:orientation="vertical" >
+
+    <ImageView
+        android:id="@+id/blankscreen_blankimage"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:scaleType="fitXY"
+        android:src="@drawable/rectangle_black" />
+
+    <ImageView
+        android:id="@+id/blankscreen_divider"
+        android:layout_width="fill_parent"
+        android:layout_height="1dip"
+        android:layout_below="@+id/blankscreen_blankimage"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="10dip"
+        android:src="@color/medium_grey" />
+
+    <ImageView
+        android:id="@+id/blankscreen_slidepreview"
+        android:layout_width="0dip"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/blankscreen_divider"
+        android:layout_toLeftOf="@+id/blankscreen_return"
+        android:src="@drawable/rectangle_black" />
+
+    <TextView
+        android:id="@+id/blankscreen_return"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:gravity="center"
+        android:layout_below="@id/blankscreen_divider"
+        android:text="@string/blankscreen_return" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/android/sdremote/res/values/strings.xml 
b/android/sdremote/res/values/strings.xml
index c3117cf..b803ff0 100644
--- a/android/sdremote/res/values/strings.xml
+++ b/android/sdremote/res/values/strings.xml
@@ -17,4 +17,5 @@
     <string name="options_autodecline">Auto-decline calls</string>
     <string name="options_volumeswitching">Change slides using volume 
buttons</string>
     <string name="options_switchcomputer">Switch computer</string>
+    <string name="blankscreen_return">Return to Slide</string>
 </resources>
\ No newline at end of file
diff --git a/android/sdremote/res/values/styles.xml 
b/android/sdremote/res/values/styles.xml
index 8fa0c2d..c95fb0c 100644
--- a/android/sdremote/res/values/styles.xml
+++ b/android/sdremote/res/values/styles.xml
@@ -4,7 +4,9 @@
     <color name="orange">#EE4400</color>
     <color name="grey">#303030</color>
     <color name="white">#FFFFFF</color>
+    <color name="black">#000000</color>
     <color name="light_grey">#E8E9E8</color>
+    <color name="medium_grey">#C1C2C1</color>
 
     <integer name="thumbnail_border_width">3</integer>
 
@@ -45,7 +47,7 @@
         <item 
name="android:textAppearanceLargePopupMenu">@style/Theme.ImpressRemote.ActionBarMenuItem</item>
 <!-- <item 
name="android:actionBarWidgetTheme">@style/Theme.ImpressRemote.ActionBarWidget</item>
 -->
         <item 
name="android:actionDropDownStyle">@style/Theme.ImpressRemote.ActionBarMenu</item>
         <item name="android:windowBackground">@color/light_grey</item>
-         <item 
name="android:homeAsUpIndicator">@drawable/up_indicator_white</item>
+        <item 
name="android:homeAsUpIndicator">@drawable/up_indicator_white</item>
     </style>
 
 </resources>
\ No newline at end of file
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
new file mode 100644
index 0000000..934baea
--- /dev/null
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/BlankScreenFragment.java
@@ -0,0 +1,7 @@
+package org.libreoffice.impressremote;
+
+import android.app.Fragment;
+
+public class BlankScreenFragment extends Fragment {
+
+}
commit 9e7325a4461f66d2c987e8619ba776e0bf66a456
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 14:50:15 2012 +0200

    Volume button switching now setting dependent.
    
    Change-Id: I29b2f4652937995b2cecd10f6f2d7934f25b4b81

diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index dbcc2e7..efb3ae8 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -16,11 +16,13 @@ import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
 import android.os.Messenger;
+import android.preference.PreferenceManager;
 import android.text.format.DateFormat;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -71,7 +73,13 @@ public class PresentationActivity extends Activity {
 
        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
-               if (mPresentationFragment.isVisible() || 
mThumbnailFragment.isVisible()) {
+               SharedPreferences aPref = PreferenceManager
+                               .getDefaultSharedPreferences(this);
+               boolean aVolumeSwitching = 
aPref.getBoolean("option_volumeswitching",
+                               false);
+               boolean aRelevantFragmentVisible = 
mPresentationFragment.isVisible()
+                               || mThumbnailFragment.isVisible();
+               if (aVolumeSwitching && aRelevantFragmentVisible) {
 
                        int action = event.getAction();
                        int keyCode = event.getKeyCode();
commit 4aedd7cd01d712f9b0863bf7f7bb7aa0e33fbc04
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 14:46:44 2012 +0200

    Enabled switching slides with volume buttons.
    
    Change-Id: Iedfacd8c0834c9273a7e805658e82180f748f81b

diff --git a/android/sdremote/res/xml/preferences.xml 
b/android/sdremote/res/xml/preferences.xml
index b475ca6..e039995 100644
--- a/android/sdremote/res/xml/preferences.xml
+++ b/android/sdremote/res/xml/preferences.xml
@@ -1,7 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"; >
-    <SwitchPreference android:defaultValue="false" 
android:title="@string/options_autodecline"/>
-    <SwitchPreference android:defaultValue="false" 
android:title="@string/options_volumeswitching"/>
 
+    <!-- <SwitchPreference android:defaultValue="false" 
android:title="@string/options_autodecline" android:key="option_autodecline"/> 
-->
+    <SwitchPreference
+        android:defaultValue="false"
+        android:key="option_volumeswitching"
+        android:title="@string/options_volumeswitching" />
+
+    <Preference
+        android:key="option_switchcomputer"
+        android:title="@string/options_switchcomputer" />
 
 </PreferenceScreen>
\ No newline at end of file
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index 8cbfcfd..dbcc2e7 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -69,6 +69,28 @@ public class PresentationActivity extends Activity {
                fragmentTransaction.commit();
        }
 
+       @Override
+       public boolean dispatchKeyEvent(KeyEvent event) {
+               if (mPresentationFragment.isVisible() || 
mThumbnailFragment.isVisible()) {
+
+                       int action = event.getAction();
+                       int keyCode = event.getKeyCode();
+                       switch (keyCode) {
+                       case KeyEvent.KEYCODE_VOLUME_UP:
+                               if (action == KeyEvent.ACTION_UP) {
+                                       
mCommunicationService.getTransmitter().nextTransition();
+                               }
+                               return true;
+                       case KeyEvent.KEYCODE_VOLUME_DOWN:
+                               if (action == KeyEvent.ACTION_DOWN) {
+                                       
mCommunicationService.getTransmitter().previousTransition();
+                               }
+                               return true;
+                       }
+               }
+               return super.dispatchKeyEvent(event);
+       }
+
        private ServiceConnection mConnection = new ServiceConnection() {
                @Override
                public void onServiceConnected(ComponentName aClassName,
commit 99b5672b44cd274e2cd3d303ce43bca571ecc902
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 13:48:57 2012 +0200

    Styled the options activity.
    
    Change-Id: Ideef94c978ae3bad536c9eb4ce740f985441cea1

diff --git a/android/sdremote/AndroidManifest.xml 
b/android/sdremote/AndroidManifest.xml
index 0f8b0fb..14f457b 100644
--- a/android/sdremote/AndroidManifest.xml
+++ b/android/sdremote/AndroidManifest.xml
@@ -11,9 +11,7 @@
         android:targetSdkVersion="14" />
 
     <application
-        android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
-        android:logo="@drawable/empty"
         android:theme="@style/Theme.ImpressRemote" >
         <activity
             android:name="TestClient"
@@ -34,6 +32,7 @@
         </activity>
         <activity
             android:name=".SettingsActivity"
+            android:icon="@drawable/icon_options"
             android:label="@string/options" >
         </activity>
     </application>
diff --git a/android/sdremote/res/drawable/icon_options.png 
b/android/sdremote/res/drawable/icon_options.png
new file mode 100644
index 0000000..ab79d13
Binary files /dev/null and b/android/sdremote/res/drawable/icon_options.png 
differ
diff --git a/android/sdremote/res/drawable/up_indicator_white.png 
b/android/sdremote/res/drawable/up_indicator_white.png
new file mode 100644
index 0000000..9a72a23
Binary files /dev/null and 
b/android/sdremote/res/drawable/up_indicator_white.png differ
diff --git a/android/sdremote/res/values/styles.xml 
b/android/sdremote/res/values/styles.xml
index 04143c4..8fa0c2d 100644
--- a/android/sdremote/res/values/styles.xml
+++ b/android/sdremote/res/values/styles.xml
@@ -11,8 +11,14 @@
     <color name="thumbnail_border">#B4B4B4</color>
     <color name="thumbnail_border_selected">#EE4400</color>
 
+    <style name="Theme.ImpressRemote.ActionBar.Title" 
parent="android:style/Widget.Holo.Light.ActionBar">
+        <item name="android:textColor">@color/white</item>
+        <item name="android:textSize">18dp</item>
+    </style>
+
     <style name="Theme.ImpressRemote.ActionBar" 
parent="android:style/Widget.Holo.Light.ActionBar">
         <item name="android:background">@color/orange</item>
+        <item 
name="android:titleTextStyle">@style/Theme.ImpressRemote.ActionBar.Title</item>
     </style>
 
     <style name="Theme.ImpressRemote.ActionBarWidget" 
parent="android:style/Widget.Holo.Light">
@@ -35,11 +41,11 @@
     <style name="Theme.ImpressRemote" parent="android:style/Theme.Holo.Light">
         <item 
name="android:actionBarStyle">@style/Theme.ImpressRemote.ActionBar</item>
         <item 
name="android:popupMenuStyle">@style/Theme.ImpressRemote.ActionBarMenu</item>
-
         <item 
name="android:dropDownListViewStyle">@style/Theme.ImpressRemote.ActionBarMenuItem</item>
-        <item 
name="android:textAppearanceLargePopupMenu">@style/Theme.ImpressRemote.ActionBarMenuItem</item>
        <!-- <item 
name="android:actionBarWidgetTheme">@style/Theme.ImpressRemote.ActionBarWidget</item>
 -->
+        <item 
name="android:textAppearanceLargePopupMenu">@style/Theme.ImpressRemote.ActionBarMenuItem</item>
 <!-- <item 
name="android:actionBarWidgetTheme">@style/Theme.ImpressRemote.ActionBarWidget</item>
 -->
         <item 
name="android:actionDropDownStyle">@style/Theme.ImpressRemote.ActionBarMenu</item>
         <item name="android:windowBackground">@color/light_grey</item>
+         <item 
name="android:homeAsUpIndicator">@drawable/up_indicator_white</item>
     </style>
 
 </resources>
\ No newline at end of file
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index 8934520..8cbfcfd 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -167,10 +167,7 @@ public class PresentationActivity extends Activity {
                public ActionBarManager() {
 
                        ActionBar aBar = getActionBar();
-                       aBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                                       ActionBar.DISPLAY_SHOW_CUSTOM
-                                                       | 
ActionBar.DISPLAY_SHOW_TITLE
-                                                       | 
ActionBar.DISPLAY_USE_LOGO);
+                       aBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
                        aBar.setCustomView(R.layout.presentation_actionbar);
 
                        mThumbnailButton = (ToggleButton) aBar.getCustomView()
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java
index 6bdc9fc..d0119a0 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java
@@ -2,6 +2,7 @@ package org.libreoffice.impressremote;
 
 import android.app.Activity;
 import android.os.Bundle;
+import android.view.MenuItem;
 
 public class SettingsActivity extends Activity {
 
@@ -10,5 +11,17 @@ public class SettingsActivity extends Activity {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_settings);
+               getActionBar().setDisplayHomeAsUpEnabled(true);
+       }
+
+       @Override
+       public boolean onOptionsItemSelected(MenuItem item) {
+               switch (item.getItemId()) {
+               case android.R.id.home:
+                       finish();
+                       return true;
+               default:
+                       return super.onOptionsItemSelected(item);
+               }
        }
 }
commit a65eb4662c170d64924d909f87136d3a6a07856c
Author: Andrzej J.R. Hunt <andr...@ahunt.org>
Date:   Sat Jul 28 13:02:13 2012 +0200

    Added options screen.
    
    Change-Id: Ifb7abc67383a72969e37d8e46a14fdaa76e47112

diff --git a/android/sdremote/AndroidManifest.xml 
b/android/sdremote/AndroidManifest.xml
index 4543b71..0f8b0fb 100644
--- a/android/sdremote/AndroidManifest.xml
+++ b/android/sdremote/AndroidManifest.xml
@@ -17,8 +17,7 @@
         android:theme="@style/Theme.ImpressRemote" >
         <activity
             android:name="TestClient"
-            android:label=""
-            >
+            android:label="" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 
@@ -33,6 +32,10 @@
             android:name=".PresentationActivity"
             android:label="@string/title_activity_presentation" >
         </activity>
+        <activity
+            android:name=".SettingsActivity"
+            android:label="@string/options" >
+        </activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/android/sdremote/res/layout/activity_settings.xml 
b/android/sdremote/res/layout/activity_settings.xml
new file mode 100644
index 0000000..be5e645
--- /dev/null
+++ b/android/sdremote/res/layout/activity_settings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fragment xmlns:android="http://schemas.android.com/apk/res/android";
+    android:id="@+id/settings_fragment"
+    android:name="org.libreoffice.impressremote.SettingsFragment"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent" />
diff --git a/android/sdremote/res/values/strings.xml 
b/android/sdremote/res/values/strings.xml
index 991d692..c3117cf 100644
--- a/android/sdremote/res/values/strings.xml
+++ b/android/sdremote/res/values/strings.xml
@@ -14,4 +14,7 @@
     <string name="clock_timer_restart">Restart</string>
     <string name="clock_timer_reset">Reset</string>
     <string name="clock_timer_resume">Resume</string>
+    <string name="options_autodecline">Auto-decline calls</string>
+    <string name="options_volumeswitching">Change slides using volume 
buttons</string>
+    <string name="options_switchcomputer">Switch computer</string>
 </resources>
\ No newline at end of file
diff --git a/android/sdremote/res/values/styles.xml 
b/android/sdremote/res/values/styles.xml
index bb11845..04143c4 100644
--- a/android/sdremote/res/values/styles.xml
+++ b/android/sdremote/res/values/styles.xml
@@ -13,7 +13,6 @@
 
     <style name="Theme.ImpressRemote.ActionBar" 
parent="android:style/Widget.Holo.Light.ActionBar">
         <item name="android:background">@color/orange</item>
-        <item name="android:displayOptions">showCustom</item>
     </style>
 
     <style name="Theme.ImpressRemote.ActionBarWidget" 
parent="android:style/Widget.Holo.Light">
diff --git a/android/sdremote/res/xml/preferences.xml 
b/android/sdremote/res/xml/preferences.xml
new file mode 100644
index 0000000..b475ca6
--- /dev/null
+++ b/android/sdremote/res/xml/preferences.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"; >
+    <SwitchPreference android:defaultValue="false" 
android:title="@string/options_autodecline"/>
+    <SwitchPreference android:defaultValue="false" 
android:title="@string/options_volumeswitching"/>
+
+
+</PreferenceScreen>
\ No newline at end of file
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
index fb24076..8934520 100644
--- 
a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ 
b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -25,6 +25,7 @@ import android.text.format.DateFormat;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.Menu;
+import android.view.MenuItem;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -68,13 +69,6 @@ public class PresentationActivity extends Activity {
                fragmentTransaction.commit();
        }
 
-       @Override
-       public boolean onCreateOptionsMenu(Menu menu) {
-               getMenuInflater().inflate(R.menu.actionbar_presentation, menu);
-               mActionBarManager = new ActionBarManager();
-               return true;
-       }
-
        private ServiceConnection mConnection = new ServiceConnection() {
                @Override
                public void onServiceConnected(ComponentName aClassName,
@@ -106,6 +100,34 @@ public class PresentationActivity extends Activity {
                }
        }
 
+       // ---------------------------------------------- ACTION BAR 
---------------
+       @Override
+       public boolean onCreateOptionsMenu(Menu menu) {
+               getMenuInflater().inflate(R.menu.actionbar_presentation, menu);
+               mActionBarManager = new ActionBarManager();
+               return true;
+       }
+
+       @Override
+       public boolean onOptionsItemSelected(MenuItem item) {
+               Intent aIntent;
+               switch (item.getItemId()) {
+               case R.id.actionbar_presentation_submenu_options:
+                       //                      FragmentTransaction ft = 
getFragmentManager().beginTransaction();
+                       //                      
ft.replace(R.id.presentation_innerFrame, new SettingsFragment());
+                       //                      
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
+                       //                      ft.addToBackStack(null);
+                       //                      ft.commit();
+                       aIntent = new Intent(this, SettingsActivity.class);
+                       startActivity(aIntent);
+                       return true;
+               case R.id.actionbar_presentation_submenu_blank:
+                       return true;
+               default:
+                       return super.onOptionsItemSelected(item);
+               }
+       }
+
        private class ActionBarManager implements OnClickListener,
                        FragmentManager.OnBackStackChangedListener,
                        TextView.OnEditorActionListener {
@@ -113,6 +135,9 @@ public class PresentationActivity extends Activity {
                private ToggleButton mTimeLabel;
                private ToggleButton mThumbnailButton;
 
+               private View mDropdownOptions;
+               private View mDropdownBlank;
+
                // ------- CLOCKBAR
                private View mClockBar;
                private ToggleButton mClockBar_clockButton;
@@ -142,6 +167,10 @@ public class PresentationActivity extends Activity {
                public ActionBarManager() {
 
                        ActionBar aBar = getActionBar();
+                       aBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
+                                       ActionBar.DISPLAY_SHOW_CUSTOM
+                                                       | 
ActionBar.DISPLAY_SHOW_TITLE
+                                                       | 
ActionBar.DISPLAY_USE_LOGO);
                        aBar.setCustomView(R.layout.presentation_actionbar);
 
                        mThumbnailButton = (ToggleButton) aBar.getCustomView()
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java 
b/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java
new file mode 100644
index 0000000..6bdc9fc
--- /dev/null
+++ b/android/sdremote/src/org/libreoffice/impressremote/SettingsActivity.java
@@ -0,0 +1,14 @@
+package org.libreoffice.impressremote;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class SettingsActivity extends Activity {
+
+       @Override
+       protected void onCreate(Bundle savedInstanceState) {
+               // TODO Auto-generated method stub
+               super.onCreate(savedInstanceState);
+               setContentView(R.layout.activity_settings);
+       }
+}
diff --git 
a/android/sdremote/src/org/libreoffice/impressremote/SettingsFragment.java 
b/android/sdremote/src/org/libreoffice/impressremote/SettingsFragment.java
new file mode 100644
index 0000000..b6f02f6
--- /dev/null
+++ b/android/sdremote/src/org/libreoffice/impressremote/SettingsFragment.java
@@ -0,0 +1,13 @@
+package org.libreoffice.impressremote;
+
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+
+public class SettingsFragment extends PreferenceFragment {
+       @Override
+       public void onCreate(Bundle savedInstanceState) {
+               super.onCreate(savedInstanceState);
+
+               addPreferencesFromResource(R.xml.preferences);
+       }
+}
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to