Search in sources :

Example 51 with LEFT

use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project android_packages_apps_CMParts by LineageOS.

the class ButtonSettings method onCreate.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.button_settings);
    final Resources res = getResources();
    final ContentResolver resolver = getActivity().getContentResolver();
    final PreferenceScreen prefScreen = getPreferenceScreen();
    final int deviceKeys = getResources().getInteger(com.android.internal.R.integer.config_deviceHardwareKeys);
    final int deviceWakeKeys = getResources().getInteger(com.android.internal.R.integer.config_deviceHardwareWakeKeys);
    final boolean hasPowerKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_POWER);
    final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0;
    final boolean hasBackKey = (deviceKeys & KEY_MASK_BACK) != 0;
    final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0;
    final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0;
    final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0;
    final boolean hasCameraKey = (deviceKeys & KEY_MASK_CAMERA) != 0;
    final boolean hasVolumeKeys = (deviceKeys & KEY_MASK_VOLUME) != 0;
    final boolean showHomeWake = (deviceWakeKeys & KEY_MASK_HOME) != 0;
    final boolean showBackWake = (deviceWakeKeys & KEY_MASK_BACK) != 0;
    final boolean showMenuWake = (deviceWakeKeys & KEY_MASK_MENU) != 0;
    final boolean showAssistWake = (deviceWakeKeys & KEY_MASK_ASSIST) != 0;
    final boolean showAppSwitchWake = (deviceWakeKeys & KEY_MASK_APP_SWITCH) != 0;
    final boolean showCameraWake = (deviceWakeKeys & KEY_MASK_CAMERA) != 0;
    final boolean showVolumeWake = (deviceWakeKeys & KEY_MASK_VOLUME) != 0;
    boolean hasAnyBindableKey = false;
    final PreferenceCategory powerCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_POWER);
    final PreferenceCategory homeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_HOME);
    final PreferenceCategory backCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_BACK);
    final PreferenceCategory menuCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_MENU);
    final PreferenceCategory assistCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_ASSIST);
    final PreferenceCategory appSwitchCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_APPSWITCH);
    final PreferenceCategory volumeCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_VOLUME);
    final PreferenceCategory cameraCategory = (PreferenceCategory) prefScreen.findPreference(CATEGORY_CAMERA);
    // Power button ends calls.
    mPowerEndCall = (SwitchPreference) findPreference(KEY_POWER_END_CALL);
    // Long press power while display is off to activate torchlight
    mTorchLongPressPowerGesture = (SwitchPreference) findPreference(KEY_TORCH_LONG_PRESS_POWER_GESTURE);
    final int torchLongPressPowerTimeout = CMSettings.System.getInt(resolver, CMSettings.System.TORCH_LONG_PRESS_POWER_TIMEOUT, 0);
    mTorchLongPressPowerTimeout = initList(KEY_TORCH_LONG_PRESS_POWER_TIMEOUT, torchLongPressPowerTimeout);
    // Home button answers calls.
    mHomeAnswerCall = (SwitchPreference) findPreference(KEY_HOME_ANSWER_CALL);
    mHandler = new Handler();
    // Force Navigation bar related options
    mDisableNavigationKeys = (SwitchPreference) findPreference(DISABLE_NAV_KEYS);
    mNavigationPreferencesCat = (PreferenceCategory) findPreference(CATEGORY_NAVBAR);
    // Navigation bar left
    mNavigationBarLeftPref = (SwitchPreference) findPreference(KEY_NAVIGATION_BAR_LEFT);
    Action defaultHomeLongPressAction = Action.fromIntSafe(res.getInteger(com.android.internal.R.integer.config_longPressOnHomeBehavior));
    Action defaultHomeDoubleTapAction = Action.fromIntSafe(res.getInteger(com.android.internal.R.integer.config_doubleTapOnHomeBehavior));
    Action homeLongPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_HOME_LONG_PRESS_ACTION, defaultHomeLongPressAction);
    Action homeDoubleTapAction = Action.fromSettings(resolver, CMSettings.System.KEY_HOME_DOUBLE_TAP_ACTION, defaultHomeDoubleTapAction);
    // Navigation bar home long press
    mNavigationHomeLongPressAction = initList(KEY_NAVIGATION_HOME_LONG_PRESS, homeLongPressAction);
    // Navigation bar home double tap
    mNavigationHomeDoubleTapAction = initList(KEY_NAVIGATION_HOME_DOUBLE_TAP, homeDoubleTapAction);
    // Navigation bar recents long press activity needs custom setup
    mNavigationRecentsLongPressAction = initRecentsLongPressAction(KEY_NAVIGATION_RECENTS_LONG_PRESS);
    final CMHardwareManager hardware = CMHardwareManager.getInstance(getActivity());
    // Only visible on devices that does not have a navigation bar already,
    // and don't even try unless the existing keys can be disabled
    boolean needsNavigationBar = false;
    if (hardware.isSupported(CMHardwareManager.FEATURE_KEY_DISABLE)) {
        try {
            IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
            needsNavigationBar = wm.needsNavigationBar();
        } catch (RemoteException e) {
        }
        if (needsNavigationBar) {
            prefScreen.removePreference(mDisableNavigationKeys);
        } else {
            // Remove keys that can be provided by the navbar
            updateDisableNavkeysOption();
            mNavigationPreferencesCat.setEnabled(mDisableNavigationKeys.isChecked());
            updateDisableNavkeysCategories(mDisableNavigationKeys.isChecked());
        }
    } else {
        prefScreen.removePreference(mDisableNavigationKeys);
    }
    if (hasPowerKey) {
        if (!TelephonyUtils.isVoiceCapable(getActivity())) {
            powerCategory.removePreference(mPowerEndCall);
            mPowerEndCall = null;
        }
        if (!QSUtils.deviceSupportsFlashLight(getActivity())) {
            powerCategory.removePreference(mTorchLongPressPowerGesture);
            powerCategory.removePreference(mTorchLongPressPowerTimeout);
        }
    } else {
        prefScreen.removePreference(powerCategory);
    }
    if (hasHomeKey) {
        if (!showHomeWake) {
            homeCategory.removePreference(findPreference(CMSettings.System.HOME_WAKE_SCREEN));
        }
        if (!TelephonyUtils.isVoiceCapable(getActivity())) {
            homeCategory.removePreference(mHomeAnswerCall);
            mHomeAnswerCall = null;
        }
        mHomeLongPressAction = initList(KEY_HOME_LONG_PRESS, homeLongPressAction);
        mHomeDoubleTapAction = initList(KEY_HOME_DOUBLE_TAP, homeDoubleTapAction);
        if (mDisableNavigationKeys.isChecked()) {
            mHomeLongPressAction.setEnabled(false);
            mHomeDoubleTapAction.setEnabled(false);
        }
        hasAnyBindableKey = true;
    } else {
        prefScreen.removePreference(homeCategory);
    }
    if (hasBackKey) {
        if (!showBackWake) {
            backCategory.removePreference(findPreference(CMSettings.System.BACK_WAKE_SCREEN));
            prefScreen.removePreference(backCategory);
        }
    } else {
        prefScreen.removePreference(backCategory);
    }
    if (hasMenuKey) {
        if (!showMenuWake) {
            menuCategory.removePreference(findPreference(CMSettings.System.MENU_WAKE_SCREEN));
        }
        Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_MENU_ACTION, Action.MENU);
        mMenuPressAction = initList(KEY_MENU_PRESS, pressAction);
        Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_MENU_LONG_PRESS_ACTION, hasAssistKey ? Action.NOTHING : Action.SEARCH);
        mMenuLongPressAction = initList(KEY_MENU_LONG_PRESS, longPressAction);
        hasAnyBindableKey = true;
    } else {
        prefScreen.removePreference(menuCategory);
    }
    if (hasAssistKey) {
        if (!showAssistWake) {
            assistCategory.removePreference(findPreference(CMSettings.System.ASSIST_WAKE_SCREEN));
        }
        Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_ASSIST_ACTION, Action.SEARCH);
        mAssistPressAction = initList(KEY_ASSIST_PRESS, pressAction);
        Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_ASSIST_LONG_PRESS_ACTION, Action.VOICE_SEARCH);
        mAssistLongPressAction = initList(KEY_ASSIST_LONG_PRESS, longPressAction);
        hasAnyBindableKey = true;
    } else {
        prefScreen.removePreference(assistCategory);
    }
    if (hasAppSwitchKey) {
        if (!showAppSwitchWake) {
            appSwitchCategory.removePreference(findPreference(CMSettings.System.APP_SWITCH_WAKE_SCREEN));
        }
        Action pressAction = Action.fromSettings(resolver, CMSettings.System.KEY_APP_SWITCH_ACTION, Action.APP_SWITCH);
        mAppSwitchPressAction = initList(KEY_APP_SWITCH_PRESS, pressAction);
        Action longPressAction = Action.fromSettings(resolver, CMSettings.System.KEY_APP_SWITCH_LONG_PRESS_ACTION, Action.SPLIT_SCREEN);
        mAppSwitchLongPressAction = initList(KEY_APP_SWITCH_LONG_PRESS, longPressAction);
        hasAnyBindableKey = true;
    } else {
        prefScreen.removePreference(appSwitchCategory);
    }
    if (hasCameraKey) {
        mCameraWakeScreen = (SwitchPreference) findPreference(CMSettings.System.CAMERA_WAKE_SCREEN);
        mCameraSleepOnRelease = (SwitchPreference) findPreference(CMSettings.System.CAMERA_SLEEP_ON_RELEASE);
        mCameraLaunch = (SwitchPreference) findPreference(CMSettings.System.CAMERA_LAUNCH);
        if (!showCameraWake) {
            prefScreen.removePreference(mCameraWakeScreen);
        }
        // Only show 'Camera sleep on release' if the device has a focus key
        if (res.getBoolean(com.android.internal.R.bool.config_singleStageCameraKey)) {
            prefScreen.removePreference(mCameraSleepOnRelease);
        }
    } else {
        prefScreen.removePreference(cameraCategory);
    }
    if (DeviceUtils.hasVolumeRocker(getActivity())) {
        if (!showVolumeWake) {
            volumeCategory.removePreference(findPreference(CMSettings.System.VOLUME_WAKE_SCREEN));
        }
        if (!TelephonyUtils.isVoiceCapable(getActivity())) {
            volumeCategory.removePreference(findPreference(CMSettings.System.VOLUME_ANSWER_CALL));
        }
        int cursorControlAction = Settings.System.getInt(resolver, Settings.System.VOLUME_KEY_CURSOR_CONTROL, 0);
        mVolumeKeyCursorControl = initList(KEY_VOLUME_KEY_CURSOR_CONTROL, cursorControlAction);
        int swapVolumeKeys = CMSettings.System.getInt(getContentResolver(), CMSettings.System.SWAP_VOLUME_KEYS_ON_ROTATION, 0);
        mSwapVolumeButtons = (SwitchPreference) prefScreen.findPreference(KEY_SWAP_VOLUME_BUTTONS);
        if (mSwapVolumeButtons != null) {
            mSwapVolumeButtons.setChecked(swapVolumeKeys > 0);
        }
    } else {
        prefScreen.removePreference(volumeCategory);
    }
    try {
        // Only show the navigation bar category on devices that have a navigation bar
        // unless we are forcing it via development settings
        boolean forceNavbar = CMSettings.Global.getInt(getContentResolver(), CMSettings.Global.DEV_FORCE_SHOW_NAVBAR, 0) == 1;
        boolean hasNavBar = WindowManagerGlobal.getWindowManagerService().hasNavigationBar() || forceNavbar;
        if (!ScreenType.isPhone(getActivity())) {
            mNavigationPreferencesCat.removePreference(mNavigationBarLeftPref);
        }
        if (!hasNavBar && (needsNavigationBar || !hardware.isSupported(CMHardwareManager.FEATURE_KEY_DISABLE))) {
            // Hide navigation bar category
            prefScreen.removePreference(mNavigationPreferencesCat);
        }
    } catch (RemoteException e) {
        Log.e(TAG, "Error getting navigation bar status");
    }
    final ButtonBacklightBrightness backlight = (ButtonBacklightBrightness) findPreference(KEY_BUTTON_BACKLIGHT);
    if (!backlight.isButtonSupported() && !backlight.isKeyboardSupported()) {
        prefScreen.removePreference(backlight);
    }
    if (mCameraWakeScreen != null) {
        if (mCameraSleepOnRelease != null && !getResources().getBoolean(com.android.internal.R.bool.config_singleStageCameraKey)) {
            mCameraSleepOnRelease.setDependency(CMSettings.System.CAMERA_WAKE_SCREEN);
        }
    }
    mVolumeWakeScreen = (SwitchPreference) findPreference(CMSettings.System.VOLUME_WAKE_SCREEN);
    mVolumeMusicControls = (SwitchPreference) findPreference(KEY_VOLUME_MUSIC_CONTROLS);
    if (mVolumeWakeScreen != null) {
        if (mVolumeMusicControls != null) {
            mVolumeMusicControls.setDependency(CMSettings.System.VOLUME_WAKE_SCREEN);
            mVolumeWakeScreen.setDisableDependentsState(true);
        }
    }
}
Also used : PreferenceScreen(android.support.v7.preference.PreferenceScreen) PreferenceCategory(android.support.v7.preference.PreferenceCategory) IWindowManager(android.view.IWindowManager) Handler(android.os.Handler) Resources(android.content.res.Resources) RemoteException(android.os.RemoteException) CMHardwareManager(cyanogenmod.hardware.CMHardwareManager) ContentResolver(android.content.ContentResolver)

