start rewriting the View Contact screen with a bigger top image

This commit is contained in:
tibbi
2020-10-26 11:08:24 +01:00
parent a7b865775b
commit d1ebf226cd
5 changed files with 62 additions and 24 deletions

View File

@ -57,7 +57,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:5.31.8' implementation 'com.simplemobiletools:commons:5.31.9'
implementation 'joda-time:joda-time:2.10.1' implementation 'joda-time:joda-time:2.10.1'
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5' implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5'
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'

View File

@ -69,7 +69,8 @@
<activity <activity
android:name=".activities.ViewContactActivity" android:name=".activities.ViewContactActivity"
android:label="@string/details" android:label="@string/details"
android:parentActivityName=".activities.MainActivity"> android:parentActivityName=".activities.MainActivity"
android:theme="@style/TranslucentTheme">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW"/> <action android:name="android.intent.action.VIEW"/>

View File

@ -550,7 +550,8 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
FAQItem(R.string.faq_1_title, R.string.faq_1_text), FAQItem(R.string.faq_1_title, R.string.faq_1_text),
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons), FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons), FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons),
FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons) FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons),
FAQItem(R.string.faq_9_title_commons, R.string.faq_9_text_commons)
) )
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true) startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)

View File

@ -1,10 +1,10 @@
package com.simplemobiletools.contacts.pro.activities package com.simplemobiletools.contacts.pro.activities
import android.content.Intent import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle import android.os.Bundle
import android.provider.ContactsContract import android.provider.ContactsContract
import android.view.Menu
import android.view.MenuItem
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.RelativeLayout import android.widget.RelativeLayout
@ -44,6 +44,7 @@ class ViewContactActivity : ContactActivity() {
private val COMPARABLE_PHONE_NUMBER_LENGTH = 9 private val COMPARABLE_PHONE_NUMBER_LENGTH = 9
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
useDynamicTheme = false
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_view_contact) setContentView(R.layout.activity_view_contact)
@ -52,10 +53,14 @@ class ViewContactActivity : ContactActivity() {
} }
showFields = config.showContactFields showFields = config.showContactFields
contact_wrapper.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
contact_wrapper.background = ColorDrawable(config.backgroundColor)
setupMenu()
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
window.statusBarColor = Color.TRANSPARENT
isViewIntent = intent.action == ContactsContract.QuickContact.ACTION_QUICK_CONTACT || intent.action == Intent.ACTION_VIEW isViewIntent = intent.action == ContactsContract.QuickContact.ACTION_QUICK_CONTACT || intent.action == Intent.ACTION_VIEW
if (isViewIntent) { if (isViewIntent) {
handlePermission(PERMISSION_READ_CONTACTS) { handlePermission(PERMISSION_READ_CONTACTS) {
@ -83,28 +88,33 @@ class ViewContactActivity : ContactActivity() {
} }
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean { private fun setupMenu() {
menuInflater.inflate(R.menu.menu_view_contact, menu) (activity_track_appbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight
menu.apply { activity_track_toolbar.menu.apply {
findItem(R.id.open_with).isVisible = contact?.isPrivate() == false findItem(R.id.share).setOnMenuItemClickListener {
updateMenuItemColors(this) shareContact(fullContact!!)
} true
return true }
}
override fun onOptionsItemSelected(item: MenuItem): Boolean { findItem(R.id.edit).setOnMenuItemClickListener {
if (contact == null) { launchEditContact(contact!!)
return true true
}
findItem(R.id.open_with).setOnMenuItemClickListener {
openWith()
true
}
findItem(R.id.delete).setOnMenuItemClickListener {
deleteContactFromAllSources()
true
}
} }
when (item.itemId) { activity_track_toolbar.setNavigationOnClickListener {
R.id.edit -> launchEditContact(contact!!) finish()
R.id.share -> shareContact(fullContact!!)
R.id.open_with -> openWith()
R.id.delete -> deleteContactFromAllSources()
else -> return super.onOptionsItemSelected(item)
} }
return true
} }
private fun initContact() { private fun initContact() {
@ -203,7 +213,7 @@ class ViewContactActivity : ContactActivity() {
contact_send_email.setOnClickListener { trySendEmail() } contact_send_email.setOnClickListener { trySendEmail() }
updateTextColors(contact_scrollview) updateTextColors(contact_scrollview)
invalidateOptionsMenu() activity_track_toolbar.menu.findItem(R.id.open_with).isVisible = contact?.isPrivate() == false
} }
private fun setupViewContact() { private fun setupViewContact() {

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/contact_wrapper" android:id="@+id/contact_wrapper"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -438,4 +439,29 @@
android:src="@drawable/img_write_storage" android:src="@drawable/img_write_storage"
android:visibility="gone" /> android:visibility="gone" />
<ImageView
android:id="@+id/activity_track_top_shadow"
android:layout_width="match_parent"
android:layout_height="@dimen/top_shadow_height"
android:layout_alignParentTop="true"
android:background="@drawable/gradient_background_flipped"
android:contentDescription="@null" />
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/activity_track_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="@android:color/transparent"
android:elevation="0dp"
app:elevation="0dp">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/activity_track_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:menu="@menu/menu_view_contact"
app:navigationIcon="@drawable/ic_arrow_left_vector" />
</com.google.android.material.appbar.AppBarLayout>
</RelativeLayout> </RelativeLayout>