Skip to content

Instantly share code, notes, and snippets.

View alirezanazari's full-sized avatar
😎
Focusing

Alireza Nazari alirezanazari

😎
Focusing
View GitHub Profile
@alirezanazari
alirezanazari / checkEmail.java
Created November 20, 2017 10:31
check valid email on JAVA - Android
private boolean isValidEmail(CharSequence target) {
if (target == null) {
return false;
} else {
return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}
}
@alirezanazari
alirezanazari / ContactsUtils.java
Last active March 5, 2020 13:32
Fastest way to fetch contacts from android devices - java
private ArrayList<StructContact> getContacts(Context context) {
if (!HelperPermission.grantedContactPermission()) {
return new ArrayList<>();
}
String[] projectionPhones = {
ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
ContactsContract.CommonDataKinds.Phone.NUMBER,
@alirezanazari
alirezanazari / FileManager.java
Last active March 10, 2020 18:49
Fetch android devices local image to create gallery
public void getDevicePhotoFolders(Context context, WeakReference<FetchListener<List<GalleryAlbumModel>>> callback) {
//create new thread . process may take a seconds to load
new Thread(() -> {
//return empty list if context was null
List<GalleryAlbumModel> albums = new ArrayList<>();
if (context == null) {
if(callback.get() != null) callback.get().onFetch(albums);
@alirezanazari
alirezanazari / theme_file_1.kt
Created April 24, 2020 09:02
Theme in Android
package com.moviom.internal
import android.content.Context
import android.util.TypedValue
import com.moviom.R
import com.moviom.data.provider.PreferencesProvider
class Theme(
private val preferences: PreferencesProvider
package com.moviom.ui
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.moviom.R
import com.moviom.internal.Navigator
import com.moviom.internal.Theme
import com.moviom.ui.pages.main.MainFragment
import com.moviom.ui.pages.splash.SplashFragment
import org.koin.android.ext.android.inject
package com.moviom.ui
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.moviom.R
import com.moviom.internal.Navigator
import com.moviom.internal.Theme
import com.moviom.ui.pages.main.MainFragment
import com.moviom.ui.pages.splash.SplashFragment
import org.koin.android.ext.android.inject
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="LightTheme" parent="BaseTheme">
<item name="android:windowLightStatusBar" tools:targetApi="m">true</item>
<item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">true</item>
<item name="android:navigationBarColor">@color/second_bg_light</item>
<item name="android:statusBarColor">@color/second_bg_light</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="appDrawableBackground" format="reference"/>
<attr name="appBackground" format="reference|color"/>
<attr name="appSecondBackground" format="reference|color"/>
<attr name="appLinesColor" format="reference|color"/>
<attr name="appHitColor" format="reference|color"/>
<attr name="appTextTitleColor" format="reference|color"/>
<attr name="appTextSubTitleColor" format="reference|color"/>
class SmsReaderUtil @Inject constructor() {
private var smsReceiver: SmsReceiver? = null
fun register(activity: Activity?) {
smsReceiver = SmsReceiver()
activity?.let {
val intentFilter = IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION)
activity.registerReceiver(smsReceiver, intentFilter)
}
object AnalyticsHelper {
fun setupAnalytic(app: Application) {
val config = YandexMetricaConfig.newConfigBuilder(Const.YANDEX_API_KEY)
.withNativeCrashReporting(false)
.withLocationTracking(false)
.withStatisticsSending(false)
.withAppVersion(BuildConfig.VERSION_NAME)
.build()