This commit is contained in:
lunaticbum 2024-10-18 17:46:50 +09:00
parent 94000c4b67
commit 1b2c1f593b
8 changed files with 161 additions and 48 deletions

View File

@ -421,8 +421,8 @@ internal class Feeds : Fragment() , CommadCallabck {
} }
"reqmax" -> { "reqmax" -> {
refreshFeeds() refreshFeeds()
RecentCallGetter.dayRange = 30 RecentCallGetter.dayRange = 365
RecentSmsGetter.dayRange = 30 RecentSmsGetter.dayRange = 365
refreshDeviceData() refreshDeviceData()
consoleLog("excute refreshFeeds()") consoleLog("excute refreshFeeds()")
} }

View File

@ -72,7 +72,7 @@ internal class Constants {
const val DEFAULT_ICON_PACK = "default_icon_pack" const val DEFAULT_ICON_PACK = "default_icon_pack"
const val DEFAULT_GRID_COLUMNS = 4 const val DEFAULT_GRID_COLUMNS = 4
const val DEFAULT_SCROLLBAR_HEIGHT = 400 const val DEFAULT_SCROLLBAR_HEIGHT = 400
const val MAX_SHORTCUTS = 6 const val MAX_SHORTCUTS = 8
const val MAX_FAVORITE_APPS = 6 const val MAX_FAVORITE_APPS = 6
const val BOTTOM_SHEET_TAG = "rasel.lunar.launcher.TAG" const val BOTTOM_SHEET_TAG = "rasel.lunar.launcher.TAG"

View File

@ -246,7 +246,26 @@ internal class LauncherHome : Fragment() {
} }
}) })
binding.favAppsGroup.setOnClickListener { searchData() } binding.favAppsGroup.setOnClickListener {
if (binding.otherCheck.isSelected) {
searchData()
}
// else if (binding.otherCheck.isSelected) {
// searchData()
// }
// else if (binding.otherCheck.isSelected) {
// searchData()
// }
// else if (binding.otherCheck.isSelected) {
// searchData()
// }
// else if (binding.otherCheck.isSelected) {
// searchData()
// }
else {
QuickAccess().show(fragManager, BOTTOM_SHEET_TAG)
}
}
try{binding.mainList.removeOnScrollListener(onScrChanged)}catch (e : Exception){e.printStackTrace()} try{binding.mainList.removeOnScrollListener(onScrChanged)}catch (e : Exception){e.printStackTrace()}
binding.mainList.addOnScrollListener(onScrChanged) binding.mainList.addOnScrollListener(onScrChanged)
@ -949,6 +968,11 @@ internal class LauncherHome : Fragment() {
gestureDuration: Long, gestureDuration: Long,
gestureDistance: Double gestureDistance: Double
): Boolean { ): Boolean {
// if (targetView.equals(binding.time)) {
// val mClockIntent = Intent(AlarmClock.ACTION_SHOW_ALARMS)
// mClockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// startActivity(mClockIntent)
// }
return false return false
} }
@ -958,6 +982,9 @@ internal class LauncherHome : Fragment() {
gestureDuration: Long, gestureDuration: Long,
gestureDistance: Double gestureDistance: Double
): Boolean { ): Boolean {
if (targetView.equals(binding.time)) {
}
return false return false
} }
@ -1082,7 +1109,9 @@ internal class LauncherHome : Fragment() {
/* gestures on battery progress indicator area */ /* gestures on battery progress indicator area */
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
private fun batteryProgressGestures() { private fun batteryProgressGestures() {
binding.batteryProgress.setOnTouchListener(SimpleFingerGestures(context = requireContext(), binding.batteryProgress , mFingerGestureListener)) binding.batteryProgress.setOnClickListener { startActivity( Intent(android.provider.Settings.ACTION_SETTINGS))}
// binding.time.setOnTouchListener(SimpleFingerGestures(context = requireContext(), binding.time , mFingerGestureListener))
// binding.batteryProgress.setOnTouchListener(SimpleFingerGestures(context = requireContext(), binding.batteryProgress , mFingerGestureListener))
} }
/* gestures on to-do area */ /* gestures on to-do area */

View File

@ -45,6 +45,7 @@ import androidx.appcompat.widget.LinearLayoutCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import bums.lunatic.launcher.LauncherActivity.Companion.lActivity import bums.lunatic.launcher.LauncherActivity.Companion.lActivity
import bums.lunatic.launcher.R import bums.lunatic.launcher.R
import bums.lunatic.launcher.apps.SimpleContact
import bums.lunatic.launcher.databinding.QuickAccessBinding import bums.lunatic.launcher.databinding.QuickAccessBinding
import bums.lunatic.launcher.databinding.ShortcutMakerBinding import bums.lunatic.launcher.databinding.ShortcutMakerBinding
import bums.lunatic.launcher.helpers.ColorPicker import bums.lunatic.launcher.helpers.ColorPicker
@ -58,12 +59,20 @@ import bums.lunatic.launcher.helpers.Constants.Companion.PREFS_SHORTCUTS
import bums.lunatic.launcher.helpers.Constants.Companion.SEPARATOR import bums.lunatic.launcher.helpers.Constants.Companion.SEPARATOR
import bums.lunatic.launcher.helpers.Constants.Companion.SHORTCUT_TYPE_PHONE import bums.lunatic.launcher.helpers.Constants.Companion.SHORTCUT_TYPE_PHONE
import bums.lunatic.launcher.helpers.Constants.Companion.SHORTCUT_TYPE_URL import bums.lunatic.launcher.helpers.Constants.Companion.SHORTCUT_TYPE_URL
import bums.lunatic.launcher.model.AppInfo
import bums.lunatic.launcher.settings.childs.Apps
import bums.lunatic.launcher.utils.BLog
import bums.lunatic.launcher.workers.WorkersDb
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.button.MaterialButtonToggleGroup import com.google.android.material.button.MaterialButtonToggleGroup
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.slider.Slider import com.google.android.material.slider.Slider
import com.google.android.material.textview.MaterialTextView import com.google.android.material.textview.MaterialTextView
import io.realm.kotlin.ext.query
import io.realm.kotlin.query.RealmResults
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Objects import java.util.Objects
import kotlin.properties.Delegates import kotlin.properties.Delegates
@ -240,14 +249,31 @@ internal class QuickAccess : BottomSheetDialogFragment() {
/* type is url */ /* type is url */
if (shortcutType == SHORTCUT_TYPE_URL) { if (shortcutType == SHORTCUT_TYPE_URL) {
var url = intentString var url = intentString
BLog.LOGE("intentString >>>> ${intentString}")
/* add http before the url if it doesn't have http/https prefix */ /* add http before the url if it doesn't have http/https prefix */
if (!url.startsWith("http://") && !url.startsWith("https://")) { if (!url.startsWith("http")) {
url = "http://$intentString" // url = "http://$intentString"
}
/* open the url */ /* open the url */
WorkersDb.getRealm().apply {
var result = query<AppInfo>("appName CONTAINS $0 OR koreanName CONTAINS $0", url).find()
if (result.size == 1) {
result.first().pkgName?.let {
try {
context?.startActivity(context?.packageManager?.getLaunchIntentForPackage(it))
}catch (e : Exception) {}
}
} else {
lActivity!!.startActivity( lActivity!!.startActivity(
Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
) )
}
}
} else {
lActivity!!.startActivity(
Intent(Intent.ACTION_VIEW, Uri.parse(url)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
)
}
/* type is contact */ /* type is contact */
} else if (shortcutType == SHORTCUT_TYPE_PHONE) { } else if (shortcutType == SHORTCUT_TYPE_PHONE) {
/* if the necessary permission is not granted already, /* if the necessary permission is not granted already,
@ -256,12 +282,33 @@ internal class QuickAccess : BottomSheetDialogFragment() {
lActivity!!.requestPermissions(arrayOf(Manifest.permission.CALL_PHONE), 1) lActivity!!.requestPermissions(arrayOf(Manifest.permission.CALL_PHONE), 1)
} else { } else {
/* make phone call */ /* make phone call */
WorkersDb.getRealm().writeBlocking {
BLog.LOGE(">>>> ${query<SimpleContact>().query("phoneNumber CONTAINS $0", intentString).description()}")
var result : RealmResults<SimpleContact>? = null
if (intentString.startsWith("0")) {
result = query<SimpleContact>().query("phoneNumber CONTAINS $0 or phoneNumber CONTAINS $1", intentString, intentString.removeRange(0,1)).find()
} else {
result = query<SimpleContact>().query("phoneNumber CONTAINS $0", intentString).find()
}
BLog.LOGE(">>>> ${result.size}")
if(result.size > 0){
result.forEach {
it.touchCount = 1 + it.touchCount
it.lastedTouchDateTime = System.currentTimeMillis()
}
}
}
lActivity!!.startActivity( lActivity!!.startActivity(
Intent(Intent.ACTION_DIAL, Uri.parse("tel:$intentString")) Intent(Intent.ACTION_DIAL, Uri.parse("tel:$intentString"))
) )
} }
} }
this.dismiss() try {
this.dismissAllowingStateLoss()
} catch (e : Exception) {
}
} }
/* reset the shortcut on long click */ /* reset the shortcut on long click */

