Skip to content

Commit

Permalink
#5 Edit name and status message
Browse files Browse the repository at this point in the history
  • Loading branch information
zion830 committed Jan 25, 2019
1 parent cc2cc25 commit 92f99b9
Show file tree
Hide file tree
Showing 17 changed files with 132 additions and 53 deletions.
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package com.sooling.sooling.activity.main

import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.support.v4.app.ActivityCompat
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.PagerSnapHelper
import android.support.v7.widget.RecyclerView
import android.util.Log.d
import android.view.View
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.sooling.sooling.R
import com.sooling.sooling.`object`.DrinkCard
import com.sooling.sooling.`object`.User
import com.sooling.sooling.activity.add_drink.AddHistoryActivity
import com.sooling.sooling.activity.calendar.CalendarActivity
import com.sooling.sooling.activity.setting.SettingActivity
import com.sooling.sooling.activity.wiki.WikiActivity
import com.sooling.sooling.adapter.CardListAdapter
Expand All @@ -24,14 +24,18 @@ import com.sooling.sooling.custom_view.ShareDialog
import com.sooling.sooling.util.RecyclerItemClickListener
import com.sooling.sooling.util.UserDataManager
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.alert
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
import org.jetbrains.anko.toast


class MainActivity : AppCompatActivity(), View.OnClickListener {
val requestPermission = 0
val codeSetting = 1
var index = 0
lateinit var adapter: CardListAdapter
lateinit var user: User
var cardList = listOf<DrinkCard>(
DrinkCard("BEER", "500cc까지는 즐기면서"),
DrinkCard("SOJU", "3잔까지는 멀쩡하게"),
Expand All @@ -47,16 +51,19 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
askForPermission()
}

private fun initView() {
val user = UserDataManager.getInstance(this).getUserInfo()
d("token", user.token)
private fun initInfo() {
user = UserDataManager.getInstance(this).getUserInfo()
Glide.with(applicationContext)
.load(user.imgUrl)
.apply(RequestOptions().circleCrop())
.into(iv_main_profile)

tv_main_name.text = user.name
tv_main_msg.text = user.msg
}

private fun initView() {
initInfo()

adapter = CardListAdapter(this, cardList)
rv_main_card.adapter = adapter
Expand Down Expand Up @@ -105,15 +112,25 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onClick(view: View?) {
when (view?.id) {
R.id.btn_main_capacity -> startActivity<AddHistoryActivity>()
R.id.btn_main_calendar -> startActivity<CalendarActivity>()
R.id.btn_main_calendar -> alert {
title = "송구합니다..."
message = "캘린더는 아직 개발 중입니다...\n다음 업데이트를 기다려주십쇼."
positiveButton("납득", onClicked = {})
}.show()
R.id.btn_main_wiki -> startActivity<WikiActivity>()
R.id.btn_main_setting -> startActivity<SettingActivity>()
R.id.btn_main_setting -> startActivityForResult<SettingActivity>(codeSetting)
R.id.btn_main_share -> {
ShareDialog(this, cardList[index], "유우미").show()
ShareDialog(this, cardList[index], user.name).show()
}
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == codeSetting)
initInfo()
}

// 권한 요청
private fun askForPermission() {
val permissions = arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.CAMERA)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.sooling.sooling.R
import com.sooling.sooling.util.ShareCardWithKakaoTalk
import kotlinx.android.synthetic.main.activity_setting.*
import kotlinx.android.synthetic.main.toolbar.*
import org.jetbrains.anko.alert
import org.jetbrains.anko.startActivity


Expand All @@ -19,6 +20,7 @@ class SettingActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting)

initView()
}

Expand All @@ -35,13 +37,30 @@ class SettingActivity : AppCompatActivity(), View.OnClickListener {
ib_back.setOnClickListener(this)
btn_profile.setOnClickListener(this)
btn_card.setOnClickListener(this)
btn_recommend.setOnClickListener(this)
}

override fun onClick(view: View?) {
when (view?.id) {
R.id.ib_back -> finish()
R.id.ib_back -> showSaveDialog()
R.id.btn_profile -> startActivity<SettingProfileActivity>()
R.id.btn_card -> startActivity<SettingCardActivity>()
R.id.btn_recommend -> ShareCardWithKakaoTalk(this).excuteRecommend()
}
}

override fun onDestroy() {
showSaveDialog()

super.onDestroy()
}

fun showSaveDialog() {
alert {
title = getString(R.string.setting_save)
message = getString(R.string.setting_save_msg)
positiveButton(getString(R.string.all_ok), onClicked = {})
negativeButton(getString(R.string.all_cancel), onClicked = { finish() })
}.show()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,28 @@ import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Button
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.Resource
import com.bumptech.glide.request.RequestOptions
import com.sooling.sooling.R
import com.sooling.sooling.model.GetCardData
import com.sooling.sooling.util.UserDataManager
import kotlinx.android.synthetic.main.activity_setting_profile.*
import kotlinx.android.synthetic.main.toolbar.*
import android.animation.PropertyValuesHolder
import android.animation.ObjectAnimator
import android.graphics.drawable.Drawable
import org.jetbrains.anko.alert
import org.jetbrains.anko.toast


class SettingProfileActivity : AppCompatActivity(), View.OnClickListener {
val pickPhoto = 1
val takePicture = 2
lateinit var labelBtns: ArrayList<Button>
lateinit var manager: UserDataManager
var labelStatus = arrayListOf(false, false, false, false)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_setting_profile)

manager = UserDataManager.getInstance(this)
labelBtns = arrayListOf(
btn_label_beer, btn_label_soju, btn_label_wine, btn_label_makgeolli
)
Expand All @@ -37,8 +38,12 @@ class SettingProfileActivity : AppCompatActivity(), View.OnClickListener {
private fun initView() {
toolbar_title.text = getString(R.string.setting_profile)

val userData = manager.getUserInfo()
edit_setting_name.setText(userData.name)
edit_setting_state.setText(userData.msg)

Glide.with(applicationContext)
.load(R.drawable.icon)
.load(userData.imgUrl)
.apply(RequestOptions().circleCrop())
.into(iv_setting_profile)

Expand Down Expand Up @@ -69,7 +74,37 @@ class SettingProfileActivity : AppCompatActivity(), View.OnClickListener {

override fun onClick(view: View?) {
when (view?.id) {
R.id.ib_back -> finish()
R.id.ib_back -> showSaveDlg()
}
}

override fun onBackPressed() {
showSaveDlg()
}

fun checkName(): Boolean {
if (edit_setting_name.text.isEmpty()) {
toast(R.string.setting_save_err1)
return false
} else
return true
}

fun showSaveDlg() {
alert {
title = getString(R.string.setting_save)
message = getString(R.string.setting_save_msg)
positiveButton(getString(R.string.all_ok), onClicked = {
if (checkName()) {
manager.saveUserInfo(
edit_setting_name.text.toString(),
edit_setting_state.text.toString(),
manager.getUserInfo().imgUrl
)
finish()
}
})
negativeButton(getString(R.string.all_cancel), onClicked = { finish() })
}.show()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ class ShareDialog(context: Context, val drinkCard: DrinkCard, val name: String)
val data = GetCardData(context)
view_card_back.backgroundResource = data.getColor(drinkCard.drinkType)
tv_card_msg1.text = data.getFirstMsg(drinkCard.drinkType)
tv_share_name.setText("By. $name")
tv_card_msg2.text = drinkCard.message
tv_share_name.text = "By. $name"

ib_share_close.setOnClickListener(this)
ib_download.setOnClickListener(this)
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/java/com/sooling/sooling/model/GetCardData.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.sooling.sooling.model

import android.content.Context
import android.graphics.drawable.Drawable
import com.sooling.sooling.R

class GetCardData(val context: Context) {
Expand Down Expand Up @@ -48,6 +47,9 @@ class GetCardData(val context: Context) {
fun getDrinkIcon(type: String): Int =
when (type) {
beer -> R.drawable.img_beer
soju -> R.drawable.img_soju
wine -> R.drawable.img_wine
makgeolli -> R.drawable.img_makgeolli
else -> R.drawable.img_beer
}

Expand Down
19 changes: 0 additions & 19 deletions app/src/main/java/com/sooling/sooling/network/RetrofitBuilder.kt

This file was deleted.

15 changes: 0 additions & 15 deletions app/src/main/java/com/sooling/sooling/network/ServiceAPI.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.sooling.sooling.network

import com.sooling.sooling.`object`.History
import com.sooling.sooling.`object`.UserInfo
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST

interface UserInfoServiceAPI {
@GET("main")
fun getMainInfo(): UserInfo

@POST("histories")
fun createHistory(@Body history: History)

@GET("history")
fun getHistory()
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@ import java.io.File
class ShareCardWithKakaoTalk(val context: Context, val imgFile: File) {
val webUrl = "http://yellowcard-api.herokuapp.com/swagger-ui.html#!/main-controller/mainUsingGET"
val mobileUrl = "http://yellowcard-api.herokuapp.com/swagger-ui.html#!/main-controller/mainUsingGET"
val recommendImg = "https://blogfiles.pstatic.net/MjAxOTAxMjNfMTky/MDAxNTQ4MjM5NzExNDI4.THtF7ciCFmBLgr63t22sSi0FiP9M5VRfYqzFpWOlFJ0g.dZAy6Qf-WGg4big_ULpdMtvTww1sEH6ZitC6e6JQYNEg.JPEG.zion830/splash.jpg"
val service = KakaoLinkService.getInstance()

constructor(context: Context) : this(context, File(""))

// 템플릿 생성 후 공유
fun excute(msg: String, imgUrl: String) {
if (imgUrl.isNotEmpty()) {
Expand Down Expand Up @@ -48,6 +51,10 @@ class ShareCardWithKakaoTalk(val context: Context, val imgFile: File) {
}
}

fun excuteRecommend() {
excute("나만의 카드를 만들어서 내 주량을 공유해보세요!", recommendImg)
}

// 서버에 이미지 업로드
fun uploadImg(msg: String) {
service.uploadImage(context, false, imgFile,
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/java/com/sooling/sooling/util/UserDataManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@ object UserDataManager {
editor.apply()
}

fun saveUserInfo(name: String, msg: String, imgUrl: String) {
val editor = sharedPreferences.edit()
editor.putString(keyName, name)
editor.putString(keyImgUrl, imgUrl)
editor.putString(keyMsg, msg)

editor.apply()
}

fun saveMemberLabel(labels: ArrayList<String>) {
val editor = sharedPreferences.edit()
val hash = HashSet<String>()
Expand Down
Binary file added app/src/main/res/drawable/img_makgeolli.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable/img_soju.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable/img_wine.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions app/src/main/res/layout/activity_setting_profile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
</FrameLayout>

<EditText
android:id="@+id/edit_setting_name"
android:layout_width="134dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@
<string name="setting_state_msg">상태 메세지를 입력해주세요.</string>
<string name="setting_label">라벨 지정</string>
<string name="setting_label_msg">주량라벨은 옐로카드만의 기준에 맞추어 보여집니다.\n최소 하나의 라벨을 지정해주세요 :)</string>
<string name="setting_save">프로필 저장</string>
<string name="setting_save_msg">설정한 프로필을 저장하시겠습니까?</string>
<string name="setting_save_err1">닉네임을 입력해주세요.</string>

<string name="share_msg">Let&quot;s Share it.</string>
<string name="share_recommend">옐로카드로 당신의 주량을 공유해보세요!</string>
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'com.android.tools.build:gradle:3.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#Fri Jan 25 21:42:44 KST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip

0 comments on commit 92f99b9

Please sign in to comment.