diff options
Diffstat (limited to 'main/src/cgeo/geocaching/activity/AbstractActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/activity/AbstractActivity.java | 55 |
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); + } + } |
