Add autofill service to save and retrieve password
Fixes#831
Add support for Android autofill service and saving credit card information in KeyPass.
* **Autofill Service Implementation**
- Add a new `<service>` element in `app/src/main/AndroidManifest.xml` for the autofill service.
- Create a new file `KeyPassAutofillService.kt` to implement the `AutofillService` class.
- Override necessary methods: `onFillRequest`, `onSaveRequest`, `onConnected`, and `onDisconnected`.
- Fetch accounts and show as suggestions in `onFillRequest`.
- Save account data in the database in `onSaveRequest`.
* **Utility Functions**
- Update `GetAutoFillService.kt` to include functions to check if the autofill service is enabled and to enable the autofill service if it is not enabled.
* **Autofill Service Configuration**
- Add a new XML file `autofill_service.xml` to configure the autofill service.
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/yogeshpaliyal/KeyPass/issues/831?shareId=XXXX-XXXX-XXXX-XXXX).
* WIP
* feat: changes of autofill service
* implement auto fill service
* feat: disable lint
* Disable biometric login after 24 hours of last password login
Fixes#951
Add logic to disable biometric login if the user has not logged in via password in the last 24 hours.
* **UserSettings.kt**
- Add `lastPasswordLoginTime` attribute to track the last password login time.
* **BiometricPrompt.kt**
- Add logic to check `lastPasswordLoginTime` and disable biometric login if the last password login was more than 24 hours ago.
- Add function `updateLastBiometricLoginTime` to update the last biometric login time.
* **AuthScreen.kt**
- Add logic to reset `lastPasswordLoginTime` when users log in via password.
* **SharedPreferenceUtils.kt**
- Add functions `updateLastBiometricLoginTime` and `updateLastPasswordLoginTime` to update the respective times in `UserSettings`.
* **ButtonBar.kt**
- Add logic to reset `lastPasswordLoginTime` when users log in via password.
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/yogeshpaliyal/KeyPass/issues/951?shareId=XXXX-XXXX-XXXX-XXXX).
* feat: fix changes
* feat: cleanup
* Fix app lock issue
Fixes#954
Add app lock feature when the app is not in the foreground.
* **Settings Fragment**
- Add a new setting to specify the time duration after which the app will lock when not in the foreground.
- Update the UI to include this new setting.
* **Dashboard Activity**
- Implement logic to lock the app when it goes to the background.
- Use the new setting to determine the time duration after which the app will lock.
- Add handlers to manage the lock timeout when the app is paused and resumed.
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/yogeshpaliyal/KeyPass/issues/954?shareId=XXXX-XXXX-XXXX-XXXX).
* feat: minor improvements
* feat: minor improvements
* feat: spotless fixes
* Add password hint field
Fixes#957
Add a password hint field to the authentication screen.
* **UserSettings.kt**: Add a new property `passwordHint` of type `String?` to the `UserSettings` data class.
* **SharedPreferenceUtils.kt**: Add functions `setPasswordHint` and `getPasswordHint` to save and retrieve the password hint in the `UserSettings` data store.
* **AuthScreen.kt**: Add a new state variable `passwordHint` to store the password hint. Add an `OutlinedTextField` for the password hint in the `Column` layout. Update the `ButtonBar` call to pass the `passwordHint` state variable.
* **ButtonBar.kt**: Add a new parameter `passwordHint` to the `ButtonBar` composable function. Update the `onClick` handler for the `Button` to save the password hint using the `setPasswordHint` function.
* **strings.xml**: Add a new string resource `enter_password_hint` with the value "Enter password hint".
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/yogeshpaliyal/KeyPass/issues/957?shareId=XXXX-XXXX-XXXX-XXXX).
* feat: add password hint