android: set layerView to TextCursorView{Layer} when available

Change-Id: I3dbb7747ad6d5ce44ca286023e6c8fbc5a19a6b7
This commit is contained in:
Tomaž Vajngerl 2015-03-31 18:20:25 +09:00 committed by Miklos Vajna
parent 656d3f9ee4
commit 626e1a2d6d
3 changed files with 17 additions and 18 deletions

View File

@ -155,18 +155,19 @@ public class LibreOfficeMainActivity extends ActionBarActivity {
sLOKitThread.clearQueue(); sLOKitThread.clearQueue();
} }
mTextSelection = new TextSelection(mAppContext);
mTextCursorLayer = new TextCursorLayer(mAppContext);
mLayerClient = new GeckoLayerClient(this); mLayerClient = new GeckoLayerClient(this);
mLayerClient.setZoomConstraints(new ZoomConstraints(true)); mLayerClient.setZoomConstraints(new ZoomConstraints(true));
LayerView layerView = (LayerView) findViewById(R.id.layer_view); LayerView layerView = (LayerView) findViewById(R.id.layer_view);
// register TextSelection and TextCursorLayer in LayerView
mLayerClient.setView(layerView); mLayerClient.setView(layerView);
layerView.addLayer(mTextSelection);
layerView.addLayer(mTextCursorLayer);
layerView.setInputConnectionHandler(new LOKitInputConnectionHandler()); layerView.setInputConnectionHandler(new LOKitInputConnectionHandler());
mLayerClient.notifyReady(); mLayerClient.notifyReady();
// create and register TextSelection in LayerView
mTextSelection = new TextSelection(mAppContext);
layerView.addLayer(mTextSelection);
// create TextCursorLayer
mTextCursorLayer = new TextCursorLayer(mAppContext, layerView);
} }
private boolean copyFileToTemp() { private boolean copyFileToTemp() {

View File

@ -32,11 +32,13 @@ public class TextCursorLayer extends Layer {
private float mViewTop; private float mViewTop;
private float mViewZoom; private float mViewZoom;
public TextCursorLayer(Activity context) { public TextCursorLayer(Activity context, LayerView layerView) {
mCursorView = (TextCursorView) context.findViewById(R.id.text_cursor_view); mCursorView = (TextCursorView) context.findViewById(R.id.text_cursor_view);
if (mCursorView == null) { if (mCursorView == null) {
Log.e(LOGTAG, "Failed to initialize TextCursorLayer - CursorView is null"); Log.e(LOGTAG, "Failed to initialize TextCursorLayer - CursorView is null");
} }
layerView.addLayer(this);
mCursorView.initialize(layerView);
} }
/** /**

View File

@ -57,25 +57,23 @@ public class TextCursorView extends View implements View.OnTouchListener {
public TextCursorView(Context context) { public TextCursorView(Context context) {
super(context); super(context);
initialize();
} }
public TextCursorView(Context context, AttributeSet attrs) { public TextCursorView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
initialize();
} }
public TextCursorView(Context context, AttributeSet attrs, int defStyleAttr) { public TextCursorView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr); super(context, attrs, defStyleAttr);
initialize();
} }
/** /**
* Initialize the selection and cursor view. * Initialize the selection and cursor view.
*/ */
private void initialize() { public void initialize(LayerView layerView) {
if (!mInitialized) { if (!mInitialized) {
setOnTouchListener(this); setOnTouchListener(this);
mLayerView = layerView;
mCursorPaint.setColor(Color.BLACK); mCursorPaint.setColor(Color.BLACK);
mCursorPaint.setAlpha(0xFF); mCursorPaint.setAlpha(0xFF);
@ -100,15 +98,9 @@ public class TextCursorView extends View implements View.OnTouchListener {
* @param position - new position of the cursor * @param position - new position of the cursor
*/ */
public void changeCursorPosition(RectF position) { public void changeCursorPosition(RectF position) {
LayerView layerView = LOKitShell.getLayerView();
if (layerView == null) {
Log.e(LOGTAG, "Can't position cursor because layerView is null");
return;
}
mCursorPosition = position; mCursorPosition = position;
ImmutableViewportMetrics metrics = layerView.getViewportMetrics(); ImmutableViewportMetrics metrics = mLayerView.getViewportMetrics();
repositionWithViewport(metrics.viewportRectLeft, metrics.viewportRectTop, metrics.zoomFactor); repositionWithViewport(metrics.viewportRectLeft, metrics.viewportRectTop, metrics.zoomFactor);
} }
@ -287,6 +279,10 @@ public class TextCursorView extends View implements View.OnTouchListener {
} }
return false; return false;
} }
public void setLayerView(LayerView layerView) {
this.mLayerView = layerView;
}
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */