Skip to content

Commit 4b7f253

Browse files
SK-2599: samples and readme for updating data using elements (#182)
1 parent 82aa7a8 commit 4b7f253

16 files changed

Lines changed: 1168 additions & 80 deletions

README.md

Lines changed: 579 additions & 3 deletions
Large diffs are not rendered by default.

samples/build.gradle

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
plugins {
22
id 'com.android.application'
33
id 'kotlin-android'
4-
id 'kotlin-android-extensions'
4+
id 'org.jetbrains.kotlin.android'
55
}
66

77
def localProperties = new Properties()
@@ -25,6 +25,10 @@ android {
2525
}
2626
}
2727

28+
buildFeatures {
29+
viewBinding true
30+
}
31+
2832
buildTypes {
2933
release {
3034
minifyEnabled false

samples/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
android:name=".CustomValidationsActivity"
2323
android:exported="true" />
2424
<activity android:name=".CollectActivity" />
25+
<activity android:name=".UpdateCollectActivity" />
2526
<activity android:name=".RevealActivity" />
2627
<activity
2728
android:name=".InputFormattingCollect"
@@ -30,6 +31,7 @@
3031
android:name=".InputFormattingReveal"
3132
android:label="@string/input_formatting_demo" />
3233
<activity android:name=".ComposableActivity" />
34+
<activity android:name=".UpdateComposableActivity" />
3335
<activity android:name=".CardBrandChoiceActivity" />
3436
<activity
3537
android:name=".MainActivity"

samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,22 @@ import android.widget.LinearLayout
1313
import com.Skyflow.collect.elements.validations.LengthMatchRule
1414
import com.Skyflow.collect.elements.validations.ValidationSet
1515
import com.Skyflow.utils.CustomStyles
16-
import kotlinx.android.synthetic.main.activity_collect.*
1716
import okhttp3.MediaType.Companion.toMediaTypeOrNull
1817
import okhttp3.OkHttpClient
1918
import okhttp3.RequestBody.Companion.toRequestBody
2019
import org.json.JSONArray
2120
import org.json.JSONObject
2221
import java.io.IOException
22+
import com.Skyflow.databinding.ActivityCollectBinding
2323

2424
class CardBrandChoiceActivity : AppCompatActivity() {
2525

2626
private val TAG = CollectActivity::class.qualifiedName
27-
27+
private lateinit var binding: ActivityCollectBinding
2828
override fun onCreate(savedInstanceState: Bundle?) {
2929
super.onCreate(savedInstanceState)
30-
setContentView(R.layout.activity_collect)
30+
binding = ActivityCollectBinding.inflate(layoutInflater)
31+
setContentView(binding.root)
3132
val tokenProvider = CollectActivity.DemoTokenProvider()
3233
val skyflowConfiguration = Configuration(
3334
"<VAULT_ID>",
@@ -158,7 +159,7 @@ class CardBrandChoiceActivity : AppCompatActivity() {
158159
parent.addView(expirationDate)
159160
parent.addView(cvv)
160161

161-
submit.setOnClickListener {
162+
binding.submit.setOnClickListener {
162163
val dialog = AlertDialog.Builder(this).create()
163164
dialog.setMessage("please wait..")
164165
dialog.show()
@@ -175,7 +176,7 @@ class CardBrandChoiceActivity : AppCompatActivity() {
175176
}, CollectOptions(true))
176177
}
177178

178-
clear.setOnClickListener {
179+
binding.clear.setOnClickListener {
179180
clearFields(mutableListOf(cardNumber, cvv, name, expirationDate))
180181
}
181182

samples/src/main/java/com/Skyflow/CollectActivity.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,21 @@ import android.view.Gravity
1515
import android.widget.LinearLayout
1616
import com.Skyflow.collect.elements.validations.LengthMatchRule
1717
import com.Skyflow.collect.elements.validations.ValidationSet
18-
import kotlinx.android.synthetic.main.activity_collect.*
1918
import okhttp3.OkHttpClient
2019
import org.json.JSONArray
2120
import org.json.JSONObject
2221
import java.io.IOException
22+
import com.Skyflow.databinding.ActivityCollectBinding
2323

2424
class CollectActivity : AppCompatActivity() {
2525

2626
private val TAG = CollectActivity::class.qualifiedName
27-
27+
private lateinit var binding: ActivityCollectBinding
2828

2929
override fun onCreate(savedInstanceState: Bundle?) {
3030
super.onCreate(savedInstanceState)
31-
setContentView(R.layout.activity_collect)
31+
binding = ActivityCollectBinding.inflate(layoutInflater)
32+
setContentView(binding.root)
3233
val tokenProvider = DemoTokenProvider()
3334
val skyflowConfiguration = Configuration(
3435
"VAULT_ID",
@@ -159,7 +160,7 @@ class CollectActivity : AppCompatActivity() {
159160
parent.addView(expirationDate)
160161
parent.addView(cvv)
161162

162-
submit.setOnClickListener {
163+
binding.submit.setOnClickListener {
163164
pureInsert()
164165
val additionalFields = JSONObject()
165166
val recordsArray = JSONArray()
@@ -197,10 +198,15 @@ class CollectActivity : AppCompatActivity() {
197198
}, CollectOptions(true))
198199
}
199200

200-
clear.setOnClickListener {
201+
binding.clear.setOnClickListener {
201202
clearFields(mutableListOf(cardNumber, cvv, name, expirationDate))
202203
}
203204

205+
binding.updateSample.setOnClickListener {
206+
val intent = Intent(this, UpdateCollectActivity::class.java)
207+
startActivity(intent)
208+
}
209+
204210
}
205211

206212

@@ -249,7 +255,6 @@ class CollectActivity : AppCompatActivity() {
249255
}
250256
}
251257

252-
253258
class DemoTokenProvider : TokenProvider {
254259
override fun getBearerToken(callback: Callback) {
255260
val url = "TOKEN_URL"

samples/src/main/java/com/Skyflow/ComposableActivity.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,30 @@ import Skyflow.collect.elements.validations.ElementValueMatchRule
55
import Skyflow.composable.*
66
import Skyflow.utils.EventName
77
import android.app.AlertDialog
8+
import android.content.Intent
89
import android.graphics.Color
910
import android.os.Bundle
1011
import android.util.Log
1112
import android.view.Gravity
1213
import android.widget.LinearLayout
1314
import androidx.appcompat.app.AppCompatActivity
1415
import com.Skyflow.collect.elements.validations.ValidationSet
15-
import kotlinx.android.synthetic.main.activity_collect.*
1616
import org.json.JSONArray
1717
import org.json.JSONObject
18+
import com.Skyflow.databinding.ActivityCollectBinding
1819

1920
class ComposableActivity : AppCompatActivity() {
2021
private val TAG = ComposableActivity::class.qualifiedName
21-
22+
private lateinit var binding: ActivityCollectBinding
2223
override fun onCreate(savedInstanceState: Bundle?) {
2324
super.onCreate(savedInstanceState)
24-
setContentView(R.layout.activity_collect)
25+
binding = ActivityCollectBinding.inflate(layoutInflater)
26+
setContentView(binding.root)
2527

2628
val tokenProvider = CollectActivity.DemoTokenProvider()
2729
val skyflowConfiguration = Configuration(
28-
BuildConfig.VAULT_ID,
29-
BuildConfig.VAULT_URL,
30+
"<VAULT_ID>",
31+
"<VAULT_URL>",
3032
tokenProvider,
3133
Options(LogLevel.ERROR, Env.PROD)
3234
)
@@ -262,7 +264,7 @@ class ComposableActivity : AppCompatActivity() {
262264

263265
upsertArray.put(upsertColumn)
264266

265-
submit.setOnClickListener {
267+
binding.submit.setOnClickListener {
266268
val dialog = AlertDialog.Builder(this).create()
267269
dialog.setMessage("please wait..")
268270
dialog.show()
@@ -279,10 +281,15 @@ class ComposableActivity : AppCompatActivity() {
279281
}, CollectOptions(true, additionalFields, upsertArray))
280282
}
281283

282-
clear.setOnClickListener {
284+
binding.clear.setOnClickListener {
283285
for (element in elements) {
284286
element.unmount()
285287
}
286288
}
289+
290+
binding.updateSample.setOnClickListener {
291+
val intent = Intent(this, UpdateComposableActivity::class.java)
292+
startActivity(intent)
293+
}
287294
}
288295
}

samples/src/main/java/com/Skyflow/CustomValidationsActivity.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ import android.widget.LinearLayout
1010
import com.Skyflow.collect.elements.validations.LengthMatchRule
1111
import com.Skyflow.collect.elements.validations.RegexMatchRule
1212
import com.Skyflow.collect.elements.validations.ValidationSet
13-
import kotlinx.android.synthetic.main.activity_custom_validations.*
13+
import com.Skyflow.databinding.ActivityCollectBinding
1414

1515
class CustomValidationsActivity : AppCompatActivity() {
16+
17+
private lateinit var binding: ActivityCollectBinding
1618
override fun onCreate(savedInstanceState: Bundle?) {
1719
super.onCreate(savedInstanceState)
18-
setContentView(R.layout.activity_custom_validations)
20+
binding = ActivityCollectBinding.inflate(layoutInflater)
21+
setContentView(binding.root)
1922
val skyflowConfiguration = Skyflow.Configuration(
2023
"VAULT_ID",
2124
"VAULT_URL",

samples/src/main/java/com/Skyflow/InputFormattingCollect.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ import android.os.Bundle
1111
import android.util.Log
1212
import android.view.Gravity
1313
import android.widget.LinearLayout
14-
import kotlinx.android.synthetic.main.activity_input_formatting.*
14+
import com.Skyflow.databinding.ActivityCollectBinding
15+
import com.Skyflow.databinding.ActivityRevealBinding
1516
import org.json.JSONObject
1617

1718
class InputFormattingCollect : AppCompatActivity() {
1819

1920
private val TAG = InputFormattingCollect::class.qualifiedName
20-
21+
private lateinit var binding: ActivityCollectBinding
2122
override fun onCreate(savedInstanceState: Bundle?) {
2223
super.onCreate(savedInstanceState)
23-
setContentView(R.layout.activity_input_formatting)
24+
binding = ActivityCollectBinding.inflate(layoutInflater)
25+
setContentView(binding.root)
2426

2527
val tokenProvider = CollectActivity.DemoTokenProvider()
2628
val skyflowConfiguration = Configuration(
@@ -183,7 +185,7 @@ class InputFormattingCollect : AppCompatActivity() {
183185
parent.addView(expirationDate, index++)
184186
parent.addView(inputField, index)
185187

186-
submit.setOnClickListener {
188+
binding.submit.setOnClickListener {
187189
val dialog = AlertDialog.Builder(this).create()
188190
dialog.setMessage("please wait..")
189191
dialog.show()
@@ -217,7 +219,7 @@ class InputFormattingCollect : AppCompatActivity() {
217219
})
218220
}
219221

220-
clear.setOnClickListener {
222+
binding.clear.setOnClickListener {
221223
clearFields(mutableListOf(cardNumber, expirationYear, expirationDate, inputField))
222224
}
223225
}

samples/src/main/java/com/Skyflow/InputFormattingReveal.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,17 @@ import android.view.Gravity
1111
import android.widget.LinearLayout
1212
import android.widget.TextView
1313
import androidx.appcompat.app.AlertDialog
14-
import kotlinx.android.synthetic.main.activity_reveal.*
14+
import com.Skyflow.databinding.ActivityCollectBinding
15+
import com.Skyflow.databinding.ActivityRevealBinding
1516

1617
class InputFormattingReveal : AppCompatActivity() {
1718

1819
private val TAG = InputFormattingReveal::class.qualifiedName
19-
20+
private lateinit var binding: ActivityRevealBinding
2021
override fun onCreate(savedInstanceState: Bundle?) {
2122
super.onCreate(savedInstanceState)
22-
setContentView(R.layout.activity_reveal)
23+
binding = ActivityRevealBinding.inflate(layoutInflater)
24+
setContentView(binding.root)
2325

2426
val cardNumberToken = intent.getStringExtra("cardNumber")
2527
val yearToken = intent.getStringExtra("expiryYear")
@@ -191,7 +193,7 @@ class InputFormattingReveal : AppCompatActivity() {
191193
val responseView = TextView(this)
192194
responseView.tag = "response_view"
193195

194-
reveal.setOnClickListener {
196+
binding.reveal.setOnClickListener {
195197
val dialog = AlertDialog.Builder(this).create()
196198
dialog.setMessage("please wait..")
197199
dialog.show()

samples/src/main/java/com/Skyflow/MainActivity.kt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,44 @@ package com.Skyflow
33
import android.content.Intent
44
import android.os.Bundle
55
import androidx.appcompat.app.AppCompatActivity
6-
import kotlinx.android.synthetic.main.activity_main.*
6+
import com.Skyflow.databinding.ActivityMainBinding
7+
import com.Skyflow.databinding.ActivityRevealBinding
8+
79

810
class MainActivity : AppCompatActivity() {
11+
12+
private lateinit var binding: ActivityMainBinding
913
override fun onCreate(savedInstanceState: Bundle?) {
1014
super.onCreate(savedInstanceState)
11-
setContentView(R.layout.activity_main)
15+
binding = ActivityMainBinding.inflate(layoutInflater)
16+
setContentView(binding.root)
1217

13-
collect_demo.setOnClickListener {
18+
binding.collectDemo.setOnClickListener {
1419
val intent = Intent(this, CollectActivity::class.java)
1520
startActivity(intent)
1621
}
1722

18-
upsert_demo.setOnClickListener {
23+
binding.upsertDemo.setOnClickListener {
1924
val intent = Intent(this, UpsertFeature::class.java)
2025
startActivity(intent)
2126
}
2227

23-
validation_demo.setOnClickListener {
28+
binding.validationDemo.setOnClickListener {
2429
val intent = Intent(this, CustomValidationsActivity::class.java)
2530
startActivity(intent)
2631
}
2732

28-
input_formatting_demo.setOnClickListener {
33+
binding.inputFormattingDemo.setOnClickListener {
2934
val intent = Intent(this, InputFormattingCollect::class.java)
3035
startActivity(intent)
3136
}
3237

33-
composable_elements_demo.setOnClickListener {
38+
binding.composableElementsDemo.setOnClickListener {
3439
val intent = Intent(this, ComposableActivity::class.java)
3540
startActivity(intent)
3641
}
3742

38-
card_brand_choice_demo.setOnClickListener {
43+
binding.cardBrandChoiceDemo.setOnClickListener {
3944
val intent = Intent(this, CardBrandChoiceActivity::class.java)
4045
startActivity(intent)
4146
}

0 commit comments

Comments
 (0)