Skip to content

Commit e9da5e7

Browse files
authored
Merge pull request #974 from Naveen3Singh/fix_ime_inset
Apply IME insets on scroll view
2 parents 68abf2c + 1a4ad8d commit e9da5e7

File tree

3 files changed

+42
-11
lines changed

3 files changed

+42
-11
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@
120120
android:configChanges="orientation"
121121
android:exported="true"
122122
android:parentActivityName=".activities.MainActivity"
123-
android:theme="@style/TranslucentTheme">
123+
android:theme="@style/TranslucentTheme"
124+
android:windowSoftInputMode="adjustResize">
124125

125126
<intent-filter>
126127
<action android:name="android.intent.action.EDIT" />

app/src/main/kotlin/com/simplemobiletools/contacts/pro/activities/EditContactActivity.kt

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ import android.telephony.PhoneNumberUtils
1818
import android.view.View
1919
import android.view.ViewGroup
2020
import android.view.WindowManager
21-
import android.widget.*
21+
import android.widget.EditText
22+
import android.widget.ImageView
23+
import android.widget.RelativeLayout
24+
import android.widget.TextView
2225
import androidx.core.content.ContextCompat
26+
import androidx.core.view.WindowInsetsCompat
2327
import androidx.core.widget.doAfterTextChanged
2428
import com.simplemobiletools.commons.dialogs.ConfirmationAdvancedDialog
2529
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
@@ -39,16 +43,29 @@ import com.simplemobiletools.contacts.pro.dialogs.CustomLabelDialog
3943
import com.simplemobiletools.contacts.pro.dialogs.ManageVisibleFieldsDialog
4044
import com.simplemobiletools.contacts.pro.dialogs.MyDatePickerDialog
4145
import com.simplemobiletools.contacts.pro.dialogs.SelectGroupsDialog
42-
import com.simplemobiletools.contacts.pro.extensions.*
43-
import com.simplemobiletools.contacts.pro.helpers.*
46+
import com.simplemobiletools.contacts.pro.extensions.config
47+
import com.simplemobiletools.contacts.pro.extensions.getCachePhotoUri
48+
import com.simplemobiletools.contacts.pro.extensions.showContactSourcePicker
49+
import com.simplemobiletools.contacts.pro.helpers.ADD_NEW_CONTACT_NUMBER
50+
import com.simplemobiletools.contacts.pro.helpers.IS_FROM_SIMPLE_CONTACTS
51+
import com.simplemobiletools.contacts.pro.helpers.KEY_EMAIL
52+
import com.simplemobiletools.contacts.pro.helpers.KEY_NAME
4453
import kotlinx.android.synthetic.main.activity_edit_contact.*
45-
import kotlinx.android.synthetic.main.item_edit_address.view.*
46-
import kotlinx.android.synthetic.main.item_edit_email.view.*
47-
import kotlinx.android.synthetic.main.item_edit_group.view.*
48-
import kotlinx.android.synthetic.main.item_edit_im.view.*
49-
import kotlinx.android.synthetic.main.item_edit_phone_number.view.*
50-
import kotlinx.android.synthetic.main.item_edit_website.view.*
51-
import kotlinx.android.synthetic.main.item_event.view.*
54+
import kotlinx.android.synthetic.main.item_edit_address.view.contact_address
55+
import kotlinx.android.synthetic.main.item_edit_address.view.contact_address_type
56+
import kotlinx.android.synthetic.main.item_edit_email.view.contact_email
57+
import kotlinx.android.synthetic.main.item_edit_email.view.contact_email_type
58+
import kotlinx.android.synthetic.main.item_edit_group.view.contact_group
59+
import kotlinx.android.synthetic.main.item_edit_group.view.contact_group_remove
60+
import kotlinx.android.synthetic.main.item_edit_im.view.contact_im
61+
import kotlinx.android.synthetic.main.item_edit_im.view.contact_im_type
62+
import kotlinx.android.synthetic.main.item_edit_phone_number.view.contact_number
63+
import kotlinx.android.synthetic.main.item_edit_phone_number.view.contact_number_type
64+
import kotlinx.android.synthetic.main.item_edit_phone_number.view.default_toggle_icon
65+
import kotlinx.android.synthetic.main.item_edit_website.view.contact_website
66+
import kotlinx.android.synthetic.main.item_event.view.contact_event
67+
import kotlinx.android.synthetic.main.item_event.view.contact_event_remove
68+
import kotlinx.android.synthetic.main.item_event.view.contact_event_type
5269

5370
class EditContactActivity : ContactActivity() {
5471
private val INTENT_TAKE_PHOTO = 1
@@ -86,6 +103,7 @@ class EditContactActivity : ContactActivity() {
86103
}
87104

88105
contact_wrapper.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
106+
setupInsets()
89107
setupMenu()
90108

91109
val action = intent.action
@@ -289,6 +307,17 @@ class EditContactActivity : ContactActivity() {
289307
}
290308
}
291309

310+
private fun setupInsets() {
311+
contact_wrapper.setOnApplyWindowInsetsListener { _, insets ->
312+
val windowInsets = WindowInsetsCompat.toWindowInsetsCompat(insets)
313+
val imeInsets = windowInsets.getInsets(WindowInsetsCompat.Type.ime())
314+
contact_scrollview.run {
315+
setPadding(paddingLeft, paddingTop, paddingRight, imeInsets.bottom)
316+
}
317+
insets
318+
}
319+
}
320+
292321
private fun setupMenu() {
293322
(contact_appbar.layoutParams as RelativeLayout.LayoutParams).topMargin = statusBarHeight
294323
contact_toolbar.menu.apply {

app/src/main/res/layout/activity_edit_contact.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
android:id="@+id/contact_scrollview"
1111
android:layout_width="match_parent"
1212
android:layout_height="wrap_content"
13+
android:clipToPadding="false"
1314
android:scrollbars="none"
1415
android:visibility="gone"
1516
tools:visibility="visible">

0 commit comments

Comments
 (0)