diff --git a/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt b/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt index 2716bb7b9694921ae31fb6f3a8b5eff5a851312d..cd0115e652728e9389289b18d7b2613ecce1d5f7 100644 --- a/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt +++ b/jami-android/app/src/main/java/cx/ring/client/HomeActivity.kt @@ -58,7 +58,7 @@ import cx.ring.utils.getUiCustomizationFromConfigJson import cx.ring.viewmodel.WelcomeJamiViewModel import cx.ring.views.AvatarDrawable import cx.ring.views.AvatarFactory -import cx.ring.views.slidingpane.SlidingPaneLayout +import cx.ring.views.twopane.TwoPaneLayout import dagger.hilt.android.AndroidEntryPoint import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.disposables.CompositeDisposable @@ -141,10 +141,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke mBinding = ActivityHomeBinding.inflate(layoutInflater).also { binding -> setContentView(binding.root) //supportActionBar?.title = "" - binding.panel.lockMode = SlidingPaneLayout.LOCK_MODE_LOCKED - binding.panel.addPanelSlideListener(object : SlidingPaneLayout.PanelSlideListener { - override fun onPanelSlide(panel: View, slideOffset: Float) {} - + binding.panel.addPanelListener(object : TwoPaneLayout.PanelListener { override fun onPanelOpened(panel: View) { conversationBackPressedCallback.isEnabled = true } @@ -205,7 +202,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke super.onConfigurationChanged(newConfig) mBinding!!.panel.doOnNextLayout { - it as SlidingPaneLayout + it as TwoPaneLayout if (it.isSlideable) { if (fConversation == null) { @@ -351,7 +348,7 @@ class HomeActivity : AppCompatActivity(), ContactPickerFragment.OnContactedPicke ConversationPath.fromBundle(fConversation?.arguments)?.accountId if (account.accountId != currentConversationAccountId) { mBinding!!.panel.doOnNextLayout { - it as SlidingPaneLayout + it as TwoPaneLayout if (!it.isSlideable) showWelcomeFragment() } } diff --git a/jami-android/app/src/main/java/cx/ring/views/slidingpane/FoldingFeatureObserver.kt b/jami-android/app/src/main/java/cx/ring/views/twopane/FoldingFeatureObserver.kt similarity index 97% rename from jami-android/app/src/main/java/cx/ring/views/slidingpane/FoldingFeatureObserver.kt rename to jami-android/app/src/main/java/cx/ring/views/twopane/FoldingFeatureObserver.kt index 8dcba530179909950b6f0e7ed3941344c5b07766..bbf85284192ec5037cda6b7ae31d374bfa560505 100644 --- a/jami-android/app/src/main/java/cx/ring/views/slidingpane/FoldingFeatureObserver.kt +++ b/jami-android/app/src/main/java/cx/ring/views/twopane/FoldingFeatureObserver.kt @@ -1,4 +1,4 @@ -package cx.ring.views.slidingpane +package cx.ring.views.twopane import android.app.Activity import androidx.window.layout.FoldingFeature @@ -7,7 +7,6 @@ import androidx.window.layout.WindowLayoutInfo import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.asCoroutineDispatcher -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.launch diff --git a/jami-android/app/src/main/java/cx/ring/views/slidingpane/SlidingPaneLayout.java b/jami-android/app/src/main/java/cx/ring/views/twopane/TwoPaneLayout.java similarity index 77% rename from jami-android/app/src/main/java/cx/ring/views/slidingpane/SlidingPaneLayout.java rename to jami-android/app/src/main/java/cx/ring/views/twopane/TwoPaneLayout.java index f56460426c2f102f8d4c3827f85960d52285af29..78cbf89616ad5876dd31ed2e9fb2f592f5520dd9 100644 --- a/jami-android/app/src/main/java/cx/ring/views/slidingpane/SlidingPaneLayout.java +++ b/jami-android/app/src/main/java/cx/ring/views/twopane/TwoPaneLayout.java @@ -14,16 +14,14 @@ * limitations under the License. */ -package cx.ring.views.slidingpane; +package cx.ring.views.twopane; import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.content.res.TypedArray; import android.graphics.Canvas; -import android.graphics.Paint; import android.graphics.Rect; -import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.util.AttributeSet; @@ -32,7 +30,6 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.view.accessibility.AccessibilityEvent; -import androidx.annotation.IntDef; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; @@ -47,8 +44,6 @@ import androidx.transition.Transition; import androidx.transition.TransitionManager; import androidx.window.layout.FoldingFeature; import androidx.window.layout.WindowInfoTracker; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -56,27 +51,26 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executor; /** - * SlidingPaneLayout provides a horizontal, multi-pane layout for use at the top level + * TwoPaneLayout provides a horizontal, multi-pane layout for use at the top level * of a UI. A left (or start) pane is treated as a content list or browser, subordinate to a * primary detail view for displaying content. * * <p>Child views overlap if their combined width exceeds the available width - * in the SlidingPaneLayout. Each of child views is expand out to fill the available width in - * the SlidingPaneLayout. When this occurs, the user may slide the topmost view out of the way - * by dragging it, and dragging back it from the very edge.</p> + * in the TwoPaneLayout. Each of child views is expand out to fill the available width in + * the TwoPaneLayout.</p> * - * <p>Thanks to this sliding behavior, SlidingPaneLayout may be suitable for creating layouts + * <p>Thanks to this behavior, TwoPaneLayout may be suitable for creating layouts * that can smoothly adapt across many different screen sizes, expanding out fully on larger * screens and collapsing on smaller screens.</p> * - * <p>SlidingPaneLayout is distinct from a navigation drawer as described in the design - * guide and should not be used in the same scenarios. SlidingPaneLayout should be thought + * <p>TwoPaneLayout is distinct from a navigation drawer as described in the design + * guide and should not be used in the same scenarios. TwoPaneLayout should be thought * of only as a way to allow a two-pane layout normally used on larger screens to adapt to smaller - * screens in a natural way. The interaction patterns expressed by SlidingPaneLayout imply + * screens in a natural way. The interaction patterns expressed by TwoPaneLayout imply * a physicality and direct information hierarchy between panes that does not necessarily exist * in a scenario where a navigation drawer should be used instead.</p> * - * <p>Appropriate uses of SlidingPaneLayout include pairings of panes such as a contact list and + * <p>Appropriate uses of TwoPaneLayout include pairings of panes such as a contact list and * subordinate interactions with those contacts, or an email thread list with the content pane * displaying the contents of the selected thread. Inappropriate uses of SlidingPaneLayout include * switching between disparate functions of your app, such as jumping from a social stream view @@ -84,17 +78,17 @@ import java.util.concurrent.Executor; * pattern instead. ({@link androidx.drawerlayout.widget.DrawerLayout DrawerLayout} implements * this pattern.)</p> * - * <p>Like {@link android.widget.LinearLayout LinearLayout}, SlidingPaneLayout supports + * <p>Like {@link android.widget.LinearLayout LinearLayout}, TwoPaneLayout supports * the use of the layout parameter <code>layout_weight</code> on child views to determine * how to divide leftover space after measurement is complete. It is only relevant for width. * When views do not overlap weight behaves as it does in a LinearLayout.</p> */ -public class SlidingPaneLayout extends ViewGroup implements Openable { - private static final String TAG = "SlidingPaneLayout"; +public class TwoPaneLayout extends ViewGroup implements Openable { + private static final String TAG = "TwoPaneLayout"; /** Class name may be obfuscated by Proguard. Hardcode the string for accessibility usage. */ private static final String ACCESSIBILITY_CLASS_NAME = - "androidx.slidingpanelayout.widget.SlidingPaneLayout"; + "cx.ring.views.twopane.TwoPaneLayout"; /** * True if a panel can slide with the current measurements @@ -104,108 +98,32 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { /** * The child view that can slide, if any. */ - View mSlideableView; + private View mSlideableView; /** * How far the panel is offset from its usual position. * range [0, 1] where 0 = open, 1 = closed. */ - float mSlideOffset = 1.f; + private float mSlideOffset = 1.f; - /** - * How far the non-sliding panel is parallaxed from its usual position when open. - * range [0, 1] - */ - private float mParallaxOffset; - - /** - * How far in pixels the slideable panel may move. - */ - int mSlideRange; - - /** - * Distance in pixels to parallax the fixed pane by when fully closed - */ - private int mParallaxBy; - - private final List<PanelSlideListener> mPanelSlideListeners = new CopyOnWriteArrayList<>(); - private @Nullable PanelSlideListener mPanelSlideListener; + private final List<PanelListener> mPanelListeners = new CopyOnWriteArrayList<>(); /** * Stores whether or not the pane was open the last time it was slideable. * If open/close operations are invoked this state is modified. Used by * instance state save/restore. */ - boolean mPreservedOpenState; + private boolean mPreservedOpenState; private boolean mFirstLayout = true; private final Rect mTmpRect = new Rect(); - @LockMode - private int mLockMode; - - /** - * User can freely swipe between list and detail panes. - */ - public static final int LOCK_MODE_UNLOCKED = 0; - - /** - * The detail pane is locked in an open position. The user cannot swipe to close the detail - * pane, but the app can close the detail pane programmatically. - */ - public static final int LOCK_MODE_LOCKED_OPEN = 1; - - /** - * The detail pane is locked in a closed position. The user cannot swipe to open the detail - * pane, but the app can open the detail pane programmatically. - */ - public static final int LOCK_MODE_LOCKED_CLOSED = 2; - - /** - * The user cannot swipe between list and detail panes, though the app can open or close the - * detail pane programmatically. - */ - public static final int LOCK_MODE_LOCKED = 3; - - @Retention(RetentionPolicy.SOURCE) - @IntDef({LOCK_MODE_UNLOCKED, LOCK_MODE_LOCKED_OPEN, LOCK_MODE_LOCKED_CLOSED, - LOCK_MODE_LOCKED}) - @interface LockMode { - } - FoldingFeature mFoldingFeature; - /** - * Set the lock mode that controls how the user can swipe between the panes. - * - * @param lockMode The new lock mode for the detail pane. - */ - public final void setLockMode(@LockMode int lockMode) { - mLockMode = lockMode; - } - - /** - * Get the lock mode used to control over the swipe behavior. - * - * @see #setLockMode(int) - */ - @LockMode - public final int getLockMode() { - return mLockMode; - } - /** * Listener for monitoring events about sliding panes. */ - public interface PanelSlideListener { - /** - * Called when a detail view's position changes. - * - * @param panel The child view that was moved - * @param slideOffset The new offset of this sliding pane within its range, from 0-1 - */ - void onPanelSlide(@NonNull View panel, float slideOffset); - + public interface PanelListener { /** * Called when a detail view becomes slid completely open. * @@ -221,25 +139,7 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { void onPanelClosed(@NonNull View panel); } - /** - * No-op stubs for {@link PanelSlideListener}. If you only want to implement a subset - * of the listener methods you can extend this instead of implement the full interface. - */ - public static class SimplePanelSlideListener implements PanelSlideListener { - @Override - public void onPanelSlide(@NonNull View panel, float slideOffset) { - } - - @Override - public void onPanelOpened(@NonNull View panel) { - } - - @Override - public void onPanelClosed(@NonNull View panel) { - } - } - - private FoldingFeatureObserver.OnFoldingFeatureChangeListener mOnFoldingFeatureChangeListener = + private final FoldingFeatureObserver.OnFoldingFeatureChangeListener mOnFoldingFeatureChangeListener = new FoldingFeatureObserver.OnFoldingFeatureChangeListener() { @Override public void onFoldingFeatureChange(@NonNull FoldingFeature foldingFeature) { @@ -248,74 +148,42 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { Transition changeBounds = new ChangeBounds(); changeBounds.setDuration(300L); changeBounds.setInterpolator(PathInterpolatorCompat.create(0.2f, 0, 0, 1)); - TransitionManager.beginDelayedTransition(SlidingPaneLayout.this, changeBounds); + TransitionManager.beginDelayedTransition(TwoPaneLayout.this, changeBounds); requestLayout(); } }; private FoldingFeatureObserver mFoldingFeatureObserver; - public SlidingPaneLayout(@NonNull Context context) { + public TwoPaneLayout(@NonNull Context context) { this(context, null); } - public SlidingPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs) { + public TwoPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } - public SlidingPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs, - int defStyle) { + public TwoPaneLayout(@NonNull Context context, @Nullable AttributeSet attrs, + int defStyle) { super(context, attrs, defStyle); ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegate()); ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); WindowInfoTracker repo = WindowInfoTracker.getOrCreate(context); Executor mainExecutor = ContextCompat.getMainExecutor(context); - FoldingFeatureObserver foldingFeatureObserver = - new FoldingFeatureObserver(repo, mainExecutor); - setFoldingFeatureObserver(foldingFeatureObserver); - } - - private void setFoldingFeatureObserver(FoldingFeatureObserver foldingFeatureObserver) { - mFoldingFeatureObserver = foldingFeatureObserver; + mFoldingFeatureObserver = new FoldingFeatureObserver(repo, mainExecutor); mFoldingFeatureObserver.setOnFoldingFeatureChangeListener(mOnFoldingFeatureChangeListener); } - /** - * Set a listener to be notified of panel slide events. Note that this method is deprecated - * and you should use {@link #addPanelSlideListener(PanelSlideListener)} to add a listener and - * {@link #removePanelSlideListener(PanelSlideListener)} to remove a registered listener. - * - * @param listener Listener to notify when drawer events occur - * @see PanelSlideListener - * @see #addPanelSlideListener(PanelSlideListener) - * @see #removePanelSlideListener(PanelSlideListener) - * @deprecated Use {@link #addPanelSlideListener(PanelSlideListener)} - */ - @Deprecated - public void setPanelSlideListener(@Nullable PanelSlideListener listener) { - // The logic in this method emulates what we had before support for multiple - // registered listeners. - if (mPanelSlideListener != null) { - removePanelSlideListener(mPanelSlideListener); - } - if (listener != null) { - addPanelSlideListener(listener); - } - // Update the deprecated field so that we can remove the passed listener the next - // time we're called - mPanelSlideListener = listener; - } - /** * Adds the specified listener to the list of listeners that will be notified of * panel slide events. * * @param listener Listener to notify when panel slide events occur. - * @see #removePanelSlideListener(PanelSlideListener) + * @see #removePanelListener(PanelListener) */ - public void addPanelSlideListener(@NonNull PanelSlideListener listener) { - mPanelSlideListeners.add(listener); + public void addPanelListener(@NonNull PanelListener listener) { + mPanelListeners.add(listener); } /** @@ -323,21 +191,21 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { * panel slide events. * * @param listener Listener to remove from being notified of panel slide events - * @see #addPanelSlideListener(PanelSlideListener) + * @see #addPanelListener(PanelListener) */ - public void removePanelSlideListener(@NonNull PanelSlideListener listener) { - mPanelSlideListeners.remove(listener); + public void removePanelListener(@NonNull PanelListener listener) { + mPanelListeners.remove(listener); } void dispatchOnPanelOpened(@NonNull View panel) { - for (PanelSlideListener listener : mPanelSlideListeners) { + for (PanelListener listener : mPanelListeners) { listener.onPanelOpened(panel); } sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); } void dispatchOnPanelClosed(@NonNull View panel) { - for (PanelSlideListener listener : mPanelSlideListeners) { + for (PanelListener listener : mPanelListeners) { listener.onPanelClosed(panel); } sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); @@ -448,7 +316,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { final LayoutParams lp = (LayoutParams) child.getLayoutParams(); if (child.getVisibility() == GONE) { - lp.dimWhenOffset = false; continue; } @@ -647,15 +514,10 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { if (lp.slideable) { final int margin = lp.leftMargin + lp.rightMargin; final int range = Math.min(nextXStart, width - paddingEnd) - xStart - margin; - mSlideRange = range; final int lpMargin = isLayoutRtl ? lp.rightMargin : lp.leftMargin; - lp.dimWhenOffset = xStart + lpMargin + range + childWidth / 2 > width - paddingEnd; final int pos = (int) (range * mSlideOffset); xStart += pos + lpMargin; - mSlideOffset = (float) pos / mSlideRange; - } else if (mCanSlide && mParallaxBy != 0) { - offset = (int) ((1 - mSlideOffset) * mParallaxBy); - xStart = nextXStart; + mSlideOffset = (float) pos / range; } else { xStart = nextXStart; } @@ -686,11 +548,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { } if (mFirstLayout) { - if (mCanSlide) { - if (mParallaxBy != 0) { - parallaxOtherViews(mSlideOffset); - } - } updateObscuredViewsVisibility(mSlideableView); } @@ -749,14 +606,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { return false; } - /** - * @deprecated Renamed to {@link #openPane()} - this method is going away soon! - */ - @Deprecated - public void smoothSlideOpen() { - openPane(); - } - /** * Open the detail view if it is currently slideable. If first layout * has already completed this will animate. @@ -766,14 +615,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { openPane(); } - /** - * @deprecated Renamed to {@link #closePane()} - this method is going away soon! - */ - @Deprecated - public void smoothSlideClosed() { - closePane(); - } - /** * Close the detail view if it is currently slideable. If first layout * has already completed this will animate. @@ -794,15 +635,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { return !mCanSlide || mSlideOffset == 0; } - /** - * @return true if content in this layout can be slid open and closed - * @deprecated Renamed to {@link #isSlideable()} - this method is going away soon! - */ - @Deprecated - public boolean canSlide() { - return mCanSlide; - } - /** * Check if both the list and detail view panes in this layout can fully fit side-by-side. If * not, the content pane has the capability to slide back and forth. Note that the lock mode @@ -853,7 +685,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { View slideableView = mSlideableView; mSlideOffset = slideOffset; - parallaxOtherViews(slideOffset); requestLayout(); invalidate(); boolean opened = slideOffset == 0.f; @@ -865,30 +696,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { return true; } - private void parallaxOtherViews(float slideOffset) { - final boolean isLayoutRtl = isLayoutRtlSupport(); - final int childCount = getChildCount(); - for (int i = 0; i < childCount; i++) { - final View v = getChildAt(i); - if (v == mSlideableView) continue; - - final int oldOffset = (int) ((1 - mParallaxOffset) * mParallaxBy); - mParallaxOffset = slideOffset; - final int newOffset = (int) ((1 - slideOffset) * mParallaxBy); - final int dx = oldOffset - newOffset; - - v.offsetLeftAndRight(isLayoutRtl ? -dx : dx); - } - } - - boolean isDimmed(View child) { - if (child == null) { - return false; - } - final LayoutParams lp = (LayoutParams) child.getLayoutParams(); - return mCanSlide && lp.dimWhenOffset && mSlideOffset > 0; - } - @Override protected ViewGroup.LayoutParams generateDefaultLayoutParams() { return new LayoutParams(); @@ -914,11 +721,8 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { @Override protected Parcelable onSaveInstanceState() { Parcelable superState = super.onSaveInstanceState(); - SavedState ss = new SavedState(superState); ss.isOpen = isSlideable() ? isOpen() : mPreservedOpenState; - ss.mLockMode = mLockMode; - return ss; } @@ -938,8 +742,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { closePane(); } mPreservedOpenState = ss.isOpen; - - setLockMode(ss.mLockMode); } public static class LayoutParams extends ViewGroup.MarginLayoutParams { @@ -958,14 +760,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { */ boolean slideable; - /** - * True if this view should be drawn dimmed - * when it's been offset from its default position. - */ - boolean dimWhenOffset; - - Paint dimPaint; - public LayoutParams() { super(MATCH_PARENT, MATCH_PARENT); } @@ -999,8 +793,6 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { static class SavedState extends AbsSavedState { boolean isOpen; - @LockMode - int mLockMode; SavedState(Parcelable superState) { super(superState); @@ -1009,14 +801,12 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { SavedState(Parcel in, ClassLoader loader) { super(in, loader); isOpen = in.readInt() != 0; - mLockMode = in.readInt(); } @Override public void writeToParcel(Parcel out, int flags) { super.writeToParcel(out, flags); out.writeInt(isOpen ? 1 : 0); - out.writeInt(mLockMode); } public static final Creator<SavedState> CREATOR = new ClassLoaderCreator<SavedState>() { @@ -1041,7 +831,7 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { private final Rect mTmpRect = new Rect(); @Override - public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) { + public void onInitializeAccessibilityNodeInfo(@NonNull View host, @NonNull AccessibilityNodeInfoCompat info) { final AccessibilityNodeInfoCompat superNode = AccessibilityNodeInfoCompat.obtain(info); super.onInitializeAccessibilityNodeInfo(host, superNode); copyNodeInfoNoChildren(info, superNode); @@ -1060,7 +850,7 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { final int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { final View child = getChildAt(i); - if (!filter(child) && (child.getVisibility() == View.VISIBLE)) { + if (child.getVisibility() == View.VISIBLE) { // Force importance to "yes" since we can't read the value. ViewCompat.setImportantForAccessibility( child, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); @@ -1070,25 +860,11 @@ public class SlidingPaneLayout extends ViewGroup implements Openable { } @Override - public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { + public void onInitializeAccessibilityEvent(@NonNull View host, @NonNull AccessibilityEvent event) { super.onInitializeAccessibilityEvent(host, event); - event.setClassName(ACCESSIBILITY_CLASS_NAME); } - @Override - public boolean onRequestSendAccessibilityEvent(ViewGroup host, View child, - AccessibilityEvent event) { - if (!filter(child)) { - return super.onRequestSendAccessibilityEvent(host, child, event); - } - return false; - } - - public boolean filter(View child) { - return isDimmed(child); - } - /** * This should really be in AccessibilityNodeInfoCompat, but there unfortunately * seem to be a few elements that are not easily cloneable using the underlying API. diff --git a/jami-android/app/src/main/res/layout/activity_home.xml b/jami-android/app/src/main/res/layout/activity_home.xml index 0f1c163399645c977740a3efa202f23dfbb1d685..557d671405012c658eb6267687904470178d8823 100644 --- a/jami-android/app/src/main/res/layout/activity_home.xml +++ b/jami-android/app/src/main/res/layout/activity_home.xml @@ -22,7 +22,7 @@ along with this program; if not, write to the Free Software android:fitsSystemWindows="false" tools:context=".client.HomeActivity"> - <cx.ring.views.slidingpane.SlidingPaneLayout + <cx.ring.views.twopane.TwoPaneLayout android:id="@+id/panel" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -39,7 +39,7 @@ along with this program; if not, write to the Free Software android:layout_height="match_parent" android:layout_weight="1" /> - </cx.ring.views.slidingpane.SlidingPaneLayout> + </cx.ring.views.twopane.TwoPaneLayout> <androidx.fragment.app.FragmentContainerView android:id="@+id/frame"