From bb64821edf25e02d78cc426760ef55594c99d11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Sun, 31 Mar 2024 11:11:40 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat=20:=20=EC=95=8C=EB=A6=BC=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EB=8B=A4=EC=9D=B4=EC=96=B4?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 +- .../ui/view/setting/dialog_permission.kt | 49 ++++++++++++++ app/src/main/res/layout/dialog_permission.xml | 64 +++++++++++++++++++ app/src/main/res/values/strings.xml | 4 ++ 4 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/dialog_permission.kt create mode 100644 app/src/main/res/layout/dialog_permission.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5dc75f8..a5336c53 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -59,8 +59,7 @@ - + android:windowSoftInputMode="adjustPan" /> diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/dialog_permission.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/dialog_permission.kt new file mode 100644 index 00000000..8f7fb713 --- /dev/null +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/dialog_permission.kt @@ -0,0 +1,49 @@ +package com.dongyang.android.youdongknowme.ui.view.setting + +import android.content.Intent +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.net.Uri +import android.os.Bundle +import android.provider.Settings +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.DialogFragment +import com.dongyang.android.youdongknowme.databinding.DialogPermissionBinding + +class DialogPermission(val title: String, val content: String, val pacakageName: String) : DialogFragment() { + private var _binding: DialogPermissionBinding? = null + private val binding get() = _binding!! + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + _binding = DialogPermissionBinding.inflate(inflater, container, false) + val view = binding.root + + // 레이아웃 배경을 투명하게 + dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + + // 제목, 내용 설정 + binding.customTvTitle.text = title + binding.customTvContent.text = content + + // 취소 버튼 + binding.customTvBtn1.setOnClickListener { + dismiss() + } + // 확인 버튼 + binding.customTvBtn2.setOnClickListener { + val intent = + Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).setData(Uri.parse("package:$pacakageName")) + startActivity(intent) + dismiss() + } + + return view + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_permission.xml b/app/src/main/res/layout/dialog_permission.xml new file mode 100644 index 00000000..0d3baaf1 --- /dev/null +++ b/app/src/main/res/layout/dialog_permission.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 247da675..1840fc10 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,4 +140,8 @@ 하나 이상의 키워드를 선택해주세요. 정확한 학과명을 기입해주세요. + + + 기기 알림이 꺼져있습니다. + 개인정보 보호 > 알림)을 활성화해야 공지 사항에 대한 키워드를 받을 수 있습니다.]]> \ No newline at end of file From 02df51a8494a2326f1723f75e5fc972345802831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Sun, 31 Mar 2024 11:11:55 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat=20:=20=EC=95=8C=EB=A6=BC=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=20=EB=AF=B8=ED=97=88=EC=9A=A9=EC=8B=9C=20=EB=8B=A4?= =?UTF-8?q?=EC=9D=B4=EC=96=B4=EB=A1=9C=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/view/setting/OnboardingPermissionActivity.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/OnboardingPermissionActivity.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/OnboardingPermissionActivity.kt index dbef78aa..b21be503 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/OnboardingPermissionActivity.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/OnboardingPermissionActivity.kt @@ -1,12 +1,10 @@ package com.dongyang.android.youdongknowme.ui.view.setting import android.Manifest -import android.content.Intent import android.content.pm.PackageManager import android.content.res.ColorStateList -import android.net.Uri -import android.provider.Settings import androidx.core.content.ContextCompat +import com.dongyang.android.youdongknowme.DialogPermission import com.dongyang.android.youdongknowme.R import com.dongyang.android.youdongknowme.databinding.ActivityOnboardingPermissionBinding import com.dongyang.android.youdongknowme.standard.base.BaseActivity @@ -14,6 +12,7 @@ import com.dongyang.android.youdongknowme.ui.view.main.MainActivity import com.dongyang.android.youdongknowme.ui.view.setting.SettingViewModel import org.koin.androidx.viewmodel.ext.android.viewModel + class OnboardingPermissionActivity : BaseActivity() { @@ -50,10 +49,10 @@ class OnboardingPermissionActivity : // 알림 권한이 허용 상태 setPermissionSwitch(true) } else { + // 알림 권한이 미허용 상태 - val intent = - Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).setData(Uri.parse("package:" + this.packageName)) - startActivity(intent) + val dialog = DialogPermission(getString(R.string.dialog_permission_title), getString(R.string.dialog_permission_content), this.packageName) + dialog.show(supportFragmentManager, "CustomDialog") } } else { // 온보딩 알림 스위치 비활성화 From a8d6f5f6ce561ff73e1947b3cd5c0fcdea07655e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Sun, 31 Mar 2024 12:00:07 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat=20:=20=EC=84=B8=ED=8C=85=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EA=B6=8C=ED=95=9C=20=EB=8B=A4=EC=9D=B4=EC=96=B4?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20(=EC=88=98=EC=A0=95=20=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/view/setting/SettingFragment.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt index f0bc15e0..f782f2bc 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt @@ -1,10 +1,16 @@ package com.dongyang.android.youdongknowme.ui.view.setting import android.app.Activity +import android.Manifest import android.content.Intent +import android.content.pm.PackageManager import android.net.Uri import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts +import android.os.Build +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import com.dongyang.android.youdongknowme.DialogPermission import com.dongyang.android.youdongknowme.R import com.dongyang.android.youdongknowme.databinding.FragmentSettingBinding import com.dongyang.android.youdongknowme.standard.base.BaseFragment @@ -60,6 +66,7 @@ class SettingFragment : BaseFragment() viewModel.getUserTopic() binding.switchSettingUniversityAlarm.setOnCheckedChangeListener { compoundButton, _ -> + checkPermission() if (compoundButton.isChecked) { if (topics.isNotEmpty()) { viewModel.updateUserTopic(topics) @@ -70,6 +77,7 @@ class SettingFragment : BaseFragment() } binding.switchSettingDepartmentAlarm.setOnCheckedChangeListener { compoundButton, _ -> + checkPermission() if (compoundButton.isChecked) { if (department.isNotEmpty()) { viewModel.updateUserDepartment(department) @@ -111,6 +119,24 @@ class SettingFragment : BaseFragment() } } + fun checkPermission(){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + if (PackageManager.PERMISSION_DENIED == ContextCompat.checkSelfPermission( + requireContext(), Manifest.permission.POST_NOTIFICATIONS + ) + ) { + // 알림 권한 설정 미허용 + viewModel.setIsAccessDepartAlarm(false) + viewModel.setIsAccessUniversityAlarm(false) + binding.switchSettingUniversityAlarm.isChecked = false + binding.switchSettingDepartmentAlarm.isChecked = false + + val dialog = DialogPermission(getString(R.string.dialog_permission_title), getString(R.string.dialog_permission_content), requireContext().packageName) + dialog.show(parentFragmentManager, "CustomDialog") + } + } + } + private fun getAppVersion(): String { val packageManager = requireContext().packageManager.getPackageInfo(requireContext().packageName, 0) From 40e4dae260733683985b7e0c2b5320be953089d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Sun, 31 Mar 2024 11:11:40 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat=20:=20=EC=95=8C=EB=A6=BC=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=20=EC=84=A4=EC=A0=95=20=EB=8B=A4=EC=9D=B4=EC=96=B4?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 5 +- .../youdongknowme/dialog_permission.kt | 49 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/dongyang/android/youdongknowme/dialog_permission.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a5336c53..36b154b9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,7 +22,10 @@ android:theme="@style/Theme.YouDongKnowMe" android:usesCleartextTraffic="true"> + Date: Tue, 2 Apr 2024 22:58:40 +0900 Subject: [PATCH 5/7] =?UTF-8?q?fix=20:=20=EB=A6=AC=EB=B2=A0=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EA=B3=BC=EC=A0=95=20=EC=B6=A9=EB=8F=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/youdongknowme/ui/view/setting/SettingFragment.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt index f782f2bc..8f555d03 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt @@ -2,12 +2,15 @@ package com.dongyang.android.youdongknowme.ui.view.setting import android.app.Activity import android.Manifest +import android.app.Activity import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import android.os.Build +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.dongyang.android.youdongknowme.DialogPermission From 00882d84a8c8bcce50d4b4b5e1658a28e63dce16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Tue, 2 Apr 2024 23:55:55 +0900 Subject: [PATCH 6/7] =?UTF-8?q?refactor=20:=20=EB=A6=AC=EB=B2=A0=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EA=B3=BC=EC=A0=95=20=EC=B6=A9=EB=8F=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/youdongknowme/ui/view/setting/SettingFragment.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt index 8f555d03..87320d81 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/setting/SettingFragment.kt @@ -2,16 +2,12 @@ package com.dongyang.android.youdongknowme.ui.view.setting import android.app.Activity import android.Manifest -import android.app.Activity import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import android.os.Build -import androidx.activity.result.ActivityResultLauncher -import androidx.activity.result.contract.ActivityResultContracts -import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.dongyang.android.youdongknowme.DialogPermission import com.dongyang.android.youdongknowme.R From 92e61baf4962f66321571bb90e96533d2aa740e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=ED=9D=AC=EC=9A=B0?= <84004687+huiwoo-jo@users.noreply.github.com> Date: Wed, 3 Apr 2024 00:06:00 +0900 Subject: [PATCH 7/7] =?UTF-8?q?refactor=20:=20=EB=A6=AC=EB=B2=A0=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EA=B3=BC=EC=A0=95=20=EC=B6=A9=EB=8F=8C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 5 +- .../youdongknowme/dialog_permission.kt | 49 ------------------- .../setting/OnboardingPermissionActivity.kt | 2 - .../ui/view/setting/SettingFragment.kt | 1 - app/src/main/res/layout/dialog_permission.xml | 3 +- 5 files changed, 3 insertions(+), 57 deletions(-) delete mode 100644 app/src/main/java/com/dongyang/android/youdongknowme/dialog_permission.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 36b154b9..a5336c53 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,10 +22,7 @@ android:theme="@style/Theme.YouDongKnowMe" android:usesCleartextTraffic="true"> - + android:backgroundTint="@color/white" + android:background="@drawable/bg_stroke_gray300_radius_2dp">