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
7e8322f2
Kaydet (Commit)
7e8322f2
authored
Eyl 27, 2014
tarafından
Tomaž Vajngerl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
android: add ZoomConstraints (Fennec import)
Change-Id: I7bb840f74675a2e23fd7ee45aad4d48a705e567e
üst
89d40803
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
89 additions
and
79 deletions
+89
-79
LOKitThread.java
...ntal/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
+3
-1
LibreOfficeMainActivity.java
...id3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+2
-1
ZoomConstraints.java
...OAndroid3/src/java/org/mozilla/gecko/ZoomConstraints.java
+46
-0
LayerController.java
...roid3/src/java/org/mozilla/gecko/gfx/LayerController.java
+10
-34
ViewportMetrics.java
...roid3/src/java/org/mozilla/gecko/gfx/ViewportMetrics.java
+10
-16
PanZoomController.java
...oid3/src/java/org/mozilla/gecko/ui/PanZoomController.java
+17
-12
SubdocumentScrollHelper.java
...rc/java/org/mozilla/gecko/ui/SubdocumentScrollHelper.java
+1
-15
No files found.
android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -3,6 +3,7 @@ package org.libreoffice;
import
android.graphics.Bitmap
;
import
android.graphics.Rect
;
import
android.graphics.RectF
;
import
android.util.DisplayMetrics
;
import
android.util.Log
;
import
org.mozilla.gecko.gfx.GeckoLayerClient
;
...
...
@@ -28,7 +29,8 @@ public class LOKitThread extends Thread {
int
pageHeight
=
mTileProvider
.
getPageHeight
();
RectF
rect
=
new
RectF
(
0
,
0
,
pageWidth
,
pageHeight
);
mViewportMetrics
=
new
ViewportMetrics
();
DisplayMetrics
displayMetrics
=
LibreOfficeMainActivity
.
mAppContext
.
getResources
().
getDisplayMetrics
();
mViewportMetrics
=
new
ViewportMetrics
(
displayMetrics
);
mViewportMetrics
.
setPageRect
(
rect
,
rect
);
GeckoLayerClient
layerClient
=
mApplication
.
getLayerClient
();
...
...
android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -13,6 +13,7 @@ import android.widget.AdapterView;
import
android.widget.ListView
;
import
android.widget.RelativeLayout
;
import
org.mozilla.gecko.ZoomConstraints
;
import
org.mozilla.gecko.gfx.GeckoLayerClient
;
import
org.mozilla.gecko.gfx.LayerController
;
...
...
@@ -118,7 +119,7 @@ public class LibreOfficeMainActivity extends Activity {
}
mLayerController
=
new
LayerController
(
this
);
mLayerController
.
set
AllowZoom
(
true
);
mLayerController
.
set
ZoomConstraints
(
new
ZoomConstraints
(
true
)
);
mLayerClient
=
new
GeckoLayerClient
(
this
);
mLayerController
.
setLayerClient
(
mLayerClient
);
mGeckoLayout
.
addView
(
mLayerController
.
getView
(),
0
);
...
...
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ZoomConstraints.java
0 → 100644
Dosyayı görüntüle @
7e8322f2
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package
org
.
mozilla
.
gecko
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
public
final
class
ZoomConstraints
{
private
final
boolean
mAllowZoom
;
private
final
float
mDefaultZoom
;
private
final
float
mMinZoom
;
private
final
float
mMaxZoom
;
public
ZoomConstraints
(
boolean
allowZoom
)
{
mAllowZoom
=
allowZoom
;
mDefaultZoom
=
0.0f
;
mMinZoom
=
0.0f
;
mMaxZoom
=
0.0f
;
}
ZoomConstraints
(
JSONObject
message
)
throws
JSONException
{
mAllowZoom
=
message
.
getBoolean
(
"allowZoom"
);
mDefaultZoom
=
(
float
)
message
.
getDouble
(
"defaultZoom"
);
mMinZoom
=
(
float
)
message
.
getDouble
(
"minZoom"
);
mMaxZoom
=
(
float
)
message
.
getDouble
(
"maxZoom"
);
}
public
final
boolean
getAllowZoom
()
{
return
mAllowZoom
;
}
public
final
float
getDefaultZoom
()
{
return
mDefaultZoom
;
}
public
final
float
getMinZoom
()
{
return
mMinZoom
;
}
public
final
float
getMaxZoom
()
{
return
mMaxZoom
;
}
}
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerController.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -12,8 +12,10 @@ import android.graphics.BitmapFactory;
import
android.graphics.Color
;
import
android.graphics.PointF
;
import
android.graphics.RectF
;
import
android.util.DisplayMetrics
;
import
android.view.GestureDetector
;
import
org.mozilla.gecko.ZoomConstraints
;
import
org.mozilla.gecko.ui.PanZoomController
;
import
org.mozilla.gecko.ui.SimpleScaleGestureDetector
;
...
...
@@ -56,21 +58,19 @@ public class LayerController {
private
int
mCheckerboardColor
=
Color
.
WHITE
;
private
boolean
mCheckerboardShouldShowChecks
;
private
boolean
mAllowZoom
;
private
float
mDefaultZoom
;
private
float
mMinZoom
;
private
float
mMaxZoom
;
private
ZoomConstraints
mZoomConstraints
;
private
boolean
mForceRedraw
;
public
LayerController
(
Context
context
)
{
mContext
=
context
;
mForceRedraw
=
true
;
mViewportMetrics
=
new
ImmutableViewportMetrics
(
new
ViewportMetrics
());
DisplayMetrics
displayMetrics
=
context
.
getResources
().
getDisplayMetrics
();
mViewportMetrics
=
new
ImmutableViewportMetrics
(
new
ViewportMetrics
(
displayMetrics
));
mPanZoomController
=
new
PanZoomController
(
this
);
mView
=
new
LayerView
(
context
,
this
);
mCheckerboardShouldShowChecks
=
true
;
mZoomConstraints
=
new
ZoomConstraints
(
false
);
}
public
void
setRoot
(
Layer
layer
)
{
mRootLayer
=
layer
;
}
...
...
@@ -307,35 +307,11 @@ public class LayerController {
mView
.
requestRender
();
}
public
void
setAllowZoom
(
final
boolean
aValue
)
{
mAllowZoom
=
aValue
;
}
public
boolean
getAllowZoom
()
{
return
mAllowZoom
;
}
public
void
setDefaultZoom
(
float
aValue
)
{
mDefaultZoom
=
aValue
;
}
public
float
getDefaultZoom
()
{
return
mDefaultZoom
;
}
public
void
setMinZoom
(
float
aValue
)
{
mMinZoom
=
aValue
;
}
public
float
getMinZoom
()
{
return
mMinZoom
;
}
public
void
setMaxZoom
(
float
aValue
)
{
mMaxZoom
=
aValue
;
public
void
setZoomConstraints
(
ZoomConstraints
constraints
)
{
mZoomConstraints
=
constraints
;
}
public
float
getMaxZoom
()
{
return
m
MaxZoom
;
public
ZoomConstraints
getZoomConstraints
()
{
return
m
ZoomConstraints
;
}
}
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewportMetrics.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -11,7 +11,6 @@ import android.util.DisplayMetrics;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
org.libreoffice.LibreOfficeMainActivity
;
import
org.mozilla.gecko.util.FloatUtils
;
/**
...
...
@@ -26,10 +25,7 @@ public class ViewportMetrics {
private
RectF
mViewportRect
;
private
float
mZoomFactor
;
public
ViewportMetrics
()
{
DisplayMetrics
metrics
=
new
DisplayMetrics
();
LibreOfficeMainActivity
.
mAppContext
.
getWindowManager
().
getDefaultDisplay
().
getMetrics
(
metrics
);
public
ViewportMetrics
(
DisplayMetrics
metrics
)
{
mPageRect
=
new
RectF
(
0
,
0
,
metrics
.
widthPixels
,
metrics
.
heightPixels
);
mCssPageRect
=
new
RectF
(
0
,
0
,
metrics
.
widthPixels
,
metrics
.
heightPixels
);
mViewportRect
=
new
RectF
(
0
,
0
,
metrics
.
widthPixels
,
metrics
.
heightPixels
);
...
...
@@ -59,20 +55,19 @@ public class ViewportMetrics {
mZoomFactor
=
viewport
.
zoomFactor
;
}
public
ViewportMetrics
(
JSONObject
json
)
throws
JSONException
{
float
x
=
(
float
)
json
.
getDouble
(
"x"
);
float
y
=
(
float
)
json
.
getDouble
(
"y"
);
float
width
=
(
float
)
json
.
getDouble
(
"width"
);
float
height
=
(
float
)
json
.
getDouble
(
"height"
);
float
pageLeft
=
0.0f
;
float
pageTop
=
0.0f
;
float
pageRight
=
(
float
)
json
.
getDouble
(
"page
Width
"
);
float
pageBottom
=
(
float
)
json
.
getDouble
(
"page
Height
"
);
float
cssPageLeft
=
0.0f
;
float
cssPageTop
=
0.0f
;
float
cssPageRight
=
(
float
)
json
.
getDouble
(
"cssPage
Width
"
);
float
cssPageBottom
=
(
float
)
json
.
getDouble
(
"cssPage
Height
"
);
float
pageLeft
=
(
float
)
json
.
getDouble
(
"pageLeft"
)
;
float
pageTop
=
(
float
)
json
.
getDouble
(
"pageTop"
)
;
float
pageRight
=
(
float
)
json
.
getDouble
(
"page
Right
"
);
float
pageBottom
=
(
float
)
json
.
getDouble
(
"page
Bottom
"
);
float
cssPageLeft
=
(
float
)
json
.
getDouble
(
"cssPageLeft"
)
;
float
cssPageTop
=
(
float
)
json
.
getDouble
(
"cssPageTop"
)
;
float
cssPageRight
=
(
float
)
json
.
getDouble
(
"cssPage
Right
"
);
float
cssPageBottom
=
(
float
)
json
.
getDouble
(
"cssPage
Bottom
"
);
float
zoom
=
(
float
)
json
.
getDouble
(
"zoom"
);
mPageRect
=
new
RectF
(
pageLeft
,
pageTop
,
pageRight
,
pageBottom
);
...
...
@@ -178,7 +173,7 @@ public class ViewportMetrics {
* page size, the offset, and the zoom factor.
*/
public
ViewportMetrics
interpolate
(
ViewportMetrics
to
,
float
t
)
{
ViewportMetrics
result
=
new
ViewportMetrics
();
ViewportMetrics
result
=
new
ViewportMetrics
(
this
);
result
.
mPageRect
=
RectUtils
.
interpolate
(
mPageRect
,
to
.
mPageRect
,
t
);
result
.
mCssPageRect
=
RectUtils
.
interpolate
(
mCssPageRect
,
to
.
mCssPageRect
,
t
);
result
.
mZoomFactor
=
FloatUtils
.
interpolate
(
mZoomFactor
,
to
.
mZoomFactor
,
t
);
...
...
@@ -227,4 +222,3 @@ public class ViewportMetrics {
return
buff
.
toString
();
}
}
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/PanZoomController.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -14,6 +14,7 @@ import android.view.MotionEvent;
import
org.libreoffice.LOKitShell
;
import
org.libreoffice.LibreOfficeMainActivity
;
import
org.mozilla.gecko.ZoomConstraints
;
import
org.mozilla.gecko.gfx.ImmutableViewportMetrics
;
import
org.mozilla.gecko.gfx.LayerController
;
import
org.mozilla.gecko.gfx.ViewportMetrics
;
...
...
@@ -111,7 +112,7 @@ public class PanZoomController
public
PanZoomController
(
LayerController
controller
)
{
mController
=
controller
;
mSubscroller
=
new
SubdocumentScrollHelper
(
this
);
mSubscroller
=
new
SubdocumentScrollHelper
();
mX
=
new
AxisX
(
mSubscroller
);
mY
=
new
AxisY
(
mSubscroller
);
...
...
@@ -705,14 +706,16 @@ public class PanZoomController
float
minZoomFactor
=
0.0f
;
float
maxZoomFactor
=
MAX_ZOOM
;
if
(
mController
.
getMinZoom
()
>
0
)
minZoomFactor
=
mController
.
getMinZoom
();
if
(
mController
.
getMaxZoom
()
>
0
)
maxZoomFactor
=
mController
.
getMaxZoom
();
ZoomConstraints
constraints
=
mController
.
getZoomConstraints
();
if
(!
mController
.
getAllowZoom
())
{
if
(
constraints
.
getMinZoom
()
>
0
)
minZoomFactor
=
constraints
.
getMinZoom
();
if
(
constraints
.
getMaxZoom
()
>
0
)
maxZoomFactor
=
constraints
.
getMaxZoom
();
if
(!
constraints
.
getAllowZoom
())
{
// If allowZoom is false, clamp to the default zoom level.
maxZoomFactor
=
minZoomFactor
=
mController
.
getDefaultZoom
();
maxZoomFactor
=
minZoomFactor
=
constraints
.
getDefaultZoom
();
}
// Ensure minZoomFactor keeps the page at least as big as the viewport.
...
...
@@ -782,7 +785,7 @@ public class PanZoomController
if
(
mState
==
PanZoomState
.
ANIMATED_ZOOM
)
return
false
;
if
(!
mController
.
getAllowZoom
())
if
(!
mController
.
get
ZoomConstraints
().
get
AllowZoom
())
return
false
;
setState
(
PanZoomState
.
PINCHING
);
...
...
@@ -820,10 +823,12 @@ public class PanZoomController
float
minZoomFactor
=
0.0f
;
float
maxZoomFactor
=
MAX_ZOOM
;
if
(
mController
.
getMinZoom
()
>
0
)
minZoomFactor
=
mController
.
getMinZoom
();
if
(
mController
.
getMaxZoom
()
>
0
)
maxZoomFactor
=
mController
.
getMaxZoom
();
ZoomConstraints
constraints
=
mController
.
getZoomConstraints
();
if
(
constraints
.
getMinZoom
()
>
0
)
minZoomFactor
=
constraints
.
getMinZoom
();
if
(
constraints
.
getMaxZoom
()
>
0
)
maxZoomFactor
=
constraints
.
getMaxZoom
();
if
(
newZoomFactor
<
minZoomFactor
)
{
// apply resistance when zooming past minZoomFactor,
...
...
android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/SubdocumentScrollHelper.java
Dosyayı görüntüle @
7e8322f2
...
...
@@ -7,15 +7,10 @@ package org.mozilla.gecko.ui;
import
android.graphics.PointF
;
import
android.os.Handler
;
import
android.util.Log
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
class
SubdocumentScrollHelper
{
private
static
final
String
LOGTAG
=
"GeckoSubdocumentScrollHelper"
;
private
final
PanZoomController
mPanZoomController
;
private
final
Handler
mUiHandler
;
/* This is the amount of displacement we have accepted but not yet sent to JS; this is
...
...
@@ -38,8 +33,7 @@ class SubdocumentScrollHelper {
* the subdocument; we use this to decide when we have reached the end of the subdocument. */
private
boolean
mScrollSucceeded
;
SubdocumentScrollHelper
(
PanZoomController
controller
)
{
mPanZoomController
=
controller
;
SubdocumentScrollHelper
()
{
// mUiHandler will be bound to the UI thread since that's where this constructor runs
mUiHandler
=
new
Handler
();
mPendingDisplacement
=
new
PointF
();
...
...
@@ -60,14 +54,6 @@ class SubdocumentScrollHelper {
return
true
;
}
JSONObject
json
=
new
JSONObject
();
try
{
json
.
put
(
"x"
,
displacement
.
x
);
json
.
put
(
"y"
,
displacement
.
y
);
}
catch
(
JSONException
e
)
{
Log
.
e
(
LOGTAG
,
"Error forming subwindow scroll message: "
,
e
);
}
mOverrideScrollAck
=
false
;
mOverrideScrollPending
=
false
;
// clear the |mPendingDisplacement| after serializing |displacement| to
...
...
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