Skip to content

Commit

Permalink
ability to launch app and autofill fields
Browse files Browse the repository at this point in the history
  • Loading branch information
luifermoron committed Apr 29, 2021
1 parent e40a2e7 commit 6ba53a7
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 14 deletions.
5 changes: 5 additions & 0 deletions app/src/main/AndroidManifest.xml
Expand Up @@ -89,6 +89,11 @@
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.CREATE_SHORTCUT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
Expand Down
51 changes: 37 additions & 14 deletions app/src/main/java/xyz/hisname/fireflyiii/ui/HomeActivity.kt
Expand Up @@ -127,30 +127,53 @@ class HomeActivity: BaseActivity(){
.show()
}

private fun wasLaunchedWithText() : Boolean {
val intent = intent
val action = intent.action
val type = intent.type
if (Intent.ACTION_SEND == action && type != null) {
return type.startsWith("text/plain")
}
return false
}

private fun setup(savedInstanceState: Bundle?){
animateToolbar()
setUpHeader(savedInstanceState)
setSupportActionBar(binding.activityToolbar)
setUpDrawer(savedInstanceState)
supportActionBar?.title = ""
setNavIcon()
if (intent.getStringExtra("transaction") != null) {

val _wasLaunchedWithText = wasLaunchedWithText()
if (intent.getStringExtra("transaction") != null || _wasLaunchedWithText) {
val transaction = intent.getStringExtra("transaction")
when (transaction) {
"Withdrawal" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Withdrawal")
}))
if (_wasLaunchedWithText) {
var ocrIntent = Intent(this, AddTransactionActivity::class.java.apply { bundleOf("transactionType" to "Withdrawal")})
intent.getStringExtra("description")?.let { it ->
ocrIntent.putExtra("description", it)
}
"Deposit" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Deposit")
}))
intent.getStringExtra("amount")?.let { it ->
ocrIntent.putExtra("amount", it)
}
"Transfer" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Transfer")
}))
startActivity(ocrIntent)
} else {
when (transaction) {
"Withdrawal" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Withdrawal")
}))
}
"Deposit" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Deposit")
}))
}
"Transfer" -> {
startActivity(Intent(this, AddTransactionActivity::class.java.apply {
bundleOf("transactionType" to "Transfer")
}))
}
}
}
}
Expand Down
Expand Up @@ -87,6 +87,8 @@ class AddTransactionFragment: BaseFragment() {
private val transactionActivity by lazy { arguments?.getBoolean("FROM_TRANSACTION_ACTIVITY") }
private val isTasker by lazy { arguments?.getBoolean("isTasker") ?: false }
private val isFromNotification by lazy { requireActivity().intent.extras?.getBoolean("isFromNotification") ?: false }
private val description by lazy { requireActivity().intent.extras?.getString("description") ?: "" }
private val amount by lazy { requireActivity().intent.extras?.getString("amount") ?: "" }
private val transactionType by lazy { arguments?.getString("transactionType") ?: "" }

private val addTransactionViewModel by lazy {
Expand Down Expand Up @@ -146,6 +148,16 @@ class AddTransactionFragment: BaseFragment() {
setFab()
setCalculator()
contextSwitch()
setAutofilledFields()
}

private fun setAutofilledFields() {
if (amount != null) {
binding.transactionAmountEdittext.setText(amount)
}
if (description != null) {
binding.descriptionEdittext.setText(description)
}
}

private fun displayAttachment(){
Expand Down

0 comments on commit 6ba53a7

Please sign in to comment.