Skip to content

Commit

Permalink
Merge pull request #120 from greedy0110/develop
Browse files Browse the repository at this point in the history
implement popup system
  • Loading branch information
greedy0110 authored Aug 13, 2019
2 parents 23b925e + c162e0d commit 8799e18
Show file tree
Hide file tree
Showing 8 changed files with 221 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ import com.articrew.artic.R
import com.articrew.artic.repository.ArticRepository
import com.articrew.artic.ui.base.BaseActivity
import com.articrew.artic.ui.adapter.article.ArticleOverviewRecyclerViewAdapter
import com.articrew.artic.util.PopupSystem
import kotlinx.android.synthetic.main.activity_my_page_scrap.*
import org.jetbrains.anko.toast
import org.koin.android.ext.android.inject


// TODO 내가 만든 아카이브 목록을 보여주는 Activity이다. 즉, Scrap 목록을 보여주는 화면이 아니다. 따라서 네이밍 수정이 필요하다.
class MyPageScrapActivity : BaseActivity() {
private val repository :ArticRepository by inject()
// private var archiveId : Int=-1
Expand Down Expand Up @@ -53,5 +55,32 @@ class MyPageScrapActivity : BaseActivity() {
toast(R.string.network_error)
}
).apply { addDisposable(this) }

btn_mypage_myarchive_modify.setOnClickListener {
// TODO 아카이브를 제거할 것인지, 이름을 변경할 것인지를 보여줄 팝업을 띄워준다.
PopupSystem.show(this, R.layout.dlg_modify_archive,
mapOf(
R.id.btn_dlg_archive_modify to {
// TODO 아카이브 수정 activity로 이동해야한다.
toast("아카이브 수정")
},
R.id.btn_dlg_archive_delete to {
toast("아카이브 제거")
// TODO 아카이브 제거 popup을 다시 띄워주어야 한다.
PopupSystem.show(this, R.layout.dlg_confirm_delete_archive,
mapOf(
R.id.btn_dlg_confirm_delete to {
// TODO 아카이브 제거 서버 통신을 해야한다.
toast("아카이브 제거 확실!")
},
R.id.btn_dlg_confirm_cancel to {
// 팝업창을 종료하면 되니까 아무것도 하지않는다. (PopupSystem에서 알아서 종료시켜준다.)
}
)
)
}
)
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class SplashActivity : BaseSocialLoginActivity() {

// 데이터 캐싱은 어떻게 할까?

// TODO 테스트용 모듈로 시작하면 회원가입-데이터 받아오기 확인을 쉽게 할 수 있어야하는데... 전철에서 해보니까 네트워크 연결이 안되면 테스트가 어렵다. UI 작업인데도.

// 적어도 스플래쉬 화면이 한 번의 애니메이션을 실행해야한다.
// 스플래쉬 화면에서 자동 로그인을 요청해야 한다. 그리고 요청 결과에 따라 다음 화면으로 이동해야 한다.

Expand Down
31 changes: 31 additions & 0 deletions app/src/main/java/com/articrew/artic/util/PopupSystem.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.articrew.artic.util

import android.app.Activity
import android.app.AlertDialog
import android.view.View

object PopupSystem {
/**
* 버튼을 누르면 dialog를 종료하는 popup을 만든다.
* @param activity popup이 나타나는 곳
* @param layoutId dialog의 layout id값
* @param map key는 click event가 적용될 view, value는 click이벤트
* */
fun show(activity: Activity?, layoutId: Int, map: Map<Int, (()->Any)?>) {
activity?.run {
val view = layoutInflater.inflate(layoutId, null, false)
val dialog = AlertDialog.Builder(this)
.setView(view)
.create()

for (pair in map) {
view.findViewById<View>(pair.key).setOnClickListener {
pair.value?.invoke()
dialog.dismiss()
}
}

dialog.show()
}
}
}
12 changes: 12 additions & 0 deletions app/src/main/res/layout/activity_my_page_scrap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,18 @@
app:layout_constraintStart_toEndOf="@+id/mypage_scrap_link_num"
app:layout_constraintTop_toBottomOf="@+id/mypage_scrap_link_title" />

<Button
android:id="@+id/btn_mypage_myarchive_modify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="sample"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>

Expand Down
95 changes: 95 additions & 0 deletions app/src/main/res/layout/dlg_confirm_delete_archive.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="6dp"
android:layout_marginHorizontal="45dp"
app:cardElevation="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="41dp"
android:layout_marginTop="38dp"
android:layout_marginEnd="42dp"
android:text="@string/label_do_you_delete_archive"
android:textSize="15sp"
android:lineSpacingExtra="9sp"
android:fontFamily="@font/nanum_barungothic_bold"
android:textColor="@color/black"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/label_warning_delete_archive"
android:textSize="12sp"
android:lineSpacingExtra="12sp"
android:fontFamily="@font/nanum_barungothic_regular"
app:layout_constraintEnd_toEndOf="@+id/textView3"
app:layout_constraintStart_toStartOf="@+id/textView3"
app:layout_constraintTop_toBottomOf="@+id/textView3" />

<View
android:id="@+id/view8"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="36dp"
android:background="@color/very_light_pink_two"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView5" />

<TextView
android:id="@+id/btn_dlg_confirm_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/delete"
android:textSize="14sp"
android:lineSpacingExtra="2sp"
android:fontFamily="@font/nanum_barungothic_regular"
android:textStyle="bold"
android:textColor="@color/red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view8" />

<View
android:id="@+id/view9"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="@color/very_light_pink_two"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_dlg_confirm_delete" />

<TextView
android:id="@+id/btn_dlg_confirm_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="17dp"
android:text="@string/cancel"
android:textSize="14sp"
android:lineSpacingExtra="2sp"
android:fontFamily="@font/nanum_barungothic_regular"
android:textColor="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view9" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
45 changes: 45 additions & 0 deletions app/src/main/res/layout/dlg_modify_archive.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="1dp"
app:cardCornerRadius="6dp">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<TextView
android:id="@+id/btn_dlg_archive_modify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/nanum_barungothic_regular"
android:lineSpacingExtra="10sp"
android:text="@string/modify_archive_name"
android:textColor="@color/black"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/btn_dlg_archive_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
android:layout_marginBottom="16dp"
android:fontFamily="@font/nanum_barungothic_regular"
android:lineSpacingExtra="10sp"
android:text="@string/delete_archive"
android:textColor="@color/red"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/btn_dlg_archive_modify"
app:layout_constraintTop_toBottomOf="@+id/btn_dlg_archive_modify" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
1 change: 1 addition & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@
<color name="white_two">#f9f9f9</color>
<color name="artic_transparent">#00000000</color>
<color name="kakao_yellow">#fddc3f</color>
<color name="red">#ff1515</color>

</resources>
6 changes: 6 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@
<string name="notification_old">읽은 알림</string>
<string name="read_storage_permission_warning">저장소 접근 권한이 없어서 이미지를 가져올 수 없어요.</string>
<string name="kakao_login_fail">카카오 로그인 실패</string>
<string name="modify_archive_name">아카이브 이름 변경하기</string>
<string name="delete_archive">아카이브 삭제</string>
<string name="label_do_you_delete_archive">아카이브를 삭제하시겠습니까?</string>
<string name="label_warning_delete_archive">삭제된 아카이브는 복구되지 않습니다.</string>
<string name="delete">삭제</string>
<string name="cancel">취소</string>
</resources>

0 comments on commit 8799e18

Please sign in to comment.