volume key navigation should work

This commit is contained in:
Mariotaku Lee 2015-08-16 10:50:56 +08:00
parent dd4104b503
commit 641a61cb65
32 changed files with 205 additions and 53 deletions

View File

@ -55,7 +55,8 @@ public class TwitterDateConverter extends StringBasedTypeConverter<Date> {
}
final long currentTime = System.currentTimeMillis();
if (date.getTime() - currentTime > ONE_MINUTE) {
AbsLogger.error("Tweet date from future: " + string + ", current time is " + currentTime);
AbsLogger.error("Tweet date from future, raw string: " + string + ", date parsed: "
+ date + ", current time is " + currentTime);
}
return date;
}

View File

@ -245,6 +245,12 @@ public class SettingsActivity extends BasePreferenceActivity {
return super.handleKeyboardShortcutSingle(handler, keyCode, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
return ACTION_NAVIGATION_BACK.equals(action);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event) {
return super.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);

View File

@ -98,14 +98,14 @@ public class BaseAppCompatActivity extends ThemedAppCompatActivity implements Co
@Override
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
if (handleKeyboardShortcutSingle(mKeyboardShortcutsHandler, keyCode, event)) return true;
return super.onKeyUp(keyCode, event);
return isKeyboardShortcutHandled(mKeyboardShortcutsHandler, keyCode, event) || super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (handleKeyboardShortcutRepeat(mKeyboardShortcutsHandler, keyCode, event.getRepeatCount(), event))
return true;
return super.onKeyDown(keyCode, event);
return isKeyboardShortcutHandled(mKeyboardShortcutsHandler, keyCode, event) || super.onKeyDown(keyCode, event);
}
@Override
@ -129,6 +129,11 @@ public class BaseAppCompatActivity extends ThemedAppCompatActivity implements Co
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
return false;
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event) {
return false;

View File

@ -309,6 +309,12 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
notifyControlBarOffsetChanged();
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
if (isFragmentKeyboardShortcutHandled(handler, keyCode, event)) return true;
return super.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event) {
if (handleFragmentKeyboardShortcutRepeat(handler, keyCode, repeatCount, event)) return true;
@ -678,6 +684,15 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen
return false;
}
private boolean isFragmentKeyboardShortcutHandled(final KeyboardShortcutsHandler handler,
final int keyCode, @NonNull final KeyEvent event) {
final Fragment fragment = getKeyboardShortcutRecipient();
if (fragment instanceof KeyboardShortcutCallback) {
return ((KeyboardShortcutCallback) fragment).isKeyboardShortcutHandled(handler, keyCode, event);
}
return false;
}
private int handleIntent(final Intent intent, final boolean firstCreate) {
// use packge's class loader to prevent BadParcelException
intent.setExtrasClassLoader(getClassLoader());

View File

@ -75,6 +75,7 @@ public class LinkHandlerActivity extends BaseAppCompatActivity implements System
private ControlBarShowHideHelper mControlBarShowHideHelper = new ControlBarShowHideHelper(this);
private MultiSelectEventHandler mMultiSelectHandler;
private TwidereActionModeForChildListener mTwidereActionModeForChildListener;
private TintedStatusFrameLayout mMainContent;
private final View.OnLayoutChangeListener mLayoutChangeListener = new View.OnLayoutChangeListener() {
private final Rect tempInsets = new Rect();
@ -90,8 +91,6 @@ public class LinkHandlerActivity extends BaseAppCompatActivity implements System
}
}
};
private TintedStatusFrameLayout mMainContent;
private View mActionBarWithOverlay;
private ActionBarContainer mActionBarContainer;
@ -193,6 +192,21 @@ public class LinkHandlerActivity extends BaseAppCompatActivity implements System
return super.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
if (isFragmentKeyboardShortcutHandled(handler, keyCode, event)) return true;
return super.isKeyboardShortcutHandled(handler, keyCode, event);
}
private boolean isFragmentKeyboardShortcutHandled(final KeyboardShortcutsHandler handler,
final int keyCode, @NonNull final KeyEvent event) {
final Fragment fragment = getCurrentVisibleFragment();
if (fragment instanceof KeyboardShortcutCallback) {
return ((KeyboardShortcutCallback) fragment).isKeyboardShortcutHandled(handler, keyCode, event);
}
return false;
}
@Override
protected void onCreate(final Bundle savedInstanceState) {
mMultiSelectHandler = new MultiSelectEventHandler(this);
@ -545,14 +559,14 @@ public class LinkHandlerActivity extends BaseAppCompatActivity implements System
}
@Override
public void setControlBarOffset(float offset) {
mActionBarContainer.setTranslationY(-Math.round((1 - offset) * getControlBarHeight()));
notifyControlBarOffsetChanged();
public float getControlBarOffset() {
return 1 + mActionBarContainer.getTranslationY() / (float) getControlBarHeight();
}
@Override
public float getControlBarOffset() {
return 1 + mActionBarContainer.getTranslationY() / (float) getControlBarHeight();
public void setControlBarOffset(float offset) {
mActionBarContainer.setTranslationY(-Math.round((1 - offset) * getControlBarHeight()));
notifyControlBarOffsetChanged();
}
@Override

View File

@ -161,17 +161,22 @@ public abstract class ThemedFragmentActivity extends FragmentActivity implements
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
return false;
}
@Override
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
if (handleKeyboardShortcutSingle(mKeyboardShortcutsHandler, keyCode, event)) return true;
return super.onKeyUp(keyCode, event);
handleKeyboardShortcutSingle(mKeyboardShortcutsHandler, keyCode, event);
return isKeyboardShortcutHandled(mKeyboardShortcutsHandler, keyCode, event) || super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (handleKeyboardShortcutRepeat(mKeyboardShortcutsHandler, keyCode, event.getRepeatCount(), event))
return true;
return super.onKeyDown(keyCode, event);
return isKeyboardShortcutHandled(mKeyboardShortcutsHandler, keyCode, event) || super.onKeyDown(keyCode, event);
}
@Override

