diff options
author | Andy Mast <andy@cyngn.com> | 2014-07-24 11:11:37 -0700 |
---|---|---|
committer | Andy Mast <andy@cyngn.com> | 2014-07-25 15:14:25 +0000 |
commit | 471f9d6ff507cf9dea3d00d9b0cd349727909eeb (patch) | |
tree | 426197dfba9805cea8baf770f6e67bbd3b6d17b1 /src | |
parent | 1ef4cda52c8a939dde1814abc1b50b22345ff1e8 (diff) | |
download | packages_apps_ThemeChooser-471f9d6ff507cf9dea3d00d9b0cd349727909eeb.zip packages_apps_ThemeChooser-471f9d6ff507cf9dea3d00d9b0cd349727909eeb.tar.gz packages_apps_ThemeChooser-471f9d6ff507cf9dea3d00d9b0cd349727909eeb.tar.bz2 |
Overflow Popup
Change-Id: I12ae73059381edab884977969a6dfa6932e55549
Diffstat (limited to 'src')
-rw-r--r-- | src/android/support/v4/view/ThemeViewPager.java | 14 | ||||
-rw-r--r-- | src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java | 21 |
2 files changed, 28 insertions, 7 deletions
diff --git a/src/android/support/v4/view/ThemeViewPager.java b/src/android/support/v4/view/ThemeViewPager.java index 9c9b540..cf19404 100644 --- a/src/android/support/v4/view/ThemeViewPager.java +++ b/src/android/support/v4/view/ThemeViewPager.java @@ -56,7 +56,7 @@ public class ThemeViewPager extends ViewPager { if (!mExpanded && isEnabled() && !mIsAnimating) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: - intercept = !isTouchingApplyButton(ev); + intercept = !isTouching(R.id.apply, ev) && !isTouching(R.id.overflow, ev); break; } } @@ -64,20 +64,20 @@ public class ThemeViewPager extends ViewPager { return intercept; } - private boolean isTouchingApplyButton(MotionEvent ev) { + private boolean isTouching(int viewId, MotionEvent ev) { int x = (int) ev.getRawX(); int y = (int) ev.getRawY(); View v = getViewForPosition(getCurrentItem()); - View apply = v.findViewById(R.id.apply); - if (apply == null) return false; + View touchedView = v.findViewById(viewId); + if (touchedView == null) return false; int location[] = new int[2]; - apply.getLocationOnScreen(location); + touchedView.getLocationOnScreen(location); int viewX = location[0]; int viewY = location[1]; - if((x > viewX && x < (viewX + apply.getWidth())) && - ( y > viewY && y < (viewY + apply.getHeight()))){ + if((x > viewX && x < (viewX + touchedView.getWidth())) && + ( y > viewY && y < (viewY + touchedView.getHeight()))){ return true; } else { return false; diff --git a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java index 8987081..6415e5e 100644 --- a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java +++ b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java @@ -54,7 +54,9 @@ import android.support.v4.content.Loader; import android.util.Log; import android.util.SparseArray; import android.view.Display; +import android.view.Gravity; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; @@ -65,11 +67,13 @@ import android.view.animation.ScaleAnimation; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.PopupMenu; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; +import android.widget.Toast; import org.cyanogenmod.theme.chooser.R; import org.cyanogenmod.theme.chooserv2.ComponentSelector.OnItemClickedListener; @@ -313,6 +317,23 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb mTitle = (TextView) v.findViewById(R.id.title); mProgress = (ProgressBar) v.findViewById(R.id.apply_progress); mOverflow = (ImageView) v.findViewById(R.id.overflow); + mOverflow.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PopupMenu menu = new PopupMenu(getActivity(), mTitleCard, Gravity.END); + menu.getMenuInflater().inflate(R.menu.overflow, menu.getMenu()); + menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + Toast.makeText(getActivity(), + item.toString(), + Toast.LENGTH_LONG).show(); + return true; + } + }); + menu.show(); + } + }); mApply = (ImageView) v.findViewById(R.id.apply); mApply.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { |