mirror of
https://github.com/moparisthebest/keepass2android
synced 2024-12-21 22:48:50 -05:00
add more diagnostics logging for fingerprint issue
OneDrive: backward compatible parsing of paths
This commit is contained in:
parent
c36ff24e38
commit
d41f8cdef5
Binary file not shown.
Binary file not shown.
@ -23,6 +23,7 @@ import com.onedrive.sdk.http.OneDriveServiceException;
|
|||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -166,16 +167,52 @@ public class OneDriveStorage extends JavaFileStorageBase
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getPathFromSkydrivePath(String skydrivePath)
|
||||||
String removeProtocol(String path)
|
|
||||||
{
|
{
|
||||||
|
String path = "";
|
||||||
|
if (skydrivePath.equals(""))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
String[] parts = skydrivePath.split("/");
|
||||||
|
|
||||||
|
for (int i = 0; i < parts.length; i++) {
|
||||||
|
String part = parts[i];
|
||||||
|
logDebug("parsing part " + part);
|
||||||
|
int indexOfSeparator = part.lastIndexOf(NAME_ID_SEP);
|
||||||
|
if (indexOfSeparator < 0) {
|
||||||
|
// seems invalid, but we're very generous here
|
||||||
|
path += "/" + part;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String name = part.substring(0, indexOfSeparator);
|
||||||
|
try {
|
||||||
|
name = decode(name);
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
path += "/" + name;
|
||||||
|
}
|
||||||
|
logDebug("return " +path + ". original was " + skydrivePath);
|
||||||
|
return path;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String removeProtocol(String path) throws Exception {
|
||||||
if (path == null)
|
if (path == null)
|
||||||
return null;
|
return null;
|
||||||
|
if (path.startsWith("skydrive"))
|
||||||
|
return getPathFromSkydrivePath(path.substring("skydrive://".length()));
|
||||||
return path.substring(getProtocolId().length()+3);
|
return path.substring(getProtocolId().length()+3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDisplayName(String path) {
|
public String getDisplayName(String path) {
|
||||||
|
|
||||||
|
if (path == null)
|
||||||
|
return null;
|
||||||
|
if (path.startsWith("skydrive"))
|
||||||
|
return getProtocolId()+"://"+getPathFromSkydrivePath(path.substring("skydrive://".length()));
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,18 +235,21 @@ public class OneDriveStorage extends JavaFileStorageBase
|
|||||||
public InputStream openFileForRead(String path) throws Exception {
|
public InputStream openFileForRead(String path) throws Exception {
|
||||||
try {
|
try {
|
||||||
path = removeProtocol(path);
|
path = removeProtocol(path);
|
||||||
return oneDriveClient.getDrive()
|
logDebug("openFileForRead. Path="+path);
|
||||||
|
InputStream result = oneDriveClient.getDrive()
|
||||||
.getRoot()
|
.getRoot()
|
||||||
.getItemWithPath(path)
|
.getItemWithPath(path)
|
||||||
.getContent()
|
.getContent()
|
||||||
.buildRequest()
|
.buildRequest()
|
||||||
.get();
|
.get();
|
||||||
|
logDebug("ok");
|
||||||
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (OneDriveServiceException e)
|
catch (OneDriveServiceException e)
|
||||||
{
|
{
|
||||||
throw convertException(e);
|
throw convertException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Exception convertException(OneDriveServiceException e) {
|
private Exception convertException(OneDriveServiceException e) {
|
||||||
|
@ -33,11 +33,11 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="AutoFillService.java" pinned="false" current-in-tab="false">
|
<file leaf-file-name="AutoFillService.java" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="-11.111111">
|
<state vertical-scroll-proportion="0.4856631">
|
||||||
<caret line="318" column="8" selection-start-line="318" selection-start-column="8" selection-end-line="318" selection-end-column="8" />
|
<caret line="399" column="13" selection-start-line="399" selection-start-column="13" selection-end-line="399" selection-end-column="13" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@ -119,7 +119,7 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="gradle.properties" pinned="false" current-in-tab="true">
|
<file leaf-file-name="gradle.properties" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/gradle.properties">
|
<entry file="file://$PROJECT_DIR$/gradle.properties">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0">
|
<state vertical-scroll-proportion="0.0">
|
||||||
@ -1846,14 +1846,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="-11.111111">
|
|
||||||
<caret line="318" column="8" selection-start-line="318" selection-start-column="8" selection-end-line="318" selection-end-column="8" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/build.gradle">
|
<entry file="file://$PROJECT_DIR$/build.gradle">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0">
|
<state vertical-scroll-proportion="0.0">
|
||||||
@ -1886,5 +1878,13 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.4856631">
|
||||||
|
<caret line="399" column="13" selection-start-line="399" selection-start-column="13" selection-end-line="399" selection-end-column="13" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -26,7 +26,7 @@ namespace keepass2android
|
|||||||
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, Android.Resource.Style.ThemeHoloLightDialog));
|
AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, Android.Resource.Style.ThemeHoloLightDialog));
|
||||||
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
|
builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title));
|
||||||
List<string> changeLog = new List<string>{
|
List<string> changeLog = new List<string>{
|
||||||
ctx.GetString(Resource.String.ChangeLog_1_01f),
|
ctx.GetString(Resource.String.ChangeLog_1_01g),
|
||||||
ctx.GetString(Resource.String.ChangeLog_1_01d),
|
ctx.GetString(Resource.String.ChangeLog_1_01d),
|
||||||
ctx.GetString(Resource.String.ChangeLog_1_01),
|
ctx.GetString(Resource.String.ChangeLog_1_01),
|
||||||
ctx.GetString(Resource.String.ChangeLog_1_0_0e),
|
ctx.GetString(Resource.String.ChangeLog_1_0_0e),
|
||||||
|
@ -278,8 +278,9 @@ namespace keepass2android
|
|||||||
_cryptoObject = new FingerprintManager.CryptoObject(_cipher);
|
_cryptoObject = new FingerprintManager.CryptoObject(_cipher);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (KeyPermanentlyInvalidatedException)
|
catch (KeyPermanentlyInvalidatedException e)
|
||||||
{
|
{
|
||||||
|
Kp2aLog.Log("FP: KeyPermanentlyInvalidatedException." + e.ToString());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
catch (KeyStoreException e)
|
catch (KeyStoreException e)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:versionCode="92"
|
android:versionCode="93"
|
||||||
android:versionName="1.01-f"
|
android:versionName="1.01-g"
|
||||||
package="keepass2android.keepass2android"
|
package="keepass2android.keepass2android"
|
||||||
android:installLocation="auto">
|
android:installLocation="auto">
|
||||||
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||||
|
@ -680,8 +680,8 @@
|
|||||||
<string name="ActivateAutoFillService_btnAutoFill">Use AutoFill service</string>
|
<string name="ActivateAutoFillService_btnAutoFill">Use AutoFill service</string>
|
||||||
<string name="ActivateAutoFillService_toast">Please enable the Keepass2Android service.</string>
|
<string name="ActivateAutoFillService_toast">Please enable the Keepass2Android service.</string>
|
||||||
<string name="ShowKeyboardDuringFingerprintAuth">Show soft keyboard for password input when fingerprint scan is active.</string>
|
<string name="ShowKeyboardDuringFingerprintAuth">Show soft keyboard for password input when fingerprint scan is active.</string>
|
||||||
<string name="ChangeLog_1_01f">
|
<string name="ChangeLog_1_01g">
|
||||||
Version 1.01-f\n
|
Version 1.01-g\n
|
||||||
* Fix for crash when trying to work offline\n
|
* Fix for crash when trying to work offline\n
|
||||||
* Fix for incorrect encoding of FTP(S) credentials\n
|
* Fix for incorrect encoding of FTP(S) credentials\n
|
||||||
* Fix for crashes when using OneDrive and on older Android versions\n
|
* Fix for crashes when using OneDrive and on older Android versions\n
|
||||||
|
Loading…
Reference in New Issue
Block a user