aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/activity/AbstractActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/activity/AbstractActivity.java')
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java55
1 files changed, 54 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 941cd08..8e8ad9d 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -1,18 +1,24 @@
package cgeo.geocaching.activity;
+import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.compatibility.Compatibility;
+import cgeo.geocaching.network.Network;
import android.app.Activity;
+import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
public abstract class AbstractActivity extends Activity implements IAbstractActivity {
@@ -82,7 +88,7 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
cgBase.initialize(app);
// Restore cookie store if needed
- cgBase.restoreCookieStore(Settings.getCookieStore());
+ Network.restoreCookieStore(Settings.getCookieStore());
ActivityMixin.keepScreenOn(this, keepScreenOn);
}
@@ -103,4 +109,51 @@ public abstract class AbstractActivity extends Activity implements IAbstractActi
ActivityMixin.invalidateOptionsMenu(this);
}
+ 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;
+ }
+
+ /**
+ * insert text into the EditText at the current cursor position
+ *
+ * @param editText
+ * @param insertText
+ * @param moveCursor
+ * place the cursor after the inserted text
+ */
+ 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);
+ int end = Math.max(selectionStart, selectionEnd);
+
+ final String content = editText.getText().toString();
+ String completeText;
+ if (start > 0 && !Character.isWhitespace(content.charAt(start - 1))) {
+ completeText = " " + insertText;
+ } else {
+ completeText = insertText;
+ }
+
+ editText.getText().replace(start, end, completeText);
+ int newCursor = moveCursor ? start + completeText.length() : start;
+ editText.setSelection(newCursor, newCursor);
+ }
+
}