Skip to content

Releases: DylanCaiCoding/Longan

1.1.1

06 Jul 03:23
Compare
Choose a tag to compare

Activity.kt

  • Replace Context.activity with Context.asActivity()
  • Replace Context.checkPermission(permission) with Context.isPermissionGranted(permission) #13
  • Add Context.arePermissionsGranted(permissions)
  • Fix #12

Rom.kt

  • Add isXiaomiRom
  • Add isHuaweiRom
  • Add isOppoRom
  • Add isVivoRom
  • Add isOnePlusRom
  • Add isSmartisanRom
  • Add isMeiZuRom
  • Add isSamsungRom
  • Add isGoogleRom
  • Add isSonyRom
  • Add isRomOf(names)
  • Add isHarmonyOS

View.kt

  • Add View.expandClickArea(...)

1.1.0

29 Jun 06:16
Compare
Choose a tag to compare

Activity.kt

  • Add finishToActivity<T>()
  • Add finishAllActivitiesExcept<T>()
  • Add ComponentActivity.doOnBackPressed {...}

ActivityResult.kt

Optimize the usage to make it closer to the usage of ActivityResult API.

  • Replace all methed name xxxxLauncher with registerForXXXXResult. For example, replace requestPermissionLauncher {...} with registerForRequestPermissionResult {...}.
  • Fix #8

Application.kt

  • Add appIcon
  • Replace launchAppDetailsSettings() with launchAppSettings()

Crash.kt

  • Add handleMainThreadException {...}

DateTime.kt

Replace kotlinx-datetime with Java8 LocalDateTime and remove functions that are not needed.

Fragment.kt

  • Add Fragment.pressBackTwiceToExitApp(...)
  • Add Fragment.pressBackToNotExitApp()
  • Add Fragment.doOnBackPressed {...}

Keyboard.kt

The receiver can only be a view.

  • Remove Activity/Fragment.showKeyboard()
  • Remove Activity/Fragment.hideKeyboard()
  • Remove Activity/Fragment.toggleKeyboard()
  • Remove Activity/Fragment.isKeyboardVisible
  • Remove Activity/Fragment.keyboardHeight

Lifecycle.kt

Network.kt

  • Add new class WifiListLiveData
  • Add ScanResult.is24GHz
  • Add ScanResult.is5GHz

Shell.kt

  • Add executeCmd(command)

String.kt

  • Add Float/Double.toNumberString([fractionDigits], [minIntDigits], [isGrouping], [isHalfUp])

TextView.kt

  • Add TextView.enableWhenAllChecked(checkBoxes)

Thread.kt

  • Add isMainThread

RecyclerView.kt

  • Add RecyclerView.addItemPadding(...)

1.0.5

09 Mar 07:13
Compare
Choose a tag to compare

Clipboard.kt

  • Add CharSequence/Uri/Intent.copyToClipboard([label])
  • Add getTextFromClipboard()
  • Add clearClipboard()
  • Add doOnClipboardChanged(listener)
  • Add ClipboardManager.OnPrimaryClipChangedListener.cancel()

DateTime.kt

  • Add Instant.Companion.parse(text, pattern)
  • Add String.toInstant(pattern)
  • Add Instant.format(pattern)
  • Add LocalDateTime/LocalDate.isToday()
  • Add LocalDateTime/LocalDate.isYesterday()
  • add LocalDateTime/LocalDate.withYear(year)
  • add LocalDateTime/LocalDate.withMonth(month)
  • add LocalDateTime/LocalDate.withDayOfMonth(dayOfMonth)
  • add LocalDateTime/LocalDate.withDayOfYear(dayOfYear)
  • add LocalDateTime/LocalDate.with {...}
  • add LocalDateTime.withHour(hour)
  • add LocalDateTime.withMinute(minute)
  • add LocalDateTime.withSecond(second)
  • add LocalDateTime.withNano(nano)
  • Add LocalDateTime.firstDayOfYear()
  • Add LocalDateTime.lastDayOfYear()
  • Add LocalDateTime.firstDayOfNextYear()
  • Add LocalDateTime.firstDayOfLastYear()
  • Add LocalDateTime.firstDayOfMonth()
  • Add LocalDateTime.lastDayOfMonth()
  • Add LocalDateTime.firstDayOfNextMonth()
  • Add LocalDateTime.firstDayOfLastMonth()
  • Add LocalDateTime.firstInMonth(dayOfWeek)
  • Add LocalDateTime.lastInMonth(dayOfWeek)
  • Add LocalDateTime.dayOfWeekInMonth(ordinal, dayOfWeek)
  • Add LocalDateTime.next(dayOfWeek)
  • Add LocalDateTime.nextOrSame(dayOfWeek)
  • Add LocalDateTime.previous(dayOfWeek)
  • Add LocalDateTime.previousOrSame(dayOfWeek)
  • Add Instant.plus(period)
  • Add Instant.plus([value], unit)
  • Add Instant.minus(period)
  • Add Instant.minus([value], unit)
  • Add Instant.until(instant, unit)
  • Add Instant.daysUntil(instant)
  • Add Instant.monthsUntil(instant)
  • Add Instant.yearsUntil(instant)
  • Add Instant.periodUntil(instant)