View File

@ -80,6 +80,11 @@ public abstract class AbsActivitiesFragment<Data> extends AbsContentRecyclerView
return mNavigationHelper.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, final int keyCode, @NonNull final KeyEvent event) {
return mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
public SharedPreferences getSharedPreferences() {
if (mPreferences != null) return mPreferences;
return mPreferences = getSharedPreferences(SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);

View File

@ -42,8 +42,8 @@ import org.mariotaku.twidere.util.message.StatusListChangedEvent;
import org.mariotaku.twidere.view.holder.GapViewHolder;
import org.mariotaku.twidere.view.holder.StatusViewHolder;
import edu.tsinghua.spice.Utilies.SpiceProfilingUtil;
import edu.tsinghua.spice.Utilies.TypeMappingUtil;
import edu.tsinghua.hotmobi.HotMobiLogger;
import edu.tsinghua.hotmobi.model.MediaEvent;
import static org.mariotaku.twidere.util.Utils.setMenuForStatus;
@ -147,6 +147,25 @@ public abstract class AbsStatusesFragment<Data> extends AbsContentRecyclerViewFr
return mNavigationHelper.handleKeyboardShortcutSingle(handler, keyCode, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
if (ACTION_NAVIGATION_REFRESH.equals(action)) {
return true;
}
if (action == null) {
action = handler.getKeyAction(CONTEXT_TAG_STATUS, keyCode, event);
}
if (action == null) return false;
switch (action) {
case ACTION_STATUS_REPLY:
case ACTION_STATUS_RETWEET:
case ACTION_STATUS_FAVORITE:
return true;
}
return mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, final int keyCode, final int repeatCount,
@NonNull final KeyEvent event) {
@ -239,16 +258,10 @@ public abstract class AbsStatusesFragment<Data> extends AbsContentRecyclerViewFr
if (status == null) return;
final Bundle options = Utils.createMediaViewerActivityOption(view);
Utils.openMedia(getActivity(), status, media, options);
//spice
SpiceProfilingUtil.log(
status.id + ",Clicked," + status.account_id + "," + status.user_id + "," + status.text_plain.length()
+ "," + media.media_url + "," + TypeMappingUtil.getMediaType(media.type)
+ "," + adapter.isMediaPreviewEnabled() + "," + status.timestamp);
SpiceProfilingUtil.profile(getActivity(), status.account_id,
status.id + ",Clicked," + status.account_id + "," + status.user_id + "," + status.text_plain.length()
+ "," + media.media_url + "," + TypeMappingUtil.getMediaType(media.type)
+ "," + adapter.isMediaPreviewEnabled() + "," + status.timestamp);
//end
// BEGIN HotMobi
final MediaEvent event = MediaEvent.create(getActivity(), status, media, 0, adapter.isMediaPreviewEnabled());
HotMobiLogger.getInstance(getActivity()).log(event);
// END HotMobi
}
@Override

View File

@ -62,6 +62,11 @@ abstract class AbsUserListsFragment<Data> extends AbsContentRecyclerViewFragment
return mNavigationHelper.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
return mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

View File

@ -61,6 +61,11 @@ abstract class AbsUsersFragment<Data> extends AbsContentRecyclerViewFragment<Abs
return mNavigationHelper.handleKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
return mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

View File

@ -152,6 +152,12 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
return ACTION_NAVIGATION_PREVIOUS.equals(action) || ACTION_NAVIGATION_NEXT.equals(action);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull final KeyboardShortcutsHandler handler,
final int keyCode, final int repeatCount,

View File

@ -129,7 +129,7 @@ public class DirectMessagesFragment extends AbsContentRecyclerViewFragment<Messa
@Override
public boolean handleKeyboardShortcutSingle(@NonNull final KeyboardShortcutsHandler handler,
final int keyCode, @NonNull final KeyEvent event) {
String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
if (ACTION_NAVIGATION_REFRESH.equals(action)) {
triggerRefresh();
return true;
@ -137,6 +137,12 @@ public class DirectMessagesFragment extends AbsContentRecyclerViewFragment<Messa
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
return ACTION_NAVIGATION_REFRESH.equals(action) || mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {

View File

@ -564,6 +564,12 @@ public class MessagesConversationFragment extends BaseSupportFragment implements
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
return ACTION_NAVIGATION_BACK.equals(action);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event) {
return false;

View File

@ -130,6 +130,13 @@ public class SearchFragment extends BaseSupportFragment implements RefreshScroll
return handler.handleKey(getActivity(), null, keyCode, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
if (isFragmentKeyboardShortcutHandled(handler, keyCode, event)) return true;
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
return ACTION_NAVIGATION_PREVIOUS_TAB.equals(action) || ACTION_NAVIGATION_NEXT_TAB.equals(action);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event) {
return handleFragmentKeyboardShortcutRepeat(handler, keyCode, repeatCount, event);
@ -331,6 +338,14 @@ public class SearchFragment extends BaseSupportFragment implements RefreshScroll
return false;
}
private boolean isFragmentKeyboardShortcutHandled(KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final Fragment fragment = getKeyboardShortcutRecipient();
if (fragment instanceof KeyboardShortcutCallback) {
return ((KeyboardShortcutCallback) fragment).isKeyboardShortcutHandled(handler, keyCode, event);
}
return false;
}
private void updateTabOffset() {
final int controlBarHeight = getControlBarHeight();
final int translationY = controlBarHeight - mControlBarOffsetPixels;

View File

@ -152,7 +152,7 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
private LinearLayoutManager mLayoutManager;
private LoadConversationTask mLoadConversationTask;
private RecyclerViewNavigationHelper mRecyclerViewNavigationHelper;
private RecyclerViewNavigationHelper mNavigationHelper;
// Data fields
private boolean mRepliesLoaderInitialized;
@ -265,7 +265,7 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
mStatusAdapter.setEventListener(this);
mRecyclerView.setAdapter(mStatusAdapter);
mRecyclerViewNavigationHelper = new RecyclerViewNavigationHelper(mRecyclerView, mLayoutManager,
mNavigationHelper = new RecyclerViewNavigationHelper(mRecyclerView, mLayoutManager,
mStatusAdapter, null);
setState(STATE_LOADING);
@ -419,11 +419,24 @@ public class StatusFragment extends BaseSupportFragment implements LoaderCallbac
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_STATUS, keyCode, event);
if (action == null) return false;
switch (action) {
case ACTION_STATUS_REPLY:
case ACTION_STATUS_RETWEET:
case ACTION_STATUS_FAVORITE:
return true;
}
return mNavigationHelper.isKeyboardShortcutHandled(handler, keyCode, event);
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull final KeyboardShortcutsHandler handler,
final int keyCode, final int repeatCount,
@NonNull final KeyEvent event) {
return mRecyclerViewNavigationHelper.handleKeyboardShortcutRepeat(handler, keyCode,
return mNavigationHelper.handleKeyboardShortcutRepeat(handler, keyCode,
repeatCount, event);
}

View File

@ -1148,6 +1148,20 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
return handler.handleKey(getActivity(), null, keyCode, event);
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
if (isFragmentKeyboardShortcutHandled(handler, keyCode, event)) return true;
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
if (action != null) {
switch (action) {
case ACTION_NAVIGATION_PREVIOUS_TAB:
case ACTION_NAVIGATION_NEXT_TAB:
return true;
}
}
return false;
}
@Override
public boolean handleKeyboardShortcutRepeat(@NonNull final KeyboardShortcutsHandler handler,
final int keyCode, final int repeatCount,
@ -1171,6 +1185,14 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
return false;
}
private boolean isFragmentKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final Fragment fragment = getKeyboardShortcutRecipient();
if (fragment instanceof KeyboardShortcutCallback) {
return ((KeyboardShortcutCallback) fragment).isKeyboardShortcutHandled(handler, keyCode, event);
}
return false;
}
private Fragment getKeyboardShortcutRecipient() {
return getCurrentVisibleFragment();
}

View File

@ -253,6 +253,8 @@ public class KeyboardShortcutsHandler implements Constants, KeyboardShortcutCons
boolean handleKeyboardShortcutRepeat(@NonNull KeyboardShortcutsHandler handler, int keyCode, int repeatCount, @NonNull KeyEvent event);
boolean handleKeyboardShortcutSingle(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event);
boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event);
}
public interface TakeAllKeyboardShortcut {

View File

@ -115,4 +115,17 @@ public class RecyclerViewNavigationHelper implements KeyboardShortcutCallback {
}
return false;
}
@Override
public boolean isKeyboardShortcutHandled(@NonNull KeyboardShortcutsHandler handler, int keyCode, @NonNull KeyEvent event) {
final String action = handler.getKeyAction(CONTEXT_TAG_NAVIGATION, keyCode, event);
if (action == null) return false;
switch (action) {
case ACTION_NAVIGATION_PREVIOUS:
case ACTION_NAVIGATION_NEXT:
case ACTION_NAVIGATION_TOP:
return true;
}
return false;
}
}

View File

@ -19,6 +19,7 @@
package org.mariotaku.twidere.util;
import android.support.annotation.NonNull;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
@ -67,15 +68,22 @@ public class RecyclerViewUtils {
focusFallback(layoutManager);
return;
}
viewToFocus.requestFocus();
focus(viewToFocus);
}
}
private static void focus(@NonNull View view) {
if (view.isInTouchMode()) {
view.requestFocusFromTouch();
} else {
view.requestFocus();
}
}
private static void focusFallback(LinearLayoutManager layoutManager) {
final int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
final View firstVisibleView = layoutManager.findViewByPosition(firstVisibleItemPosition);
if (firstVisibleView != null) {
firstVisibleView.requestFocus();
}
if (firstVisibleView == null) return;
focus(firstVisibleView);
}
}

