diff options
author | Ximeng Zu <uznomis@yahoo.com> | 2017-07-26 11:15:26 -0500 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2017-08-27 20:12:52 +0200 |
commit | 43f5161991cffedabb280a6e4e388c5bcbac4f96 (patch) | |
tree | 2dda51149a9174dc1e7de414f89b1cba96ef5a36 /android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | |
parent | c4bc3822298a663c31c676648262c223c1be4ab6 (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-x | android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 34 |
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(); |