Example 52 with LEFT

use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project Collar by CodeZsx.

the class DirectMsgActivity method initView.

@Override
public void initView() {
    EventBusUtils.register(this);
    // 获取intent传递过来的uid,screen_name
    mUid = getIntent().getStringExtra(INTENT_UID);
    mScreenName = getIntent().getStringExtra(INTENT_SCREEN_NAME);
    setToolbarTitle(mBinding.toolbar, mScreenName);
    mAdapter = new DirectMsgConversationAdapter(this);
    mAdapter.setUid(AccessTokenKeeper.getInstance().getUid());
    mBinding.recyclerView.setAdapter(mAdapter);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, true);
    mBinding.recyclerView.setLayoutManager(linearLayoutManager);
    // 设置edittext
    mBinding.etContent.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if ("".equals(s.toString())) {
                mBinding.ivCommit.setSelected(false);
            } else {
                mBinding.ivCommit.setSelected(true);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    // 设置表情界面
    EmojiFragment emojiFragment = new EmojiFragment();
    getSupportFragmentManager().beginTransaction().add(R.id.rl_additional, emojiFragment).show(emojiFragment).commit();
    emojiFragment.addOnEmojiClickListener(new EmojiFragment.OnEmojiClickListener() {

        @Override
        public void onEmojiDelete() {
            L.e("delete");
        }

        @Override
        public void onEmojiClick(Emoji emoji) {
            // TODO:增加表情转化功能
            // mBinding.etContent.setText(EmojiUtil.transEmoji(mBinding.etContent.getText().toString() + emoji.getContent(), DirectMsgActivity.this));
            mBinding.etContent.setText(mBinding.etContent.getText().toString() + emoji.getContent());
            mBinding.etContent.setSelection(mBinding.etContent.getText().length());
        }
    });
    // 当软键盘呼出时,关闭表情界面
    getWindow().getDecorView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {

        int oldRectBottom = 0;

        @Override
        public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
            // 获取View可见区域的bottom
            Rect rect = new Rect();
            getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
            // 界面收缩即软键盘正在打开
            if (rect.bottom - oldRectBottom < 0) {
                mBinding.rlAdditional.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        mBinding.rlAdditional.setVisibility(View.GONE);
                        mBinding.ivEmoj.setSelected(false);
                    }
                }, 10);
            } else if (rect.bottom - oldRectBottom > 0) {
            // 界面扩展即软键盘正在关闭
            }
            oldRectBottom = rect.bottom;
        }
    });
    mBinding.ivCommit.setOnClickListener(this);
    mBinding.ivEmoj.setOnClickListener(this);
    // mBinding.getRoot().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
    // @Override
    // public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
    // //获取View可见区域的bottom
    // Rect rect = new Rect();
    // getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
    // if(bottom!=0 && oldBottom!=0 && bottom - rect.bottom <= 0){
    // L.e("keboard close");
    // }else {
    // mBinding.rlAdditional.setVisibility(View.GONE);
    // mBinding.ivEmoj.setSelected(false);
    // L.e("keyboard open");
    // }
    // }
    // });
    loadData();
}
Also used : Rect(android.graphics.Rect) EmojiFragment(com.codez.collar.fragment.EmojiFragment) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) DirectMsgConversationAdapter(com.codez.collar.adapter.DirectMsgConversationAdapter) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) Emoji(com.codez.collar.ui.emoji.Emoji)

