From 4d9b49d3e787214f17f4ec2ccef13ea0f1be8826 Mon Sep 17 00:00:00 2001 From: rmceoin Date: Sun, 6 Sep 2009 08:38:06 +0000 Subject: [PATCH] OI Safe: removed autolock within onUserInteraction() which caused duplicate frontdoors. Added patches from Billy Cui for PassView copying to clipboard and bug with IntentHandler git-svn-id: http://openintents.googlecode.com/svn/trunk/Safe@2295 72b678ce-9140-0410-bee8-679b907dd61a --- res/values-de/strings.xml | 2 +- res/values-fr/strings.xml | 3 +- res/values/strings.xml | 2 +- src/org/openintents/safe/AskPassword.java | 12 +++++- src/org/openintents/safe/CategoryEdit.java | 2 +- src/org/openintents/safe/CategoryList.java | 6 +-- src/org/openintents/safe/ChangePass.java | 2 +- src/org/openintents/safe/FrontDoor.java | 2 +- src/org/openintents/safe/Help.java | 2 +- src/org/openintents/safe/IntentHandler.java | 20 ++++----- src/org/openintents/safe/PassEdit.java | 8 ++-- src/org/openintents/safe/PassGen.java | 2 +- src/org/openintents/safe/PassList.java | 5 ++- src/org/openintents/safe/PassView.java | 46 +++++++++++++++++---- src/org/openintents/safe/Preferences.java | 2 +- src/org/openintents/safe/Restore.java | 2 +- src/org/openintents/safe/Search.java | 2 +- 17 files changed, 81 insertions(+), 39 deletions(-) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 29278ca..7cfa8ba 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -129,7 +129,7 @@ Sind Sie sicher, dass Sie die bestehenden Einträge ersetzen wollen? %s Passwörter im Backup gefunden vom %s. Fertig. Passwörter wiederhergestellt: %s - Password wurde in Zwischenablage kopiert + wurde in Zwischenablage kopiert Ungültige Webseite diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 973acde..dc2285a 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -129,7 +129,8 @@ Êtes-vous sûr de vouloir remplacer les données actuelles? Trouvé %s mots de passe à partir de la sauvegarde du %s. Complet. Mots de passe restaurés: %s - Copier le mot de passe dans le Presse-papiers + + Copier le mot de passe dans le Presse-papiers Site invalide diff --git a/res/values/strings.xml b/res/values/strings.xml index 7ac871b..9ef6f0c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -129,7 +129,7 @@ Are you sure you want to replace the current data? Found %s passwords from backup dated %s. Complete. Passwords restored: %s - Copying Password to Clipboard + copied to Clipboard Invalid website diff --git a/src/org/openintents/safe/AskPassword.java b/src/org/openintents/safe/AskPassword.java index 0034997..4364045 100644 --- a/src/org/openintents/safe/AskPassword.java +++ b/src/org/openintents/safe/AskPassword.java @@ -53,7 +53,7 @@ import android.widget.Toast; */ public class AskPassword extends Activity { - private boolean debug = false; + private boolean debug = true; private static String TAG = "AskPassword"; public static String EXTRA_IS_LOCAL = "org.openintents.safe.bundle.EXTRA_IS_REMOTE"; @@ -293,6 +293,16 @@ public class AskPassword extends Activity { super.onPause(); if (debug) Log.d(TAG, "onResume()"); + if (CategoryList.isSignedIn()==true) { + if (debug) Log.d(TAG,"already signed in"); + Intent callbackIntent = new Intent(); + callbackIntent.putExtra("salt", CategoryList.getSalt()); + callbackIntent.putExtra("masterKey", CategoryList.getMasterKey()); + setResult(RESULT_OK, callbackIntent); + finish(); + return; + } + if (dbHelper == null) { dbHelper = new DBHelper(this); } diff --git a/src/org/openintents/safe/CategoryEdit.java b/src/org/openintents/safe/CategoryEdit.java index bed6de7..faf3e55 100644 --- a/src/org/openintents/safe/CategoryEdit.java +++ b/src/org/openintents/safe/CategoryEdit.java @@ -175,7 +175,7 @@ public class CategoryEdit extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/CategoryList.java b/src/org/openintents/safe/CategoryList.java index 49d6893..42de1d7 100644 --- a/src/org/openintents/safe/CategoryList.java +++ b/src/org/openintents/safe/CategoryList.java @@ -993,9 +993,9 @@ public class CategoryList extends ListActivity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - Intent frontdoor = new Intent(this, FrontDoor.class); - frontdoor.setAction(CryptoIntents.ACTION_AUTOLOCK); - startActivity(frontdoor); +// Intent frontdoor = new Intent(this, FrontDoor.class); +// frontdoor.setAction(CryptoIntents.ACTION_AUTOLOCK); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/ChangePass.java b/src/org/openintents/safe/ChangePass.java index 5d00b09..2c5d6c6 100644 --- a/src/org/openintents/safe/ChangePass.java +++ b/src/org/openintents/safe/ChangePass.java @@ -427,7 +427,7 @@ public class ChangePass extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/FrontDoor.java b/src/org/openintents/safe/FrontDoor.java index cf5822a..9be50b8 100644 --- a/src/org/openintents/safe/FrontDoor.java +++ b/src/org/openintents/safe/FrontDoor.java @@ -35,7 +35,7 @@ import android.util.Log; public class FrontDoor extends Activity { private static final String TAG = "FrontDoor"; - private static final boolean debug = false; + private static final boolean debug = true; // public static final String KEY_AUTOLOCK = "autolock"; diff --git a/src/org/openintents/safe/Help.java b/src/org/openintents/safe/Help.java index c7262f8..e554e39 100644 --- a/src/org/openintents/safe/Help.java +++ b/src/org/openintents/safe/Help.java @@ -157,7 +157,7 @@ public class Help extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/IntentHandler.java b/src/org/openintents/safe/IntentHandler.java index f7eb8f6..b1c33af 100644 --- a/src/org/openintents/safe/IntentHandler.java +++ b/src/org/openintents/safe/IntentHandler.java @@ -49,7 +49,7 @@ import android.widget.Toast; */ public class IntentHandler extends Activity { - private static final boolean debug = false; + private static final boolean debug = true; private static String TAG = "IntentHandler"; private static final int REQUEST_CODE_ASK_PASSWORD = 1; @@ -65,18 +65,17 @@ public class IntentHandler extends Activity { private Intent mServiceIntent; SharedPreferences mPreferences; - //public static String SERVICE_NAME = "org.openintents.safe.service.ServiceDispatchImpl"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + if (debug) Log.d(TAG, "onCreate()"); + mServiceIntent = null; mPreferences = PreferenceManager.getDefaultSharedPreferences(this); Passwords.Initialize(this); - - // The service is launched in onResume() } @@ -518,6 +517,13 @@ public class IntentHandler extends Activity { } try { + final Intent thisIntent = getIntent(); + String action=thisIntent.getAction(); + if (action!=null && action.equals(CryptoIntents.ACTION_AUTOLOCK)) { + if (debug) Log.d(TAG,"autolock"); + askPassIsLocal=true; + } + if (service.getPassword() == null) { boolean promptforpassword = getIntent().getBooleanExtra(CryptoIntents.EXTRA_PROMPT, true); if (debug) Log.d(TAG, "Prompt for password: " + promptforpassword); @@ -527,14 +533,8 @@ public class IntentHandler extends Activity { Intent askPass = new Intent(getApplicationContext(), AskPassword.class); - final Intent thisIntent = getIntent(); String inputBody = thisIntent.getStringExtra (CryptoIntents.EXTRA_TEXT); - String action=thisIntent.getAction(); - if (action!=null && action.equals(CryptoIntents.ACTION_AUTOLOCK)) { - if (debug) Log.d(TAG,"autolock"); - askPassIsLocal=true; - } askPass.putExtra (CryptoIntents.EXTRA_TEXT, inputBody); askPass.putExtra (AskPassword.EXTRA_IS_LOCAL, askPassIsLocal); //TODO: Is there a way to make sure all the extras are set? diff --git a/src/org/openintents/safe/PassEdit.java b/src/org/openintents/safe/PassEdit.java index 7bbdf76..08fdbda 100644 --- a/src/org/openintents/safe/PassEdit.java +++ b/src/org/openintents/safe/PassEdit.java @@ -128,7 +128,7 @@ public class PassEdit extends Activity { goButton.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { - Toast.makeText(PassEdit.this, R.string.copy_to_clipboard, + Toast.makeText(PassEdit.this, getString(R.string.password)+" "+getString(R.string.copied_to_clipboard), Toast.LENGTH_SHORT).show(); ClipboardManager cb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); @@ -384,8 +384,8 @@ public class PassEdit extends Activity { populated=true; } } - } - + } + @Override public void onUserInteraction() { super.onUserInteraction(); @@ -393,7 +393,7 @@ public class PassEdit extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/PassGen.java b/src/org/openintents/safe/PassGen.java index 70b8eb7..3fc8d12 100644 --- a/src/org/openintents/safe/PassGen.java +++ b/src/org/openintents/safe/PassGen.java @@ -249,7 +249,7 @@ public class PassGen extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/PassList.java b/src/org/openintents/safe/PassList.java index 73093c3..8c16590 100644 --- a/src/org/openintents/safe/PassList.java +++ b/src/org/openintents/safe/PassList.java @@ -60,7 +60,7 @@ import android.widget.AdapterView.AdapterContextMenuInfo; */ public class PassList extends ListActivity { - private static final boolean debug = false; + private static final boolean debug = true; private static final String TAG = "PassList"; // Menu Item order @@ -198,6 +198,7 @@ public class PassList extends ListActivity { } catch (IllegalArgumentException e) { if (debug) Log.d(TAG,"IllegalArgumentException"); } + removeDialog(DECRYPT_PROGRESS_KEY); } @Override @@ -491,7 +492,7 @@ public class PassList extends ListActivity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/PassView.java b/src/org/openintents/safe/PassView.java index 7270ea6..51e86c8 100644 --- a/src/org/openintents/safe/PassView.java +++ b/src/org/openintents/safe/PassView.java @@ -50,7 +50,7 @@ import android.widget.Toast; * * @author Randy McEoin */ -public class PassView extends Activity { +public class PassView extends Activity implements View.OnClickListener { private static boolean debug = false; private static String TAG = "PassView"; @@ -130,15 +130,14 @@ public class PassView extends Activity { goButton.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { + String link = websiteText.getText().toString(); + if (link == null || link.equals("") || link.equals("http://")) { + return; + } - Toast.makeText(PassView.this, R.string.copy_to_clipboard, - Toast.LENGTH_SHORT).show(); - - ClipboardManager cb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); - cb.setText(passwordText.getText().toString()); + clipboard(getString(R.string.password), passwordText.getText().toString()); Intent i = new Intent(Intent.ACTION_VIEW); - String link = websiteText.getText().toString(); Uri u = Uri.parse(link); i.setData(u); try { @@ -322,7 +321,9 @@ public class PassView extends Activity { descriptionText.setText(row.plainDescription); websiteText.setText(row.plainWebsite); usernameText.setText(row.plainUsername); + usernameText.setOnClickListener(this); passwordText.setText(row.plainPassword); + passwordText.setOnClickListener(this); noteText.setText(row.plainNote); String lastEdited; if (row.lastEdited!=null) { @@ -357,6 +358,35 @@ public class PassView extends Activity { } } + /** + * + * @author Billy Cui + */ + public void onClick(View view) { + if (view == usernameText) { + if (debug) Log.d(TAG, "click " + usernameText.getText()); + clipboard(getString(R.string.username),usernameText.getText().toString()); + } else if (view == passwordText) { + if (debug) Log.d(TAG, "click " + passwordText.getText()); + clipboard(getString(R.string.password),passwordText.getText().toString()); + } + } + + /** + * Copy to clipboard and toast to let user know that we have done so. + * + * @author Billy Cui + * @param fieldName Name of the field copied from + * @param value String to copy to clipboard + */ + private void clipboard(String fieldName, String value) { + Toast.makeText(PassView.this, fieldName+" "+getString(R.string.copied_to_clipboard), + Toast.LENGTH_SHORT).show(); + + ClipboardManager cb = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + cb.setText(value); + } + @Override public void onUserInteraction() { super.onUserInteraction(); @@ -364,7 +394,7 @@ public class PassView extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/Preferences.java b/src/org/openintents/safe/Preferences.java index 3fddb5f..ffb0619 100644 --- a/src/org/openintents/safe/Preferences.java +++ b/src/org/openintents/safe/Preferences.java @@ -86,7 +86,7 @@ public class Preferences extends PreferenceActivity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/Restore.java b/src/org/openintents/safe/Restore.java index a3caf9a..a25c7bc 100644 --- a/src/org/openintents/safe/Restore.java +++ b/src/org/openintents/safe/Restore.java @@ -368,7 +368,7 @@ public class Restore extends Activity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } diff --git a/src/org/openintents/safe/Search.java b/src/org/openintents/safe/Search.java index 9011870..71a916d 100644 --- a/src/org/openintents/safe/Search.java +++ b/src/org/openintents/safe/Search.java @@ -281,7 +281,7 @@ public class Search extends ListActivity { if (debug) Log.d(TAG,"onUserInteraction()"); if (CategoryList.isSignedIn()==false) { - startActivity(frontdoor); +// startActivity(frontdoor); }else{ if (restartTimerIntent!=null) sendBroadcast (restartTimerIntent); } -- 2.50.1