🔴 ANDROID PROGRAMMING CHANNEL
3.94K subscribers
417 photos
203 videos
391 files
309 links
🌀Channel :
➡️ https://telegram.me/AndroidStudyChannel
🌀Group :
➡️ https://t.me/+QE5EFwRKmt04NzZk

ادمین تبادل و تبلیغات : @n_h_raad
درخواست آموزش : @developerjavad
ابتدای کانال :
https://t.me/AndroidStudyChannel/5
Download Telegram
Media is too big
VIEW IN TELEGRAM
Scope functions also kotlin قسمت پنجم


@AndroidStudyChannel
Media is too big
VIEW IN TELEGRAM
coil library image loading fast , modern , coroutines

کتابخانه عالی برای load تصاویر با سرعت بالا و گری کردن و بلور کردن و گرد کردن و...


@AndroidStudyChannel
This media is not supported in your browser
VIEW IN TELEGRAM
Koin - a smart Kotlin injection library

koin چیست


@AndroidStudyChannel
Media is too big
VIEW IN TELEGRAM
Livedata overview and Broadcastreceiver ConnectivityManager

@AndroidStudyChannel
سلام و احترام خدمت دوستان
در گروه های اندروید سوال مطرح شد توسط یکی از کاربران که کسی هم جواب نداد که در کانال تلگرامی خانه اندروید خدمتون منتشر میشه تا دوستانی نیاز دارن از این سورس کد استفاده کنند.

سوال : بدست آوردن زمان پست منتشر شده مشابه دیوار و...
مثلا : سه ساعت پیش
دیروز
دو هفته پیش
یک ماه پیش
یک سال پیش و ..

دقت بفرمایین این سورس کد که براتون پیاده سازی کرده ام به زبان کاتلین هست و هم چنین مشابه دیوار می باشد.
fun covertTimeToText(dataDate: String): String? {
var convertTime: String? = null
try {
val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())
val pasTime: Date = dateFormat.parse(dataDate)
val nowTime = Date()
val dateDiff = floor((nowTime.time.toDouble() - pasTime.time.toDouble()) / 1000).toInt()
when {
dateDiff < 60 -> {
convertTime = "لحظاتی پیش"
}
dateDiff < 150 -> {
convertTime = "دقایقی پیش"
}
dateDiff < 300 -> {
convertTime = "۵ دقیقه پیش"
}
dateDiff < 600 -> {
convertTime = "۱۰ دقیقه پیش"
}
dateDiff < 900 -> {
convertTime = "یک ربع پیش"
}
dateDiff < 1800 -> {
convertTime = "نیم ساعت پیش"
}
dateDiff in 1800..3599 -> {
convertTime = "۴۵ دقیقه پیش"
}
dateDiff in 3600..86400 -> {
val interval = (dateDiff / 3600)
convertTime = Farsi_Number_Change.Changefarsi(interval.toString()) + " ساعت پیش "
}
dateDiff in 86400..2591999 -> {
val interval = (dateDiff / 86400)
when (interval) {
1 -> {
convertTime = "دیروز"
}
in 2..6 -> {
convertTime = Farsi_Number_Change.Changefarsi(interval.toString()) + " روز پیش "
}
7 -> {
convertTime = "یک هفته پیش"
}14 -> {
convertTime = "دو هفته پیش"
}21 -> {
convertTime = "سه هفته پیش"
}28 -> {
convertTime = "چهار هفته پیش"
}
else -> {
convertTime =
Farsi_Number_Change.Changefarsi(interval.toString()) + " روز پیش "
}
}

}
dateDiff in 2592000..31535999 -> {
val interval = (dateDiff / 2592000)
convertTime = Farsi_Number_Change.Changefarsi(interval.toString()) + " ماه پیش "
}

dateDiff in 31536000..915360000 -> {
val interval = (dateDiff / 31536000)
convertTime = Farsi_Number_Change.Changefarsi(interval.toString()) + " سال پیش "
}

}

} catch (e: Exception) {

}
return convertTime
}
👍1
چطور از سورس کد فوق یا بالا استفاده کنیم؟
برای این منظورم لازم هست fun مورد نظر فراخوانی شود و تاریخ برای متد ارسال بشه.

به عنوان نمونه :
holder.binding?.TvTime.text = covertTimeToText("2021-12-02 12:21:24")

در پاسخ به این متد و تاریخ : کلمه دیروز ارسال میشه.
1
توضیحات مرحله به مرحله در مورد سورس کد دوستانی که تمایل دارن یاد بگیرن و دوستانی که تمایل دارن سورس کد رو فقط استفاده کنند.

محاسبه زمان سپری شده :
اول لازم هست تاریخ فعلی یا حال رو بدست بیاوریم و نهایت منفی تاریخ پست که منتشر شده کنیم.
مثلا تاریخ فعلی :
2021-12-03 15:21:24

و تاریخ پست منتشر شده
2021-12-02 11:21:24


2021-12-03 15:21:24 - 2021-12-02 11:21:24

حالا زمان سپری شده به صورت یک عدد double بر می گرده که لازم هست برای اینکه این عدد رو روند کنیم از تاریخ floor که مثلا اگر عدد شده بود 12.357.99 بشه 12 و در نهایت تبدیل به عدد صحیح کنیم که تقسیم بر 1000 می کنیم.


