diff --git a/Xevo1/app/src/main/AndroidManifest.xml b/Xevo1/app/src/main/AndroidManifest.xml index 4cfce490..c6e63b45 100644 --- a/Xevo1/app/src/main/AndroidManifest.xml +++ b/Xevo1/app/src/main/AndroidManifest.xml @@ -119,9 +119,14 @@ - + + + \ No newline at end of file diff --git a/Xevo1/app/src/main/java/xevo/xevo1/AnswerReady.kt b/Xevo1/app/src/main/java/xevo/xevo1/AnswerReady.kt index 8a767f0f..7064eb97 100644 --- a/Xevo1/app/src/main/java/xevo/xevo1/AnswerReady.kt +++ b/Xevo1/app/src/main/java/xevo/xevo1/AnswerReady.kt @@ -1,14 +1,35 @@ package xevo.xevo1 +import android.net.Uri import android.support.v7.app.AppCompatActivity import android.os.Bundle +import android.util.Log +import com.google.firebase.database.* +import kotlinx.android.synthetic.main.activity_answer_ready.* +import xevo.xevo1.Database.DatabaseModels.CaseDetails +import android.animation.ObjectAnimator +import android.view.View +import android.widget.TextView +import kotlinx.android.synthetic.main.activity_answer_ready.view.* +import xevo.xevo1.R.id.question_details_text_view + class AnswerReady : AppCompatActivity() { var caseId : String? = null + lateinit var databaseReference : DatabaseReference + val TAG : String = "ANSWER_READY_ACTIVITY" + lateinit var caseDetails : CaseDetails + lateinit var questionDetailsTextView : TextView + + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_answer_ready) caseId = intent.getStringExtra("caseId") + Log.d(TAG, "Case Id : " + caseId) + + if (caseId != null) { + } } } diff --git a/Xevo1/app/src/main/java/xevo/xevo1/DisplayAnswer.kt b/Xevo1/app/src/main/java/xevo/xevo1/DisplayAnswer.kt new file mode 100644 index 00000000..49d41297 --- /dev/null +++ b/Xevo1/app/src/main/java/xevo/xevo1/DisplayAnswer.kt @@ -0,0 +1,102 @@ +package xevo.xevo1 + +import android.animation.ObjectAnimator +import android.net.Uri +import android.os.Bundle +import android.support.design.widget.Snackbar +import android.support.v7.app.AppCompatActivity +import android.util.Log +import android.view.View +import android.widget.TextView +import com.google.firebase.database.* + +import kotlinx.android.synthetic.main.activity_display_answer.* +import kotlinx.android.synthetic.main.content_display_answer.* +import xevo.xevo1.Database.DatabaseModels.CaseDetails + +class DisplayAnswer : AppCompatActivity(), + ProfileAndString.OnFragmentInteractionListener { + + var caseId : String? = null + lateinit var databaseReference : DatabaseReference + val TAG : String = "ANSWER_READY_ACTIVITY" + lateinit var caseDetails : CaseDetails + lateinit var questionDetailsTextView : TextView + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_display_answer) + setSupportActionBar(toolbar) + + caseId = intent.getStringExtra("caseId") + Log.d(TAG, "Case Id : " + caseId) + + if(caseId != null) { + getQuestionDetails(caseId!!) + questionDetailsTextView = question_details_text_view +// if (questionDetailsTextView.maxLines > 4) { + expand_collapse_text_view.visibility = View.VISIBLE +// } + expand_collapse_text_view.setOnClickListener(View.OnClickListener { collapseOrExpandTextView() }) + } + //TODO handle the other case + } + + override fun onFragmentInteraction(uri: Uri) { + TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + } + + private fun collapseOrExpandTextView() { + val collapsedMaxLines = 4 + var questionDetailsTextView = question_details_text_view + if (questionDetailsTextView.getMaxLines() >= collapsedMaxLines) { + collapseTextView(questionDetailsTextView, collapsedMaxLines) + } + else { + expandTextView(questionDetailsTextView) + } + } + + private fun getQuestionDetails(caseId : String) { + databaseReference = FirebaseDatabase.getInstance().getReference( + getString(R.string.db_cases) + caseId) + var valueEventListener : ValueEventListener = object : ValueEventListener { + override fun onCancelled(databaseError: DatabaseError?) { + Log.w(TAG, "loadPost:onCancelled", databaseError?.toException()) + Log.d(TAG, "error") + } + + override fun onDataChange(dataSnapshot: DataSnapshot?) { + var obj = dataSnapshot?.getValue(CaseDetails::class.java) + if (obj!= null) { + Log.d(TAG, "Case details got") + caseDetails = obj +// question_details.setText(caseDetails.description) + updateUI(caseDetails) + } + } + } + databaseReference.addListenerForSingleValueEvent(valueEventListener) + } + + private fun updateUI(caseDetails: CaseDetails) { + Log.d(TAG, "UI update called") + var headerFragment : ProfileAndString = supportFragmentManager.findFragmentById( + R.id.question_title) as ProfileAndString + headerFragment.setText(caseDetails.title) + question_details_text_view.setText(caseDetails.description) + answer_display_text_view.setText(caseDetails.answer) + } + + private fun expandTextView(tv: TextView) { + tv.maxLines = Int.MAX_VALUE + val animation = ObjectAnimator.ofInt(tv, "maxLines", tv.lineCount) + animation.setDuration(200).start() + } + + private fun collapseTextView(tv: TextView, numLines: Int) { + val animation = ObjectAnimator.ofInt(tv, "maxLines", numLines) + animation.setDuration(200).start() + } + +} diff --git a/Xevo1/app/src/main/res/layout/activity_answer_ready.xml b/Xevo1/app/src/main/res/layout/activity_answer_ready.xml index 7742c35d..1f3dedb1 100644 --- a/Xevo1/app/src/main/res/layout/activity_answer_ready.xml +++ b/Xevo1/app/src/main/res/layout/activity_answer_ready.xml @@ -5,5 +5,46 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context="xevo.xevo1.AnswerReady"> + + + + + + + + + diff --git a/Xevo1/app/src/main/res/layout/activity_display_answer.xml b/Xevo1/app/src/main/res/layout/activity_display_answer.xml new file mode 100644 index 00000000..be21eee5 --- /dev/null +++ b/Xevo1/app/src/main/res/layout/activity_display_answer.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/Xevo1/app/src/main/res/layout/content_display_answer.xml b/Xevo1/app/src/main/res/layout/content_display_answer.xml new file mode 100644 index 00000000..5b5f8b78 --- /dev/null +++ b/Xevo1/app/src/main/res/layout/content_display_answer.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Xevo1/app/src/main/res/values/colors.xml b/Xevo1/app/src/main/res/values/colors.xml index 2309eba6..c8620f42 100644 --- a/Xevo1/app/src/main/res/values/colors.xml +++ b/Xevo1/app/src/main/res/values/colors.xml @@ -10,8 +10,10 @@ #AAAAAA #dd000000 #89000000 + #0645AD + #0B0080 + #000000 #80ffffff - Email @@ -91,5 +92,5 @@ %d unanswered ffffcc80 - + DisplayAnswer diff --git a/Xevo1/app/src/main/res/values/styles.xml b/Xevo1/app/src/main/res/values/styles.xml index 7dd57802..f51f9301 100644 --- a/Xevo1/app/src/main/res/values/styles.xml +++ b/Xevo1/app/src/main/res/values/styles.xml @@ -10,6 +10,7 @@ @style/spinnerDropDownItemStyle + @style/titleStyle @style/buttonStyle @@ -87,4 +88,23 @@ false + + +