Example 53 with LEFT

use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project GomoTest by suReZj.

the class MyDecoration method drawHorizontalLine.

// 画横线, 这里的parent其实是显示在屏幕显示的这部分
public void drawHorizontalLine(Canvas c, RecyclerView parent, RecyclerView.State state) {
    int left = parent.getPaddingLeft();
    int right = parent.getWidth() - parent.getPaddingRight();
    final int childCount = parent.getChildCount();
    for (int i = 0; i < childCount; i++) {
        final View child = parent.getChildAt(i);
        // 获得child的布局信息
        final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
        final int top = child.getBottom() + params.bottomMargin;
        final int bottom = top + mDivider.getIntrinsicHeight();
        mDivider.setBounds(left, top, right, bottom);
        mDivider.draw(c);
    // Log.d("wnw", left + " " + top + " "+right+"   "+bottom+" "+i);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 54 with LEFT

use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project gh4a by slapperwan.

the class DividerItemDecoration method onDraw.

@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
    if (mDivider == null) {
        return;
    }
    int left = parent.getPaddingLeft();
    int right = parent.getWidth() - parent.getPaddingRight();
    int childCount = parent.getChildCount();
    for (int i = 0; i < childCount - 1; i++) {
        View child = parent.getChildAt(i);
        RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
        int top = child.getBottom() + params.bottomMargin;
        int bottom = top + mDivider.getIntrinsicHeight();
        mDivider.setBounds(left, top, right, bottom);
        mDivider.draw(c);
    }
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View)

Example 55 with LEFT

use of android.support.v7.widget.helper.ItemTouchHelper.LEFT in project AndelaMedManager by jumaallan.

the class CirclePagerIndicatorDecoration method onDrawOver.

@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
    super.onDrawOver(c, parent, state);
    int itemCount = parent.getAdapter().getItemCount();
    // center horizontally, calculate width and subtract half from center
    float totalLength = mIndicatorItemLength * itemCount;
    float paddingBetweenItems = Math.max(0, itemCount - 1) * mIndicatorItemPadding;
    float indicatorTotalWidth = totalLength + paddingBetweenItems;
    float indicatorStartX = (parent.getWidth() - indicatorTotalWidth) / 2F;
    // center vertically in the allotted space
    float indicatorPosY = parent.getHeight() - mIndicatorHeight / 2F;
    drawInactiveIndicators(c, indicatorStartX, indicatorPosY, itemCount);
    // find active page (which should be highlighted)
    LinearLayoutManager layoutManager = (LinearLayoutManager) parent.getLayoutManager();
    int activePosition = layoutManager.findFirstVisibleItemPosition();
    if (activePosition == RecyclerView.NO_POSITION) {
        return;
    }
    // find offset of active page (if the user is scrolling)
    final View activeChild = layoutManager.findViewByPosition(activePosition);
    int left = activeChild.getLeft();
    int width = activeChild.getWidth();
    // on swipe the active item will be positioned from [-width, 0]
    // interpolate offset for smooth animation
    float progress = mInterpolator.getInterpolation(left * -1 / (float) width);
    drawHighlights(c, indicatorStartX, indicatorPosY, activePosition, progress, itemCount);
}
Also used : LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) Paint(android.graphics.Paint)

Aggregations

View (android.view.View)291 RecyclerView (android.support.v7.widget.RecyclerView)276 Paint (android.graphics.Paint)43 TextView (android.widget.TextView)36 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)22 ImageView (android.widget.ImageView)20 Rect (android.graphics.Rect)11 Intent (android.content.Intent)9 SuppressLint (android.annotation.SuppressLint)8 OnLayoutChangeListener (android.view.View.OnLayoutChangeListener)8 OrientationHelperEx (com.alibaba.android.vlayout.OrientationHelperEx)8 ArrayList (java.util.ArrayList)8 AlertDialog (android.support.v7.app.AlertDialog)7 Toolbar (android.support.v7.widget.Toolbar)7 ViewGroup (android.view.ViewGroup)7 GridLayoutManager (android.support.v7.widget.GridLayoutManager)6 Button (android.widget.Button)6 Animator (android.animation.Animator)5 TargetApi (android.annotation.TargetApi)5 Activity (android.app.Activity)5