1.0.4

11 Feb 03:12
Compare
Choose a tag to compare

Add org.jetbrains.kotlinx:kotlinx-datetime:0.3.2 dependency.

DateTime.kt

  • Add Instant.Companion.parse(text, pattern, timeZone)
  • Add LocalDateTime.Companion.parse(text, pattern)
  • Add LocalDate.Companion.parse(text, pattern)
  • Add String.toInstant(pattern, timeZone)
  • Add String.toLocalDateTime(pattern)
  • Add String.toLocalDate(pattern)
  • Add Instant.format(pattern, timeZone)
  • Add LocalDateTime.format(pattern)
  • Add LocalDate.format(pattern)
  • Add LocalDateTime/LocalDate.isToday(timeZone)
  • Add LocalDateTime/LocalDate.isYesterday(timeZone)
  • Add LocalDate.firstDayOfYear()
  • Add LocalDate.lastDayOfYear()
  • Add LocalDate.firstDayOfNextYear()
  • Add LocalDate.firstDayOfLastYear()
  • Add LocalDate.firstDayOfMonth()
  • Add LocalDate.lastDayOfMonth()
  • Add LocalDate.firstDayOfNextMonth()
  • Add LocalDate.firstDayOfLastMonth()
  • Add LocalDate.firstInMonth(dayOfWeek)
  • Add LocalDate.lastInMonth(dayOfWeek)
  • Add LocalDate.dayOfWeekInMonth(ordinal, dayOfWeek)
  • Add LocalDate.next(dayOfWeek)
  • Add LocalDate.nextOrSame(dayOfWeek)
  • Add LocalDate.previous(dayOfWeek)
  • Add LocalDate.previousOrSame(dayOfWeek)

SpannableStringBuilder.kt

  • Add SpannableStringBuilder.size(size) {...}
  • Add SpannableStringBuilder.alignCenter {...}
  • Add SpannableStringBuilder.alignOpposite {...}
  • Add SpannableStringBuilder.alignment(alignment) {...}
  • Add SpannableStringBuilder.blur(radius, [style]) {...}
  • Add SpannableStringBuilder.fontFamily(family) {...}
  • Add SpannableStringBuilder.typeface(typeface) {...}
  • Add SpannableStringBuilder.url(url) {...}
  • Add SpannableStringBuilder.bullet(gapWidth, [color]) {...}
  • Add SpannableStringBuilder.quote([color]) {...}
  • Add SpannableStringBuilder.leadingMargin(first, [rest]) {...}
  • Add SpannableStringBuilder.append(drawable, [width], [height]) {...}
  • Add SpannableStringBuilder.append(drawableId) {...}
  • Add SpannableStringBuilder.append(bitmap) {...}
  • Add SpannableStringBuilder.appendClickable(text, [color], [isUnderlineText]) {...}
  • Add SpannableStringBuilder.appendClickable(drawable, [width], [height]) {...}
  • Add SpannableStringBuilder.appendClickable(drawableId) {...}
  • Add SpannableStringBuilder.appendClickable(bitmap) {...}
  • Add SpannableStringBuilder.appendSpace(size, [color]) {...}

ViewPager2.kt

  • Add FragmentActivity/Fragment.FragmentStateAdapter(fragments, isLazyLoading)
  • Add FragmentActivity/Fragment.FragmentStateAdapter(itemCount, isLazyLoading) {...}

1.0.3

28 Dec 04:05
Compare
Choose a tag to compare

File.kt

  • Add File#isExistOrCreateNewFile()
  • Add File?#isExistOrCreateNewDir()
  • Add File#createNewFileAfterDeleteExist()
  • Add File#rename(name)

MetaData.kt

  • Add applicationMetaDataOf(name)
  • Add activityMetaDataOf<T>(name)
  • Add serviceMetaDataOf<T>(name)
  • Add providerMetaDataOf<T>(name)
  • Add receiverMetaDataOf<T>(name)

