Merge pull request #393 from schwedenmut/Register-andOTP-as-intent-receiver
Implemented intent-filter to receive otpauth requests
This commit is contained in:
commit
20a4512699
3 changed files with 30 additions and 5 deletions
|
@ -27,6 +27,13 @@
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="otpauth" android:host="totp" />
|
||||||
|
<data android:scheme="otpauth" android:host="hotp" />
|
||||||
|
</intent-filter>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="org.shadowice.flocke.andotp.intent.SCAN_QR" />
|
<action android:name="org.shadowice.flocke.andotp.intent.SCAN_QR" />
|
||||||
<action android:name="org.shadowice.flocke.andotp.intent.ENTER_DETAILS" />
|
<action android:name="org.shadowice.flocke.andotp.intent.ENTER_DETAILS" />
|
||||||
|
|
|
@ -277,18 +277,33 @@ public class MainActivity extends BaseActivity
|
||||||
|
|
||||||
setupDrawer();
|
setupDrawer();
|
||||||
|
|
||||||
|
checkIntent();
|
||||||
|
|
||||||
|
if (savedInstanceState != null){
|
||||||
|
setFilterString(savedInstanceState.getString("filterString", ""));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkIntent() {
|
||||||
Intent callingIntent = getIntent();
|
Intent callingIntent = getIntent();
|
||||||
if (callingIntent != null && callingIntent.getAction() != null) {
|
if (callingIntent != null && callingIntent.getAction() != null) {
|
||||||
if (callingIntent.getAction().equals(INTENT_SCAN_QR)) {
|
if (callingIntent.getAction().equals(INTENT_SCAN_QR)) {
|
||||||
scanQRCode();
|
scanQRCode();
|
||||||
} else if (callingIntent.getAction().equals(INTENT_ENTER_DETAILS)) {
|
} else if (callingIntent.getAction().equals(INTENT_ENTER_DETAILS)) {
|
||||||
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
ManualEntryDialog.show(MainActivity.this, settings, adapter);
|
||||||
|
} else if (callingIntent.getAction().equals(Intent.ACTION_VIEW) && !requireAuthentication) {
|
||||||
|
try {
|
||||||
|
Entry entry = new Entry(getIntent().getDataString());
|
||||||
|
entry.updateOTP();
|
||||||
|
entry.setLastUsed(System.currentTimeMillis());
|
||||||
|
adapter.addEntry(entry);
|
||||||
|
adapter.saveEntries();
|
||||||
|
Toast.makeText(this, R.string.toast_intent_creation_succeeded, Toast.LENGTH_LONG).show();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Toast.makeText(this, R.string.toast_intent_creation_failed, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (savedInstanceState != null){
|
|
||||||
setFilterString(savedInstanceState.getString("filterString", ""));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -321,6 +336,7 @@ public class MainActivity extends BaseActivity
|
||||||
updateEncryption(null);
|
updateEncryption(null);
|
||||||
} else {
|
} else {
|
||||||
populateAdapter();
|
populateAdapter();
|
||||||
|
checkIntent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,8 @@
|
||||||
<string name="toast_entry_exists">This entry already exists</string>
|
<string name="toast_entry_exists">This entry already exists</string>
|
||||||
<string name="toast_invalid_qr_code">Invalid QR Code</string>
|
<string name="toast_invalid_qr_code">Invalid QR Code</string>
|
||||||
<string name="toast_encryption_key_empty">Encryption key not loaded</string>
|
<string name="toast_encryption_key_empty">Encryption key not loaded</string>
|
||||||
|
<string name="toast_intent_creation_failed">Invalid intent-provided code</string>
|
||||||
|
<string name="toast_intent_creation_succeeded">Intent-provided code added</string>
|
||||||
|
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="dialog_title_auth">Authenticate</string>
|
<string name="dialog_title_auth">Authenticate</string>
|
||||||
|
|
Loading…
Reference in a new issue