Skip to content

Instantly share code, notes, and snippets.

@gokmenbayram
gokmenbayram / AndroidManifest.xml
Created September 24, 2021 08:25
AndroidManifest.xml
<receiver
android:name = ".receiver.SmsReceiver"
android:permission="android.permission.BROADCAST_SMS"
android:exported="true">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
@gokmenbayram
gokmenbayram / SmsReceiver.kt
Created September 24, 2021 08:39
SmsReceiver.kt
class SmsReceiver: BroadcastReceiver() {
var smsBroadcastReceiverListener: SmsBroadcastReceiverListener? = null
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action == SmsRetriever.SMS_RETRIEVED_ACTION) {
val extras = intent.extras
val smsRetrieverStatus = extras?.get(SmsRetriever.EXTRA_STATUS) as Status
@gokmenbayram
gokmenbayram / MainActivity.kt
Last active September 24, 2021 09:03
MainActivity.kt
private val otpSmsTitle = "SMSAPI"
private val otpResponseCode = 52
private fun init() {
val client = SmsRetriever.getClient(this)
client.startSmsUserConsent(otpSmsTitle)
}
private fun registerBroadcastReceiver() {
smsReceiver = SmsReceiver()
@gokmenbayram
gokmenbayram / MainActivity.kt
Last active September 24, 2021 10:55
MainActivity.kt
private var smsReceiver: SmsReceiver? = null
private val otpSmsRegex = "(|^)\\d{4}"
private val otpResponseCode = 52
private val otpSmsTitle = "SMSAPI"
private fun init() {
val client = SmsRetriever.getClient(this)
client.startSmsUserConsent(null)
}
@gokmenbayram
gokmenbayram / PasswordRegex.kt
Created February 22, 2022 10:06
Password Regex Extension
private val passwordRegex = Pattern.compile("^" +
"(?=.*[0-9])" + // En az bir rakam
"(?=.*[a-z])" + // En az bir küçük harf
"(?=.*[A-Z])" + // En az bir büyük harf
"(?=.*[a-zA-Z])" + // Herhangi bir harf
"(?=.*[@#$%^&+=])" + // En az bir özel karakter
"(?=\\S+$)" + // Boşluk yok
".{8,}" + // En az 8 karakter
"$")
@gokmenbayram
gokmenbayram / Fragment.kt
Last active March 3, 2022 12:23
Fragment - onBackPressed()
private fun onBackPressed() {
val callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
//OnBackPressed
}
}
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
}
private fun prepareCountryRecycler() {
countryRecyclerAdapter = CountryRecyclerAdapter()
countryRecyclerAdapter.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY
binding?.countryRecycler?.adapter = countryRecyclerAdapter
}
/*
Aşağıdakini build.gradle(:app)'e eklemeyi unutmayın!
- implementation "androidx.recyclerview:recyclerview:$latestVersionNumber"
*/
@gokmenbayram
gokmenbayram / Roomdb.kt
Created November 11, 2022 07:31
Room Database
@Database(
entities = [],
version = 1, // upgrade db version on any change
exportSchema = true
)
@gokmenbayram
gokmenbayram / RoomDatabaseBuilder.kt
Created November 11, 2022 08:37
Room Database Builder
Room.databaseBuilder(
context,
RoomDatabase::class.java, "DB_NAME")
.fallbackToDestructiveMigration()
.build())
@Database(
- version = 1, // old version num.
+ version = 2, // upgraded version num.
entities = [ User.class ],
+ autoMigrations = [
+ AutoMigration (from = 1, to = 2)
+ ]
)
abstract class UserDatabase : RoomDatabase { }