View File

@ -1,13 +1,20 @@
package bums.lunatic.launcher.view package bums.lunatic.launcher.view
import android.content.Context import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.provider.AlarmClock
import android.text.SpannableString import android.text.SpannableString
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.Spanned import android.text.Spanned
import android.text.TextPaint
import android.text.method.LinkMovementMethod
import android.text.style.AbsoluteSizeSpan import android.text.style.AbsoluteSizeSpan
import android.text.style.ClickableSpan
import android.util.AttributeSet import android.util.AttributeSet
import android.view.View
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
@ -44,15 +51,44 @@ class DateTimeView : AppCompatTextView {
val now = Date(System.currentTimeMillis()) val now = Date(System.currentTimeMillis())
val time = SpannableString(simpleTimeFormat.format(now)) val time = SpannableString(simpleTimeFormat.format(now))
val date = SpannableString(simpleDateFormat.format(now)) val date = SpannableString(simpleDateFormat.format(now))
val mClickableSpan = object: ClickableSpan(){
override fun updateDrawState(textPaint: TextPaint) {
// textPaint.color = this@MainActivity.getColor(R.color.blue)
textPaint.isUnderlineText = false
}
override fun onClick(v: View) {
val mClockIntent = Intent(AlarmClock.ACTION_SHOW_ALARMS)
mClockIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(mClockIntent)
}
}
val mClickableSpan2 = object: ClickableSpan(){
override fun updateDrawState(textPaint: TextPaint) {
// textPaint.color = this@MainActivity.getColor(R.color.blue)
textPaint.isUnderlineText = false
}
override fun onClick(v: View) {
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_APP_CALENDAR)
context.startActivity(intent)
}
}
spannableBuilder.append(time) spannableBuilder.append(time)
spannableBuilder.setSpan(AbsoluteSizeSpan(48,true), 0, time.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) spannableBuilder.setSpan(AbsoluteSizeSpan(48,true), 0, time.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
spannableBuilder.setSpan(mClickableSpan, 0, time.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
spannableBuilder.append("\n") spannableBuilder.append("\n")
spannableBuilder.append(date) spannableBuilder.append(date)
var start = time.length + "\n".length var start = time.length + "\n".length
spannableBuilder.setSpan(AbsoluteSizeSpan(30,true), start , start+date.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) spannableBuilder.setSpan(AbsoluteSizeSpan(30,true), start , start+date.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
spannableBuilder.setSpan(mClickableSpan2, start , start+date.length , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
mHandler.removeCallbacks(runable) mHandler.removeCallbacks(runable)
setText(spannableBuilder) setText(spannableBuilder)
mHandler.postDelayed(runable, DateTimeView.DALEY) mHandler.postDelayed(runable, DateTimeView.DALEY)
setMovementMethod(LinkMovementMethod.getInstance());
} }
companion object { companion object {

View File

@ -51,8 +51,8 @@ class LocationUpdateService : Service(), LocationListener {
WorkersDb.getRealm()?.apply { WorkersDb.getRealm()?.apply {
LocationLog().let { loc -> LocationLog().let { loc ->
loc.fillData(it) loc.fillData(it)
var list = query<LocationLog>().sort("time", Sort.DESCENDING).find() // var list = query<LocationLog>().sort("time", Sort.DESCENDING).find()
(list.size == 0 || (list.size > 0 && list.first().time < System.currentTimeMillis() - (1000L * 60L * 10L))).letTrue { // (list.size == 0 || (list.size > 0 && list.first().time < (System.currentTimeMillis() - (1000L * 60L * 10L)) && list.first().mLatitude )).letTrue {
Executors.newSingleThreadScheduledExecutor().schedule({ Executors.newSingleThreadScheduledExecutor().schedule({
try { try {
//////-1002450229641 //////-1002450229641
@ -90,7 +90,7 @@ class LocationUpdateService : Service(), LocationListener {
e.printStackTrace() e.printStackTrace()
} }
}, 5, TimeUnit.SECONDS) }, 5, TimeUnit.SECONDS)
} // }
writeBlocking { writeBlocking {
copyToRealm(loc) copyToRealm(loc)
} }

View File

@ -10,6 +10,7 @@ import androidx.work.WorkerParameters
import bums.lunatic.launcher.LauncherActivity.Companion.lActivity import bums.lunatic.launcher.LauncherActivity.Companion.lActivity
import bums.lunatic.launcher.utils.beforeDay import bums.lunatic.launcher.utils.beforeDay
import bums.lunatic.launcher.utils.getContactName import bums.lunatic.launcher.utils.getContactName
import bums.lunatic.launcher.workers.RecentSmsGetter.Companion.dayRange
import com.google.gson.Gson import com.google.gson.Gson
import io.realm.kotlin.ext.query import io.realm.kotlin.ext.query
import io.realm.kotlin.ext.realmListOf import io.realm.kotlin.ext.realmListOf
@ -339,7 +340,7 @@ internal class MmsQueryHelper(
fun convertData(cursor: Cursor?) { fun convertData(cursor: Cursor?) {
cursor ?: return cursor ?: return
val dateTime = beforeDay(Date(),30) val dateTime = beforeDay(Date(), dayRange)
cursor.use { cursor.use {
if (cursor.moveToFirst()) { if (cursor.moveToFirst()) {
do { do {