mirror of
				https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
				synced 2025-10-31 00:48:09 +01:00 
			
		
		
		
	Animate the software keyboard in ViewPrivateMessgesActivity.
This commit is contained in:
		| @@ -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> | ||||
		Reference in New Issue
	
	Block a user