Skip to content

Commit

Permalink
Merge pull request #226 from TeamDMU/feature/onboarding-dialog
Browse files Browse the repository at this point in the history
Feat : ์•Œ๋ฆผ ๊ถŒํ•œ ์„ค์ • ๋‹ค์ด์–ด๋กœ๊ทธ
  • Loading branch information
huiwoo-jo authored Apr 2, 2024
2 parents 28c8318 + 92e61ba commit e069868
Show file tree
Hide file tree
Showing 6 changed files with 147 additions and 9 deletions.
3 changes: 1 addition & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@
<activity
android:name=".ui.view.main.MainActivity"
android:exported="false"
android:windowSoftInputMode="adjustPan" />
<!-- Firebase Cloud Messaging -->
android:windowSoftInputMode="adjustPan" /> <!-- Firebase Cloud Messaging -->
<service
android:name=".service.FCMService"
android:exported="false">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
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.R
import com.dongyang.android.youdongknowme.databinding.ActivityOnboardingPermissionBinding
import com.dongyang.android.youdongknowme.standard.base.BaseActivity
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<ActivityOnboardingPermissionBinding, SettingViewModel>() {

Expand Down Expand Up @@ -50,10 +47,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 {
// ์˜จ๋ณด๋”ฉ ์•Œ๋ฆผ ์Šค์œ„์น˜ ๋น„ํ™œ์„ฑํ™”
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
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.content.ContextCompat
import com.dongyang.android.youdongknowme.R
import com.dongyang.android.youdongknowme.databinding.FragmentSettingBinding
import com.dongyang.android.youdongknowme.standard.base.BaseFragment
Expand Down Expand Up @@ -60,6 +64,7 @@ class SettingFragment : BaseFragment<FragmentSettingBinding, SettingViewModel>()
viewModel.getUserTopic()

binding.switchSettingUniversityAlarm.setOnCheckedChangeListener { compoundButton, _ ->
checkPermission()
if (compoundButton.isChecked) {
if (topics.isNotEmpty()) {
viewModel.updateUserTopic(topics)
Expand All @@ -70,6 +75,7 @@ class SettingFragment : BaseFragment<FragmentSettingBinding, SettingViewModel>()
}

binding.switchSettingDepartmentAlarm.setOnCheckedChangeListener { compoundButton, _ ->
checkPermission()
if (compoundButton.isChecked) {
if (department.isNotEmpty()) {
viewModel.updateUserDepartment(department)
Expand Down Expand Up @@ -111,6 +117,24 @@ class SettingFragment : BaseFragment<FragmentSettingBinding, SettingViewModel>()
}
}

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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
}
}
65 changes: 65 additions & 0 deletions app/src/main/res/layout/dialog_permission.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:backgroundTint="@color/white"
android:background="@drawable/bg_stroke_gray300_radius_2dp">

<TextView
android:id="@+id/customTvTitle"
style="@style/PretendardBold20"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="24dp"
android:text="์ œ๋ชฉ"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/customTvContent"
style="@style/PretendardMedium16"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="20dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="20dp"
android:text="๋‚ด์šฉ"
android:textAlignment="center"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/customTvTitle" />

<TextView
android:id="@+id/customTvBtn1"
style="@style/PretendardSemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="28dp"
android:layout_marginBottom="20dp"
android:text="์ทจ์†Œ"
android:textColor="@color/blue300"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/customTvBtn2"
app:layout_constraintTop_toBottomOf="@+id/customTvContent" />

<TextView
android:id="@+id/customTvBtn2"
style="@style/PretendardSemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="30dp"
android:layout_marginBottom="20dp"
android:text="์„ค์ • ํ™”๋ฉด ์ด๋™"
android:textColor="@color/blue300"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,8 @@
<!-- toast message -->
<string name="toast_msg_keyword">ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”.</string>
<string name="toast_msg_department">์ •ํ™•ํ•œ ํ•™๊ณผ๋ช…์„ ๊ธฐ์ž…ํ•ด์ฃผ์„ธ์š”.</string>

<!-- permission dialog -->
<string name="dialog_permission_title">๊ธฐ๊ธฐ ์•Œ๋ฆผ์ด ๊บผ์ ธ์žˆ์Šต๋‹ˆ๋‹ค.</string>
<string name="dialog_permission_content"><![CDATA[์•Œ๋ฆผ ์„ค์ •(DMforU ์„ค์ • > ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ > ์•Œ๋ฆผ)์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ๊ณต์ง€ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.]]></string>
</resources>

0 comments on commit e069868

Please sign in to comment.