[Libreoffice-commits] .: Branch 'feature/remote' - 3 commits - android/sdremote sd/source
Andrzej J.R. Hunt
ajrhunt at kemper.freedesktop.org
Tue Jul 24 12:25:06 PDT 2012
android/sdremote/res/layout/fragment_presentation.xml | 8
android/sdremote/res/menu/actionbar_presentation.xml | 17 +
android/sdremote/res/values/strings.xml | 6
android/sdremote/src/org/libreoffice/impressremote/ActionBarManager.java | 51 +++++
android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java | 16 -
android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java | 90 ++++++++--
android/sdremote/src/org/libreoffice/impressremote/TestClient.java | 1
android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java | 10 +
android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java | 3
android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java | 66 ++++++-
android/sdremote/src/pl/polidea/coverflow/CoverFlow.java | 2
sd/source/ui/remotecontrol/ImagePreparer.cxx | 2
12 files changed, 234 insertions(+), 38 deletions(-)
New commits:
commit 2c777ebfa6c6a3fea0cbad7ebc8baf4ad44ae907
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date: Tue Jul 24 21:24:26 2012 +0200
Added basic actionbar code, improved cover flow scaling.
Change-Id: I68dcbf2449ed61f06503442a3621cccb97f1e697
diff --git a/android/sdremote/res/layout/fragment_presentation.xml b/android/sdremote/res/layout/fragment_presentation.xml
index 53e7737..2d17759 100644
--- a/android/sdremote/res/layout/fragment_presentation.xml
+++ b/android/sdremote/res/layout/fragment_presentation.xml
@@ -13,10 +13,7 @@
android:layout_marginTop="5dip"
coverflow:imageHeight="150dip"
coverflow:imageWidth="180dip"
-
coverflow:withReflection="false" />
- <!-- coverflow:imageReflectionRatio="0.2"
- coverflow:reflectionGap="2dip" -->
<ImageView
android:id="@+id/presentation_handle"
@@ -24,7 +21,7 @@
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
- android:contentDescription="TODO"
+ android:contentDescription="@string/presentation_ui_resizehandle"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:scaleType="fitXY"
@@ -38,8 +35,7 @@
<WebView
android:id="@+id/presentation_notes"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="" />
+ android:layout_height="wrap_content" />
</ScrollView>
</LinearLayout>
\ No newline at end of file
diff --git a/android/sdremote/res/menu/actionbar_presentation.xml b/android/sdremote/res/menu/actionbar_presentation.xml
new file mode 100644
index 0000000..020fae1
--- /dev/null
+++ b/android/sdremote/res/menu/actionbar_presentation.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:id="@+id/actionbar_presenation_thumbnail"></item>
+ <item android:id="@+id/actionbar_presentation_timer">
+ <menu>
+ <item android:id="@+id/actionbar_presentation_timer_pause"/>
+ </menu>
+ </item>
+ <item android:id="@+id/actionbar_presentation_submenu">
+ <menu>
+ <item android:id="@+id/actionbar_presentation_submenu_blank" android:title="@string/presentation_blank_screen"/>
+ <item android:id="@+id/actionbar_presentation_submenu_options" android:title="@string/options"/>
+ </menu>
+ </item>
+
+
+</menu>
\ No newline at end of file
diff --git a/android/sdremote/res/values/strings.xml b/android/sdremote/res/values/strings.xml
index 668d073..c677dcb 100644
--- a/android/sdremote/res/values/strings.xml
+++ b/android/sdremote/res/values/strings.xml
@@ -2,7 +2,11 @@
<resources>
<string name="app_name">LibreOffice Remote</string>
- <string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_presentation">PresentationActivity</string>
+ <string name="presentation_ui_resizehandle">Handle to resize view.</string>
+ <string name="presentation_blank_screen">Blank Screen</string>
+ <string name="options">Options</string>
+ <string name="actionbar_timeformat">HH:mm</string>
+ <string name="actionbar_timerformat">h:m:ss</string>
</resources>
\ No newline at end of file
diff --git a/android/sdremote/src/org/libreoffice/impressremote/ActionBarManager.java b/android/sdremote/src/org/libreoffice/impressremote/ActionBarManager.java
index 44ef183..33ea95c 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/ActionBarManager.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/ActionBarManager.java
@@ -8,11 +8,62 @@
*/
package org.libreoffice.impressremote;
+import org.libreoffice.impressremote.communication.CommunicationService;
+
+import android.content.Context;
+import android.os.Handler;
+import android.text.format.DateFormat;
+import android.view.Menu;
+
/**
* Used to manage the action bar whenever a presentation is running.
*
*/
public class ActionBarManager {
+ private Context mContext;
+ private Menu mMenu;
+ private CommunicationService mCommunicationService;
+
+ /*
+ * True if the timer is being used as a timer, false if we are showing a
+ * clock.
+ */
+ private boolean mTimerOn = false;
+
+ public ActionBarManager(Context aContext, Menu aMenu,
+ CommunicationService aCommunicationService) {
+ mContext = aContext;
+ mMenu = aMenu;
+ mCommunicationService = aCommunicationService;
+ timerHandler.removeCallbacks(timerUpdateThread);
+ timerHandler.postDelayed(timerUpdateThread, 50);
+ }
+
+ private Handler timerHandler = new Handler();
+
+ private Thread timerUpdateThread = new Thread() {
+
+ @Override
+ public void run() {
+ // invalidateOptionsMenu();
+ CharSequence aTimeString;
+ long aTime = mCommunicationService.getSlideShow().getTimer()
+ .getTimeMillis();
+ if (mTimerOn) {
+ aTimeString = DateFormat.format(mContext.getResources()
+ .getString(R.string.actionbar_timerformat),
+ aTime);
+ } else {
+ aTimeString = DateFormat.format(mContext.getResources()
+ .getString(R.string.actionbar_timeformat),
+ System.currentTimeMillis());
+ }
+ // TODO: set the string
+ timerHandler.postDelayed(this, 50);
+
+ }
+
+ };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ 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 8806610..05c5c4a 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
@@ -21,8 +21,9 @@ public class PresentationActivity extends Activity {
private CommunicationService mCommunicationService;
private boolean mIsBound = false;
private FrameLayout mLayout;
- ThumbnailFragment mThumbnailFragment;
- PresentationFragment mPresentationFragment;
+ private ThumbnailFragment mThumbnailFragment;
+ private PresentationFragment mPresentationFragment;
+ private ActionBarManager mActionBarManager;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -49,16 +50,11 @@ public class PresentationActivity extends Activity {
mIsBound = true;
}
- // @Override
- // public boolean onCreateOptionsMenu(Menu menu) {
- // MenuInflater inflater = getMenuInflater();
- // inflater.inflate(R.menu.main_activity, menu);
- // return true;
- // }
-
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_presentation, menu);
+ getMenuInflater().inflate(R.menu.actionbar_presentation, menu);
+ mActionBarManager = new ActionBarManager(this, menu,
+ mCommunicationService);
return true;
}
diff --git a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
index 8cfa049..aec285b 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
@@ -47,6 +47,7 @@ public class PresentationFragment extends Fragment {
String summary = "<html><body>This is just a test<br/><ul><li>And item</li><li>And again</li></ul>More text<br/>Blabla<br/>Blabla<br/>blabla<br/>Blabla</body></html>";
mNotes.loadData(summary, "text/html", null);
+ mNotes.setBackgroundColor(Color.TRANSPARENT);
// TextView aText = new TextView();
// aText.setText
@@ -79,11 +80,13 @@ public class PresentationFragment extends Fragment {
break;
case MotionEvent.ACTION_MOVE:
LayoutParams aParams = mTopView.getLayoutParams();
+ int aHeightOriginal = mTopView.getHeight();
int aHeight = mTopView.getHeight();
final int DRAG_MARGIN = 120;
// Set Height
+
aParams.height = aHeight + (int) (aEvent.getY());
int aViewSize = mLayout.getHeight();
if (aParams.height < DRAG_MARGIN) {
@@ -91,23 +94,24 @@ public class PresentationFragment extends Fragment {
} else if (aParams.height > aViewSize - DRAG_MARGIN) {
aParams.height = aViewSize - DRAG_MARGIN;
}
+
+ int aDiff = aParams.height - aHeightOriginal;
mTopView.setLayoutParams(aParams);
// Now deal with the internal height
+ System.out.println("Before:W:" + mTopView.getImageWidth()
+ + ":H:" + mTopView.getImageHeight());
AbstractCoverFlowImageAdapter aAdapter = (AbstractCoverFlowImageAdapter) mTopView
.getAdapter();
- // double adjustRatio = (mTopView.getImageHeight() + (int) (aEvent
- // .getY())) / mTopView.getImageHeight();
- aAdapter.setHeight(mTopView.getImageHeight()
- + (int) (aEvent.getY()));
- mTopView.setImageHeight(mTopView.getImageHeight()
- + (int) (aEvent.getY()));
-
- // aAdapter.setWidth((float) (adjustRatio * mTopView
- // .getImageWidth()));
- // mTopView.setImageWidth((float) (adjustRatio * mTopView
- // .getImageWidth()));
+ int aHeightNew = (int) (mTopView.getImageHeight() + aDiff);
+ aAdapter.setHeight(aHeightNew);
+ mTopView.setImageHeight(aHeightNew);
+ int aWidthNew = aHeightNew * 180 / 150;
+ aAdapter.setWidth(aWidthNew);
+ mTopView.setImageWidth(aWidthNew);
aAdapter.notifyDataSetChanged();
+ System.out.println("After:W:" + mTopView.getImageWidth()
+ + ":H:" + mTopView.getImageHeight());
break;
}
// TODO Auto-generated method stub
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java b/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
index 85e0c27..34cf8aa 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
@@ -58,8 +58,43 @@ public class SlideShow {
*/
private long aTime = 0;
+ private long mCountdownTime = 0;
+
private boolean mIsRunning = false;
+ private boolean mIsCountdown = false;
+
+ /**
+ * Set whether this timer should be a normal or a countdown timer.
+ * @param aIsCountdown
+ * Whether this should be a countdown timer.
+ */
+ public void setCountdown(boolean aIsCountdown) {
+ mIsCountdown = aIsCountdown;
+ if (mIsRunning) {
+ mIsRunning = false;
+ aTime = 0;
+ }
+ }
+
+ /**
+ * Set the countdown time. Can be set, and isn't lost, whatever mode
+ * the timer is running in.
+ * @param aCountdownTime
+ * The countdown time.
+ */
+ public void setCountdownTime(long aCountdownTime) {
+ mCountdownTime = aCountdownTime;
+ }
+
+ public long getCountdownTime() {
+ return mCountdownTime;
+ }
+
+ public boolean isCountdown() {
+ return mIsCountdown;
+ }
+
public boolean isRunning() {
return mIsRunning;
}
@@ -77,6 +112,7 @@ public class SlideShow {
return;
aTime = System.currentTimeMillis() - aTime;
+ mIsRunning = true;
}
public void stopTimer() {
@@ -84,15 +120,35 @@ public class SlideShow {
return;
aTime = System.currentTimeMillis() - aTime;
+ mIsRunning = false;
}
+ /**
+ * Get either how long this timer has been running, or how long the
+ * timer still has left to run.
+ * @return
+ */
public long getTimeMillis() {
- if (mIsRunning)
- return (System.currentTimeMillis() - aTime);
- else
- return aTime;
- }
+ long aTimeRunning;
+ // Determine how long we've been going.
+ if (mIsRunning) {
+ aTimeRunning = System.currentTimeMillis() - aTime;
+ } else {
+ aTimeRunning = aTime;
+ }
+ // And give the time going, or time left
+ if (!mIsCountdown) {
+ return aTimeRunning;
+ } else {
+ long aRet = mCountdownTime - aTimeRunning;
+ if (aRet < 0) { // We have completed!
+ mIsRunning = false;
+ aRet = 0;
+ }
+ return aRet;
+ }
+ }
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
commit 4b881c716acaa528da96a5b0ed81c5135465c7dd
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date: Tue Jul 24 16:52:02 2012 +0200
Added cover-flow resizing.
Change-Id: Iabe6fb8814a99a0d68376499c8a410684b075c1a
diff --git a/android/sdremote/res/layout/fragment_presentation.xml b/android/sdremote/res/layout/fragment_presentation.xml
index d40f517..53e7737 100644
--- a/android/sdremote/res/layout/fragment_presentation.xml
+++ b/android/sdremote/res/layout/fragment_presentation.xml
@@ -11,9 +11,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
- coverflow:imageHeight="160dip"
-
- coverflow:imageWidth="200dip"
+ coverflow:imageHeight="150dip"
+ coverflow:imageWidth="180dip"
coverflow:withReflection="false" />
<!-- coverflow:imageReflectionRatio="0.2"
@@ -39,7 +38,8 @@
<WebView
android:id="@+id/presentation_notes"
android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ android:background="" />
</ScrollView>
</LinearLayout>
\ No newline at end of file
diff --git a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
index 3c769fc..8cfa049 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
@@ -8,6 +8,10 @@ import pl.polidea.coverflow.CoverFlow;
import android.app.Fragment;
import android.content.Context;
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.os.Message;
import android.view.LayoutInflater;
@@ -44,7 +48,11 @@ public class PresentationFragment extends Fragment {
String summary = "<html><body>This is just a test<br/><ul><li>And item</li><li>And again</li></ul>More text<br/>Blabla<br/>Blabla<br/>blabla<br/>Blabla</body></html>";
mNotes.loadData(summary, "text/html", null);
+ // TextView aText = new TextView();
+ // aText.setText
+
mTopView = (CoverFlow) v.findViewById(R.id.presentation_coverflow);
+
mLayout = v.findViewById(R.id.presentation_layout);
mHandle = (ImageView) v.findViewById(R.id.presentation_handle);
@@ -62,8 +70,6 @@ public class PresentationFragment extends Fragment {
@Override
public boolean onTouch(View aView, MotionEvent aEvent) {
- LayoutParams aParams = mTopView.getLayoutParams();
-
switch (aEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
mHandle.setImageResource(R.drawable.handle_light);
@@ -72,20 +78,36 @@ public class PresentationFragment extends Fragment {
mHandle.setImageResource(R.drawable.handle_default);
break;
case MotionEvent.ACTION_MOVE:
+ LayoutParams aParams = mTopView.getLayoutParams();
int aHeight = mTopView.getHeight();
- aParams.height = aHeight + (int) (aEvent.getY());
final int DRAG_MARGIN = 120;
- int aSize = mLayout.getHeight();
+ // Set Height
+ aParams.height = aHeight + (int) (aEvent.getY());
+ int aViewSize = mLayout.getHeight();
if (aParams.height < DRAG_MARGIN) {
aParams.height = DRAG_MARGIN;
- } else if (aParams.height > aSize - DRAG_MARGIN) {
- aParams.height = aSize - DRAG_MARGIN;
+ } else if (aParams.height > aViewSize - DRAG_MARGIN) {
+ aParams.height = aViewSize - DRAG_MARGIN;
}
-
mTopView.setLayoutParams(aParams);
- mTopView.setImageHeight(aParams.height);
+
+ // Now deal with the internal height
+ AbstractCoverFlowImageAdapter aAdapter = (AbstractCoverFlowImageAdapter) mTopView
+ .getAdapter();
+ // double adjustRatio = (mTopView.getImageHeight() + (int) (aEvent
+ // .getY())) / mTopView.getImageHeight();
+ aAdapter.setHeight(mTopView.getImageHeight()
+ + (int) (aEvent.getY()));
+ mTopView.setImageHeight(mTopView.getImageHeight()
+ + (int) (aEvent.getY()));
+
+ // aAdapter.setWidth((float) (adjustRatio * mTopView
+ // .getImageWidth()));
+ // mTopView.setImageWidth((float) (adjustRatio * mTopView
+ // .getImageWidth()));
+ aAdapter.notifyDataSetChanged();
break;
}
// TODO Auto-generated method stub
@@ -188,7 +210,27 @@ public class PresentationFragment extends Fragment {
@Override
protected Bitmap createBitmap(int position) {
Bitmap aBitmap = mSlideShow.getImage(position);
- return aBitmap;
+ 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
+ // + aBitmap.getWidth(), borderWidth
+ // + aBitmap.getHeight());
+ RectF aRect = new RectF(borderWidth, borderWidth, borderWidth
+ + 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(aBitmap, null, aRect, null);
+ canvas.drawBitmap(aBitmap, null, aRect, null);
+
+ return aOut;
}
}
}
diff --git a/android/sdremote/src/pl/polidea/coverflow/CoverFlow.java b/android/sdremote/src/pl/polidea/coverflow/CoverFlow.java
index 09da2a0..148d31c 100644
--- a/android/sdremote/src/pl/polidea/coverflow/CoverFlow.java
+++ b/android/sdremote/src/pl/polidea/coverflow/CoverFlow.java
@@ -52,7 +52,7 @@ public class CoverFlow extends Gallery {
/**
* The maximum zoom on the centre Child.
*/
- private int mMaxZoom = -120;
+ private int mMaxZoom = -160;
/**
* The Centre of the Coverflow.
commit 28c6766c3f84126aeff8e2bb7c874e7555b54cd2
Author: Andrzej J.R. Hunt <andrzej at ahunt.org>
Date: Tue Jul 24 14:34:59 2012 +0200
Enabled slide switching from cover flow, + fixes.
Change-Id: I4cb520a3c014ff54a36dbab6cdb35b70a8996e8e
diff --git a/android/sdremote/res/layout/fragment_presentation.xml b/android/sdremote/res/layout/fragment_presentation.xml
index fb50148..d40f517 100644
--- a/android/sdremote/res/layout/fragment_presentation.xml
+++ b/android/sdremote/res/layout/fragment_presentation.xml
@@ -11,11 +11,13 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
- coverflow:imageHeight="150dip"
- coverflow:imageReflectionRatio="0.2"
- coverflow:imageWidth="100dip"
- coverflow:reflectionGap="2dip"
- coverflow:withReflection="true" />
+ coverflow:imageHeight="160dip"
+
+ coverflow:imageWidth="200dip"
+
+ coverflow:withReflection="false" />
+ <!-- coverflow:imageReflectionRatio="0.2"
+ coverflow:reflectionGap="2dip" -->
<ImageView
android:id="@+id/presentation_handle"
diff --git a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
index 28ba8d0..3c769fc 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
@@ -18,6 +18,7 @@ import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.webkit.WebView;
import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ImageView;
public class PresentationFragment extends Fragment {
@@ -49,9 +50,8 @@ public class PresentationFragment extends Fragment {
mHandle = (ImageView) v.findViewById(R.id.presentation_handle);
mHandle.setOnTouchListener(new SizeListener());
- if (mCommunicationService != null && mSlideShow != null) {
- mTopView.setAdapter(new ThumbnailAdapter(mContext, mSlideShow));
- }
+ // Call again to set things up if necessary.
+ setCommunicationService(mCommunicationService);
return v;
}
@@ -85,6 +85,7 @@ public class PresentationFragment extends Fragment {
}
mTopView.setLayoutParams(aParams);
+ mTopView.setImageHeight(aParams.height);
break;
}
// TODO Auto-generated method stub
@@ -93,11 +94,18 @@ public class PresentationFragment extends Fragment {
}
// ----------------------------------------------------- CLICK LISTENER ----
- protected class ClickListener implements AdapterView.OnItemClickListener {
- public void onItemClick(AdapterView<?> parent, View v, int position,
- long id) {
+
+ protected class ClickListener implements OnItemSelectedListener {
+
+ @Override
+ public void onItemSelected(AdapterView<?> arg0, View arg1,
+ int aPosition, long arg3) {
if (mCommunicationService != null)
- mCommunicationService.getTransmitter().gotoSlide(position);
+ mCommunicationService.getTransmitter().gotoSlide(aPosition);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> arg0) {
}
}
@@ -105,10 +113,16 @@ public class PresentationFragment extends Fragment {
public void setCommunicationService(
CommunicationService aCommunicationService) {
mCommunicationService = aCommunicationService;
+ if (mCommunicationService == null)
+ return;
+
mSlideShow = mCommunicationService.getSlideShow();
- if (mTopView != null) {
+ if (mTopView != null && mSlideShow != null) {
mTopView.setAdapter(new ThumbnailAdapter(mContext, mSlideShow));
+ mTopView.setSelection(mSlideShow.getCurrentSlide(), true);
+ mTopView.setOnItemSelectedListener(new ClickListener());
}
+
}
public void handleMessage(Message aMessage) {
diff --git a/android/sdremote/src/org/libreoffice/impressremote/TestClient.java b/android/sdremote/src/org/libreoffice/impressremote/TestClient.java
index 7ecabbf..5620c5b 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/TestClient.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/TestClient.java
@@ -65,6 +65,7 @@ public class TestClient extends Activity {
// TODO Auto-generated method stub
mCommunicationService.disconnect();
stopService(new Intent(this, CommunicationService.class));
+ finish();
super.onBackPressed();
}
diff --git a/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java b/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
index de07603..2653277 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
@@ -24,6 +24,7 @@ import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
import android.widget.TextView;
public class ThumbnailFragment extends Fragment {
@@ -70,6 +71,10 @@ public class ThumbnailFragment extends Fragment {
private void setSelected(int position) {
formatUnselected(mCurrentImage, mCurrentText);
+ if (mGrid == null) {
+ return;
+ }
+
View aV = mGrid.getChildAt(position);
if (aV != null) {
mCurrentImage = (ImageView) aV.findViewById(R.id.sub_thumbnail);
@@ -191,6 +196,11 @@ public class ThumbnailFragment extends Fragment {
aImage.setImageBitmap(aBitmap);
}
+ // Width
+ int aWidth = (mGrid.getWidth()) / 3 - 20;
+ aImage.setMaxWidth(aWidth);
+ aImage.setScaleType(ScaleType.MATRIX);
+
aText.setText(String.valueOf(position + 1));
return v;
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
index 9d07833..6fd3623 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
@@ -55,6 +55,9 @@ public class Receiver {
if (aInstruction.equals("slide_updated")) {
int aSlideNumber = Integer.parseInt(aCommand.get(1));
+
+ mSlideShow.setCurrentSlide(aSlideNumber);
+
Message aMessage = Message.obtain(null,
CommunicationService.MSG_SLIDE_CHANGED);
Bundle aData = new Bundle();
diff --git a/sd/source/ui/remotecontrol/ImagePreparer.cxx b/sd/source/ui/remotecontrol/ImagePreparer.cxx
index 9497f87..b81ff77 100644
--- a/sd/source/ui/remotecontrol/ImagePreparer.cxx
+++ b/sd/source/ui/remotecontrol/ImagePreparer.cxx
@@ -58,7 +58,7 @@ void ImagePreparer::execute()
void ImagePreparer::sendPreview( sal_uInt32 aSlideNumber )
{
sal_uInt64 aSize;
- uno::Sequence<sal_Int8> aImageData = preparePreview( aSlideNumber, 140, 100,
+ uno::Sequence<sal_Int8> aImageData = preparePreview( aSlideNumber, 320, 240,
aSize );
if ( !xController->isRunning() )
return;
More information about the Libreoffice-commits
mailing list