about screen is feature complete

This commit is contained in:
Kevin Gorham 2019-02-19 14:06:36 -05:00 committed by Kevin Gorham
parent 504272ef93
commit edef5372ee
6 changed files with 355 additions and 3 deletions

View File

@ -1,11 +1,52 @@
package cash.z.android.wallet.ui.fragment
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import cash.z.android.wallet.R
import cash.z.android.wallet.databinding.FragmentAboutBinding
import dagger.Module
import dagger.android.ContributesAndroidInjector
class AboutFragment : PlaceholderFragment()
class AboutFragment : BaseFragment() {
lateinit var binding: cash.z.android.wallet.databinding.FragmentAboutBinding
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return DataBindingUtil
.inflate<FragmentAboutBinding>(inflater, R.layout.fragment_about, container, false)
.also { binding = it }
.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.textAboutLicensingValue.setOnClickListener {
openUrl("https://z.cash/trademark-policy/")
}
binding.textAboutWhatsNewValue.setOnClickListener {
openUrl("https://github.com/gmale/zcash-android-wallet-poc/blob/feature/scan-blocks-integration/CHANGELOG.md")
}
binding.textAboutZcashBlogValue.setOnClickListener {
openUrl("https://z.cash/blog/")
}
}
private fun openUrl(url: String) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
mainActivity.setToolbarShown(true)
}
}
@Module
abstract class AboutFragmentModule {
@ContributesAndroidInjector

View File

@ -1,12 +1,34 @@
package cash.z.android.wallet.ui.fragment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import cash.z.android.wallet.R
import dagger.Module
import dagger.android.ContributesAndroidInjector
import cash.z.android.wallet.databinding.FragmentSettingsBinding
class SettingsFragment : PlaceholderFragment()
class SettingsFragment : BaseFragment() {
lateinit var binding: FragmentSettingsBinding
@Module
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return DataBindingUtil
.inflate<FragmentSettingsBinding>(inflater, R.layout.fragment_settings, container, false)
.also { binding = it }
.root
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
mainActivity.setToolbarShown(true)
}
}
@Module
abstract class SettingsFragmentModule {
@ContributesAndroidInjector
abstract fun contributeSettingsFragment(): SettingsFragment

View File

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/fragment_history_background">
<include
android:id="@+id/main_app_bar"
layout="@layout/include_main_app_bar"
android:visibility="invisible"
tools:ignore="MissingConstraints" />
<!-- -->
<!-- Guidelines -->
<!-- -->
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_content_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.1" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_content_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.9" />
<View
android:id="@+id/background_about_info"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/background_rounded_corners_opaque"
android:backgroundTint="@color/zcashWhite"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/guideline_content_end"
app:layout_constraintHeight_default="percent"
app:layout_constraintHeight_percent="@dimen/ratio_golden_small"
app:layout_constraintStart_toStartOf="@id/guideline_content_start"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/logo_welcome"
android:layout_width="115dp"
android:layout_height="115dp"
android:layout_marginBottom="32dp"
app:layout_constraintBottom_toTopOf="@id/background_about_info"
app:layout_constraintEnd_toStartOf="@id/text_welcome_zcash"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/ic_zcashlogo" />
<TextView
android:id="@+id/text_welcome_zcash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:fontFamily="sans-serif-light"
android:text="Zcash"
android:textColor="@color/zcashBlack_87"
android:textSize="64dp"
app:layout_constraintBottom_toBottomOf="@id/logo_welcome"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/logo_welcome"
app:layout_constraintTop_toTopOf="@id/logo_welcome" />
<!-- -->
<!-- Info Section : Labels -->
<!-- -->
<TextView
android:id="@+id/text_about_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_version"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_updated"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toTopOf="@id/background_about_info"
app:layout_constraintVertical_chainStyle="spread" />
<TextView
android:id="@+id/text_about_updated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_updated"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_network"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_version" />
<TextView
android:id="@+id/text_about_network"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_network"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_whats_new"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_updated" />
<TextView
android:id="@+id/text_about_whats_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_whats_new"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_licensing"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_network" />
<TextView
android:id="@+id/text_about_licensing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_licensing"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_zcash_blog"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_whats_new" />
<TextView
android:id="@+id/text_about_zcash_blog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:text="@string/about_zcash_blog"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toBottomOf="@id/background_about_info"
app:layout_constraintStart_toStartOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_licensing" />
<!-- -->
<!-- Info Section : Values -->
<!-- -->
<TextView
android:id="@+id/text_about_version_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="0.3.5-alpha"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_updated_value"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toTopOf="@id/background_about_info"
app:layout_constraintVertical_chainStyle="spread" />
<TextView
android:id="@+id/text_about_updated_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="Feb 19 2019"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_network_value"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_version_value" />
<TextView
android:id="@+id/text_about_network_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="Testnet 2.0.1"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_whats_new_value"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_updated_value" />
<TextView
android:id="@+id/text_about_whats_new_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="changelog"
android:textColor="@color/zcashBlue"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_licensing_value"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_network_value" />
<TextView
android:id="@+id/text_about_licensing_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="z.cash"
android:textColor="@color/zcashBlue"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toTopOf="@id/text_about_zcash_blog_value"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_whats_new_value" />
<TextView
android:id="@+id/text_about_zcash_blog_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"
android:text="z.cash/blog"
android:textColor="@color/zcashBlue"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintBottom_toBottomOf="@id/background_about_info"
app:layout_constraintEnd_toEndOf="@id/background_about_info"
app:layout_constraintTop_toBottomOf="@id/text_about_licensing_value" />
<!-- Disclaimer -->
<TextView
android:id="@+id/text_about_disclaimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a demo application by Electric Coin Company.\nThis application is not for personal use."
android:gravity="center"
android:textColor="@color/zcashGray_dark"
android:textSize="@dimen/text_size_body_2"
app:layout_constraintTop_toBottomOf="@id/background_about_info"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/fragment_history_background">
<include
android:id="@+id/main_app_bar"
layout="@layout/include_main_app_bar"
tools:ignore="MissingConstraints"
android:visibility="invisible"/>
<!-- -->
<!-- Guidelines -->
<!-- -->
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_content_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.1" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_content_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.9" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -72,6 +72,8 @@
<color name="fragment_request_background">@color/colorPrimary</color>
<color name="fragment_send_background">@color/zcashWhite_light</color>
<color name="fragment_history_background">@color/zcashWhite_light</color>
<color name="fragment_about_background">@color/zcashWhite_light</color>
<color name="fragment_settings_background">@color/zcashGray_light</color>
<color name="fragment_home_background">@color/zcashWhite_light</color>
<color name="launcher_icon_background">@color/zcashPrimaryMedium</color>
<color name="receive_title_background">@color/zcashBlack_12</color>

View File

@ -81,4 +81,12 @@
<string name="send_error_address_too_short">Address is too short.</string>
<string name="send_error_address_invalid_char">Address contains invalid characters.</string>
<!-- About -->
<string name="about_version">Version:</string>
<string name="about_updated">Updated:</string>
<string name="about_network">Network:</string>
<string name="about_whats_new">What\'s new:</string>
<string name="about_licensing">Licensing:</string>
<string name="about_zcash_blog">Zcash Blog:</string>
</resources>