Resoures.kt

  • Remove Context/View#getCompatDimen(id)
  • Add Context/View/Fragment#getDimension(id)
  • Add Fragment#getCompatColor(id)
  • Add Fragment#getCompatDrawable(id)
  • Add Fragment#getCompatFont(id)

String.kt

  • Update String#isPhone() returns whether the string is exact phone number.

View.kt

  • Deprecate View#withStyledAttrs(...)
  • Add View#withStyledAttributes(...)

1.0.2

19 Dec 13:26
Compare
Choose a tag to compare

ActivityResult.kt - Usage

  • Add ActivityResultCaller#startActivityLauncher {...}
  • Add ActivityResultCaller#startIntentSenderLauncher {...}
  • Add ActivityResultCaller#requestPermissionLauncher {...}
  • Add ActivityResultCaller#requestMultiplePermissionsLauncher {...}
  • Add ActivityResultCaller#takePicturePreviewLauncher {...}
  • Add ActivityResultCaller#takePictureLauncher {...}
  • Add ActivityResultCaller#takeVideoLauncher {...}
  • Add ActivityResultCaller#pickContactLauncher {...}
  • Add ActivityResultCaller#pickContentLauncher {...}
  • Add ActivityResultCaller#getContentLauncher {...}
  • Add ActivityResultCaller#getMultipleContentsLauncher {...}
  • Add ActivityResultCaller#openDocumentLauncher {...}
  • Add ActivityResultCaller#openMultipleDocumentsLauncher {...}
  • Add ActivityResultCaller#openDocumentTreeLauncher {...}
  • Add ActivityResultCaller#createDocumentLauncher {...}
  • Add ActivityResultCaller#launchAppSettingsLauncher {...}
  • Add ActivityResultCaller#cropPictureLauncher {...}
  • Add ActivityResultCaller#enableLocationLauncher {...}
  • Add ActivityResultCaller#enableBluetoothLauncher {...}
  • Add ActivityResultCaller#launchWifiSettingsLauncher {...}
  • Add ActivityResultCaller#openWifiPanelLauncher {...}
  • Add ActivityResultLauncher<Unit/Viod>#launch()
  • Add ActivityResultLauncher<Array<T>>#launch(varage input)
  • Add ActivityResultLauncher<Intent>#launch<SomeActivity>(...)
  • Add ActivityResultLauncher<IntentSenderRequest>#launch(intentSender, ...)
  • Add ActivityResultLauncher<CropPictureRequest>#launch(inputUri, ...)

Keyboard.kt

  • Add Activity/Fragment#showKeyboard()
  • Add Activity/Fragment#hideKeyboard()
  • Add Activity/Fragment#toggleKeyboard()
  • Add Activity/Fragment#isKeyboardVisible
  • Add Activity/Fragment#keyboardHeight

Lifecycle.kt

  • Add Application#doOnActivityLifecycle(...)

SystemBars.kt

  • Fix getting navigation bar height incorrectly for some phones

1.0.1

11 Nov 09:30
Compare
Choose a tag to compare

Encrypt.kt

  • Add String/ByteArray#encrtpyMD5()
  • Add String/ByteArray#encrtpySHA1()
  • Add String/ByteArray#encrtpySHA256()
  • Add String/ByteArray#encrtpySHA512()
  • Add String/ByteArray#encrtpyHmacSHA1(...)
  • Add String/ByteArray#encrtpyHmacSHA256(...)
  • Add String/ByteArray#encrtpyHmacSHA512(...)

File.kt

  • Add File#checkMD5(...)
  • Add File#checkSHA1(...)
  • Add File#checkSHA256(...)
  • Add File#checkSHA512(...)
  • Add File#checkHmacSHA1(...)
  • Add File#checkHmacSHA256(...)
  • Add File#checkHmacSHA512(...)
  • Add File#calculateMD5()
  • Add File#calculateSHA1()
  • Add File#calculateSHA256()
  • Add File#calculateSHA512()
  • Add File#calculateHmacSHA1(...)
  • Add File#calculateHmacSHA256(...)
  • Add File#calculateHmacSHA512(...)

Network.kt

  • Add isWifiConnected
  • Add isMobileData
  • Add isWifiEnabled

View.kt

  • Add View#roundCorners

ViewModel.kt

  • Support for Hilt
  • Remove ViewModel.applicationViewModels()

1.0.0

14 Oct 09:10
Compare
Choose a tag to compare

A collection of Kotlin utils which makes Android application development faster and easier