mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 12:47:26 +01:00
Animate the software keyboard in ViewPrivateMessgesActivity.
This commit is contained in:
parent
63ea1f54d0
commit
3df7b761a2
@ -7,6 +7,8 @@ import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
@ -14,6 +16,11 @@ import android.widget.LinearLayout;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowCompat;
|
||||
import androidx.core.view.WindowInsetsAnimationCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.transition.AutoTransition;
|
||||
import androidx.transition.TransitionManager;
|
||||
@ -25,6 +32,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -55,8 +63,6 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
|
||||
public static final String EXTRA_MESSAGE_POSITION = "EMP";
|
||||
private static final String USER_AVATAR_STATE = "UAS";
|
||||
private static final String PRIVATE_MESSAGES_STATE = "PMS";
|
||||
@BindView(R.id.linear_layout_view_private_messages_activity)
|
||||
LinearLayout mLinearLayout;
|
||||
@BindView(R.id.coordinator_layout_view_private_messages_activity)
|
||||
CoordinatorLayout mCoordinatorLayout;
|
||||
@BindView(R.id.appbar_layout_view_private_messages_activity)
|
||||
@ -107,7 +113,7 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
|
||||
setImmersiveModeNotApplicable();
|
||||
//setImmersiveModeNotApplicable();
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
@ -123,6 +129,34 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
|
||||
addOnOffsetChangedListener(mAppBarLayout);
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
Window window = getWindow();
|
||||
|
||||
if (isChangeStatusBarIconColor()) {
|
||||
addOnOffsetChangedListener(mAppBarLayout);
|
||||
}
|
||||
|
||||
if (isImmersiveInterface()) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
mCoordinatorLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
|
||||
window.setDecorFitsSystemWindows(false);
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false);
|
||||
} else {
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
||||
}
|
||||
adjustToolbar(mToolbar);
|
||||
|
||||
int navBarHeight = getNavBarHeight();
|
||||
if (navBarHeight > 0) {
|
||||
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mEditTextLinearLayout.getLayoutParams();
|
||||
params.bottomMargin += navBarHeight;
|
||||
mEditTextLinearLayout.setLayoutParams(params);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setSupportActionBar(mToolbar);
|
||||
setToolbarGoToTop(mToolbar);
|
||||
|
||||
@ -142,6 +176,23 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
|
||||
} else {
|
||||
EventBus.getDefault().post(new PassPrivateMessageIndexEvent(getIntent().getIntExtra(EXTRA_PRIVATE_MESSAGE_INDEX, -1)));
|
||||
}
|
||||
|
||||
ViewCompat.setWindowInsetsAnimationCallback(
|
||||
mCoordinatorLayout,
|
||||
new WindowInsetsAnimationCompat.Callback(
|
||||
WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_CONTINUE_ON_SUBTREE
|
||||
) {
|
||||
@NonNull
|
||||
@Override
|
||||
public WindowInsetsCompat onProgress(@NonNull WindowInsetsCompat insets, @NonNull List<WindowInsetsAnimationCompat> runningAnimations) {
|
||||
Insets typesInset = insets.getInsets(WindowInsetsCompat.Type.ime());
|
||||
Insets otherInset = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
Insets diff = Insets.max(Insets.NONE, Insets.subtract(typesInset, otherInset));
|
||||
|
||||
mCoordinatorLayout.setPadding(0, 0, 0, diff.bottom);
|
||||
return insets;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void bindView() {
|
||||
@ -306,7 +357,7 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
|
||||
|
||||
@Override
|
||||
protected void applyCustomTheme() {
|
||||
mLinearLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
||||
mCoordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
||||
applyAppBarLayoutAndCollapsingToolbarLayoutAndToolbarTheme(mAppBarLayout, null, mToolbar);
|
||||
mDivider.setBackgroundColor(mCustomThemeWrapper.getDividerColor());
|
||||
mEditText.setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||
|
@ -1,88 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
|
||||
android:id="@+id/linear_layout_view_private_messages_activity"
|
||||
android:id="@+id/coordinator_layout_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
android:layout_weight="1"
|
||||
tools:context=".activities.ViewPrivateMessagesActivity">
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar_layout_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:id="@+id/coordinator_layout_view_private_messages_activity"
|
||||
tools:context=".activities.ViewPrivateMessagesActivity">
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar_layout_view_private_messages_activity"
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" >
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view_view_private_messages"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/edit_text_wrapper_linear_layout_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_gravity="bottom">
|
||||
|
||||
<View
|
||||
android:id="@+id/edit_text_divider_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp" />
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/edit_text_wrapper_linear_layout_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="vertical">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edit_text_view_private_messages_activity"
|
||||
android:layout_width="0dp"
|
||||
<View
|
||||
android:id="@+id/edit_text_divider_view_private_messages_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:padding="16dp"
|
||||
android:hint="@string/message"
|
||||
android:inputType="textMultiLine"
|
||||
android:textSize="?attr/font_default"
|
||||
android:background="#00000000"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:fontFamily="?attr/font_family"
|
||||
android:maxLines="3" />
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/send_image_view_view_private_messages_activity"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_send_black_24dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackgroundBorderless" />
|
||||
<EditText
|
||||
android:id="@+id/edit_text_view_private_messages_activity"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:background="#00000000"
|
||||
android:fontFamily="?attr/font_family"
|
||||
android:hint="@string/message"
|
||||
android:inputType="textMultiLine"
|
||||
android:maxLines="3"
|
||||
android:padding="16dp"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:textSize="?attr/font_default" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/send_image_view_view_private_messages_activity"
|
||||
android:layout_width="56dp"
|
||||
android:layout_height="56dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_send_black_24dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
Loading…
Reference in New Issue
Block a user