Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
0357b778
Kaydet (Commit)
0357b778
authored
Agu 14, 2012
tarafından
Andrzej J.R. Hunt
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Implemented rotation of slideshow view.
Change-Id: Ib518e1609d21463273a00fcf161f20c80eae6a67
üst
e02468f6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
280 additions
and
142 deletions
+280
-142
AndroidManifest.xml
android/sdremote/AndroidManifest.xml
+2
-9
image_loading.png
android/sdremote/res/drawable/image_loading.png
+0
-0
fragment_presentation.xml
android/sdremote/res/layout-land/fragment_presentation.xml
+4
-4
activity_startpresentation.xml
android/sdremote/res/layout/activity_startpresentation.xml
+23
-0
strings.xml
android/sdremote/res/values/strings.xml
+4
-1
PairingActivity.java
...te/src/org/libreoffice/impressremote/PairingActivity.java
+6
-13
PresentationActivity.java
...c/org/libreoffice/impressremote/PresentationActivity.java
+20
-19
PresentationFragment.java
...c/org/libreoffice/impressremote/PresentationFragment.java
+39
-14
SelectorActivity.java
...e/src/org/libreoffice/impressremote/SelectorActivity.java
+6
-0
StartPresentationActivity.java
.../libreoffice/impressremote/StartPresentationActivity.java
+91
-0
ThumbnailFragment.java
.../src/org/libreoffice/impressremote/ThumbnailFragment.java
+27
-14
Client.java
...c/org/libreoffice/impressremote/communication/Client.java
+10
-2
CommunicationService.java
...ice/impressremote/communication/CommunicationService.java
+12
-14
Receiver.java
...org/libreoffice/impressremote/communication/Receiver.java
+26
-51
SlideShow.java
...rg/libreoffice/impressremote/communication/SlideShow.java
+10
-1
TestClient.java
...g/libreoffice/impressremote/communication/TestClient.java
+0
-0
No files found.
android/sdremote/AndroidManifest.xml
Dosyayı görüntüle @
0357b778
...
@@ -20,21 +20,14 @@
...
@@ -20,21 +20,14 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
android:name=
".communication.TestClient"
android:label=
"Remote--Direct"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
<service
android:name=
".communication.CommunicationService"
>
<service
android:name=
".communication.CommunicationService"
>
</service>
</service>
<activity
android:name=
".PairingActivity"
>
<activity
android:name=
".PairingActivity"
>
</activity>
</activity>
<activity
android:name=
".StartPresentationActivity"
>
</activity>
<activity
<activity
android:name=
".PresentationActivity"
android:name=
".PresentationActivity"
android:label=
"@string/title_activity_presentation"
>
android:label=
"@string/title_activity_presentation"
>
...
...
android/sdremote/res/drawable/image_loading.png
0 → 100644
Dosyayı görüntüle @
0357b778
287 Bytes
android/sdremote/res/layout-land/fragment_presentation.xml
Dosyayı görüntüle @
0357b778
...
@@ -13,8 +13,8 @@
...
@@ -13,8 +13,8 @@
<pl.polidea.coverflow.CoverFlow
<pl.polidea.coverflow.CoverFlow
xmlns:coverflow=
"http://schemas.android.com/apk/res/org.libreoffice.impressremote"
xmlns:coverflow=
"http://schemas.android.com/apk/res/org.libreoffice.impressremote"
android:id=
"@+id/presentation_coverflow"
android:id=
"@+id/presentation_coverflow"
android:layout_width=
"
fill_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"
wrap_cont
ent"
android:layout_height=
"
match_par
ent"
android:layout_marginTop=
"5dip"
android:layout_marginTop=
"5dip"
coverflow:imageHeight=
"150dip"
coverflow:imageHeight=
"150dip"
coverflow:imageWidth=
"180dip"
coverflow:imageWidth=
"180dip"
...
@@ -42,8 +42,8 @@
...
@@ -42,8 +42,8 @@
<ScrollView
<ScrollView
android:id=
"@+id/presentation_scrollview"
android:id=
"@+id/presentation_scrollview"
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"
wrap_cont
ent"
>
android:layout_height=
"
match_par
ent"
>
<WebView
<WebView
android:id=
"@+id/presentation_notes"
android:id=
"@+id/presentation_notes"
...
...
android/sdremote/res/layout/activity_startpresentation.xml
0 → 100644
Dosyayı görüntüle @
0357b778
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<TextView
android:id=
"@+id/startpresentation_instruction"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_margin=
"5dip"
android:text=
"@string/startpresentation_instruction"
/>
<Button
android:id=
"@+id/startpresentation_button"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:text=
"@string/startpresentation_button"
/>
</LinearLayout>
\ No newline at end of file
android/sdremote/res/values/strings.xml
Dosyayı görüntüle @
0357b778
...
@@ -24,7 +24,9 @@
...
@@ -24,7 +24,9 @@
<string
name=
"wifi"
>
WI-FI
</string>
<string
name=
"wifi"
>
WI-FI
</string>
<string
name=
"selector_noservers"
>
Searching for computers…
</string>
<string
name=
"selector_noservers"
>
Searching for computers…
</string>
<string
name=
"pairing_instructions_1"
>
In Impress, click on the "Slideshow" menu and select "Impress Remote".
</string>
<string
name=
"pairing_instructions_1"
>
In Impress, click on the "Slideshow" menu and select "Impress Remote".
</string>
<string
name=
"pairing_instructions_2_deviceName"
>
Choose
"{1}
" as your device.
</string>
<string
name=
"pairing_instructions_2_deviceName"
>
Choose
\"{0}\
" as your device.
</string>
<string
name=
"pairing_instructions_3"
>
Then input this PIN:
</string>
<string
name=
"pairing_instructions_3"
>
Then input this PIN:
</string>
<string
name=
"startpresentation_instruction"
>
No presentation is currently running.
</string>
<string
name=
"startpresentation_button"
>
Start Presentation
</string>
</resources>
</resources>
\ No newline at end of file
android/sdremote/src/org/libreoffice/impressremote/PairingActivity.java
Dosyayı görüntüle @
0357b778
...
@@ -39,21 +39,12 @@ public class PairingActivity extends Activity {
...
@@ -39,21 +39,12 @@ public class PairingActivity extends Activity {
Context
.
BIND_IMPORTANT
);
Context
.
BIND_IMPORTANT
);
mIsBound
=
true
;
mIsBound
=
true
;
mPinText
=
(
TextView
)
findViewById
(
R
.
id
.
pairing_pin
);
IntentFilter
aFilter
=
new
IntentFilter
(
IntentFilter
aFilter
=
new
IntentFilter
(
CommunicationService
.
MSG_PAIRING_STARTED
);
CommunicationService
.
MSG_PAIRING_STARTED
);
aFilter
.
addAction
(
CommunicationService
.
MSG_PAIRING_SUCCESSFUL
);
aFilter
.
addAction
(
CommunicationService
.
MSG_PAIRING_SUCCESSFUL
);
LocalBroadcastManager
.
getInstance
(
this
).
registerReceiver
(
mListener
,
LocalBroadcastManager
.
getInstance
(
this
).
registerReceiver
(
mListener
,
aFilter
);
aFilter
);
// mBluetoothContainer = findViewById(R.id.selector_container_bluetooth);
// mBluetoothList = (LinearLayout) findViewById(R.id.selector_list_bluetooth);
// mNetworkContainer = findViewById(R.id.selector_container_network);
// mNetworkList = (LinearLayout) findViewById(R.id.selector_list_network);
// mNoServerLabel = (TextView) findViewById(R.id.selector_label_none);
//
// refreshLists();
}
}
private
ServiceConnection
mConnection
=
new
ServiceConnection
()
{
private
ServiceConnection
mConnection
=
new
ServiceConnection
()
{
...
@@ -61,7 +52,9 @@ public class PairingActivity extends Activity {
...
@@ -61,7 +52,9 @@ public class PairingActivity extends Activity {
public
void
onServiceConnected
(
ComponentName
aClassName
,
public
void
onServiceConnected
(
ComponentName
aClassName
,
IBinder
aService
)
{
IBinder
aService
)
{
setContentView
(
R
.
layout
.
activity_pairing
);
setContentView
(
R
.
layout
.
activity_pairing
);
mPinText
=
(
TextView
)
findViewById
(
R
.
id
.
pairing_pin
);
mCommunicationService
=
((
CommunicationService
.
CBinder
)
aService
)
.
getService
();
((
TextView
)
findViewById
(
R
.
id
.
pairing_instruction2_deviceName
))
((
TextView
)
findViewById
(
R
.
id
.
pairing_instruction2_deviceName
))
.
setText
(
MessageFormat
.
setText
(
MessageFormat
.
format
(
getResources
()
.
format
(
getResources
()
...
@@ -69,8 +62,6 @@ public class PairingActivity extends Activity {
...
@@ -69,8 +62,6 @@ public class PairingActivity extends Activity {
mCommunicationService
mCommunicationService
.
getDeviceName
()));
.
getDeviceName
()));
mCommunicationService
=
((
CommunicationService
.
CBinder
)
aService
)
.
getService
();
if
(
mCommunicationService
.
getState
()
==
State
.
CONNECTING
)
{
if
(
mCommunicationService
.
getState
()
==
State
.
CONNECTING
)
{
mPinText
.
setText
(
mCommunicationService
.
getPairingPin
());
mPinText
.
setText
(
mCommunicationService
.
getPairingPin
());
}
}
...
@@ -94,7 +85,9 @@ public class PairingActivity extends Activity {
...
@@ -94,7 +85,9 @@ public class PairingActivity extends Activity {
// refreshLists();
// refreshLists();
}
else
if
(
aIntent
.
getAction
().
equals
(
}
else
if
(
aIntent
.
getAction
().
equals
(
CommunicationService
.
MSG_PAIRING_SUCCESSFUL
))
{
CommunicationService
.
MSG_PAIRING_SUCCESSFUL
))
{
mPinText
.
setText
(
"Paired!"
);
Intent
nIntent
=
new
Intent
(
PairingActivity
.
this
,
StartPresentationActivity
.
class
);
startActivity
(
nIntent
);
}
}
}
}
...
...
android/sdremote/src/org/libreoffice/impressremote/PresentationActivity.java
Dosyayı görüntüle @
0357b778
...
@@ -7,7 +7,6 @@ import java.util.TimeZone;
...
@@ -7,7 +7,6 @@ import java.util.TimeZone;
import
org.libreoffice.impressremote.communication.CommunicationService
;
import
org.libreoffice.impressremote.communication.CommunicationService
;
import
org.libreoffice.impressremote.communication.SlideShow.Timer
;
import
org.libreoffice.impressremote.communication.SlideShow.Timer
;
import
android.annotation.SuppressLint
;
import
android.app.ActionBar
;
import
android.app.ActionBar
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.app.FragmentManager
;
import
android.app.FragmentManager
;
...
@@ -20,8 +19,6 @@ import android.content.SharedPreferences;
...
@@ -20,8 +19,6 @@ import android.content.SharedPreferences;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.os.Handler
;
import
android.os.IBinder
;
import
android.os.IBinder
;
import
android.os.Message
;
import
android.os.Messenger
;
import
android.preference.PreferenceManager
;
import
android.preference.PreferenceManager
;
import
android.text.format.DateFormat
;
import
android.text.format.DateFormat
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
...
@@ -56,10 +53,12 @@ public class PresentationActivity extends Activity {
...
@@ -56,10 +53,12 @@ public class PresentationActivity extends Activity {
setContentView
(
R
.
layout
.
activity_presentation
);
setContentView
(
R
.
layout
.
activity_presentation
);
mOuterLayout
=
(
FrameLayout
)
findViewById
(
R
.
id
.
framelayout
);
mOuterLayout
=
(
FrameLayout
)
findViewById
(
R
.
id
.
framelayout
);
mOuterLayout
.
removeAllViews
();
mLayout
=
new
InterceptorLayout
(
this
);
mLayout
=
new
InterceptorLayout
(
this
);
mOuterLayout
.
addView
(
mLayout
);
mOuterLayout
.
addView
(
mLayout
);
mLayout
.
setId
(
R
.
id
.
presentation_innerFrame
);
mLayout
.
setId
(
R
.
id
.
presentation_innerFrame
);
// ((FrameLayout) findViewById(R.id.framelayout)).addView(mLayout);
//((FrameLayout) findViewById(R.id.framelayout)).addView(mLayout);
mThumbnailFragment
=
new
ThumbnailFragment
();
mThumbnailFragment
=
new
ThumbnailFragment
();
mPresentationFragment
=
new
PresentationFragment
();
mPresentationFragment
=
new
PresentationFragment
();
...
@@ -69,6 +68,13 @@ public class PresentationActivity extends Activity {
...
@@ -69,6 +68,13 @@ public class PresentationActivity extends Activity {
fragmentTransaction
.
add
(
R
.
id
.
presentation_innerFrame
,
fragmentTransaction
.
add
(
R
.
id
.
presentation_innerFrame
,
mPresentationFragment
,
"fragment_presentation"
);
mPresentationFragment
,
"fragment_presentation"
);
fragmentTransaction
.
commit
();
fragmentTransaction
.
commit
();
}
@Override
protected
void
onDestroy
()
{
mActionBarManager
.
stop
();
super
.
onDestroy
();
}
}
@Override
@Override
...
@@ -105,7 +111,6 @@ public class PresentationActivity extends Activity {
...
@@ -105,7 +111,6 @@ public class PresentationActivity extends Activity {
IBinder
aService
)
{
IBinder
aService
)
{
mCommunicationService
=
((
CommunicationService
.
CBinder
)
aService
)
mCommunicationService
=
((
CommunicationService
.
CBinder
)
aService
)
.
getService
();
.
getService
();
mCommunicationService
.
setActivityMessenger
(
mMessenger
);
mPresentationFragment
mPresentationFragment
.
setCommunicationService
(
mCommunicationService
);
.
setCommunicationService
(
mCommunicationService
);
...
@@ -119,17 +124,6 @@ public class PresentationActivity extends Activity {
...
@@ -119,17 +124,6 @@ public class PresentationActivity extends Activity {
}
}
};
};
final
Messenger
mMessenger
=
new
Messenger
(
new
MessageHandler
());
@SuppressLint
(
"HandlerLeak"
)
protected
class
MessageHandler
extends
Handler
{
@Override
public
void
handleMessage
(
Message
aMessage
)
{
mPresentationFragment
.
handleMessage
(
aMessage
);
mThumbnailFragment
.
handleMessage
(
aMessage
);
}
}
// ---------------------------------------------- ACTION BAR ---------------
// ---------------------------------------------- ACTION BAR ---------------
@Override
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
...
@@ -172,6 +166,8 @@ public class PresentationActivity extends Activity {
...
@@ -172,6 +166,8 @@ public class PresentationActivity extends Activity {
FragmentManager
.
OnBackStackChangedListener
,
FragmentManager
.
OnBackStackChangedListener
,
TextView
.
OnEditorActionListener
{
TextView
.
OnEditorActionListener
{
private
Handler
timerHandler
=
new
Handler
();
private
ToggleButton
mTimeLabel
;
private
ToggleButton
mTimeLabel
;
private
ToggleButton
mThumbnailButton
;
private
ToggleButton
mThumbnailButton
;
...
@@ -204,6 +200,10 @@ public class PresentationActivity extends Activity {
...
@@ -204,6 +200,10 @@ public class PresentationActivity extends Activity {
*/
*/
private
boolean
mTimerOn
=
false
;
private
boolean
mTimerOn
=
false
;
public
void
stop
()
{
timerHandler
.
removeCallbacks
(
timerUpdateThread
);
}
public
ActionBarManager
()
{
public
ActionBarManager
()
{
ActionBar
aBar
=
getActionBar
();
ActionBar
aBar
=
getActionBar
();
...
@@ -284,6 +284,9 @@ public class PresentationActivity extends Activity {
...
@@ -284,6 +284,9 @@ public class PresentationActivity extends Activity {
}
}
private
void
updateClockBar
()
{
private
void
updateClockBar
()
{
if
(
mCommunicationService
==
null
)
{
return
;
}
mClockBar_clockButton
.
setChecked
(!
mTimerOn
);
mClockBar_clockButton
.
setChecked
(!
mTimerOn
);
mCountdownBar
.
setY
(
mClockBar
.
getHeight
());
mCountdownBar
.
setY
(
mClockBar
.
getHeight
());
...
@@ -325,13 +328,11 @@ public class PresentationActivity extends Activity {
...
@@ -325,13 +328,11 @@ public class PresentationActivity extends Activity {
}
}
private
Handler
timerHandler
=
new
Handler
();
private
Thread
timerUpdateThread
=
new
Thread
()
{
private
Thread
timerUpdateThread
=
new
Thread
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
//
invalidateOptionsMenu();
//
invalidateOptionsMenu();
CharSequence
aTimeString
;
CharSequence
aTimeString
;
long
aTime
=
mCommunicationService
.
getSlideShow
().
getTimer
()
long
aTime
=
mCommunicationService
.
getSlideShow
().
getTimer
()
.
getTimeMillis
();
.
getTimeMillis
();
...
...
android/sdremote/src/org/libreoffice/impressremote/PresentationFragment.java
Dosyayı görüntüle @
0357b778
...
@@ -6,7 +6,10 @@ import org.libreoffice.impressremote.communication.SlideShow;
...
@@ -6,7 +6,10 @@ import org.libreoffice.impressremote.communication.SlideShow;
import
pl.polidea.coverflow.AbstractCoverFlowImageAdapter
;
import
pl.polidea.coverflow.AbstractCoverFlowImageAdapter
;
import
pl.polidea.coverflow.CoverFlow
;
import
pl.polidea.coverflow.CoverFlow
;
import
android.app.Fragment
;
import
android.app.Fragment
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.content.res.Configuration
;
import
android.content.res.Configuration
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
import
android.graphics.Canvas
;
...
@@ -14,7 +17,7 @@ import android.graphics.Color;
...
@@ -14,7 +17,7 @@ import android.graphics.Color;
import
android.graphics.Paint
;
import
android.graphics.Paint
;
import
android.graphics.RectF
;
import
android.graphics.RectF
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.
os.Message
;
import
android.
support.v4.content.LocalBroadcastManager
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.View
;
...
@@ -47,8 +50,8 @@ public class PresentationFragment extends Fragment {
...
@@ -47,8 +50,8 @@ public class PresentationFragment extends Fragment {
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
Bundle
savedInstanceState
)
{
mContext
=
container
.
get
Context
();
mContext
=
getActivity
().
getApplication
Context
();
container
.
removeAllViews
();
View
v
=
inflater
.
inflate
(
R
.
layout
.
fragment_presentation
,
container
,
View
v
=
inflater
.
inflate
(
R
.
layout
.
fragment_presentation
,
container
,
false
);
false
);
...
@@ -85,9 +88,26 @@ public class PresentationFragment extends Fragment {
...
@@ -85,9 +88,26 @@ public class PresentationFragment extends Fragment {
// We need to update the view now
// We need to update the view now
aAdapter
.
notifyDataSetChanged
();
aAdapter
.
notifyDataSetChanged
();
}
}
IntentFilter
aFilter
=
new
IntentFilter
(
CommunicationService
.
MSG_SLIDE_CHANGED
);
aFilter
.
addAction
(
CommunicationService
.
MSG_SLIDE_NOTES
);
aFilter
.
addAction
(
CommunicationService
.
MSG_SLIDE_PREVIEW
);
LocalBroadcastManager
.
getInstance
(
getActivity
().
getApplicationContext
())
.
registerReceiver
(
mListener
,
aFilter
);
return
v
;
return
v
;
}
}
@Override
public
void
onDestroyView
()
{
super
.
onDestroyView
();
LocalBroadcastManager
.
getInstance
(
getActivity
().
getApplicationContext
())
.
unregisterReceiver
(
mListener
);
}
private
void
updateSlideNumberDisplay
()
{
private
void
updateSlideNumberDisplay
()
{
int
aSlide
=
mSlideShow
.
getCurrentSlide
();
int
aSlide
=
mSlideShow
.
getCurrentSlide
();
mNumberText
.
setText
((
aSlide
+
1
)
+
"/"
+
mSlideShow
.
getSize
());
mNumberText
.
setText
((
aSlide
+
1
)
+
"/"
+
mSlideShow
.
getSize
());
...
@@ -204,23 +224,28 @@ public class PresentationFragment extends Fragment {
...
@@ -204,23 +224,28 @@ public class PresentationFragment extends Fragment {
updateSlideNumberDisplay
();
updateSlideNumberDisplay
();
}
}
public
void
handleMessage
(
Message
aMessage
)
{
private
BroadcastReceiver
mListener
=
new
BroadcastReceiver
()
{
Bundle
aData
=
aMessage
.
getData
();
switch
(
aMessage
.
what
)
{
@Override
case
CommunicationService
.
MSG_SLIDE_CHANGED
:
public
void
onReceive
(
Context
aContext
,
Intent
aIntent
)
{
int
aSlide
=
aData
.
getInt
(
"slide_number"
);
if
(
aIntent
.
getAction
().
equals
(
CommunicationService
.
MSG_SLIDE_CHANGED
))
{
int
aSlide
=
aIntent
.
getExtras
().
getInt
(
"slide_number"
);
mTopView
.
setSelection
(
aSlide
,
true
);
mTopView
.
setSelection
(
aSlide
,
true
);
updateSlideNumberDisplay
();
updateSlideNumberDisplay
();
break
;
}
else
if
(
aIntent
.
getAction
().
equals
(
case
CommunicationService
.
MSG_SLIDE_PREVIEW
:
CommunicationService
.
MSG_SLIDE_PREVIEW
))
{
int
aNSlide
=
aData
.
getInt
(
"slide_number"
);
int
aNSlide
=
aIntent
.
getExtras
()
.
getInt
(
"slide_number"
);
if
(
mTopView
.
getSelectedItemPosition
()
==
aNSlide
)
{
if
(
mTopView
.
getSelectedItemPosition
()
==
aNSlide
)
{
// mTopView. // TODO: update the current item
mTopView
.
setSelection
(
aNSlide
);
}
}
break
;
}
else
if
(
aIntent
.
getAction
().
equals
(
CommunicationService
.
MSG_SLIDE_NOTES
))
{
// TODO: update me
}
}
}
}
};
// ------------------------------------------------- THUMBNAIL ADAPTER ----
// ------------------------------------------------- THUMBNAIL ADAPTER ----
protected
class
ThumbnailAdapter
extends
AbstractCoverFlowImageAdapter
{
protected
class
ThumbnailAdapter
extends
AbstractCoverFlowImageAdapter
{
...
...
android/sdremote/src/org/libreoffice/impressremote/SelectorActivity.java
Dosyayı görüntüle @
0357b778
...
@@ -61,6 +61,12 @@ public class SelectorActivity extends Activity {
...
@@ -61,6 +61,12 @@ public class SelectorActivity extends Activity {
refreshLists
();
refreshLists
();
}
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
LocalBroadcastManager
.
getInstance
(
this
).
unregisterReceiver
(
mListener
);
}
@Override
@Override
public
void
onBackPressed
()
{
public
void
onBackPressed
()
{
mCommunicationService
.
stopFindingServers
();
mCommunicationService
.
stopFindingServers
();
...
...
android/sdremote/src/org/libreoffice/impressremote/StartPresentationActivity.java
0 → 100644
Dosyayı görüntüle @
0357b778
package
org
.
libreoffice
.
impressremote
;
import
org.libreoffice.impressremote.communication.CommunicationService
;
import
android.app.Activity
;
import
android.content.BroadcastReceiver
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.content.ServiceConnection
;
import
android.os.Bundle
;
import
android.os.IBinder
;
import
android.support.v4.content.LocalBroadcastManager
;
import
android.view.View
;
import
android.view.View.OnClickListener
;
public
class
StartPresentationActivity
extends
Activity
{
private
CommunicationService
mCommunicationService
=
null
;
private
boolean
mIsBound
=
false
;
/** Called when the activity is first created. */
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_startpresentation
);
bindService
(
new
Intent
(
this
,
CommunicationService
.
class
),
mConnection
,
Context
.
BIND_IMPORTANT
);
mIsBound
=
true
;
IntentFilter
aFilter
=
new
IntentFilter
(
CommunicationService
.
MSG_SLIDESHOW_STARTED
);
LocalBroadcastManager
.
getInstance
(
this
).
registerReceiver
(
mListener
,
aFilter
);
findViewById
(
R
.
id
.
startpresentation_button
).
setOnClickListener
(
mClickListener
);
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
LocalBroadcastManager
.
getInstance
(
this
).
unregisterReceiver
(
mListener
);
}
private
ServiceConnection
mConnection
=
new
ServiceConnection
()
{
@Override
public
void
onServiceConnected
(
ComponentName
aClassName
,
IBinder
aService
)
{
mCommunicationService
=
((
CommunicationService
.
CBinder
)
aService
)
.
getService
();
if
(
mCommunicationService
.
isSlideShowRunning
())
{
Intent
nIntent
=
new
Intent
(
StartPresentationActivity
.
this
,
PresentationActivity
.
class
);
startActivity
(
nIntent
);
}
}
@Override
public
void
onServiceDisconnected
(
ComponentName
aClassName
)
{
mCommunicationService
=
null
;
}
};
private
OnClickListener
mClickListener
=
new
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mCommunicationService
!=
null
)
{
mCommunicationService
.
getTransmitter
().
startPresentation
();
}
}
};
private
BroadcastReceiver
mListener
=
new
BroadcastReceiver
()
{
@Override
public
void
onReceive
(
Context
aContext
,
Intent
aIntent
)
{
if
(
aIntent
.
getAction
().
equals
(
CommunicationService
.
MSG_SLIDESHOW_STARTED
))
{
Intent
nIntent
=
new
Intent
(
StartPresentationActivity
.
this
,
PresentationActivity
.
class
);
startActivity
(
nIntent
);
}
}
};
}
android/sdremote/src/org/libreoffice/impressremote/ThumbnailFragment.java
Dosyayı görüntüle @
0357b778
...
@@ -12,11 +12,14 @@ import org.libreoffice.impressremote.communication.CommunicationService;
...
@@ -12,11 +12,14 @@ import org.libreoffice.impressremote.communication.CommunicationService;
import
org.libreoffice.impressremote.communication.SlideShow
;
import
org.libreoffice.impressremote.communication.SlideShow
;
import
android.app.Fragment
;
import
android.app.Fragment
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.graphics.Typeface
;
import
android.graphics.Typeface
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.
os.Message
;
import
android.
support.v4.content.LocalBroadcastManager
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
...
@@ -42,24 +45,35 @@ public class ThumbnailFragment extends Fragment {
...
@@ -42,24 +45,35 @@ public class ThumbnailFragment extends Fragment {
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
public
View
onCreateView
(
LayoutInflater
inflater
,
ViewGroup
container
,
Bundle
savedInstanceState
)
{
Bundle
savedInstanceState
)
{
// Inflate the layout for this fragment
// Inflate the layout for this fragment
container
.
removeAllViews
();
View
v
=
inflater
View
v
=
inflater
.
inflate
(
R
.
layout
.
fragment_thumbnail
,
container
,
false
);
.
inflate
(
R
.
layout
.
fragment_thumbnail
,
container
,
false
);
mGrid
=
(
GridView
)
v
.
findViewById
(
R
.
id
.
thumbnail_grid
);
mGrid
=
(
GridView
)
v
.
findViewById
(
R
.
id
.
thumbnail_grid
);
mGrid
.
setOnItemClickListener
(
new
ClickListener
());
mGrid
.
setOnItemClickListener
(
new
ClickListener
());
mContext
=
container
.
get
Context
();
mContext
=
getActivity
().
getApplication
Context
();
if
(
mCommunicationService
!=
null
&&
mSlideShow
!=
null
)
{
if
(
mCommunicationService
!=
null
&&
mSlideShow
!=
null
)
{
mGrid
.
setAdapter
(
new
ThumbnailAdapter
(
mContext
,
mSlideShow
));
mGrid
.
setAdapter
(
new
ThumbnailAdapter
(
mContext
,
mSlideShow
));
}
}
IntentFilter
aFilter
=
new
IntentFilter
(
CommunicationService
.
MSG_SLIDE_CHANGED
);
aFilter
.
addAction
(
CommunicationService
.
MSG_SLIDE_PREVIEW
);
LocalBroadcastManager
.
getInstance
(
getActivity
().
getApplicationContext
())
.
registerReceiver
(
mListener
,
aFilter
);
return
v
;
return
v
;
}
}
@Override
@Override
public
void
onDestroyView
()
{
public
void
onDestroyView
()
{
super
.
onDestroyView
();
super
.
onDestroyView
();
LocalBroadcastManager
.
getInstance
(
getActivity
().
getApplicationContext
())
.
unregisterReceiver
(
mListener
);
mGrid
=
null
;
mGrid
=
null
;
mContext
=
null
;
mContext
=
null
;
mCurrentImage
=
null
;
mCurrentImage
=
null
;
...
@@ -135,22 +149,21 @@ public class ThumbnailFragment extends Fragment {
...
@@ -135,22 +149,21 @@ public class ThumbnailFragment extends Fragment {
}
}
}
}
public
void
handleMessage
(
Message
aMessage
)
{
private
BroadcastReceiver
mListener
=
new
BroadcastReceiver
()
{
if
(!
isVisible
())
{
return
;
}
Bundle
aData
=
aMessage
.
getData
();
@Override
switch
(
aMessage
.
what
)
{
public
void
onReceive
(
Context
aContext
,
Intent
aIntent
)
{
case
CommunicationService
.
MSG_SLIDE_CHANGED
:
if
(
aIntent
.
getAction
().
equals
(
int
aSlide
=
aData
.
getInt
(
"slide_number"
);
CommunicationService
.
MSG_SLIDE_CHANGED
))
{
break
;
int
aSlide
=
aIntent
.
getExtras
().
getInt
(
"slide_number"
);
case
CommunicationService
.
MSG_SLIDE_PREVIEW
:
setSelected
(
aSlide
);
}
else
if
(
aIntent
.
getAction
().
equals
(
CommunicationService
.
MSG_SLIDE_PREVIEW
))
{
mGrid
.
invalidateViews
();
mGrid
.
invalidateViews
();
break
;
}
}
}
}
};
// ------------------------------------------------- THUMBNAIL ADAPTER ----
// ------------------------------------------------- THUMBNAIL ADAPTER ----
protected
class
ThumbnailAdapter
extends
BaseAdapter
{
protected
class
ThumbnailAdapter
extends
BaseAdapter
{
...
...
android/sdremote/src/org/libreoffice/impressremote/communication/Client.java
Dosyayı görüntüle @
0357b778
...
@@ -34,6 +34,8 @@ public abstract class Client {
...
@@ -34,6 +34,8 @@ public abstract class Client {
protected
OutputStream
mOutputStream
;
protected
OutputStream
mOutputStream
;
protected
String
mPin
=
""
;
protected
String
mPin
=
""
;
private
static
Client
latestInstance
=
null
;
public
abstract
void
closeConnection
();
public
abstract
void
closeConnection
();
private
Receiver
mReceiver
;
private
Receiver
mReceiver
;
...
@@ -42,6 +44,7 @@ public abstract class Client {
...
@@ -42,6 +44,7 @@ public abstract class Client {
public
Client
(
Context
aContext
)
{
public
Client
(
Context
aContext
)
{
mContext
=
aContext
;
mContext
=
aContext
;
latestInstance
=
this
;
}
}
public
void
setReceiver
(
Receiver
aReceiver
)
{
public
void
setReceiver
(
Receiver
aReceiver
)
{
...
@@ -77,11 +80,16 @@ public abstract class Client {
...
@@ -77,11 +80,16 @@ public abstract class Client {
// TODO stream couldn't be opened.
// TODO stream couldn't be opened.
e1
.
printStackTrace
();
e1
.
printStackTrace
();
}
}
latestInstance
=
null
;
}
}
public
String
getPin
()
{
public
static
String
getPin
()
{
return
mPin
;
if
(
latestInstance
!=
null
)
{
return
latestInstance
.
mPin
;
}
else
{
return
""
;
}
}
}
/**
/**
...
...
android/sdremote/src/org/libreoffice/impressremote/communication/CommunicationService.java
Dosyayı görüntüle @
0357b778
...
@@ -12,7 +12,6 @@ import android.app.Service;
...
@@ -12,7 +12,6 @@ import android.app.Service;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Binder
;
import
android.os.Binder
;
import
android.os.IBinder
;
import
android.os.IBinder
;
import
android.os.Messenger
;
public
class
CommunicationService
extends
Service
implements
Runnable
{
public
class
CommunicationService
extends
Service
implements
Runnable
{
...
@@ -32,10 +31,7 @@ public class CommunicationService extends Service implements Runnable {
...
@@ -32,10 +31,7 @@ public class CommunicationService extends Service implements Runnable {
}
}
public
String
getPairingPin
()
{
public
String
getPairingPin
()
{
if
(
mClient
!=
null
)
return
Client
.
getPin
();
return
mClient
.
getPin
();
else
return
""
;
}
}
public
String
getDeviceName
()
{
public
String
getDeviceName
()
{
...
@@ -67,6 +63,7 @@ public class CommunicationService extends Service implements Runnable {
...
@@ -67,6 +63,7 @@ public class CommunicationService extends Service implements Runnable {
mState
=
State
.
DISCONNECTED
;
mState
=
State
.
DISCONNECTED
;
}
}
if
(
mStateDesired
==
State
.
CONNECTED
)
{
if
(
mStateDesired
==
State
.
CONNECTED
)
{
mState
=
State
.
CONNECTING
;
switch
(
mServerDesired
.
getProtocol
())
{
switch
(
mServerDesired
.
getProtocol
())
{
case
NETWORK:
case
NETWORK:
mClient
=
new
NetworkClient
(
mClient
=
new
NetworkClient
(
...
@@ -138,10 +135,10 @@ public class CommunicationService extends Service implements Runnable {
...
@@ -138,10 +135,10 @@ public class CommunicationService extends Service implements Runnable {
private
final
IBinder
mBinder
=
new
CBinder
();
private
final
IBinder
mBinder
=
new
CBinder
();
public
static
final
int
MSG_SLIDESHOW_STARTED
=
1
;
public
static
final
String
MSG_SLIDESHOW_STARTED
=
"SLIDESHOW_STARTED"
;
public
static
final
int
MSG_SLIDE_CHANGED
=
2
;
public
static
final
String
MSG_SLIDE_CHANGED
=
"SLIDE_CHANGED"
;
public
static
final
int
MSG_SLIDE_PREVIEW
=
3
;
public
static
final
String
MSG_SLIDE_PREVIEW
=
"SLIDE_PREVIEW"
;
public
static
final
int
MSG_SLIDE_NOTES
=
4
;
public
static
final
String
MSG_SLIDE_NOTES
=
"SLIDE_NOTES"
;
public
static
final
String
MSG_SERVERLIST_CHANGED
=
"SERVERLIST_CHANGED"
;
public
static
final
String
MSG_SERVERLIST_CHANGED
=
"SERVERLIST_CHANGED"
;
public
static
final
String
MSG_PAIRING_STARTED
=
"PAIRING_STARTED"
;
public
static
final
String
MSG_PAIRING_STARTED
=
"PAIRING_STARTED"
;
...
@@ -151,14 +148,10 @@ public class CommunicationService extends Service implements Runnable {
...
@@ -151,14 +148,10 @@ public class CommunicationService extends Service implements Runnable {
private
Client
mClient
;
private
Client
mClient
;
private
Receiver
mReceiver
=
new
Receiver
();
private
Receiver
mReceiver
=
new
Receiver
(
this
);
private
ServerFinder
mFinder
=
new
ServerFinder
(
this
);
private
ServerFinder
mFinder
=
new
ServerFinder
(
this
);
public
void
setActivityMessenger
(
Messenger
aActivityMessenger
)
{
mReceiver
.
setActivityMessenger
(
aActivityMessenger
);
}
@Override
@Override
public
IBinder
onBind
(
Intent
intent
)
{
public
IBinder
onBind
(
Intent
intent
)
{
// TODO Auto-generated method stub
// TODO Auto-generated method stub
...
@@ -201,5 +194,9 @@ public class CommunicationService extends Service implements Runnable {
...
@@ -201,5 +194,9 @@ public class CommunicationService extends Service implements Runnable {
return
mReceiver
.
getSlideShow
();
return
mReceiver
.
getSlideShow
();
}
}
public
boolean
isSlideShowRunning
()
{
return
mReceiver
.
isSlideShowRunning
();
}
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
android/sdremote/src/org/libreoffice/impressremote/communication/Receiver.java
Dosyayı görüntüle @
0357b778
...
@@ -10,46 +10,40 @@ package org.libreoffice.impressremote.communication;
...
@@ -10,46 +10,40 @@ package org.libreoffice.impressremote.communication;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
android.os.Bundle
;
import
android.content.Context
;
import
android.os.Message
;
import
android.content.Intent
;
import
android.os.Messenger
;
import
android.support.v4.content.LocalBroadcastManager
;
import
android.os.RemoteException
;
import
android.util.Base64
;
import
android.util.Base64
;
public
class
Receiver
{
public
class
Receiver
{
private
Messenger
mActivityMessenger
;
public
Receiver
(
Context
aContext
)
{
mContext
=
aContext
;
mSlideShow
=
new
SlideShow
(
mContext
);
}
private
Context
mContext
;
private
SlideShow
mSlideShow
=
new
SlideShow
()
;
private
SlideShow
mSlideShow
;
public
SlideShow
getSlideShow
()
{
public
SlideShow
getSlideShow
()
{
return
mSlideShow
;
return
mSlideShow
;
}
}
public
void
setActivityMessenger
(
Messenger
aActivityMessenger
)
{
public
boolean
isSlideShowRunning
(
)
{
mActivityMessenger
=
aActivityMessenger
;
return
(
mSlideShow
.
getSize
()
>
0
)
;
}
}
public
void
parseCommand
(
ArrayList
<
String
>
aCommand
)
{
public
void
parseCommand
(
ArrayList
<
String
>
aCommand
)
{
if
(
mActivityMessenger
==
null
)
{
return
;
}
String
aInstruction
=
aCommand
.
get
(
0
);
String
aInstruction
=
aCommand
.
get
(
0
);
if
(
aInstruction
.
equals
(
"slideshow_started"
))
{
if
(
aInstruction
.
equals
(
"slideshow_started"
))
{
int
aSlideShowlength
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
int
aSlideShowlength
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
int
aCurrentSlide
=
Integer
.
parseInt
(
aCommand
.
get
(
2
));
int
aCurrentSlide
=
Integer
.
parseInt
(
aCommand
.
get
(
2
));
mSlideShow
.
setLength
(
aSlideShowlength
);
mSlideShow
.
setLength
(
aSlideShowlength
);
mSlideShow
.
setCurrentSlide
(
aCurrentSlide
);
mSlideShow
.
setCurrentSlide
(
aCurrentSlide
);
Intent
aIntent
=
new
Intent
(
Message
aMessage
=
Message
.
obtain
(
null
,
CommunicationService
.
MSG_SLIDESHOW_STARTED
);
CommunicationService
.
MSG_SLIDESHOW_STARTED
);
Bundle
aData
=
new
Bundle
();
LocalBroadcastManager
.
getInstance
(
mContext
).
sendBroadcast
(
aIntent
);
aMessage
.
setData
(
aData
);
try
{
mActivityMessenger
.
send
(
aMessage
);
}
catch
(
RemoteException
e
)
{
// Dead Handler -- i.e. Activity gone.
}
}
else
{
}
else
{
if
(
mSlideShow
==
null
)
if
(
mSlideShow
==
null
)
return
;
return
;
...
@@ -60,16 +54,11 @@ public class Receiver {
...
@@ -60,16 +54,11 @@ public class Receiver {
mSlideShow
.
setCurrentSlide
(
aSlideNumber
);
mSlideShow
.
setCurrentSlide
(
aSlideNumber
);
Message
aMessage
=
Message
.
obtain
(
null
,
Intent
aIntent
=
new
Intent
(
CommunicationService
.
MSG_SLIDE_CHANGED
);
CommunicationService
.
MSG_SLIDE_CHANGED
);
Bundle
aData
=
new
Bundle
();
aIntent
.
putExtra
(
"slide_number"
,
aSlideNumber
);
aData
.
putInt
(
"slide_number"
,
aSlideNumber
);
LocalBroadcastManager
.
getInstance
(
mContext
).
sendBroadcast
(
aMessage
.
setData
(
aData
);
aIntent
);
try
{
mActivityMessenger
.
send
(
aMessage
);
}
catch
(
RemoteException
e
)
{
// Dead Handler -- i.e. Activity gone.
}
}
else
if
(
aInstruction
.
equals
(
"slide_preview"
))
{
}
else
if
(
aInstruction
.
equals
(
"slide_preview"
))
{
int
aSlideNumber
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
int
aSlideNumber
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
String
aImageString
=
aCommand
.
get
(
2
);
String
aImageString
=
aCommand
.
get
(
2
);
...
@@ -78,18 +67,11 @@ public class Receiver {
...
@@ -78,18 +67,11 @@ public class Receiver {
// Store image internally
// Store image internally
mSlideShow
.
putImage
(
aSlideNumber
,
aImage
);
mSlideShow
.
putImage
(
aSlideNumber
,
aImage
);
// Notify the frontend
Intent
aIntent
=
new
Intent
(
Message
aMessage
=
Message
.
obtain
(
null
,
CommunicationService
.
MSG_SLIDE_PREVIEW
);
CommunicationService
.
MSG_SLIDE_PREVIEW
);
Bundle
aData
=
new
Bundle
();
aIntent
.
putExtra
(
"slide_number"
,
aSlideNumber
);
aData
.
putInt
(
"slide_number"
,
aSlideNumber
);
LocalBroadcastManager
.
getInstance
(
mContext
).
sendBroadcast
(
aMessage
.
setData
(
aData
);
aIntent
);
try
{
mActivityMessenger
.
send
(
aMessage
);
}
catch
(
RemoteException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
else
if
(
aInstruction
.
equals
(
"slide_notes"
))
{
}
else
if
(
aInstruction
.
equals
(
"slide_notes"
))
{
int
aSlideNumber
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
int
aSlideNumber
=
Integer
.
parseInt
(
aCommand
.
get
(
1
));
String
aNotes
=
new
String
();
String
aNotes
=
new
String
();
...
@@ -100,18 +82,11 @@ public class Receiver {
...
@@ -100,18 +82,11 @@ public class Receiver {
// Store image internally
// Store image internally
mSlideShow
.
putNotes
(
aSlideNumber
,
aNotes
);
mSlideShow
.
putNotes
(
aSlideNumber
,
aNotes
);
// Notify the frontend
Intent
aIntent
=
new
Intent
(
Message
aMessage
=
Message
.
obtain
(
null
,
CommunicationService
.
MSG_SLIDE_NOTES
);
CommunicationService
.
MSG_SLIDE_NOTES
);
Bundle
aData
=
new
Bundle
();
aIntent
.
putExtra
(
"slide_number"
,
aSlideNumber
);
aData
.
putInt
(
"slide_number"
,
aSlideNumber
);
LocalBroadcastManager
.
getInstance
(
mContext
).
sendBroadcast
(
aMessage
.
setData
(
aData
);
aIntent
);
try
{
mActivityMessenger
.
send
(
aMessage
);
}
catch
(
RemoteException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
}
}
}
...
...
android/sdremote/src/org/libreoffice/impressremote/communication/SlideShow.java
Dosyayı görüntüle @
0357b778
...
@@ -8,6 +8,9 @@
...
@@ -8,6 +8,9 @@
*/
*/
package
org
.
libreoffice
.
impressremote
.
communication
;
package
org
.
libreoffice
.
impressremote
.
communication
;
import
org.libreoffice.impressremote.R
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.graphics.BitmapFactory
;
import
android.util.SparseArray
;
import
android.util.SparseArray
;
...
@@ -19,8 +22,10 @@ public class SlideShow {
...
@@ -19,8 +22,10 @@ public class SlideShow {
private
int
mSize
=
0
;
private
int
mSize
=
0
;
private
int
mCurrentSlide
=
0
;
private
int
mCurrentSlide
=
0
;
private
Context
mContext
;
protected
SlideShow
()
{
protected
SlideShow
(
Context
aContext
)
{
mContext
=
aContext
;
}
}
protected
void
setLength
(
int
aSize
)
{
protected
void
setLength
(
int
aSize
)
{
...
@@ -45,6 +50,10 @@ public class SlideShow {
...
@@ -45,6 +50,10 @@ public class SlideShow {
public
Bitmap
getImage
(
int
aSlide
)
{
public
Bitmap
getImage
(
int
aSlide
)
{
byte
[]
aImage
=
mPreviewImages
.
get
(
aSlide
);
byte
[]
aImage
=
mPreviewImages
.
get
(
aSlide
);
if
(
aImage
==
null
)
{
return
BitmapFactory
.
decodeResource
(
mContext
.
getResources
(),
R
.
drawable
.
image_loading
);
}
return
BitmapFactory
.
decodeByteArray
(
aImage
,
0
,
aImage
.
length
);
return
BitmapFactory
.
decodeByteArray
(
aImage
,
0
,
aImage
.
length
);
}
}
...
...
android/sdremote/src/org/libreoffice/impressremote/communication/TestClient.java
Dosyayı görüntüle @
0357b778
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment