diff --git a/app/build.gradle b/app/build.gradle index 406437c486..bb2b93d9b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -159,9 +159,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } // internal test dev host internal { @@ -175,9 +172,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${DEV_UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${DEV_UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${DEV_BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.READ_CALENDAR") - manifestPlaceholders.put("optionalPermission2", "android.permission.WRITE_CALENDAR") } tea { @@ -192,9 +186,6 @@ android { buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } gdt { @@ -207,9 +198,6 @@ android { buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\"" buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\"" buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\"" - - manifestPlaceholders.put("optionalPermission1", "android.permission.INTERNET") - manifestPlaceholders.put("optionalPermission2", "android.permission.INTERNET") } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5083acb860..317c294e5b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,10 +28,6 @@ - - - - diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index 26c222a732..44464fce18 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -176,9 +176,6 @@ public class Constants { // 是否已经填写邀请码 public static final String SP_HAS_COMPLETE_INVITE_CODE = "has_complete_invite_code"; - // 签到提醒开关 - public static final String SP_SIGN_REMIND = "sign_remind"; - // 补充配置项 public static final String SP_NEW_SETTINGS = "new_settings"; diff --git a/app/src/main/java/com/gh/common/util/CalendarHelper.kt b/app/src/main/java/com/gh/common/util/CalendarHelper.kt deleted file mode 100644 index fca7644395..0000000000 --- a/app/src/main/java/com/gh/common/util/CalendarHelper.kt +++ /dev/null @@ -1,190 +0,0 @@ -package com.gh.common.util - -import android.content.ContentUris -import android.content.ContentValues -import android.content.Context -import android.database.Cursor -import android.net.Uri -import android.provider.CalendarContract.* -import android.text.TextUtils -import com.gh.common.constant.Constants -import com.gh.gamecenter.BuildConfig -import com.gh.gamecenter.R -import java.util.* - - -/** - * 签到日历提醒辅助类 - */ -object CalendarHelper { - - private val CALENDAR_URL = Calendars.CONTENT_URI - private val CALENDAR_EVENT_URL = Events.CONTENT_URI - private val CALENDAR_REMINDER_URL = Reminders.CONTENT_URI - private const val CALENDARS_NAME = "guanghuan" - private const val CALENDARS_ACCOUNT_TYPE = BuildConfig.APPLICATION_ID - private const val CALENDARS_DISPLAY_NAME = "光环助手" - - - private fun checkAndAddCalendarAccount(context: Context): Int { - val oldId: Int = checkCalendarAccount(context) - return if (oldId >= 0) { - oldId - } else { - val addId: Long = addCalendarAccount(context) - if (addId >= 0) { - checkCalendarAccount(context) - } else { - -1 - } - } - } - - private fun checkCalendarAccount(context: Context): Int { - val userCursor: Cursor? = context.contentResolver.query(CALENDAR_URL, - null, null, null, null) - return userCursor?.use { - val count: Int = it.count - if (count > 0) { // 存在现有账户,取第一个账户的id返回 - it.moveToFirst() - it.getInt(userCursor.getColumnIndex(Calendars._ID)) - } else { - -1 - } - } ?: -1 - } - - private fun addCalendarAccount(context: Context): Long { - val value = ContentValues().apply { - put(Calendars.NAME, CALENDARS_NAME) - put(Calendars.ACCOUNT_NAME, CALENDARS_DISPLAY_NAME) - put(Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE) - put(Calendars.CALENDAR_DISPLAY_NAME, CALENDARS_DISPLAY_NAME) - put(Calendars.VISIBLE, 1) - put(Calendars.CALENDAR_COLOR, R.color.theme.toColor()) - put(Calendars.CALENDAR_ACCESS_LEVEL, Calendars.CAL_ACCESS_OWNER) - put(Calendars.SYNC_EVENTS, 1) - put(Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().id) - put(Calendars.OWNER_ACCOUNT, CALENDARS_NAME) - put(Calendars.CAN_ORGANIZER_RESPOND, 0) - } - - var calendarUri: Uri = CALENDAR_URL - calendarUri = calendarUri.buildUpon() - .appendQueryParameter(CALLER_IS_SYNCADAPTER, "true") - .appendQueryParameter(Calendars.ACCOUNT_NAME, CALENDARS_NAME) - .appendQueryParameter(Calendars.ACCOUNT_TYPE, CALENDARS_ACCOUNT_TYPE) - .build() - val result: Uri? = context.contentResolver.insert(calendarUri, value) - return if (result == null) -1 else ContentUris.parseId(result) - } - - fun insertCalendarEvent(context: Context, - title: String, - description: String, - beginTimeMillis: Long, - endTimeMillis: Long, - rRule: String?): Boolean { - val calendarId = checkAndAddCalendarAccount(context) // 获取日历账户的id - if (calendarId < 0) { // 获取账户id失败直接返回,添加日历事件失败 - return false - } - - // 判断之前是否已经插入日程,有就返回 - val eventCursor = context.contentResolver.query(CALENDAR_EVENT_URL, - null, null, null, null) - eventCursor?.use { - if (it.count > 0) { - // 遍历所有事件,找到title跟需要查询的title一样的项 - it.moveToFirst() - while (!it.isAfterLast) { - val eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title")) - if (!TextUtils.isEmpty(title) && title == eventTitle) { - return true - } - it.moveToNext() - } - } - } - - try { - /** 插入日程 */ - val eventValues = ContentValues().apply { - if (rRule != null) put(Events.RRULE, rRule) - put(Events.DTSTART, beginTimeMillis) - put(Events.DTEND, endTimeMillis) - put(Events.TITLE, title) - put(Events.DESCRIPTION, description) - put(Events.CALENDAR_ID, calendarId) - put(Events.EVENT_TIMEZONE, TimeZone.getDefault().id) - } - - // 检测是否存在已保存的日程ID,有则更新 - val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) - if (scheduleId != 0L) { - val updateUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) - val rows = context.contentResolver.update(updateUri, eventValues, null, null) - if (rows != -1) return true - } - - val eUri: Uri? = context.contentResolver.insert(CALENDAR_EVENT_URL, eventValues) - val eventId = eUri?.let { ContentUris.parseId(it) } - if (eventId == 0L) { // 插入失败 - return false - } else { - // 保存日程ID - SPUtils.setLong(Constants.SP_SCHEDULE_ID, eventId ?: 0L) - } - /** 插入提醒 - 依赖插入日程成功 */ - val reminderValues = ContentValues() - // uri.getLastPathSegment(); - reminderValues.put(Reminders.EVENT_ID, eventId) - reminderValues.put(Reminders.MINUTES, 0) // 准时提醒 - reminderValues.put(Reminders.METHOD, Reminders.METHOD_ALERT) - val rUri: Uri? = context.contentResolver.insert(CALENDAR_REMINDER_URL, reminderValues) - if (rUri == null || ContentUris.parseId(rUri) == 0L) { - return false - } - } catch (e: Exception) { - e.printStackTrace() - return false - } - return true - } - - fun deleteCalendarEvent(context: Context, - title: String): Boolean { - - // 检测是否存在已保存的日程ID,有则根据该ID删除 - val scheduleId = SPUtils.getLong(Constants.SP_SCHEDULE_ID) - if (scheduleId != 0L) { - val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, scheduleId) - val rows = context.contentResolver.delete(deleteUri, null, null) - if (rows != -1) { - SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) - return true - } - } - val eventCursor = context.contentResolver.query(CALENDAR_EVENT_URL, - null, null, null, null) - eventCursor?.use { - if (it.count > 0) { - // 遍历所有事件,找到title跟需要查询的title一样的项 - it.moveToFirst() - while (!it.isAfterLast) { - val eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title")) - if (!TextUtils.isEmpty(title) && title == eventTitle) { - val id = eventCursor.getInt(eventCursor - .getColumnIndex(Calendars._ID)) // 取得id - val deleteUri = ContentUris.withAppendedId(CALENDAR_EVENT_URL, id.toLong()) - val rows = context.contentResolver.delete(deleteUri, null, null) - SPUtils.setLong(Constants.SP_SCHEDULE_ID, 0L) - return rows != -1 - } - it.moveToNext() - } - } - } - return false - } -} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 1a5a06eb42..35d845943c 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -2111,19 +2111,6 @@ public class DialogUtils { dialog.show(); } - public static void showSignRemindSuccessDialog(Context context) { - context = checkDialogContext(context); - - final Dialog dialog = new Dialog(context, R.style.DialogWindowTransparent); - - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_sign_remind_success, null); - contentView.findViewById(R.id.closeIv).setOnClickListener(v -> dialog.dismiss()); - - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); - dialog.setContentView(contentView); - dialog.show(); - } - public static void showBindPhoneDialog(Context context, ConfirmListener listener) { context = checkDialogContext(context); diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index ddffef5ba2..ffc3c926c6 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -549,14 +549,6 @@ fun Fragment.checkStoragePermissionBeforeAction(action: (() -> Unit)) { }) } -fun Fragment.checkCalendarPermissionBeforeAction(action: (() -> Unit)) { - PermissionHelper.checkCalendarPermissionBeforeAction(requireContext(), object : EmptyCallback { - override fun onCallback() { - action.invoke() - } - }) -} - fun FragmentActivity.checkReadPhoneStateAndStoragePermissionBeforeAction(action: (() -> Unit)) { PermissionHelper.checkReadPhoneStateAndStoragePermissionBeforeAction(this, object : EmptyCallback { override fun onCallback() { @@ -581,14 +573,6 @@ fun FragmentActivity.checkStoragePermissionBeforeAction(action: (() -> Unit)) { }) } -fun FragmentActivity.checkCalendarPermissionBeforeAction(action: (() -> Unit)) { - PermissionHelper.checkCalendarPermissionBeforeAction(this, object : EmptyCallback { - override fun onCallback() { - action.invoke() - } - }) -} - /** * List related. */ diff --git a/app/src/main/java/com/gh/common/util/PermissionHelper.kt b/app/src/main/java/com/gh/common/util/PermissionHelper.kt index fbdf8573f2..9bba8e7a47 100644 --- a/app/src/main/java/com/gh/common/util/PermissionHelper.kt +++ b/app/src/main/java/com/gh/common/util/PermissionHelper.kt @@ -175,48 +175,6 @@ object PermissionHelper { } } - @SuppressLint("CheckResult") - @JvmStatic - fun checkCalendarPermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - val rxPermission = RxPermissions(context) - - tryWithDefaultCatch { - rxPermission - .requestEachCombined(Manifest.permission.WRITE_CALENDAR, Manifest.permission.READ_CALENDAR) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - } - permission.shouldShowRequestPermissionRationale -> { - DialogUtils.showPermissionDialog(context, - "权限申请", - "光环助手需要日历权限,以保证能正常使用相关功能", - "重试", - "放弃", - { checkCalendarPermissionBeforeAction(context, emptyCallback) }, - null) - } - else -> { - DialogUtils.showPermissionDialog(context, - "权限申请", - "在设置-应用-光环助手-权限中开启日历权限,以保证能正常使用相关功能", - "去设置", - "放弃", - { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.getPackageName()) - context.startActivity(intent) - }, - null) - } - } - } - } - } - } - /** * 跳转到权限设置 * diff --git a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt index 78ff5f4973..6b7c58fedd 100644 --- a/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/energy/EnergyCenterFragment.kt @@ -60,13 +60,11 @@ class EnergyCenterFragment : BaseLazyFragment() { mBinding?.run { background.setImageResource(R.drawable.bg_energy_center_day) signTitle.setTextColor(R.color.theme_font.toColor()) - signRemind.setTextColor(R.color.theme_font.toColor()) } } else { mBinding?.run { background.setImageResource(R.drawable.bg_energy_center_night) signTitle.setTextColor(R.color.white.toColor()) - signRemind.setTextColor(R.color.white.toColor()) } } @@ -138,11 +136,6 @@ class EnergyCenterFragment : BaseLazyFragment() { height = screenWidth * 400 / 360 } - signSwitch.setImageResource(if (SPUtils.getBoolean(Constants.SP_SIGN_REMIND)) - R.drawable.ic_energy_center_switch_on - else - R.drawable.ic_energy_center_switch_off) - val screenHeight = when { Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1 -> { resources.displayMetrics.heightPixels @@ -321,7 +314,7 @@ class EnergyCenterFragment : BaseLazyFragment() { } } - @OnClick(R.id.backIv, R.id.userEnergyContainer, R.id.energyRuleTv, R.id.inviteFriends, R.id.signSwitch, R.id.signToday, R.id.signRule, + @OnClick(R.id.backIv, R.id.userEnergyContainer, R.id.energyRuleTv, R.id.inviteFriends, R.id.signToday, R.id.signRule, R.id.oneDay, R.id.twoDay, R.id.threeDay, R.id.fourDay, R.id.fiveDay, R.id.sixDay, R.id.sevenDay) fun onViewClicked(v: View) { when (v.id) { @@ -358,16 +351,6 @@ class EnergyCenterFragment : BaseLazyFragment() { } } - R.id.signSwitch -> { - IntegralLogHelper.log("click_sign_remind", LOCATION) - - ifLogin("光能中心-签到提醒") { - if (!ClickUtils.isFastDoubleClick()) { - dealSignRemind() - } - } - } - R.id.signRule -> { IntegralLogHelper.log("click_sign_rule", LOCATION) DialogUtils.showSignRuleDialog(requireContext()) @@ -456,33 +439,6 @@ class EnergyCenterFragment : BaseLazyFragment() { mUserHomeViewModel?.signIn() } - private fun dealSignRemind() { - checkCalendarPermissionBeforeAction { - if (SPUtils.getBoolean(Constants.SP_SIGN_REMIND)) { - CalendarHelper.deleteCalendarEvent( - requireContext(), - R.string.sign_remind_title.toResString()) - SPUtils.setBoolean(Constants.SP_SIGN_REMIND, false) - mBinding?.signSwitch?.setImageResource(R.drawable.ic_energy_center_switch_off) - } else { - val isSuccess = CalendarHelper.insertCalendarEvent( - requireContext(), - R.string.sign_remind_title.toResString(), - R.string.sign_remind_desc.toResString(), - TimeUtils.getTimeOfToday(10), - TimeUtils.getTimeOfToday(10, 30), - "FREQ=DAILY") - if (isSuccess) { - SPUtils.setBoolean(Constants.SP_SIGN_REMIND, true) - DialogUtils.showSignRemindSuccessDialog(requireContext()) - mBinding?.signSwitch?.setImageResource(R.drawable.ic_energy_center_switch_on) - } else { - ToastUtils.showToast("添加签到提醒失败") - } - } - } - } - fun openBottomSheet(callback: () -> Unit) { if (mBehavior?.state == BottomSheetBehavior.STATE_EXPANDED) { callback.invoke() diff --git a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp b/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp deleted file mode 100644 index 0ef83fe19c..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_off.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp b/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp deleted file mode 100644 index 4eccadbe25..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_energy_center_switch_on.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_sign_remind_close.webp b/app/src/main/res/drawable-xxhdpi/ic_sign_remind_close.webp deleted file mode 100644 index 7b1c8668c1..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_sign_remind_close.webp and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_sign_remind_success.webp b/app/src/main/res/drawable-xxhdpi/ic_sign_remind_success.webp deleted file mode 100644 index 9c99bb831d..0000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_sign_remind_success.webp and /dev/null differ diff --git a/app/src/main/res/layout/dialog_sign_remind_success.xml b/app/src/main/res/layout/dialog_sign_remind_success.xml deleted file mode 100644 index 07e9671afb..0000000000 --- a/app/src/main/res/layout/dialog_sign_remind_success.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_energy_center.xml b/app/src/main/res/layout/fragment_energy_center.xml index 32c4defde9..d21d260deb 100644 --- a/app/src/main/res/layout/fragment_energy_center.xml +++ b/app/src/main/res/layout/fragment_energy_center.xml @@ -156,29 +156,6 @@ android:layout_toRightOf="@+id/signTitle" android:src="@drawable/ic_sign_rule" /> - - - - 签到规则 1、每日可领取2个光能、1个成长值,最多领取连续7天签到奖励,中断或签满7天则重新计算 2、连续签满7天可额外奖励1次免费抽奖机会 - 【光环助手】又有光能可以收了!收能量兑大奖! - 每日10点连续签到领能量,赶紧行动吧! - 开启成功 - 系统日历将准时提醒您签到 提示 填写邀请码需验证手机号绑定信息,检测\n到您未绑定手机(仅限新手机号绑定)