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