This commit is contained in:
lunaticbum 2024-10-08 17:58:05 +09:00
parent 8c826272ae
commit 2599d6459e
7 changed files with 183 additions and 13 deletions

View File

@ -95,6 +95,9 @@ dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.6.4")
implementation("com.squareup.retrofit2:converter-scalars:2.6.4")
implementation ("me.everything:providers-android:1.0.1")
implementation ("me.everything:providers-core:1.0.1")
// implementation ("androidx.window:window:1.0.0")
// implementation("io.github.vaneproject:hanguleditor:1.0.0")
}

View File

@ -26,7 +26,8 @@
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<!-- Always include this permission -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

View File

@ -108,6 +108,7 @@ import rasel.lunar.launcher.utils.beforeDay
import rasel.lunar.launcher.utils.make0H
import rasel.lunar.launcher.workers.AppInfoGetter
import rasel.lunar.launcher.workers.ArcaGetter
import rasel.lunar.launcher.workers.CalendarGetter
import rasel.lunar.launcher.workers.ClienGetter
import rasel.lunar.launcher.workers.ContactInfoGetter
import rasel.lunar.launcher.workers.DCGetter
@ -210,6 +211,12 @@ internal class LauncherActivity : AppCompatActivity() {
}, 5, TimeUnit.SECONDS)
}
fun getCal() {
Executors.newSingleThreadScheduledExecutor().schedule({
mWorkManager?.enqueue(OneTimeWorkRequest.from(CalendarGetter::class.java))
}, 5, TimeUnit.SECONDS)
}
fun refreshFeeds() {
var delay = 5L
Executors.newSingleThreadScheduledExecutor().schedule({
@ -435,6 +442,8 @@ internal class LauncherActivity : AppCompatActivity() {
private fun welcomeDialog() {
var needAsk = if (
this.checkSelfPermission(Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED ||
@ -473,6 +482,8 @@ internal class LauncherActivity : AppCompatActivity() {
/* phone permission */
if (
this.checkSelfPermission(Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED ||
this.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED ||
@ -484,6 +495,8 @@ internal class LauncherActivity : AppCompatActivity() {
this.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
) {
this.requestPermissions(arrayOf(
Manifest.permission.READ_CALENDAR,
Manifest.permission.WRITE_CALENDAR,
Manifest.permission.READ_CONTACTS,
Manifest.permission.READ_CALL_LOG,
Manifest.permission.CALL_PHONE,

View File

@ -58,6 +58,7 @@ import org.jsoup.Jsoup
import rasel.lunar.launcher.CommadCallabck
import rasel.lunar.launcher.LauncherActivity.Companion.appWidgetHost
import rasel.lunar.launcher.LauncherActivity.Companion.appWidgetManager
import rasel.lunar.launcher.LauncherActivity.Companion.getCal
import rasel.lunar.launcher.LauncherActivity.Companion.lActivity
import rasel.lunar.launcher.LauncherActivity.Companion.refreshDeviceData
import rasel.lunar.launcher.LauncherActivity.Companion.refreshFeeds
@ -282,6 +283,9 @@ internal class Feeds : Fragment() , CommadCallabck {
binding.expandRss.isChecked = false
} else {
when (input.text.toString()) {
"cal" ->{
getCal()
}
"so" -> GlobalScope.launch {
"https://kr69.sogirl.so".getJ().let { doc ->
// BLog.LOGE("ogirl >>> ${doc.title()}")

View File

@ -178,11 +178,11 @@ internal class LauncherHome : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
home = this
BLog.LOGE("${this} ::::: onCreate >>>> ")
// BLog.LOGE("${this} ::::: onCreate >>>> ")
}
var mWeatherResult : RealmResults<WeatherForcast>? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
BLog.LOGE("${this} ::::: onCreateView >>>> ")
// BLog.LOGE("${this} ::::: onCreateView >>>> ")
binding = LauncherHomeBinding.inflate(inflater, container, false)
fragManager = lActivity!!.supportFragmentManager
settingsPrefs = requireContext().getSharedPreferences(PREFS_SETTINGS, 0)
@ -397,7 +397,7 @@ internal class LauncherHome : Fragment() {
private fun queryNotice() {
var mWorkManager = WorkManager.getInstance(requireContext())
Executors.newSingleThreadScheduledExecutor().schedule({
mWorkManager.enqueue(OneTimeWorkRequest.from(TelegramBotGetter::class.java))
// mWorkManager.enqueue(OneTimeWorkRequest.from(TelegramBotGetter::class.java))
}, 5, TimeUnit.SECONDS)
try { noticeJob?.cancel() } catch (e:Exception) {e.printStackTrace()}
mNotificationResult = null
@ -483,7 +483,7 @@ internal class LauncherHome : Fragment() {
}}
var rQ = WorkersDb.getRealm().query<RssData>().query("pubDate > $0", beforeDay(Date(),3))
if(keyword.length > 0) {
BLog.LOGE("queryInfos it >>> ${keyword}")
// BLog.LOGE("queryInfos it >>> ${keyword}")
if (JamoUtils.CHOSUNG.contains(keyword.split("")[0])) {
rQ = rQ.query(
"title CONTAINS $0 OR chosung CONTAINS $1 ",
@ -580,7 +580,7 @@ internal class LauncherHome : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
BLog.LOGE("${this} ::::: onViewCreated >>>> ")
// BLog.LOGE("${this} ::::: onViewCreated >>>> ")
rootViewGestures()
batteryProgressGestures()
@ -804,7 +804,7 @@ internal class LauncherHome : Fragment() {
}
override fun onResume() {
super.onResume()
BLog.LOGE("${this} ::::: onResume >>>> ")
// BLog.LOGE("${this} ::::: onResume >>>> ")
if (shouldResume) {
/* register battery changes */

View File

@ -117,17 +117,17 @@ internal class SettingsActivity : AppCompatActivity() {
/* source code at github */
aboutBinding.sourceCode.setOnClickListener {
bottomSheetDialog.dismiss()
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(sourceCode)))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(sourceCode)))
}
/* wiki at github */
aboutBinding.wiki.setOnClickListener {
bottomSheetDialog.dismiss()
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("$sourceCode/wiki")))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("$sourceCode/wiki")))
}
/* telegram community */
aboutBinding.telegramGroup.setOnClickListener {
bottomSheetDialog.dismiss()
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/LunarLauncher_chats")))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/LunarLauncher_chats")))
}
}
@ -138,15 +138,15 @@ internal class SettingsActivity : AppCompatActivity() {
.setMessage(R.string.support_message)
/* star button */
.setNeutralButton(R.string.star) { _, _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(sourceCode)))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(sourceCode)))
}
/* affiliate button */
.setNegativeButton(R.string.amazon) { _, _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://amzn.to/44krAw9")))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://amzn.to/44krAw9")))
}
/* donate button */
.setPositiveButton(R.string.donate) { _, _ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://iamrasel.github.io/donate")))
// startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://iamrasel.github.io/donate")))
}
.show()
}

View File

@ -0,0 +1,149 @@
package rasel.lunar.launcher.workers
import android.content.Context
import android.net.Uri
import androidx.work.WorkerParameters
import rasel.lunar.launcher.LauncherActivity.Companion.lActivity
import rasel.lunar.launcher.utils.BLog
class CalendarGetter : BaseGetter {
companion object {
val TAG = "DCGetter"
}
constructor(context: Context, workerParams: WorkerParameters) : super(context, workerParams) {
}
override fun realWork(): Result {
setCalendar()
return Result.success().apply {
}
}
fun setCalendar() {
val calendars = Uri.parse("content://com.android.calendar/events")
val projection = arrayOf(
"calendar_id",
// "htmlUri",
"title",
// "eventLocation",
"description",
// "eventStatus",
// "selfAttendeeStatus",
// "commentsUri",
"dtstart",
"dtend",
// "eventTimezone",
// "duration",
// "allDay",
// "visibility",
// "transparency",
// "hasAlarm",
// "hasExtendedProperties",
// "rrule",
"rdate",
// "exrule",
// "exdate",
// "originalEvent",
// "originalInstanceTime",
// "originalAllDay",
// "lastDate",
// "hasAttendeeData",
// "guestsCanModify",
// "guestsCanInviteOthers",
// "guestsCanSeeGuests",
// "organizer",
// "deleted"
)
// val managedCursor: Cursor =
lActivity?.contentResolver?.query(calendars, projection, null, null, null)?.let { managedCursor ->
if (managedCursor.moveToFirst()) {
val calendar_id = IntArray(managedCursor.count)
// val htmlUri = arrayOfNulls<String>(managedCursor.count)
val title = arrayOfNulls<String>(managedCursor.count)
// val eventLocation = arrayOfNulls<String>(managedCursor.count)
val description = arrayOfNulls<String>(managedCursor.count)
// val eventStatus = IntArray(managedCursor.count)
// val selfAttendeeStatus = IntArray(managedCursor.count)
// val commentsUri = arrayOfNulls<String>(managedCursor.count)
val dtstart = arrayOfNulls<String>(managedCursor.count)
val dtend = arrayOfNulls<String>(managedCursor.count)
// val eventTimezone = arrayOfNulls<String>(managedCursor.count)
// val duration = arrayOfNulls<String>(managedCursor.count)
// val allDay = IntArray(managedCursor.count)
// val visibility = IntArray(managedCursor.count)
// val transparency = IntArray(managedCursor.count)
// val hasAlarm = IntArray(managedCursor.count)
// val hasExtendedProperties = IntArray(managedCursor.count)
// val rrule = arrayOfNulls<String>(managedCursor.count)
val rdate = arrayOfNulls<String>(managedCursor.count)
// val exrule = arrayOfNulls<String>(managedCursor.count)
// val exdate = arrayOfNulls<String>(managedCursor.count)
// val originalEvent = arrayOfNulls<String>(managedCursor.count)
// val originalInstanceTime = IntArray(managedCursor.count)
// val originalAllDay = IntArray(managedCursor.count)
// val lastDate = IntArray(managedCursor.count)
// val hasAttendeeData = IntArray(managedCursor.count)
// val guestsCanModify = IntArray(managedCursor.count)
// val guestsCanInviteOthers = IntArray(managedCursor.count)
// val guestsCanSeeGuests = IntArray(managedCursor.count)
// val organizer = arrayOfNulls<String>(managedCursor.count)
// val deleted = IntArray(managedCursor.count)
for (i in title.indices) {
calendar_id[i] = managedCursor.getInt(0)
BLog.LOGE("Calendar ID : " + calendar_id[i])
// htmlUri[i] = managedCursor.getString(1)
// Log.i("Calendar", "htmlUri : " + htmlUri[i])
title[i] = managedCursor.getString(1)
BLog.LOGE("Calendar title : " + title[i])
// eventLocation[i] = managedCursor.getString(3)
// Log.i("Calendar", "eventLocation : " + eventLocation[i])
description[i] = managedCursor.getString(2)
// eventStatus[i] = managedCursor.getInt(5)
// selfAttendeeStatus[i] = managedCursor.getInt(6)
// commentsUri[i] = managedCursor.getString(7)
dtstart[i] = managedCursor.getString(3)
BLog.LOGE("Calendar dtstart : " + rdate[i])
dtend[i] = managedCursor.getString(4)
BLog.LOGE("Calendar dtend : " + rdate[i])
// eventTimezone[i] = managedCursor.getString(10)
// duration[i] = managedCursor.getString(11)
// allDay[i] = managedCursor.getInt(12)
// visibility[i] = managedCursor.getInt(13)
// transparency[i] = managedCursor.getInt(14)
// hasAlarm[i] = managedCursor.getInt(15)
// hasExtendedProperties[i] = managedCursor.getInt(16)
// rrule[i] = managedCursor.getString(17)
rdate[i] = managedCursor.getString(5)
BLog.LOGE("Calendar rdate : " + rdate[i])
// exrule[i] = managedCursor.getString(19)
// exdate[i] = managedCursor.getString(20)
// originalEvent[i] = managedCursor.getString(21)
// originalInstanceTime[i] = managedCursor.getInt(22)
// originalAllDay[i] = managedCursor.getInt(23)
// lastDate[i] = managedCursor.getInt(24)
// hasAttendeeData[i] = managedCursor.getInt(25)
// guestsCanModify[i] = managedCursor.getInt(26)
// guestsCanInviteOthers[i] = managedCursor.getInt(27)
// guestsCanSeeGuests[i] = managedCursor.getInt(28)
// organizer[i] = managedCursor.getString(29)
// deleted[i] = managedCursor.getInt(30)
if (title[i] != null) {
BLog.LOGE("title[i] ${title[i]}")
}
managedCursor.moveToNext()
}
}
managedCursor.close()
}
}
}