Giter Site home page Giter Site logo

dnbn's Introduction

DNBN

소프트웨어 마에스트로 10기
Team: 골목대장
동네방네 Mobile App (소상공인을 위한 라이브 커머스 플랫폼)


Notion

Link


Team Members


IDE

  • Android Studio 3
  • API: 28(8.0)

Library



ISSUE

rtmp-rtsp camera Resolution Issue

  • Width와 Height이 실제 스마트폰의 가로 세로 순서로 넣으면 안됨(1080x1920 폰이라면 width:1920 height:1080으로 지정해야 함)
  • 스마트폰의 API 버전에 따라 맞는 preview가 있음(API 28의 경우 lightopengl)

RecylcerView NotifyDataChange

  • 데이터셋이 그대로일 경우, 에러를 띄움
  • 매 번 RecyclerView에 넣는 item 객체를 새롭게 초기화 시켜주어야 함

onActivityResult

  • Fragment에서 호출하였더라도, 무조건 base Activity의 onActivityResult가 먼저 실행
  • request code로 처리

ExoPlayer 화면 터치 문제

  • onTouch 함수 반응을 먹음(Preemptive)
val gestureDetector = GestureDetector(this, SingleTabConfirm())
vodExoPlayerView.setOnTouchListener(object : View.OnTouchListener {

    override fun onTouch(p0: View?, p1: MotionEvent?): Boolean {
        if (gestureDetector.onTouchEvent(p1)) {
            Log.d("myTest", "onTouch 됨")
            return true
        } else {
            Log.d("myTest", "onTouch false")
        }
        return false
    }

})
private inner class SingleTabConfirm : GestureDetector.SimpleOnGestureListener() {

        override fun onSingleTapUp(e: MotionEvent?): Boolean {
            Log.d("myTest", "onSingleTabUp")
            if (lytVODWatch.visibility == View.VISIBLE) {
                lytVODWatch.visibility = View.GONE
                vodExoPlayerView.hideController()
            } else {
                vodExoPlayerView.showController()
                lytVODWatch.visibility = View.VISIBLE
            }


            return true
        }
    }

Keyboard Height

override fun onKeyboardHeightChanged(height: Int, orientation: Int) {
        if (height == 0) {
            relativeView.y = initialY
            rv_chat.y = initialYofChat

            relativeView.requestLayout()
            rv_chat.requestLayout()
        } else {
            val newPosition = initialY - height
            val newPositionofChat = initialYofChat - height
            relativeView.y = newPosition
            rv_chat.y = newPositionofChat

            relativeView.requestLayout()
            rv_chat.requestLayout()
        }
    }
class BroadCastActivity : AppCompatActivity(), ... ,
    KeyboardHeightProvider.KeyboardHeightObserver {
keyboardHeightProvider = KeyboardHeightProvider(this)
relativeView = lytChatInput

// Get Keyboard height
Handler().postDelayed({
    initialY = relativeView.y
    initialYofChat = rv_chat.y
    lytBroadCastFull.post { keyboardHeightProvider.start() }
}, 200)

GridLayout 크기 문제

  • 기존에는 ItemDecorator를 이용하여 직접 너비 조정
  • 단순히 Item의 너비를 match_parent로 지정, span count 갯수에 맞춰 너비가 알아서 조정 됨

TabLayout 상단 고정

  • AppBarLayout의 Collapse AppBar 기능 활용
  • ViewPager에 스크롤 이벤트 코드 추가 -> app:layout_behavior="@string/appbar_scrolling_view_behavior"

dnbn's People

Contributors

bearhunter49 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.