Skip to content

Commit

Permalink
Improve editor usability
Browse files Browse the repository at this point in the history
  • Loading branch information
gsantner committed Nov 20, 2017
1 parent 875a679 commit b2787e4
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,15 @@
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatImageButton;
import android.support.v7.widget.Toolbar;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.view.Menu;
Expand All @@ -36,6 +39,7 @@
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
Expand Down Expand Up @@ -156,6 +160,7 @@ protected void onCreate(Bundle savedInstanceState) {
}
initMemeSettings(savedInstanceState);
initMoarControlsContainer();
initCaptionButtons();
}
if (savedInstanceState != null
&& savedInstanceState.containsKey("captionPosition")
Expand All @@ -168,6 +173,13 @@ protected void onCreate(Bundle savedInstanceState) {
}
}

private void initCaptionButtons() {
final ImageButton buttonTextSettings = findViewById(R.id.settings_caption);
final ImageButton buttonOk = findViewById(R.id.done_caption);
buttonTextSettings.setColorFilter(R.color.black);
buttonOk.setColorFilter(R.color.black);
}


public void initMemeSettings(Bundle savedInstanceState) {
MemeData.Font lastUsedFont = getFont(_app.settings.getLastUsedFont());
Expand Down Expand Up @@ -314,6 +326,11 @@ public void onBackPressed() {
return;
}

if (_editBar.getVisibility() != View.GONE) {
settingsDone();
return;
}

// Auto save if option checked
if (hasTextInput && _app.settings.isAutoSaveMeme()) {
if (saveMemeToFilesystem(false)) {
Expand Down Expand Up @@ -345,17 +362,16 @@ public void run() {

@OnTouch(R.id.memecreate__activity__image)
public boolean onImageTouched(View view, MotionEvent event) {
if (_editBar.getVisibility() == View.VISIBLE &&
!_create_caption.getText().toString().isEmpty()) {
if (_editBar.getVisibility() == View.VISIBLE && !_create_caption.getText().toString().isEmpty()) {
onMemeEditorObjectChanged();
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
float _heightOfPic = view.getMeasuredHeight();
float _heightOfEvent = event.getY();
float heightOfPic = view.getMeasuredHeight();
float heightOfEvent = event.getY();

int _position = (int) (_heightOfEvent / _heightOfPic * 100);
int position = (int) (heightOfEvent / heightOfPic * 100);

_isBottom = _position >= 50;
_isBottom = position >= 50;

_editBar.setVisibility(View.VISIBLE);

Expand Down Expand Up @@ -429,10 +445,12 @@ public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case R.id.action_share: {
recreateImage(true);
_app.shareBitmapToOtherApp(_lastBitmap, this);
return true;
}
case R.id.action_save: {
recreateImage(true);
saveMemeToFilesystem(true);
return true;
}
Expand Down Expand Up @@ -770,12 +788,19 @@ public Bitmap makeMemeImageFromElements(Context c, MemeEditorElements memeEditor
for (MemeEditorElements.EditorCaption caption : _memeEditorElements.getCaptions()) {
String textString = caption.isAllCaps() ? caption.getText().toUpperCase() : caption.getText();

textString = textString.isEmpty() ? getString(R.string.empty_caption_hint) : textString;
if (TextUtils.isEmpty(textString)) {
textString = getString(R.string.empty_caption_hint);
paint.setTextSize((int) (scale * caption.getFontSize() * 5 / 8));
paint.setTypeface(caption.getFont().typeFace);
paint.setColor(caption.getBorderColor());
paint.setStyle(Paint.Style.FILL_AND_STROKE);
} else {
paint.setTextSize((int) (scale * caption.getFontSize()));
paint.setTypeface(caption.getFont().typeFace);
paint.setColor(caption.getBorderColor());
paint.setStyle(Paint.Style.FILL_AND_STROKE);
}

paint.setTextSize((int) (caption.getFontSize() * scale));
paint.setTypeface(caption.getFont().typeFace);
paint.setColor(caption.getBorderColor());
paint.setStyle(Paint.Style.FILL_AND_STROKE);

// set text width to canvas width minus 16dp padding
int textWidth = canvas.getWidth() - (int) (16 * scale);
Expand Down Expand Up @@ -834,6 +859,18 @@ public void onMemeEditorObjectChanged() {
_lastBitmap = bmp;
}

// createForSaving == true will make template text elements empty
public void recreateImage(boolean createForSaving) {
if (createForSaving) {
for (MemeEditorElements.EditorCaption caption : _memeEditorElements.getCaptions()) {
if (TextUtils.isEmpty(caption.getText())) {
caption.setText(" ");
}
}
}
onMemeEditorObjectChanged();
}

@OnClick(R.id.memecreate__moar_controls__layout)
void onBottomContainerClicked() {
toggleMoarControls(true, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,17 @@ public static class EditorCaption implements Serializable {
private int _textColor = MemeLibConfig.MEME_COLORS.DEFAULT_TEXT;
private int _borderColor = MemeLibConfig.MEME_COLORS.DEFAULT_BORDER;
private boolean _allCaps = true;
private String _text = "";

public EditorCaption(MemeData.Font font, int positionType) {
_font = font;

// TODO: Really load this from config if possible
_captionConf = new MemeConfig.Caption();
_captionConf.setPositionType(positionType);
_captionConf.setText("");
// end to-do
_text = _captionConf.getText();
}

public EditorCaption(MemeData.Font font, MemeConfig.Caption captionConf) {
Expand Down Expand Up @@ -141,11 +147,11 @@ public void setAllCaps(boolean allCaps) {
}

public String getText() {
return _captionConf.getText();
return _text;
}

public void setText(String text) {
_captionConf.setText(text);
_text = text;
}

@Override
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/layout/memecreate__content.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
android:layout_height="0dp"
android:layout_weight="100"
android:orientation="vertical"
android:clickable="true"
android:paddingBottom="@dimen/default_margin_2">

<LinearLayout
Expand Down
46 changes: 23 additions & 23 deletions app/src/main/res/layout/text_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,29 @@
android:layout_height="match_parent"
android:padding="20dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/default_margin_1"
android:gravity="center_vertical"
android:weightSum="100">

<TextView
style="@style/AppTheme.MemeCreatorCaptionText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="30"
android:text="Font" />

<Spinner
android:id="@+id/meme_dialog__dropdown_font"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_weight="70"
android:spinnerMode="dropdown" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand Down Expand Up @@ -101,27 +124,4 @@
android:layout_weight="70"
android:checked="true" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/default_margin_1"
android:gravity="center_vertical"
android:weightSum="100">

<TextView
style="@style/AppTheme.MemeCreatorCaptionText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:text="Font" />

<Spinner
android:id="@+id/meme_dialog__dropdown_font"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_weight="80"
android:spinnerMode="dropdown" />
</LinearLayout>
</LinearLayout>
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,6 @@
<string name="edit_title">Titel editieren</string>
<string name="hide">Verstecken</string>
<string name="unhide">Wieder einblenden</string>
<string name="creator__hint_caption">Text eingeben</string>
<string name="empty_caption_hint">Hier tippen um Caption einzufügen</string>
</resources>

0 comments on commit b2787e4

Please sign in to comment.