summaryrefslogtreecommitdiff
path: root/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
diff options
context:
space:
mode:
authorXimeng Zu <uznomis@yahoo.com>2017-07-26 11:15:26 -0500
committerTomaž Vajngerl <quikee@gmail.com>2017-08-27 20:12:52 +0200
commit43f5161991cffedabb280a6e4e388c5bcbac4f96 (patch)
tree2dda51149a9174dc1e7de414f89b1cba96ef5a36 /android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
parentc4bc3822298a663c31c676648262c223c1be4ab6 (diff)
[Android Viewer] Password support
Added password support for documents. Change-Id: Ifd9cf86894ddaf2fd5ad97510d2ac1b5850611ad Reviewed-on: https://gerrit.libreoffice.org/40458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java')
-rwxr-xr-xandroid/source/src/java/org/libreoffice/LibreOfficeMainActivity.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 20e25b2c6c32..97e23f238d09 100755
--- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -95,6 +95,9 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin
private SearchController mSearchController;
private CalcHeadersController mCalcHeadersController;
private boolean mIsSpreadsheet;
+ private LOKitTileProvider mTileProvider;
+ private String mPassword;
+ private boolean mPasswordProtected;
public GeckoLayerClient getLayerClient() {
return mLayerClient;
@@ -699,6 +702,37 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin
}
}
+ public void promptForPassword() {
+ PasswordDialogFragment passwordDialogFragment = new PasswordDialogFragment();
+ passwordDialogFragment.setLOMainActivity(this);
+ passwordDialogFragment.show(getSupportFragmentManager(), "PasswordDialogFragment");
+ }
+
+ // this function can only be called in InvalidationHandler.java
+ public void setPassword() {
+ mTileProvider.setDocumentPassword("file://"+mInputFile.getPath(), mPassword);
+ }
+
+ // setTileProvider is meant to let main activity have a handle of LOKit when dealing with password
+ public void setTileProvider(LOKitTileProvider loKitTileProvider) {
+ mTileProvider = loKitTileProvider;
+ }
+
+ public void savePassword(String pwd) {
+ mPassword = pwd;
+ synchronized (mTileProvider.getMessageCallback()) {
+ mTileProvider.getMessageCallback().notifyAll();
+ }
+ }
+
+ public void setPasswordProtected(boolean b) {
+ mPasswordProtected = b;
+ }
+
+ public boolean isPasswordProtected() {
+ return mPasswordProtected;
+ }
+
public void initializeCalcHeaders() {
mCalcHeadersController = new CalcHeadersController(this, mLayerClient.getView());
mCalcHeadersController.setupHeaderPopupView();