Skip to content

Commit

Permalink
Fixes oppia#3900 : Added toolbar to exit ProfilePictureActivity (oppi…
Browse files Browse the repository at this point in the history
…a#3918)

* added toolbar to exit ProfilePictureActivity

* changed string name and function name

* changed the string name

* m

* added test cases

* modified toolbar code

* modified  tests

* Lint checks correction

* toolbar shadow editted

* Removing uneccessary code changes
  • Loading branch information
bkaur-bkj authored Oct 21, 2021
1 parent 77d6ac9 commit 43aee2e
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package org.oppia.android.app.profileprogress

import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
Expand Down Expand Up @@ -44,6 +46,17 @@ class ProfilePictureActivityPresenter @Inject constructor(
profileId = ProfileId.newBuilder().setInternalId(internalProfileId).build()

subscribeToProfileLiveData()
setUpToolbar()
}

private fun setUpToolbar() {
val toolbar = activity.findViewById<View>(
R.id.profile_picture_activity_toolbar
) as Toolbar
activity.setSupportActionBar(toolbar)
toolbar.setNavigationOnClickListener {
activity.finish()
}
}

private val profileLiveData: LiveData<Profile> by lazy {
Expand Down
36 changes: 35 additions & 1 deletion app/src/main/res/layout/profile_picture_activity.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,49 @@
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.google.android.material.appbar.AppBarLayout
android:id="@+id/profile_picture_activity_app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<androidx.appcompat.widget.Toolbar
android:id="@+id/profile_picture_activity_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/oppiaPrimaryDark"
android:textSize="20sp"
app:navigationContentDescription="@string/navigate_up"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/profile_picture_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance"
app:titleTextColor="@color/white" />
</com.google.android.material.appbar.AppBarLayout>

<ImageView
android:id="@+id/profile_picture_image_view"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@id/profile_picture_activity_app_bar_layout"
profile:src="@{viewModel.profileAvatar}"
tools:src="@drawable/ic_default_avatar" />

<View
android:id="@+id/app_version_shadow_view"
android:layout_width="0dp"
android:layout_height="6dp"
android:layout_gravity="top"
android:background="@drawable/toolbar_drop_shadow"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/profile_picture_activity_app_bar_layout" />

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ package org.oppia.android.app.profileprogress
import android.app.Application
import android.content.Context
import android.content.Intent
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.isVisible
import androidx.test.core.app.ActivityScenario.launch
import androidx.test.core.app.ApplicationProvider
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.google.common.truth.Truth.assertThat
import dagger.Component
Expand Down Expand Up @@ -127,23 +129,44 @@ class ProfilePictureActivityTest {

@Test
fun testProfilePictureActivity_hasCorrectActivityLabel() {
launch(
ProfilePictureActivity::class.java
).use { scenario ->
launch(ProfilePictureActivity::class.java).use { scenario ->
scenario.onActivity { activity ->
assertThat(activity.title).isEqualTo(
context.getString(
R.string.profile_picture_activity_title
)
context.getString(R.string.profile_picture_activity_title)
)
}
}
}

@Test
fun testProfilePictureActivity_userImageIsDisplayed() {
launch<ProfilePictureActivity>(createProfilePictureActivityIntent(internalProfileId)).use {
onView(withId(R.id.profile_picture_image_view)).check(matches(isDisplayed()))
launch(ProfilePictureActivity::class.java).use { scenario ->
scenario.onActivity { activity ->
val imageView = activity.findViewById<ImageView>(R.id.profile_picture_image_view)
assertThat(imageView.isVisible).isTrue()
}
}
}

@Test
fun testProfilePictureActivity_toolbarHasCorrectTitle() {
launch(ProfilePictureActivity::class.java).use { scenario ->
scenario.onActivity { activity ->
val toolbar = activity.findViewById<Toolbar>(R.id.profile_picture_activity_toolbar)
assertThat(toolbar.title).isEqualTo(
context.getString(R.string.profile_picture_activity_title)
)
}
}
}

@Test
fun testProfilePictureActivity_pressNavigateUp_finishesActivity() {
launch(ProfilePictureActivity::class.java).use { scenario ->
scenario.onActivity { activity ->
onView(withContentDescription(R.string.navigate_up)).perform(click())
assertThat(activity.isFinishing).isTrue()
}
}
}

Expand Down

0 comments on commit 43aee2e

Please sign in to comment.