aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/cgBase.java25
-rw-r--r--main/src/cgeo/geocaching/cgeodetail.java13
-rw-r--r--main/src/cgeo/geocaching/cgeopopup.java13
3 files changed, 28 insertions, 23 deletions
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index 405ef58..4b4cf68 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -64,7 +64,10 @@ import android.text.Spanned;
import android.text.format.DateUtils;
import android.text.style.StrikethroughSpan;
import android.util.Log;
+import android.view.LayoutInflater;
import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
import java.io.File;
import java.io.IOException;
@@ -3441,7 +3444,7 @@ public class cgBase {
* @param moveCursor
* place the cursor after the inserted text
*/
- static void insertAtPosition(final EditText editText, final String insertText, final boolean moveCursor) {
+ public static void insertAtPosition(final EditText editText, final String insertText, final boolean moveCursor) {
int selectionStart = editText.getSelectionStart();
int selectionEnd = editText.getSelectionEnd();
int start = Math.min(selectionStart, selectionEnd);
@@ -3459,4 +3462,24 @@ public class cgBase {
int newCursor = moveCursor ? start + completeText.length() : start;
editText.setSelection(newCursor, newCursor);
}
+
+ public static LinearLayout createStarRating(final float value, final int count, final Context context) {
+ LayoutInflater inflater = LayoutInflater.from(context);
+ LinearLayout starsContainer = new LinearLayout(context);
+ starsContainer.setOrientation(LinearLayout.HORIZONTAL);
+
+ for (int i = 0; i < count; i++) {
+ ImageView star = (ImageView) inflater.inflate(R.layout.star, null);
+ if (value - i >= 0.75) {
+ star.setImageResource(R.drawable.star_on);
+ } else if (value - i >= 0.25) {
+ star.setImageResource(R.drawable.star_half);
+ } else {
+ star.setImageResource(R.drawable.star_off);
+ }
+ starsContainer.addView(star);
+ }
+
+ return starsContainer;
+ }
}
diff --git a/main/src/cgeo/geocaching/cgeodetail.java b/main/src/cgeo/geocaching/cgeodetail.java
index c357202..61c67c0 100644
--- a/main/src/cgeo/geocaching/cgeodetail.java
+++ b/main/src/cgeo/geocaching/cgeodetail.java
@@ -1202,17 +1202,8 @@ public class cgeodetail extends AbstractActivity {
itemName.setText(name);
itemValue.setText(String.format("%.1f", value) + ' ' + res.getString(R.string.cache_rating_of) + " 5");
- for (int i = 0; i <= 4; i++) {
- ImageView star = (ImageView) inflater.inflate(R.layout.star, null);
- if ((value - i) >= 1.0) {
- star.setImageResource(R.drawable.star_on);
- } else if ((value - i) > 0.0) {
- star.setImageResource(R.drawable.star_half);
- } else {
- star.setImageResource(R.drawable.star_off);
- }
- itemStars.addView(star, (1 + i));
- }
+ itemStars.addView(cgBase.createStarRating(value, 5, this), 1);
+
detailsList.addView(itemLayout);
return itemLayout;
}
diff --git a/main/src/cgeo/geocaching/cgeopopup.java b/main/src/cgeo/geocaching/cgeopopup.java
index e8d4d19..8c9357a 100644
--- a/main/src/cgeo/geocaching/cgeopopup.java
+++ b/main/src/cgeo/geocaching/cgeopopup.java
@@ -627,17 +627,8 @@ public class cgeopopup extends AbstractActivity {
itemName.setText(res.getString(R.string.cache_rating));
itemValue.setText(String.format("%.1f", rating) + ' ' + res.getString(R.string.cache_rating_of) + " 5");
- for (int i = 0; i <= 4; i++) {
- ImageView star = (ImageView) inflater.inflate(R.layout.star, null);
- if ((rating - i) >= 1.0) {
- star.setImageResource(R.drawable.star_on);
- } else if ((rating - i) > 0.0) {
- star.setImageResource(R.drawable.star_half);
- } else {
- star.setImageResource(R.drawable.star_off);
- }
- itemStars.addView(star, (1 + i));
- }
+ itemStars.addView(cgBase.createStarRating(rating, 5, this), 1);
+
if (votes != null) {
final TextView itemAddition = (TextView) itemLayout.findViewById(R.id.addition);
itemAddition.setText("(" + votes + ")");