در نهایت در بررسی when یا if چک می کنیم.

چطور ساعت رو بدست بیاریم
هر 60 ثانیه معادل یک دقیقه و در نهایت هر ساعت معادل 3600 هست.
60*60=3600

اگر پست مورد نظر کمتر از 60 ثانیه بود پس میشه لحظاتی پیش
اگر 300 بود به معنی اینکه 60*5 که میشه 300 به معنی ۵ دقیقه سپری شده

پس در ادامه
بدست اوردن طول روز : 86400
برای بدست آوردن هفته کافی شرط کوچیکی بزارین که چک کنه اگر عدد یک ۳۰ بود .

یعنی : ۱ بود دیروز
۷ بود یک هفته
۱۴ بود دو هفته
۲۱ بود سه هفته
۲۸ چهار هفته

بدست اوردن ماه 2592000
بدست آوردن سال : 31536000
1
بدست اوردن فرمت تاریخ :
val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault())


بدست اوردن تاریخ فعلی :
val nowTime = Date()


پاس دادن تاریخ منتشر شده پست :
val pasTime: Date = dateFormat.parse(dataDate)


محاسبه زمان سپری شده :
val dateDiff = floor((nowTime.time.toDouble() - pasTime.time.toDouble()) / 1000).toInt()


چک کردن عدد صحیح و زمان سپری شده :

if ( dateDiff < عدد صحیح){
دیروز
هفته پیش
و..
}
نکته : شاید دوستان تمایل داشته باشن که به جای دو روز پیش مثلا کلمه پریروز نمایش داده بشه که می تونید به جای عدد ۲ که در شرط هفته استفاده شده یعنی 2..7 بنویسن اگر عدد 2 بود پریروز نمایش داده شود.

سورس کد اضافه کردن پریروز

dateDiff in 86400..2591999 -> {
val interval = (dateDiff / 86400)
when (interval) {
1 -> {
convertTime = "دیروز"
}
2 -> {
convertTime = "پریروز"
}
in 3..6 -> {
convertTime = Farsi_Number_Change.Changefarsi(interval.toString()) + " روز پیش "
}
7 -> {
convertTime = "یک هفته پیش"
}14 -> {
convertTime = "دو هفته پیش"
}21 -> {
convertTime = "سه هفته پیش"
}28 -> {
convertTime = "چهار هفته پیش"
}
else -> {
convertTime =
Farsi_Number_Change.Changefarsi(interval.toString()) + " روز پیش "
}
}

}
محاسبه درصد تخفیف برای یک محصول
(قیمت تخفیف خورده - قیمت اصلی محصول )/تقسیم بر قیمت تخفیف خورده ضربدر عدد ۱۰۰

(8000-10000)/10000*100

@AndroidStudyChannel
ایجاد تخفیف برای یک فاکتور یا یک محصول به زبان php
$t=4; درصد تخفیف
$price_t=$p -(($p / 100) * $t);

در کد بالا :
$p=قیمت محصول یا سفارش

@AndroidStudyChannel
آموزش Pagination3 قوی ترین کتابخانه برای لود دیتا از سمت سرور با سرعت بسیار بالا

Retrofit2
Rxjava kotlin
Mvvm
Porgress
error handling
viewmodel scop
api server pdo php

لینک دانلود دوره آموزشی :
https://homeandroid.ir/pagination3-mvvm-kotlin

🔴 @AndroidStudyChannel
This media is not supported in your browser
VIEW IN TELEGRAM
pagination 3

https://homeandroid.ir/pagination3-mvvm-kotlin

آموزش Pagination3 قوی ترین کتابخانه برای لود دیتا از سمت سرور با سرعت بسیار بالا

Retrofit2
Rxjava kotlin
Mvvm
Progress
error handling
api server pdo php


🔴 @AndroidStudyChannel
پیشنهاد تهیه دوره های آموزشی زیر با توجه به نیاز بازار کار

دوره آموزشی coroutines پیاده سازی اپلیکیشن فروشگاهی
https://homeandroid.ir/mvvm-coroutines-kotlin

دوره آموزشی Rx kotlin پیاده سازی اپلیکیشن فروشگاهی

https://homeandroid.ir/rxjava-kotlin-mvvm

دوره آموزشی Pagination3 و اسکرول خیلی سریع مشابه اپلیکیشن دیوار و...

https://homeandroid.ir/pagination3-mvvm-kotlin

پیاده سازی دریافت داده ها پویا به صورت اپلیکیشن ترب
https://homeandroid.ir/%d8%af%d9%88%d8%b1%d9%87-%d8%a2%d9%85%d9%88%d8%b2%d8%b4-end-scroll-data-dpi-kotlin

دریافت و فعال سازی sms مشابه اپلیکیشن دیوار و...
https://homeandroid.ir/sms-kotlin-no-permission


🔴 @AndroidStudyChannel
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🎉2
This media is not supported in your browser
VIEW IN TELEGRAM
🎉2
Kotlin for Android Developers

→ Author: Antonio Leiva

→ Year: 2017

→ Pages: 191

→ Language: English

#Kotlin #Android

#SecBooks
📌 @AndroidStudyChannel
👍2👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Icon change and set application

📌 @AndroidStudyChannel
👍3