aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-07-31 01:19:39 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-07-31 01:19:39 +0200
commit81f7dab77c5f28c74da332a038bb3411337f80ad (patch)
tree9c1e70bc0bd8ef347b4c52f33330f9eb9464ee31
parentbb22611e05b39c8849f209065ba4c776f5deab04 (diff)
downloadandroid_packages_wallpapers_PhotoPhase-81f7dab77c5f28c74da332a038bb3411337f80ad.tar.gz
android_packages_wallpapers_PhotoPhase-81f7dab77c5f28c74da332a038bb3411337f80ad.tar.bz2
android_packages_wallpapers_PhotoPhase-81f7dab77c5f28c74da332a038bb3411337f80ad.zip
Initial steps of the disposition preference.
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--res/drawable-hdpi/ic_camera.pngbin0 -> 3418 bytes
-rw-r--r--res/drawable-hdpi/resize_frame_holo.9.pngbin0 -> 893 bytes
-rw-r--r--res/drawable-hdpi/resize_handle_bottom.pngbin0 -> 1502 bytes
-rw-r--r--res/drawable-hdpi/resize_handle_left.pngbin0 -> 1517 bytes
-rw-r--r--res/drawable-hdpi/resize_handle_right.pngbin0 -> 1517 bytes
-rw-r--r--res/drawable-hdpi/resize_handle_top.pngbin0 -> 1525 bytes
-rw-r--r--res/drawable-mdpi/ic_camera.pngbin0 -> 3214 bytes
-rw-r--r--res/drawable-mdpi/resize_frame_holo.9.pngbin0 -> 634 bytes
-rw-r--r--res/drawable-mdpi/resize_handle_bottom.pngbin0 -> 1020 bytes
-rw-r--r--res/drawable-mdpi/resize_handle_left.pngbin0 -> 1034 bytes
-rw-r--r--res/drawable-mdpi/resize_handle_right.pngbin0 -> 1015 bytes
-rw-r--r--res/drawable-mdpi/resize_handle_top.pngbin0 -> 1006 bytes
-rw-r--r--res/drawable-xhdpi/ic_camera.pngbin0 -> 3575 bytes
-rw-r--r--res/drawable-xhdpi/resize_frame_holo.9.pngbin0 -> 1324 bytes
-rw-r--r--res/drawable-xhdpi/resize_handle_bottom.pngbin0 -> 2124 bytes
-rw-r--r--res/drawable-xhdpi/resize_handle_left.pngbin0 -> 2132 bytes
-rw-r--r--res/drawable-xhdpi/resize_handle_right.pngbin0 -> 2166 bytes
-rw-r--r--res/drawable-xhdpi/resize_handle_top.pngbin0 -> 2134 bytes
-rw-r--r--res/layout/choose_disposition_fragment.xml26
-rw-r--r--res/menu/accept_restore_preference.xml (renamed from res/menu/choose_preference.xml)0
-rw-r--r--res/values/colors.xml2
-rw-r--r--res/values/dimens.xml2
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java2
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/DispositionFragment.java108
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java20
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java18
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/widgets/DispositionView.java129
28 files changed, 265 insertions, 45 deletions
diff --git a/res/drawable-hdpi/ic_camera.png b/res/drawable-hdpi/ic_camera.png
new file mode 100644
index 0000000..e0157f7
--- /dev/null
+++ b/res/drawable-hdpi/ic_camera.png
Binary files differ
diff --git a/res/drawable-hdpi/resize_frame_holo.9.png b/res/drawable-hdpi/resize_frame_holo.9.png
new file mode 100644
index 0000000..059a9d6
--- /dev/null
+++ b/res/drawable-hdpi/resize_frame_holo.9.png
Binary files differ
diff --git a/res/drawable-hdpi/resize_handle_bottom.png b/res/drawable-hdpi/resize_handle_bottom.png
new file mode 100644
index 0000000..bc4418f
--- /dev/null
+++ b/res/drawable-hdpi/resize_handle_bottom.png
Binary files differ
diff --git a/res/drawable-hdpi/resize_handle_left.png b/res/drawable-hdpi/resize_handle_left.png
new file mode 100644
index 0000000..b808170
--- /dev/null
+++ b/res/drawable-hdpi/resize_handle_left.png
Binary files differ
diff --git a/res/drawable-hdpi/resize_handle_right.png b/res/drawable-hdpi/resize_handle_right.png
new file mode 100644
index 0000000..bcb8104
--- /dev/null
+++ b/res/drawable-hdpi/resize_handle_right.png
Binary files differ
diff --git a/res/drawable-hdpi/resize_handle_top.png b/res/drawable-hdpi/resize_handle_top.png
new file mode 100644
index 0000000..3ec18de
--- /dev/null
+++ b/res/drawable-hdpi/resize_handle_top.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_camera.png b/res/drawable-mdpi/ic_camera.png
new file mode 100644
index 0000000..17a2e9d
--- /dev/null
+++ b/res/drawable-mdpi/ic_camera.png
Binary files differ
diff --git a/res/drawable-mdpi/resize_frame_holo.9.png b/res/drawable-mdpi/resize_frame_holo.9.png
new file mode 100644
index 0000000..435f3aa
--- /dev/null
+++ b/res/drawable-mdpi/resize_frame_holo.9.png
Binary files differ
diff --git a/res/drawable-mdpi/resize_handle_bottom.png b/res/drawable-mdpi/resize_handle_bottom.png
new file mode 100644
index 0000000..848af0a
--- /dev/null
+++ b/res/drawable-mdpi/resize_handle_bottom.png
Binary files differ
diff --git a/res/drawable-mdpi/resize_handle_left.png b/res/drawable-mdpi/resize_handle_left.png
new file mode 100644
index 0000000..0e62c9c
--- /dev/null
+++ b/res/drawable-mdpi/resize_handle_left.png
Binary files differ
diff --git a/res/drawable-mdpi/resize_handle_right.png b/res/drawable-mdpi/resize_handle_right.png
new file mode 100644
index 0000000..5c8d477
--- /dev/null
+++ b/res/drawable-mdpi/resize_handle_right.png
Binary files differ
diff --git a/res/drawable-mdpi/resize_handle_top.png b/res/drawable-mdpi/resize_handle_top.png
new file mode 100644
index 0000000..609e06b
--- /dev/null
+++ b/res/drawable-mdpi/resize_handle_top.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_camera.png b/res/drawable-xhdpi/ic_camera.png
new file mode 100644
index 0000000..8a9b3a3
--- /dev/null
+++ b/res/drawable-xhdpi/ic_camera.png
Binary files differ
diff --git a/res/drawable-xhdpi/resize_frame_holo.9.png b/res/drawable-xhdpi/resize_frame_holo.9.png
new file mode 100644
index 0000000..270c9b7
--- /dev/null
+++ b/res/drawable-xhdpi/resize_frame_holo.9.png
Binary files differ
diff --git a/res/drawable-xhdpi/resize_handle_bottom.png b/res/drawable-xhdpi/resize_handle_bottom.png
new file mode 100644
index 0000000..d4b11c9
--- /dev/null
+++ b/res/drawable-xhdpi/resize_handle_bottom.png
Binary files differ
diff --git a/res/drawable-xhdpi/resize_handle_left.png b/res/drawable-xhdpi/resize_handle_left.png
new file mode 100644
index 0000000..6eb7cd0
--- /dev/null
+++ b/res/drawable-xhdpi/resize_handle_left.png
Binary files differ
diff --git a/res/drawable-xhdpi/resize_handle_right.png b/res/drawable-xhdpi/resize_handle_right.png
new file mode 100644
index 0000000..01d96ab
--- /dev/null
+++ b/res/drawable-xhdpi/resize_handle_right.png
Binary files differ
diff --git a/res/drawable-xhdpi/resize_handle_top.png b/res/drawable-xhdpi/resize_handle_top.png
new file mode 100644
index 0000000..9066218
--- /dev/null
+++ b/res/drawable-xhdpi/resize_handle_top.png
Binary files differ
diff --git a/res/layout/choose_disposition_fragment.xml b/res/layout/choose_disposition_fragment.xml
index becf879..166f715 100644
--- a/res/layout/choose_disposition_fragment.xml
+++ b/res/layout/choose_disposition_fragment.xml
@@ -14,11 +14,29 @@
limitations under the License.
-->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/default_margin"
- android:layout_marginBottom="@dimen/default_margin">
+ android:layout_marginBottom="@dimen/default_margin"
+ android:orientation="vertical">
- <!-- Resize widgets are inserted here -->
-</RelativeLayout>
+ <TextView android:id="@+id/description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/holo_blue_light"
+ android:layout_marginEnd="8dip"
+ android:layout_marginStart="8dip"
+ android:padding="4dip"
+ android:gravity="center_horizontal"
+ android:textColor="#FFFFFF"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:text="@string/pref_disposition_description" />
+
+ <org.cyanogenmod.wallpapers.photophase.widgets.DispositionView
+ android:id="@+id/disposition_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/default_margin"
+ android:layout_marginBottom="@dimen/default_margin" />
+</LinearLayout>
diff --git a/res/menu/choose_preference.xml b/res/menu/accept_restore_preference.xml
index 435e4da..435e4da 100644
--- a/res/menu/choose_preference.xml
+++ b/res/menu/accept_restore_preference.xml
diff --git a/res/values/colors.xml b/res/values/colors.xml
index d22597f..a944c45 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -24,4 +24,6 @@
<color name="text_color">#404040</color>
<color name="notification_text_color">#ffffffff</color>
+ <color name="disposition_frame_bg_color">#c8595757</color>
+
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 7721a7b..3fc07e1 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -44,4 +44,6 @@
<dimen name="default_margin">16dp</dimen>
<dimen name="small_margin">8dp</dimen>
<dimen name="small_padding">5dp</dimen>
+
+ <dimen name="disposition_frame_padding">1dp</dimen>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4aa51d4..eec1105 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -72,13 +72,14 @@
<string name="pref_disposition_portrait_summary">Select how pictures are disposed on a portrait screen</string>
<string name="pref_disposition_landscape">Landscape disposition</string>
<string name="pref_disposition_landscape_summary">Select how pictures are disposed on a landscape screen</string>
+ <string name="pref_disposition_description">Tap a frame to select it. Then drag \u0026 drop the borders of the frame to resize it.
+ Tap the split buttons to split the frame horizontally or vertically.</string>
<string name="pref_about">About</string>
<string name="pref_about_summary">PhotoPhase v<xliff:g id="version">%1$s</xliff:g>\nCopyright \u00A9 2013 The CyanogenMod Project</string>
<!-- Plurals -->
<plurals name="album_number_of_pictures">
- <item quantity="zero">0 pictures</item>
<item quantity="one">1 picture</item>
<item quantity="other"><xliff:g id="number" example="7">%d</xliff:g> pictures</item>
</plurals>
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java
index 9e48a1b..cebfd81 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/ChoosePicturesFragment.java
@@ -242,7 +242,7 @@ public class ChoosePicturesFragment extends PreferenceFragment {
*/
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- inflater.inflate(R.menu.choose_preference, menu);
+ inflater.inflate(R.menu.accept_restore_preference, menu);
}
/**
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/DispositionFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/DispositionFragment.java
index 99d2153..780bf4e 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/DispositionFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/DispositionFragment.java
@@ -17,16 +17,18 @@
package org.cyanogenmod.wallpapers.photophase.preferences;
import android.content.Context;
-import android.graphics.Rect;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.RelativeLayout;
import org.cyanogenmod.wallpapers.photophase.R;
import org.cyanogenmod.wallpapers.photophase.model.Disposition;
+import org.cyanogenmod.wallpapers.photophase.widgets.DispositionView;
import java.util.List;
@@ -35,32 +37,21 @@ import java.util.List;
*/
public abstract class DispositionFragment extends PreferenceFragment {
- /**
- * Available modes for the {@link DispositionFragment} class.
- */
- public static enum DispositionModes {
- /**
- * Portrait screen
- */
- PORTRAIT,
- /**
- * Landscape screen
- */
- LANDSCAPE;
- }
+ private Runnable mRedraw = new Runnable() {
+ @Override
+ public void run() {
+ if (getActivity().isDestroyed()) return;
+ mDispositionView.setDispositions(getUserDispositions(), getCols(), getRows());
+ }
+ };
- private final DispositionModes mMode;
-
- private List<Disposition> mOldDispositions;
+ DispositionView mDispositionView;
/**
* Constructor of <code>DispositionFragment</code>
- *
- * @param mode The mode of the disposition layout
*/
- public DispositionFragment(DispositionModes mode) {
+ public DispositionFragment() {
super();
- mMode = mode;
}
/**
@@ -71,6 +62,20 @@ public abstract class DispositionFragment extends PreferenceFragment {
public abstract List<Disposition> getUserDispositions();
/**
+ * Method that returns the number of rows to use
+ *
+ * @return int The number of rows
+ */
+ public abstract int getRows();
+
+ /**
+ * Method that returns the number of cols to use
+ *
+ * @return int The number of cols
+ */
+ public abstract int getCols();
+
+ /**
* {@inheritDoc}
*/
@Override
@@ -80,6 +85,8 @@ public abstract class DispositionFragment extends PreferenceFragment {
// Change the preference manager
getPreferenceManager().setSharedPreferencesName(PreferencesProvider.PREFERENCES_FILE);
getPreferenceManager().setSharedPreferencesMode(Context.MODE_PRIVATE);
+
+ setHasOptionsMenu(true);
}
/**
@@ -89,25 +96,52 @@ public abstract class DispositionFragment extends PreferenceFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
ViewGroup v = (ViewGroup)inflater.inflate(R.layout.choose_disposition_fragment, container, false);
-// v.addView(createFrame());
+ mDispositionView = (DispositionView)v.findViewById(R.id.disposition_view);
+ mDispositionView.post(mRedraw);
return v;
}
/**
- * Method that recreate
- * @param r
- * @return
+ * {@inheritDoc}
*/
- private View createFrame(Rect r) {
- // Create a view with all the
- View v = new View(getActivity());
- v.setBackgroundColor(getResources().getColor(R.color.wallpaper_background_color));
- RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(r.width(), r.height());
- params.leftMargin = r.top;
- params.topMargin = r.left;
- v.setLayoutParams(params);
- v.setFocusable(true);
- v.setFocusableInTouchMode(true);
- return v;
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ if (mDispositionView != null) {
+ mDispositionView.removeCallbacks(mRedraw);
+ }
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ inflater.inflate(R.menu.accept_restore_preference, menu);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.mnu_ok:
+ getActivity().finish();
+ return true;
+ case R.id.mnu_restore:
+ restoreData();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
+ /**
+ * Method that restores the disposition view to the default state
+ */
+ private void restoreData() {
+ //TODO Restore disposition
+ }
+
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java
index 72b32c5..f53925d 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/LandscapeDispositionFragment.java
@@ -33,7 +33,7 @@ public class LandscapeDispositionFragment extends DispositionFragment {
* Constructor of <code>LandscapeDispositionFragment</code>
*/
public LandscapeDispositionFragment() {
- super(DispositionModes.LANDSCAPE);
+ super();
}
/**
@@ -52,4 +52,22 @@ public class LandscapeDispositionFragment extends DispositionFragment {
public List<Disposition> getUserDispositions() {
return PreferencesProvider.Preferences.Layout.getLandscapeDisposition();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getRows() {
+ // inverted
+ return PreferencesProvider.Preferences.Layout.getCols();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getCols() {
+ // inverted
+ return PreferencesProvider.Preferences.Layout.getRows();
+ }
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java
index 5209a5b..49fc4c4 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/PortraitDispositionFragment.java
@@ -33,7 +33,7 @@ public class PortraitDispositionFragment extends DispositionFragment {
* Constructor of <code>PortraitDispositionFragment</code>
*/
public PortraitDispositionFragment() {
- super(DispositionModes.PORTRAIT);
+ super();
}
/**
@@ -52,4 +52,20 @@ public class PortraitDispositionFragment extends DispositionFragment {
public List<Disposition> getUserDispositions() {
return PreferencesProvider.Preferences.Layout.getPortraitDisposition();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getRows() {
+ return PreferencesProvider.Preferences.Layout.getRows();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int getCols() {
+ return PreferencesProvider.Preferences.Layout.getCols();
+ }
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/widgets/DispositionView.java b/src/org/cyanogenmod/wallpapers/photophase/widgets/DispositionView.java
new file mode 100644
index 0000000..93b4b76
--- /dev/null
+++ b/src/org/cyanogenmod/wallpapers/photophase/widgets/DispositionView.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.cyanogenmod.wallpapers.photophase.widgets;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.ImageView.ScaleType;
+
+import org.cyanogenmod.wallpapers.photophase.R;
+import org.cyanogenmod.wallpapers.photophase.model.Disposition;
+
+import java.util.List;
+
+/**
+ * A class that allow to select the frames disposition visually
+ */
+public class DispositionView extends RelativeLayout {
+
+ private List<Disposition> mDispositions;
+ private int mCols;
+ private int mRows;
+
+ /**
+ * Constructor of <code>DispositionView</code>.
+ *
+ * @param context The current context
+ */
+ public DispositionView(Context context) {
+ super(context);
+ }
+
+ /**
+ * Constructor of <code>DispositionView</code>.
+ *
+ * @param context The current context
+ * @param attrs The attributes of the XML tag that is inflating the view.
+ */
+ public DispositionView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ /**
+ * Constructor of <code>DispositionView</code>.
+ *
+ * @param context The current context
+ * @param attrs The attributes of the XML tag that is inflating the view.
+ * @param defStyle The default style to apply to this view. If 0, no style
+ * will be applied (beyond what is included in the theme). This may
+ * either be an attribute resource, whose value will be retrieved
+ * from the current theme, or an explicit style resource.
+ */
+ public DispositionView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ /**
+ * Method that sets the disposition to draw on this view
+ *
+ * @param dispositions The dispositions to draw
+ */
+ public void setDispositions(List<Disposition> dispositions, int cols, int rows) {
+ mDispositions = dispositions;
+ mCols = cols;
+ mRows = rows;
+
+ // Remove all the current views and add the new ones
+ removeAllViews();
+ for (Disposition disposition : mDispositions) {
+ createFrame(getLocationFromDisposition(disposition));
+ }
+ }
+
+ /**
+ * Method that create a new frame to be drawn in the specified location
+ *
+ * @param r The location relative to the parent layout
+ */
+ private void createFrame(Rect r) {
+ int padding = (int)getResources().getDimension(R.dimen.disposition_frame_padding);
+ ImageView v = new ImageView(getContext());
+ v.setImageResource(R.drawable.ic_camera);
+ v.setScaleType(ScaleType.CENTER);
+ v.setBackgroundColor(getResources().getColor(R.color.disposition_frame_bg_color));
+ RelativeLayout.LayoutParams params =
+ new RelativeLayout.LayoutParams(r.width() - padding, r.height() - padding);
+ params.leftMargin = r.left + padding;
+ params.topMargin = r.top + padding;
+ v.setFocusable(true);
+ v.setFocusableInTouchMode(true);
+ addView(v, params);
+ }
+
+ /**
+ * Method that returns the location of the frame from its disposition
+ *
+ * @param disposition The source disposition
+ * @return Rect The location on parent view
+ */
+ private Rect getLocationFromDisposition(Disposition disposition) {
+ int w = getMeasuredWidth();
+ int h = getMeasuredHeight();
+ int cw = w / mCols;
+ int ch = h / mRows;
+
+ Rect location = new Rect();
+ location.left = disposition.x * cw;
+ location.top = disposition.y * ch;
+ location.right = location.left + disposition.w * cw;
+ location.bottom = location.top + disposition.h * ch;
+ return location;
+ }
+}