View File

@ -18,9 +18,9 @@
-->
<org.mariotaku.twidere.view.MainFrameLayout
android:id="@+id/home_content"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/home_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -28,10 +28,9 @@
android:id="@+id/main_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="false"/>
android:focusable="true" />
<include layout="@layout/layout_empty_tab_hint"/>
<include layout="@layout/layout_empty_tab_hint" />
<RelativeLayout
android:id="@+id/twidere_action_bar_with_overlay"
@ -47,15 +46,15 @@
android:layout_alignParentTop="true"
android:layout="@layout/layout_actionbar_home"
android:touchscreenBlocksFocus="true"
tools:ignore="UnusedAttribute"/>
tools:ignore="UnusedAttribute" />
<View
android:id="@+id/window_overlay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/twidere_action_bar_container"
android:background="?android:windowContentOverlay"/>
android:background="?android:windowContentOverlay" />
</RelativeLayout>
<include layout="@layout/layout_home_actions_button"/>
<include layout="@layout/layout_home_actions_button" />
</org.mariotaku.twidere.view.MainFrameLayout>

View File

@ -27,7 +27,6 @@
android:gravity="center"
android:text="@string/load_more"
android:focusable="true"
android:focusableInTouchMode="false"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"/>

View File

@ -22,7 +22,6 @@
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="true"
android:focusableInTouchMode="false"
android:padding="@dimen/element_spacing_normal">
<include layout="@layout/layout_progress_wheel_medium" />

