Skip to content

Instantly share code, notes, and snippets.

View TobiAlbert's full-sized avatar
🎯
Focusing

Tobi Daada TobiAlbert

🎯
Focusing
View GitHub Profile
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {boolean}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQUEST_SMS_CONSENT -> {
if (resultCode == Activity.RESULT_OK) {
data?.let {
val message = it.getStringExtra(SmsRetriever.EXTRA_SMS_MESSAGE)
parseMessageForOtp(message)
}
}
val hintRequest = HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build()
val credentialsClient = Credentials.getClient(this)
val intent = credentialsClient.getHintPickerIntent(hintRequest)
try {
startIntentSenderForResult(
intent.intentSender,
CREDENTIAL_PICKER_REQUEST,
null, 0, 0, 0
val task = SmsRetriever.getClient(this).startSmsUserConsent(null)
task.addOnCompleteListener {
task?.exception?.let {
// handle possible exception
Log.e(TAG, "Task Exception: $it")
return@addOnCompleteListener
}
if (task.isSuccessful) {
val intentFilter = IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION)
class SmsBroadcastReceiver : BroadcastReceiver() {
companion object {
const val TAG = "SmsBroadcastReceiver"
const val REQUEST_SMS_CONSENT = 1001
}
override fun onReceive(context: Context?, intent: Intent?) {
if (SmsRetriever.SMS_RETRIEVED_ACTION == intent?.action) {
val extras = intent.extras
val smsRetrieverStatus = extras?.get(SmsRetriever.EXTRA_STATUS) as Status
@TobiAlbert
TobiAlbert / MainActivity.kt
Last active October 14, 2019 07:55
Makes a request to network provider to get available airtime balance.
private val telephonyManager by lazy {
context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager }
// requires Android v26
// requries CALL_PHONE permission
private fun requestAirtimeBalance(){
when (telephonyManager.simState) {
Telephony.SIM_STATE_READY -> dialUssdCode()
else -> Unit
}
class RoomActivity: AppCompatActivity() {
private lateinit var mAdapter: RoomAdapter
private val userManager: UserManager by inject() // koin user injection
override fun onCreate(savedInstance: Bundle?) {
super.onCreate(savedInstance)
mAdapter = RoomAdapter(userManager.currentUser.id)
class RoomAdapter(val championId: String) : RecyclerView.Adapter<RoomViewHolder>() {
private var messages = mutableListOf<Message>()
fun addMessage(message: Message) {
messages.add(message)
notifyItemChanged(messages.size - 1)
}
override fun onCreateViewHolder(parent: ViewGroup, layoutResource: Int): RoomViewHolder =
class RoomViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(message: Message, championId: String) {
val layoutParams = itemView.message_root_view.layoutParams as LinearLayoutCompat.LayoutParams
if (message.sender.id == championId) {
layoutParams.gravity = Gravity.END
itemView.message_root_view.layoutParams = layoutParams
} else {
public class BottomNavigationViewHelper {
public static void disableShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, false);
shiftingMode.setAccessible(false);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);