List of usage examples for android.widget FrameLayout setOnGenericMotionListener
public void setOnGenericMotionListener(OnGenericMotionListener l)
From source file:com.farmerbb.taskbar.service.TaskbarService.java
private View getView(List<AppEntry> list, int position) { View convertView = View.inflate(this, R.layout.icon, null); final AppEntry entry = list.get(position); final SharedPreferences pref = U.getSharedPreferences(this); ImageView imageView = (ImageView) convertView.findViewById(R.id.icon); ImageView imageView2 = (ImageView) convertView.findViewById(R.id.shortcut_icon); imageView.setImageDrawable(entry.getIcon(this)); imageView2.setBackgroundColor(//from w w w . j a va2 s . com pref.getInt("accent_color", getResources().getInteger(R.integer.translucent_white))); String taskbarPosition = U.getTaskbarPosition(this); if (pref.getBoolean("shortcut_icon", true)) { boolean shouldShowShortcutIcon; if (taskbarPosition.contains("vertical")) shouldShowShortcutIcon = position >= list.size() - numOfPinnedApps; else shouldShowShortcutIcon = position < numOfPinnedApps; if (shouldShowShortcutIcon) imageView2.setVisibility(View.VISIBLE); } if (taskbarPosition.equals("bottom_right") || taskbarPosition.equals("top_right")) { imageView.setRotationY(180); imageView2.setRotationY(180); } FrameLayout layout = (FrameLayout) convertView.findViewById(R.id.entry); layout.setOnClickListener(view -> U.launchApp(TaskbarService.this, entry.getPackageName(), entry.getComponentName(), entry.getUserId(TaskbarService.this), null, true, false)); layout.setOnLongClickListener(view -> { int[] location = new int[2]; view.getLocationOnScreen(location); openContextMenu(entry, location); return true; }); layout.setOnGenericMotionListener((view, motionEvent) -> { int action = motionEvent.getAction(); if (action == MotionEvent.ACTION_BUTTON_PRESS && motionEvent.getButtonState() == MotionEvent.BUTTON_SECONDARY) { int[] location = new int[2]; view.getLocationOnScreen(location); openContextMenu(entry, location); } if (action == MotionEvent.ACTION_SCROLL && pref.getBoolean("visual_feedback", true)) view.setBackgroundColor(0); return false; }); if (pref.getBoolean("visual_feedback", true)) { layout.setOnHoverListener((v, event) -> { if (event.getAction() == MotionEvent.ACTION_HOVER_ENTER) { int accentColor = U.getAccentColor(TaskbarService.this); accentColor = ColorUtils.setAlphaComponent(accentColor, Color.alpha(accentColor) / 2); v.setBackgroundColor(accentColor); } if (event.getAction() == MotionEvent.ACTION_HOVER_EXIT) v.setBackgroundColor(0); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) v.setPointerIcon(PointerIcon.getSystemIcon(TaskbarService.this, PointerIcon.TYPE_DEFAULT)); return false; }); layout.setOnTouchListener((v, event) -> { v.setAlpha( event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE ? 0.5f : 1); return false; }); } return convertView; }