View File

@ -29,7 +29,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:paddingTop="@dimen/element_spacing_small"
app:ignorePadding="true">

View File

@ -30,7 +30,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:orientation="horizontal"
android:paddingLeft="@dimen/element_spacing_normal"
android:paddingRight="@dimen/element_spacing_normal">

View File

@ -38,7 +38,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:orientation="vertical"
android:paddingBottom="@dimen/element_spacing_small"
android:paddingLeft="@dimen/element_spacing_normal"

View File

@ -38,7 +38,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:orientation="vertical"
android:paddingBottom="@dimen/element_spacing_small"
android:paddingLeft="@dimen/element_spacing_normal"

View File

@ -24,7 +24,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:focusable="true"
android:focusableInTouchMode="false"
android:layout_height="match_parent">
<fragment

View File

@ -38,7 +38,6 @@
android:layout_height="match_parent"
android:clipToPadding="false"
android:focusable="true"
android:focusableInTouchMode="false"
android:listSelector="?selectableItemBackground" />
</org.mariotaku.twidere.view.themed.AccentSwipeRefreshLayout>

View File

@ -38,7 +38,6 @@
android:layout_height="match_parent"
android:clipToPadding="false"
android:focusable="true"
android:focusableInTouchMode="false"
android:scrollbars="vertical" />
</org.mariotaku.twidere.view.themed.AccentSwipeRefreshLayout>

View File

@ -129,8 +129,7 @@
android:id="@+id/account_dashboard_menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="false" />
android:focusable="true" />
</FrameLayout>

View File

@ -24,7 +24,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:orientation="vertical"
android:splitMotionEvents="false">

View File

@ -25,7 +25,6 @@
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:focusable="true"
android:focusableInTouchMode="false"
android:minHeight="?android:listPreferredItemHeight"
android:orientation="horizontal"
android:paddingLeft="@dimen/element_spacing_normal"