mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Refactor code to lock
This commit is contained in:
@@ -56,6 +56,7 @@ import com.keepassdroid.database.PwDatabase;
|
|||||||
import com.keepassdroid.database.PwEntry;
|
import com.keepassdroid.database.PwEntry;
|
||||||
import com.keepassdroid.database.exception.SamsungClipboardException;
|
import com.keepassdroid.database.exception.SamsungClipboardException;
|
||||||
import com.keepassdroid.intents.Intents;
|
import com.keepassdroid.intents.Intents;
|
||||||
|
import com.keepassdroid.password.PasswordActivity;
|
||||||
import com.keepassdroid.settings.PrefsUtil;
|
import com.keepassdroid.settings.PrefsUtil;
|
||||||
import com.keepassdroid.tasks.UIToastTask;
|
import com.keepassdroid.tasks.UIToastTask;
|
||||||
import com.keepassdroid.utils.EmptyUtils;
|
import com.keepassdroid.utils.EmptyUtils;
|
||||||
@@ -63,7 +64,6 @@ import com.keepassdroid.utils.MenuUtil;
|
|||||||
import com.keepassdroid.utils.Types;
|
import com.keepassdroid.utils.Types;
|
||||||
import com.keepassdroid.utils.Util;
|
import com.keepassdroid.utils.Util;
|
||||||
import com.keepassdroid.view.EntryContentsView;
|
import com.keepassdroid.view.EntryContentsView;
|
||||||
import com.kunzisoft.keepass.KeePass;
|
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -74,7 +74,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
import static com.keepassdroid.settings.PrefsUtil.isClipboardNotificationsEnable;
|
import static com.keepassdroid.settings.PrefsUtil.isClipboardNotificationsEnable;
|
||||||
|
|
||||||
public class EntryActivity extends LockCloseHideActivity {
|
public class EntryActivity extends LockingHideActivity {
|
||||||
public static final String KEY_ENTRY = "entry";
|
public static final String KEY_ENTRY = "entry";
|
||||||
|
|
||||||
public static final int NOTIFY_USERNAME = 1;
|
public static final int NOTIFY_USERNAME = 1;
|
||||||
@@ -91,7 +91,7 @@ public class EntryActivity extends LockCloseHideActivity {
|
|||||||
private BroadcastReceiver mIntentReceiver;
|
private BroadcastReceiver mIntentReceiver;
|
||||||
protected boolean readOnly = false;
|
protected boolean readOnly = false;
|
||||||
|
|
||||||
public static void Launch(Activity act, PwEntry pw) {
|
public static void launch(Activity act, PwEntry pw) {
|
||||||
Intent intent = new Intent(act, EntryActivity.class);
|
Intent intent = new Intent(act, EntryActivity.class);
|
||||||
intent.putExtra(KEY_ENTRY, Types.UUIDtoBytes(pw.getUUID()));
|
intent.putExtra(KEY_ENTRY, Types.UUIDtoBytes(pw.getUUID()));
|
||||||
act.startActivityForResult(intent, EntryEditActivity.ADD_OR_UPDATE_ENTRY_REQUEST_CODE);
|
act.startActivityForResult(intent, EntryEditActivity.ADD_OR_UPDATE_ENTRY_REQUEST_CODE);
|
||||||
@@ -120,8 +120,6 @@ public class EntryActivity extends LockCloseHideActivity {
|
|||||||
|
|
||||||
mShowPassword = !PrefsUtil.isPasswordMask(this);
|
mShowPassword = !PrefsUtil.isPasswordMask(this);
|
||||||
|
|
||||||
setResult(KeePass.EXIT_NORMAL);
|
|
||||||
|
|
||||||
// Get Entry from UUID
|
// Get Entry from UUID
|
||||||
Intent i = getIntent();
|
Intent i = getIntent();
|
||||||
UUID uuid = Types.bytestoUUID(i.getByteArrayExtra(KEY_ENTRY));
|
UUID uuid = Types.bytestoUUID(i.getByteArrayExtra(KEY_ENTRY));
|
||||||
@@ -388,7 +386,7 @@ public class EntryActivity extends LockCloseHideActivity {
|
|||||||
|
|
||||||
case R.id.menu_lock:
|
case R.id.menu_lock:
|
||||||
App.setShutdown();
|
App.setShutdown();
|
||||||
setResult(KeePass.EXIT_LOCK);
|
setResult(PasswordActivity.RESULT_EXIT_LOCK);
|
||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ import com.keepassdroid.utils.MenuUtil;
|
|||||||
import com.keepassdroid.utils.Types;
|
import com.keepassdroid.utils.Types;
|
||||||
import com.keepassdroid.utils.Util;
|
import com.keepassdroid.utils.Util;
|
||||||
import com.keepassdroid.view.EntryEditNewField;
|
import com.keepassdroid.view.EntryEditNewField;
|
||||||
import com.kunzisoft.keepass.KeePass;
|
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -68,7 +67,7 @@ import java.util.Date;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class EntryEditActivity extends LockCloseHideActivity
|
public class EntryEditActivity extends LockingHideActivity
|
||||||
implements IconPickerDialogFragment.IconPickerListener,
|
implements IconPickerDialogFragment.IconPickerListener,
|
||||||
GeneratePasswordDialogFragment.GeneratePasswordListener {
|
GeneratePasswordDialogFragment.GeneratePasswordListener {
|
||||||
|
|
||||||
@@ -123,7 +122,6 @@ public class EntryEditActivity extends LockCloseHideActivity
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.entry_edit);
|
setContentView(R.layout.entry_edit);
|
||||||
setResult(KeePass.EXIT_NORMAL);
|
|
||||||
|
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
toolbar.setTitle(getString(R.string.app_name));
|
toolbar.setTitle(getString(R.string.app_name));
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ import com.keepassdroid.dialog.ReadOnlyDialog;
|
|||||||
import com.keepassdroid.fragments.AssignMasterKeyDialogFragment;
|
import com.keepassdroid.fragments.AssignMasterKeyDialogFragment;
|
||||||
import com.keepassdroid.fragments.GroupEditDialogFragment;
|
import com.keepassdroid.fragments.GroupEditDialogFragment;
|
||||||
import com.keepassdroid.fragments.IconPickerDialogFragment;
|
import com.keepassdroid.fragments.IconPickerDialogFragment;
|
||||||
|
import com.keepassdroid.password.PasswordActivity;
|
||||||
import com.keepassdroid.search.SearchResultsActivity;
|
import com.keepassdroid.search.SearchResultsActivity;
|
||||||
import com.keepassdroid.tasks.ProgressTask;
|
import com.keepassdroid.tasks.ProgressTask;
|
||||||
import com.keepassdroid.view.ListNodesWithAddButtonView;
|
import com.keepassdroid.view.ListNodesWithAddButtonView;
|
||||||
import com.kunzisoft.keepass.KeePass;
|
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
|
|
||||||
public class GroupActivity extends ListNodesActivity
|
public class GroupActivity extends ListNodesActivity
|
||||||
@@ -76,11 +76,11 @@ public class GroupActivity extends ListNodesActivity
|
|||||||
|
|
||||||
private static final String TAG = "Group Activity:";
|
private static final String TAG = "Group Activity:";
|
||||||
|
|
||||||
public static void Launch(Activity act) {
|
public static void launch(Activity act) {
|
||||||
Launch(act, null);
|
launch(act, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Launch(Activity act, PwGroup group) {
|
public static void launch(Activity act, PwGroup group) {
|
||||||
Intent intent = new Intent(act, GroupActivity.class);
|
Intent intent = new Intent(act, GroupActivity.class);
|
||||||
if ( group != null ) {
|
if ( group != null ) {
|
||||||
intent.putExtra(KEY_ENTRY, group.getId());
|
intent.putExtra(KEY_ENTRY, group.getId());
|
||||||
@@ -175,10 +175,10 @@ public class GroupActivity extends ListNodesActivity
|
|||||||
mAdapter.registerANodeToUpdate(node);
|
mAdapter.registerANodeToUpdate(node);
|
||||||
switch (node.getType()) {
|
switch (node.getType()) {
|
||||||
case GROUP:
|
case GROUP:
|
||||||
GroupActivity.Launch(GroupActivity.this, (PwGroup) node);
|
GroupActivity.launch(GroupActivity.this, (PwGroup) node);
|
||||||
break;
|
break;
|
||||||
case ENTRY:
|
case ENTRY:
|
||||||
EntryActivity.Launch(GroupActivity.this, (PwEntry) node);
|
EntryActivity.launch(GroupActivity.this, (PwEntry) node);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -296,7 +296,7 @@ public class GroupActivity extends ListNodesActivity
|
|||||||
|
|
||||||
case R.id.menu_lock:
|
case R.id.menu_lock:
|
||||||
App.setShutdown();
|
App.setShutdown();
|
||||||
setResult(KeePass.EXIT_LOCK);
|
setResult(PasswordActivity.RESULT_EXIT_LOCK);
|
||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|||||||
@@ -53,10 +53,9 @@ import com.keepassdroid.tasks.UIToastTask;
|
|||||||
import com.keepassdroid.utils.MenuUtil;
|
import com.keepassdroid.utils.MenuUtil;
|
||||||
import com.keepassdroid.database.SortNodeEnum;
|
import com.keepassdroid.database.SortNodeEnum;
|
||||||
import com.keepassdroid.view.AssignPasswordHelper;
|
import com.keepassdroid.view.AssignPasswordHelper;
|
||||||
import com.kunzisoft.keepass.KeePass;
|
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
|
|
||||||
public abstract class ListNodesActivity extends LockCloseListActivity
|
public abstract class ListNodesActivity extends LockingActivity
|
||||||
implements AssignMasterKeyDialogFragment.AssignPasswordDialogListener,
|
implements AssignMasterKeyDialogFragment.AssignPasswordDialogListener,
|
||||||
NodeAdapter.OnNodeClickCallback,
|
NodeAdapter.OnNodeClickCallback,
|
||||||
SortDialogFragment.SortSelectionListener {
|
SortDialogFragment.SortSelectionListener {
|
||||||
@@ -87,7 +86,6 @@ public abstract class ListNodesActivity extends LockCloseListActivity
|
|||||||
ActivityCompat.invalidateOptionsMenu(this);
|
ActivityCompat.invalidateOptionsMenu(this);
|
||||||
|
|
||||||
setContentView(R.layout.list_nodes);
|
setContentView(R.layout.list_nodes);
|
||||||
setResult(KeePass.EXIT_NORMAL);
|
|
||||||
|
|
||||||
mCurrentGroup = initCurrentGroup();
|
mCurrentGroup = initCurrentGroup();
|
||||||
|
|
||||||
@@ -139,10 +137,10 @@ public abstract class ListNodesActivity extends LockCloseListActivity
|
|||||||
mAdapter.registerANodeToUpdate(node);
|
mAdapter.registerANodeToUpdate(node);
|
||||||
switch (node.getType()) {
|
switch (node.getType()) {
|
||||||
case GROUP:
|
case GROUP:
|
||||||
GroupActivity.Launch(this, (PwGroup) node);
|
GroupActivity.launch(this, (PwGroup) node);
|
||||||
break;
|
break;
|
||||||
case ENTRY:
|
case ENTRY:
|
||||||
EntryActivity.Launch(this, (PwEntry) node);
|
EntryActivity.launch(this, (PwEntry) node);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2017 Brian Pellin, Jeremy Jamet / Kunzisoft.
|
|
||||||
*
|
|
||||||
* This file is part of KeePass DX.
|
|
||||||
*
|
|
||||||
* KeePass DX is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* KeePass DX is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with KeePass DX. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package com.keepassdroid.activities;
|
|
||||||
|
|
||||||
import com.keepassdroid.compat.BuildCompat;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.WindowManager.LayoutParams;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Locking Close Activity that sets FLAG_SECURE to prevent screenshots, and from
|
|
||||||
* appearing in the recent app preview
|
|
||||||
* @author Brian Pellin
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public abstract class LockCloseHideActivity extends LockCloseActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
// Several gingerbread devices have problems with FLAG_SECURE
|
|
||||||
int ver = BuildCompat.getSdkVersion();
|
|
||||||
if (ver >= BuildCompat.VERSION_CODE_ICE_CREAM_SANDWICH || ver < BuildCompat.VERSION_CODE_GINGERBREAD) {
|
|
||||||
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2017 Brian Pellin, Jeremy Jamet / Kunzisoft.
|
|
||||||
*
|
|
||||||
* This file is part of KeePass DX.
|
|
||||||
*
|
|
||||||
* KeePass DX is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* KeePass DX is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with KeePass DX. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package com.keepassdroid.activities;
|
|
||||||
|
|
||||||
import com.keepassdroid.timeout.TimeoutHelper;
|
|
||||||
|
|
||||||
public abstract class LockCloseListActivity extends LockingActivity {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
|
|
||||||
TimeoutHelper.checkShutdown(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,8 +21,27 @@ package com.keepassdroid.activities;
|
|||||||
|
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.WindowManager;
|
||||||
|
|
||||||
public abstract class LockCloseActivity extends LockingActivity {
|
import com.keepassdroid.compat.BuildCompat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Locking Hide Activity that sets FLAG_SECURE to prevent screenshots, and from
|
||||||
|
* appearing in the recent app preview
|
||||||
|
*/
|
||||||
|
public abstract class LockingHideActivity extends LockingActivity {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
// Several gingerbread devices have problems with FLAG_SECURE
|
||||||
|
int ver = BuildCompat.getSdkVersion();
|
||||||
|
if (ver >= BuildCompat.VERSION_CODE_ICE_CREAM_SANDWICH || ver < BuildCompat.VERSION_CODE_GINGERBREAD) {
|
||||||
|
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* (non-Javadoc) Workaround for HTC Linkify issues
|
/* (non-Javadoc) Workaround for HTC Linkify issues
|
||||||
* @see android.app.Activity#startActivity(android.content.Intent)
|
* @see android.app.Activity#startActivity(android.content.Intent)
|
||||||
@@ -130,7 +130,7 @@ public class FileSelectActivity extends StylishActivity implements
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
String fileName = openFileNameView.getText().toString();
|
String fileName = openFileNameView.getText().toString();
|
||||||
try {
|
try {
|
||||||
PasswordActivity.Launch(FileSelectActivity.this, fileName);
|
PasswordActivity.launch(FileSelectActivity.this, fileName);
|
||||||
}
|
}
|
||||||
catch (ContentFileNotFoundException e) {
|
catch (ContentFileNotFoundException e) {
|
||||||
Toast.makeText(FileSelectActivity.this,
|
Toast.makeText(FileSelectActivity.this,
|
||||||
@@ -185,7 +185,7 @@ public class FileSelectActivity extends StylishActivity implements
|
|||||||
|
|
||||||
if (db.exists()) {
|
if (db.exists()) {
|
||||||
try {
|
try {
|
||||||
PasswordActivity.Launch(FileSelectActivity.this, path);
|
PasswordActivity.launch(FileSelectActivity.this, path);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Ignore exception
|
// Ignore exception
|
||||||
}
|
}
|
||||||
@@ -193,7 +193,7 @@ public class FileSelectActivity extends StylishActivity implements
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
PasswordActivity.Launch(FileSelectActivity.this, dbUri.toString());
|
PasswordActivity.launch(FileSelectActivity.this, dbUri.toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Ignore exception
|
// Ignore exception
|
||||||
}
|
}
|
||||||
@@ -377,7 +377,7 @@ public class FileSelectActivity extends StylishActivity implements
|
|||||||
fileHistory.createFile(mUri, getFilename());
|
fileHistory.createFile(mUri, getFilename());
|
||||||
mAdapter.notifyDataSetChanged();
|
mAdapter.notifyDataSetChanged();
|
||||||
updateTitleFileListView();
|
updateTitleFileListView();
|
||||||
GroupActivity.Launch(FileSelectActivity.this);
|
GroupActivity.launch(FileSelectActivity.this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -388,7 +388,7 @@ public class FileSelectActivity extends StylishActivity implements
|
|||||||
@Override
|
@Override
|
||||||
public void afterOpenFile(String fileName, String keyFile) {
|
public void afterOpenFile(String fileName, String keyFile) {
|
||||||
try {
|
try {
|
||||||
PasswordActivity.Launch(FileSelectActivity.this,
|
PasswordActivity.launch(FileSelectActivity.this,
|
||||||
fileName, keyFile);
|
fileName, keyFile);
|
||||||
} catch (ContentFileNotFoundException e) {
|
} catch (ContentFileNotFoundException e) {
|
||||||
Toast.makeText(FileSelectActivity.this,
|
Toast.makeText(FileSelectActivity.this,
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ import com.keepassdroid.utils.MenuUtil;
|
|||||||
import com.keepassdroid.utils.UriUtil;
|
import com.keepassdroid.utils.UriUtil;
|
||||||
import com.keepassdroid.view.FingerPrintDialog;
|
import com.keepassdroid.view.FingerPrintDialog;
|
||||||
import com.keepassdroid.view.KeyFileHelper;
|
import com.keepassdroid.view.KeyFileHelper;
|
||||||
import com.kunzisoft.keepass.KeePass;
|
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -91,6 +90,8 @@ public class PasswordActivity extends LockingActivity
|
|||||||
implements FingerPrintHelper.FingerPrintCallback, UriIntentInitTaskCallback {
|
implements FingerPrintHelper.FingerPrintCallback, UriIntentInitTaskCallback {
|
||||||
|
|
||||||
public static final String KEY_DEFAULT_FILENAME = "defaultFileName";
|
public static final String KEY_DEFAULT_FILENAME = "defaultFileName";
|
||||||
|
public static final int RESULT_EXIT_LOCK = 1450;
|
||||||
|
|
||||||
private static final String KEY_PASSWORD = "password";
|
private static final String KEY_PASSWORD = "password";
|
||||||
private static final String KEY_LAUNCH_IMMEDIATELY = "launchImmediately";
|
private static final String KEY_LAUNCH_IMMEDIATELY = "launchImmediately";
|
||||||
|
|
||||||
@@ -122,13 +123,13 @@ public class PasswordActivity extends LockingActivity
|
|||||||
|
|
||||||
private KeyFileHelper keyFileHelper;
|
private KeyFileHelper keyFileHelper;
|
||||||
|
|
||||||
public static void Launch(
|
public static void launch(
|
||||||
Activity act,
|
Activity act,
|
||||||
String fileName) throws FileNotFoundException {
|
String fileName) throws FileNotFoundException {
|
||||||
Launch(act, fileName, "");
|
launch(act, fileName, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Launch(
|
public static void launch(
|
||||||
Activity act,
|
Activity act,
|
||||||
String fileName,
|
String fileName,
|
||||||
String keyFile) throws FileNotFoundException {
|
String keyFile) throws FileNotFoundException {
|
||||||
@@ -147,12 +148,11 @@ public class PasswordActivity extends LockingActivity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Intent i = new Intent(act, PasswordActivity.class);
|
Intent intent = new Intent(act, PasswordActivity.class);
|
||||||
i.putExtra(UriIntentInitTask.KEY_FILENAME, fileName);
|
intent.putExtra(UriIntentInitTask.KEY_FILENAME, fileName);
|
||||||
i.putExtra(UriIntentInitTask.KEY_KEYFILE, keyFile);
|
intent.putExtra(UriIntentInitTask.KEY_KEYFILE, keyFile);
|
||||||
|
// only to avoid visible flickering when redirecting
|
||||||
act.startActivityForResult(i, 0);
|
act.startActivityForResult(intent, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -162,8 +162,9 @@ public class PasswordActivity extends LockingActivity
|
|||||||
Intent data) {
|
Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
boolean stopResult = false;
|
||||||
if (keyFileHelper != null) {
|
if (keyFileHelper != null) {
|
||||||
keyFileHelper.onActivityResultCallback(requestCode, resultCode, data,
|
stopResult = keyFileHelper.onActivityResultCallback(requestCode, resultCode, data,
|
||||||
new KeyFileHelper.KeyFileCallback() {
|
new KeyFileHelper.KeyFileCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onKeyFileResultCallback(Uri uri) {
|
public void onKeyFileResultCallback(Uri uri) {
|
||||||
@@ -174,18 +175,14 @@ public class PasswordActivity extends LockingActivity
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (requestCode) {
|
if (!stopResult) {
|
||||||
case KeePass.EXIT_NORMAL:
|
switch (resultCode) {
|
||||||
setEmptyViews();
|
case RESULT_EXIT_LOCK:
|
||||||
App.getDB().clear();
|
case Activity.RESULT_CANCELED:
|
||||||
break;
|
setEmptyViews();
|
||||||
|
App.getDB().clear();
|
||||||
case KeePass.EXIT_LOCK:
|
break;
|
||||||
setResult(KeePass.EXIT_LOCK);
|
}
|
||||||
setEmptyViews();
|
|
||||||
finish();
|
|
||||||
App.getDB().clear();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -778,12 +775,12 @@ public class PasswordActivity extends LockingActivity
|
|||||||
public void onClick(
|
public void onClick(
|
||||||
DialogInterface dialog,
|
DialogInterface dialog,
|
||||||
int which) {
|
int which) {
|
||||||
GroupActivity.Launch(PasswordActivity.this);
|
GroupActivity.launch(PasswordActivity.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
} else if (mSuccess) {
|
} else if (mSuccess) {
|
||||||
GroupActivity.Launch(PasswordActivity.this);
|
GroupActivity.launch(PasswordActivity.this);
|
||||||
} else {
|
} else {
|
||||||
displayMessage(PasswordActivity.this);
|
displayMessage(PasswordActivity.this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import android.app.Activity;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
|
||||||
import com.kunzisoft.keepass.KeePass;
|
import com.keepassdroid.password.PasswordActivity;
|
||||||
import com.kunzisoft.keepass.R;
|
import com.kunzisoft.keepass.R;
|
||||||
import com.keepassdroid.app.App;
|
import com.keepassdroid.app.App;
|
||||||
import com.keepassdroid.compat.EditorCompat;
|
import com.keepassdroid.compat.EditorCompat;
|
||||||
@@ -88,7 +88,7 @@ public class TimeoutHelper {
|
|||||||
|
|
||||||
public static void checkShutdown(Activity act) {
|
public static void checkShutdown(Activity act) {
|
||||||
if ( App.isShutdown() && App.getDB().Loaded() ) {
|
if ( App.isShutdown() && App.getDB().Loaded() ) {
|
||||||
act.setResult(KeePass.EXIT_LOCK);
|
act.setResult(PasswordActivity.RESULT_EXIT_LOCK);
|
||||||
act.finish();
|
act.finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,7 +147,12 @@ public class KeyFileHelper {
|
|||||||
browserDialog.show();
|
browserDialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onActivityResultCallback(
|
/**
|
||||||
|
* To use in onActivityResultCallback in Fragment or Activity
|
||||||
|
* @param keyFileCallback Callback retrieve from data
|
||||||
|
* @return true if requestCode was captured, false elsechere
|
||||||
|
*/
|
||||||
|
public boolean onActivityResultCallback(
|
||||||
int requestCode,
|
int requestCode,
|
||||||
int resultCode,
|
int resultCode,
|
||||||
Intent data,
|
Intent data,
|
||||||
@@ -164,7 +169,7 @@ public class KeyFileHelper {
|
|||||||
if (keyFileCallback != null)
|
if (keyFileCallback != null)
|
||||||
keyFileCallback.onKeyFileResultCallback(keyUri);
|
keyFileCallback.onKeyFileResultCallback(keyUri);
|
||||||
}
|
}
|
||||||
break;
|
return true;
|
||||||
case GET_CONTENT:
|
case GET_CONTENT:
|
||||||
case OPEN_DOC:
|
case OPEN_DOC:
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
@@ -189,8 +194,9 @@ public class KeyFileHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface KeyFileCallback {
|
public interface KeyFileCallback {
|
||||||
|
|||||||
@@ -21,20 +21,11 @@ package com.kunzisoft.keepass;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import com.keepassdroid.fileselect.FileSelectActivity;
|
import com.keepassdroid.fileselect.FileSelectActivity;
|
||||||
|
|
||||||
public class KeePass extends Activity {
|
public class KeePass extends Activity {
|
||||||
|
|
||||||
public static final int EXIT_NORMAL = 0;
|
|
||||||
public static final int EXIT_LOCK = 1;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
@@ -43,19 +34,14 @@ public class KeePass extends Activity {
|
|||||||
|
|
||||||
private void startFileSelect() {
|
private void startFileSelect() {
|
||||||
Intent intent = new Intent(this, FileSelectActivity.class);
|
Intent intent = new Intent(this, FileSelectActivity.class);
|
||||||
|
// only to avoid visible flickering when redirecting
|
||||||
startActivityForResult(intent, 0);
|
startActivityForResult(intent, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onDestroy() {
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
if (resultCode == Activity.RESULT_CANCELED) {
|
||||||
if (resultCode == EXIT_NORMAL) {
|
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user