...
 
Commits (6)
# built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
# Eclipse project files
.classpath
.project
# Proguard folder generated by Eclipse
proguard/
# Intellij project files
*.iml
*.ipr
*.iws
.idea/
......@@ -18,6 +18,7 @@
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/ttt24"
android:label="@string/app_name"
android:largeHeap="true"
......
......@@ -18,6 +18,7 @@
<application
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/ttt24"
android:label="@string/app_name"
android:largeHeap="true"
......
......@@ -338,22 +338,22 @@ int id itemTitle 0x7f040042
int id listMode 0x7f040002
int id next 0x7f040047
int id normal 0x7f040001
int id playerView_extended 0x7f040034
int id playerView_fullscreen 0x7f040036
int id playerView_extended 0x7f040035
int id playerView_fullscreen 0x7f040037
int id port_tx 0x7f040039
int id progressBar 0x7f040041
int id scrollView1 0x7f040035
int id search 0x7f040046
int id server_tx 0x7f040038
int id showCustom 0x7f040008
int id showHome 0x7f040005
int id showTitle 0x7f040007
int id statusIcon 0x7f040043
int id surfaceContainer 0x7f040034
int id tabMode 0x7f040003
int id tx_name 0x7f04003d
int id tx_url 0x7f04003c
int id useLogo 0x7f040004
int id viewSwitcher 0x7f040037
int id viewSwitcher 0x7f040036
int id watch_button 0x7f040032
int id wrap_content 0x7f040000
int integer abs__max_action_buttons 0x7f080000
......
# cache for current jar dependency. DO NOT EDIT.
# format is <lastModified> <length> <SHA-1> <path>
# Encoding is UTF-8
1390577451000 627582 db0f122c99ef9f90dbab3fada6d191f2880cbb8e /Volumes/Macintosh HD/Users/thomaskrex/git/TTTAndroidClient/TTTCLient/libs/android-support-v4.jar
1396194685000 627582 db0f122c99ef9f90dbab3fada6d191f2880cbb8e /Volumes/Macintosh HD/Users/thomaskrex/git/TTTAndroidClient/TTTCLient/libs/android-support-v4.jar
1375081746000 271754 53307dc2bd2b69fd5533458ee11885f55807de4b /Volumes/Macintosh HD/Users/thomaskrex/BA_workspace/actionbarsherlock/libs/android-support-v4.jar
......@@ -2,27 +2,32 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
android:orientation="horizontal"
android:weightSum="3" >
<ScrollView
android:id="@+id/indexScrollView"
android:layout_width="200dp"
android:layout_height="fill_parent"
android:layout_weight="3"
android:paddingLeft="5dip" >
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/my_border"
android:fillViewport="false"
android:paddingLeft="5dip"
android:paddingRight="5dip" >
</ScrollView>
<ImageView
android:id="@+id/playerView_extended"
android:layout_width="match_parent"
<LinearLayout
android:id="@+id/surfaceContainer"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/scrollView1"
android:layout_weight="5"
android:background="@drawable/my_border"
android:padding="10dip"
android:scaleType="centerInside"
android:src="@drawable/ic_launcher" />
android:layout_weight="2"
android:background="@android:color/black"
android:gravity="center" >
<SurfaceView android:id="" />
<tttclient.activities.MySurfaceView
android:id="@+id/playerView_extended"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?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="horizontal" >
<ImageView
android:id="@+id/playerView_fullscreen"
<LinearLayout
android:id="@+id/surfaceContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
android:layout_weight="2"
android:background="@android:color/black"
android:padding="10dip" >
<SurfaceView
android:id="@+id/playerView_extended"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<ScrollView
android:id="@+id/indexScrollView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:fillViewport="false"
android:paddingLeft="5dip"
android:visibility="gone" >
</ScrollView>
</LinearLayout>
\ No newline at end of file
package tttclient.activities;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.graphics.PixelFormat;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class MySurfaceView extends SurfaceView implements
SurfaceHolder.Callback {
private final SurfaceHolder sHolder;
private final SurfaceHolder sh;
private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
Canvas canvas;
public MySurfaceView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
sHolder = getHolder();
sHolder.addCallback(this);
sHolder.setFormat(PixelFormat.RGBA_4444);
public MySurfaceView(Context context) {
super(context);
sh = getHolder();
sh.addCallback(this);
paint.setColor(Color.BLUE);
paint.setStyle(Style.FILL);
}
// @Override
// protected void onLayout(boolean changed, int left, int top, int right,
// int bottom) {
// // TODO Auto-generated method stub
// super.onLayout(changed, left, top, right, bottom);
// }
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// Canvas canvas = sh.lockCanvas();
// canvas.drawColor(Color.WHITE);
// canvas.drawCircle(100, 200, 50, paint);
// sh.unlockCanvasAndPost(canvas);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
......@@ -46,10 +42,8 @@ public class MySurfaceView extends SurfaceView implements
}
public void drawRec(int x, int y, int w, int h, Paint p) {
canvas = sh.lockCanvas();
canvas.drawRect(new Rect(x, y, x + w, y + h), p);
sh.unlockCanvasAndPost(canvas);
public void setSize(int width, int height) {
sHolder.setFixedSize(width, height);
}
......
......@@ -14,10 +14,14 @@ import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.MediaController;
import android.widget.MediaController.MediaPlayerControl;
import android.widget.ScrollView;
......@@ -34,51 +38,69 @@ import de.tum.in.tttclient.R;
public class PlayerActivity extends SherlockActivity implements
MediaPlayerControl {
final public static int FULLSCREEN_MODE = 0;
final public static int EXTENDED_MODE = 1;
public String fileName;
public String filePath;
private File tttFile;
private ProgressDialog dialog;
public ImageView imgV;
private ViewSwitcher switcher;
private ScrollView scrollView;
private Recording recording;
private MediaPlayer audioPlayer;
private MediaController audioController;
private LinearLayout container;
private SearchView searchView;
private MySurfaceView surfaceView;
private SurfaceHolder mHolder;
LayoutParams fullParams;
LayoutParams extendedParams;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player_main);
setContentView(R.layout.activity_player_extended);
scrollView = (ScrollView) findViewById(R.id.indexScrollView);
switcher = (ViewSwitcher) findViewById(R.id.viewSwitcher);
//
// switcher = (ViewSwitcher) findViewById(R.id.viewSwitcher);
// default fullscreen
imgV = (ImageView) findViewById(R.id.playerView_fullscreen);
// imgV = (ImageView) findViewById(R.id.playerView_fullscreen);
fileName = getIntent().getStringExtra(DownloadService.FILE_NAME);
setTitle(fileName);
filePath = getIntent().getStringExtra(DownloadService.FILE_PATH);
final File tttFile = new File(filePath + "/" + fileName + ".ttt");
tttFile = new File(filePath + "/" + fileName + ".ttt");
File audioFile = new File(filePath + "/" + fileName + ".mp3");
audioPlayer = MediaPlayer.create(this, Uri.fromFile(audioFile));
audioController = new MediaController(this);
audioController.setMediaPlayer(this);
audioController.setHorizontalScrollBarEnabled(false);
final ProgressDialog dialog = new ProgressDialog(PlayerActivity.this);
dialog = new ProgressDialog(PlayerActivity.this);
dialog.setTitle("Please Wait");
dialog.setMessage("Prepare File ...");
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
scrollView = (ScrollView) findViewById(R.id.indexScrollView);
container = (LinearLayout) findViewById(R.id.surfaceContainer);
surfaceView = (MySurfaceView) findViewById(R.id.playerView_extended);
mHolder = surfaceView.getHolder();
fullParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.MATCH_PARENT);
extendedParams = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT);
AsyncTask<Void, Void, Void> initTask = new AsyncTask<Void, Void, Void>() {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
dialog.show();
}
......@@ -86,7 +108,7 @@ public class PlayerActivity extends SherlockActivity implements
protected Void doInBackground(Void... params) {
try {
recording = new Recording(getApplicationContext(), tttFile,
audioPlayer, imgV, scrollView);
audioPlayer, surfaceView, mHolder, scrollView);
OnClickListener prevListener = new OnClickListener() {
......@@ -107,7 +129,8 @@ public class PlayerActivity extends SherlockActivity implements
audioController.setPrevNextListeners(nextListener,
prevListener);
audioController.setAnchorView(imgV);
audioController.setAnchorView((LinearLayout) surfaceView
.getParent());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
......@@ -120,7 +143,10 @@ public class PlayerActivity extends SherlockActivity implements
protected void onPostExecute(Void result) {
dialog.dismiss();
audioController.show(5000);
surfaceView.setSize(
recording.getProtocolPreferences().framebufferWidth,
recording.getProtocolPreferences().framebufferHeight);
}
};
......@@ -253,7 +279,7 @@ public class PlayerActivity extends SherlockActivity implements
return true;
}
boolean isExtendend = false;
boolean isExtendend = true;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
......@@ -262,13 +288,13 @@ public class PlayerActivity extends SherlockActivity implements
case R.id.extend:
if (!isExtendend) {
switchLayout(1);
switchLayout(EXTENDED_MODE);
// switchSurface(1);
item.setIcon(getResources().getDrawable(
R.drawable.ic_action_full_screen));
isExtendend = true;
} else if (isExtendend) {
switchLayout(0);
switchLayout(FULLSCREEN_MODE);
// switchSurface(0);
item.setIcon(getResources().getDrawable(
R.drawable.ic_action_return_from_full_screen));
......@@ -289,25 +315,28 @@ public class PlayerActivity extends SherlockActivity implements
void switchLayout(int index) {
// fullscreen
// switch to fullscreen
if (index == 0) {
imgV = (ImageView) findViewById(R.id.playerView_fullscreen);
recording.graphicsContext().setImageView(imgV);
// recording.focusCurrentIndexEntry(recording.getLastIndexFired() -
// 1);
switcher.setDisplayedChild(0);
// hide ScrollView
scrollView.setVisibility(View.GONE);
surfaceView.setLayoutParams(fullParams);
container.recomputeViewAttributes(surfaceView);
}
// extended View
if (index == 1) {
imgV = (ImageView) findViewById(R.id.playerView_extended);
recording.graphicsContext().setImageView(imgV);
recording.graphicsContext().updateView();
switcher.setDisplayedChild(1);
scrollView.setVisibility(View.VISIBLE);
surfaceView.setLayoutParams(extendedParams);
container.recomputeViewAttributes(surfaceView);
}
if (recording != null) {
// mHolder.setSizeFromLayout();
// mHolder.setFixedSize(
// recording.getProtocolPreferences().framebufferWidth,
// recording.getProtocolPreferences().framebufferHeight);
// if (recording.graphicsContext() != null) {
// recording.graphicsContext().setHolder(mHolder);
// }
}
}
@Override
......@@ -317,4 +346,12 @@ public class PlayerActivity extends SherlockActivity implements
recording.close();
}
public SurfaceView getSurfaceView() {
return surfaceView;
}
public void setSurfaceView(MySurfaceView surfaceView) {
this.surfaceView = surfaceView;
}
}
......@@ -2,6 +2,7 @@ package tttclient.core;
import java.util.ArrayList;
import tttclient.activities.MySurfaceView;
import tttclient.messages.Annotation;
import tttclient.messages.CursorMessage;
import tttclient.messages.CursorPositionMessage;
......@@ -21,7 +22,7 @@ import android.media.Image;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.widget.ImageView;
import android.view.SurfaceHolder;
import android.widget.LinearLayout;
@SuppressLint("NewApi")
......@@ -37,8 +38,8 @@ public class GraphicsContext implements MessageConsumer {
private final Handler scrollHandler;
private final BitmapContainer bitmapContainer;
private final Canvas canvas;
private ImageView imgView;
private MySurfaceView surfaceView;
private final SurfaceHolder holder;
private boolean refreshEnabled = false;
private final MessageProducer producer;
......@@ -64,8 +65,11 @@ public class GraphicsContext implements MessageConsumer {
}
}
public GraphicsContext(ImageView imgV, Recording record) {
public GraphicsContext(MySurfaceView imgV, final SurfaceHolder holder,
Recording record) {
setImageView(imgV);
this.holder = holder;
this.producer = record;
this.recording = record;
producer.addMessageConsumer(this);
......@@ -76,7 +80,8 @@ public class GraphicsContext implements MessageConsumer {
Config.ARGB_4444));
// canvas to Bitmap
this.canvas = new Canvas(bitmapContainer.getBimap());
// this.canvas = new Canvas(bitmapContainer.getBimap());
this.pixels = bitmapContainer.getPixels();
hextile_bg_encoded = new byte[prefs.bytesPerPixel];
......@@ -89,14 +94,11 @@ public class GraphicsContext implements MessageConsumer {
@Override
public void handleMessage(android.os.Message inputMessage) {
// Gets the image task from the incoming Message object.
Bitmap bitmap = (Bitmap) inputMessage.obj;
if (isWhiteboardEnabled())
paintWhiteboard();
paintAnnotations();
recording.highlightSearchResults(canvas);
imgView.setImageBitmap(bitmap);
final int[] pixels = (int[]) inputMessage.obj;
// if (isWhiteboardEnabled())
// paintWhiteboard();
// paintAnnotations();
// recording.highlightSearchResults(canvas);
}
};
......@@ -158,8 +160,27 @@ public class GraphicsContext implements MessageConsumer {
// recording.highlightSearchResults(canvas);
// sHolder.unlockCanvasAndPost(canvas);
// }
//
// }
public void paintCanvas(SurfaceHolder sHolder) {
Canvas canvas = sHolder.lockCanvas();
if (canvas != null) {
canvas.drawBitmap(pixels, 0,
recording.getProtocolPreferences().framebufferWidth, 0, 0,
recording.getProtocolPreferences().framebufferWidth,
recording.getProtocolPreferences().framebufferHeight,
false, null);
if (isWhiteboardEnabled())
paintWhiteboard(canvas);
paintAnnotations(canvas);
recording.highlightSearchResults(canvas);
sHolder.unlockCanvasAndPost(canvas);
}
}
public void enableRefresh(boolean refresh) {
this.refreshEnabled = refresh;
......@@ -169,10 +190,10 @@ public class GraphicsContext implements MessageConsumer {
return refreshEnabled;
}
public void setImageView(ImageView imgV) {
this.imgView = imgV;
public void setImageView(MySurfaceView imgV) {
this.surfaceView = imgV;
// test TODO
imgView.setWillNotCacheDrawing(true);
// imgView.setWillNotCacheDrawing(true);
}
public int[] getPixels() {
......@@ -203,17 +224,46 @@ public class GraphicsContext implements MessageConsumer {
// draw Canvas on current Bitmap
public void updateView() {
if (refreshEnabled) {
android.os.Message message = viewHandler.obtainMessage(0,
bitmapContainer.getBimap());
message.sendToTarget();
Thread paintThread = new Thread(new Runnable() {
@Override
public void run() {
try {
paintCanvas(holder);
} catch (OutOfMemoryError e) {
}
}
});
paintThread.start();
}
}
// set new Bitmap
public void updateView(final Bitmap bitmap) {
public void updateView(final int[] pixel) {
if (refreshEnabled) {
android.os.Message message = viewHandler.obtainMessage(0, bitmap);
message.sendToTarget();
// android.os.Message message = viewHandler.obtainMessage(0, pixel);
// message.sendToTarget();
Thread paintThread = new Thread(new Runnable() {
@Override
public void run() {
try {
paintCanvas(holder);
} catch (OutOfMemoryError e) {
}
}
});
paintThread.start();
}
}
......@@ -265,12 +315,12 @@ public class GraphicsContext implements MessageConsumer {
// if recording is adjusting, messages are not painted one by one but
// only the final image
if (!recording.adjusting) {
bitmapContainer.getBimap().setPixels(pixels,
x + y * prefs.framebufferWidth, prefs.framebufferWidth, x,
y, w, h);
if (refreshEnabled) {
// bitmapContainer.getBimap().setPixels(pixels,
// x + y * prefs.framebufferWidth, prefs.framebufferWidth, x,
// y, w, h);
updateView(bitmapContainer.getBimap());
updateView(pixels);
}
}
......@@ -336,7 +386,7 @@ public class GraphicsContext implements MessageConsumer {
}
// display all annotations
synchronized public void paintAnnotations() {
synchronized public void paintAnnotations(Canvas canvas) {
for (int i = 0; i < currentAnnotations.size(); i++) {
currentAnnotations.get(i).paint(canvas);
......@@ -349,18 +399,15 @@ public class GraphicsContext implements MessageConsumer {
// show blank page if whiteboard activated
if (isWhiteboardEnabled()) {
int[] whitePixels = new int[(int) (prefs.framebufferWidth * IndexEntry.THUMBNAIL_SCALE_FACTOR)
* (int) (prefs.framebufferWidth * IndexEntry.THUMBNAIL_SCALE_FACTOR)];
int[] whitePixels = new int[prefs.framebufferWidth
* prefs.framebufferWidth];
for (int i = 0; i < whitePixels.length; i++) {
whitePixels[i] = Color.WHITE;
}
Bitmap whiteboard = Bitmap
.createBitmap(
whitePixels,
(int) (prefs.framebufferWidth * IndexEntry.THUMBNAIL_SCALE_FACTOR),
(int) (prefs.framebufferHeight * IndexEntry.THUMBNAIL_SCALE_FACTOR),
Config.ARGB_4444);
Bitmap whiteboard = Bitmap.createBitmap(whitePixels,
prefs.framebufferWidth, prefs.framebufferHeight,
Config.ARGB_4444);
return whiteboard;
} else {
......@@ -404,17 +451,9 @@ public class GraphicsContext implements MessageConsumer {
return new WhiteboardMessage(0, whiteboardPage, prefs);
}
public void paintWhiteboard() {
int[] whitePixel = new int[prefs.framebufferHeight
* prefs.framebufferWidth];
for (int i = 0; i < whitePixel.length; i++) {
whitePixel[i] = Color.WHITE;
}
public void paintWhiteboard(Canvas canvas) {
bitmapContainer.getBimap().setPixels(whitePixel, 0,
prefs.framebufferWidth, 0, 0, prefs.framebufferWidth,
prefs.framebufferHeight);
canvas.drawColor(Color.WHITE);
Paint p = new Paint(Color.BLACK);
p.setTextSize(20);
......@@ -511,4 +550,9 @@ public class GraphicsContext implements MessageConsumer {
public Message getCurrentCursorMessage() {
return bufferedCursorMessage;
}
public SurfaceHolder getHolder() {
return holder;
}
}
\ No newline at end of file
......@@ -100,6 +100,7 @@ public class IndexEntry extends ImageButton {
this.thumbnail = thumbnail;
// set src of ImageButton
this.setImageBitmap(thumbnail);
hasThumbnail = true;
}
......
......@@ -33,17 +33,20 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.zip.InflaterInputStream;
import tttclient.activities.MySurfaceView;
import tttclient.messages.Message;
import tttclient.messages.MessageProducerAdapter;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.Gravity;
import android.view.SurfaceHolder;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
......@@ -81,7 +84,8 @@ public class Recording extends MessageProducerAdapter implements Runnable {
}
public Recording(Context context, File tttFile, MediaPlayer audioPlayer,
ImageView imgV, ScrollView scrollView) throws IOException {
MySurfaceView surface, SurfaceHolder holder, ScrollView scrollView)
throws IOException {
// read
this.context = context;
this.indexViewer = scrollView;
......@@ -93,14 +97,24 @@ public class Recording extends MessageProducerAdapter implements Runnable {
// read messages + extensions
read(tttFile);
graphicsContext = new GraphicsContext(imgV, this);
graphicsContext = new GraphicsContext(surface, holder, this);
if (!index.isValid())
index.computeIndex();
if (!index.thumbnailsAvailable())
index.createScreenshots();
index.extractAnnotations();
initIndexView();
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
initIndexView();
}
});
if (audioPlayer != null) {
int desktop_duration = messages.get(messages.size() - 1)
.getTimestamp();
......@@ -116,7 +130,7 @@ public class Recording extends MessageProducerAdapter implements Runnable {
}
graphicsContext.enableRefresh(true);
setTime(0, true);
setTime(index.get(0).getTimestamp(), true);
messages.statistics();
}
......@@ -530,7 +544,7 @@ public class Recording extends MessageProducerAdapter implements Runnable {
public void setTime(int time, boolean refresh) {
// refresh determine if display is updated or not
setAdjusting(true);
// setAdjusting(true);
time = sync(time);
......@@ -542,10 +556,11 @@ public class Recording extends MessageProducerAdapter implements Runnable {
// focusCurrentIndexEntry(time);
index.setCorrespondingIndex(time);
graphicsContext.updateView();
setAudioPlayerTime(time);
}
setAdjusting(false);
// setAdjusting(false);
}
......
......@@ -31,7 +31,6 @@ import tttclient.core.Constants;
import tttclient.shapes.StrokedPath;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint.Cap;
import android.graphics.Paint.Join;
import android.graphics.Paint.Style;
......@@ -113,9 +112,7 @@ public class FreehandAnnotation extends Annotation {
@Override
public void paint(Canvas canvas) {
// paint.setColor(annotationColors[color]);
// TODO just for testing
strokedPath.setColor(Color.RED);
strokedPath.setColor(annotationColors[color]);
strokedPath.setStyle(Style.STROKE);
strokedPath.paint(canvas);
......
......@@ -31,7 +31,6 @@ import tttclient.core.Constants;
import tttclient.shapes.StrokedRect;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint.Cap;
import android.graphics.Paint.Join;
import android.graphics.Paint.Style;
......@@ -124,8 +123,8 @@ public class RectangleAnnotation extends SimpleAnnotation {
// graphics.setColor(annotationColors[color]);
// graphics.fill(shape);
// TODO rot als Test
rect.setColor(Color.RED);
rect.setStyle(Style.FILL);
rect.setColor(annotationColors[color]);
rect.setStyle(Style.STROKE);
rect.paint(canvas);
}
......