From db1f422328381d646613f56c1774ec2a3bd08c5c Mon Sep 17 00:00:00 2001 From: seven332 Date: Sat, 14 Nov 2015 02:30:09 +0800 Subject: [PATCH] Add watermark --- .../com/hippo/nimingban/client/ac/ACEngine.java | 10 ++++++++++ .../nimingban/client/ac/data/ACPostStruct.java | 1 + .../nimingban/client/ac/data/ACReplyStruct.java | 1 + .../com/hippo/nimingban/ui/TypeSendActivity.java | 13 +++++++++++++ .../java/com/hippo/nimingban/util/Settings.java | 7 +++++++ .../layout/activity_type_send_content_layout.xml | 13 +++++++++++++ app/src/main/res/values-zh-rCN/strings.xml | 4 ++++ app/src/main/res/values/strings.xml | 4 ++++ app/src/main/res/xml/config_settings.xml | 9 +++++++++ 9 files changed, 62 insertions(+) diff --git a/app/src/main/java/com/hippo/nimingban/client/ac/ACEngine.java b/app/src/main/java/com/hippo/nimingban/client/ac/ACEngine.java index c56e496f..b15b78bd 100644 --- a/app/src/main/java/com/hippo/nimingban/client/ac/ACEngine.java +++ b/app/src/main/java/com/hippo/nimingban/client/ac/ACEngine.java @@ -320,6 +320,11 @@ public static Call prepareReply(OkHttpClient okHttpClient, ACReplyStruct struct) builder.addPart( Headers.of("Content-Disposition", "form-data; name=\"resto\""), RequestBody.create(null, StringUtils.avoidNull(struct.resto))); + if (struct.water) { + builder.addPart( + Headers.of("Content-Disposition", "form-data; name=\"water\""), + RequestBody.create(null, "true")); + } InputStreamPipe isPipe = struct.image; if (isPipe != null) { @@ -499,6 +504,11 @@ public static Call prepareCreatePost(OkHttpClient okHttpClient, ACPostStruct str builder.addPart( Headers.of("Content-Disposition", "form-data; name=\"fid\""), RequestBody.create(null, StringUtils.avoidNull(struct.fid))); + if (struct.water) { + builder.addPart( + Headers.of("Content-Disposition", "form-data; name=\"water\""), + RequestBody.create(null, "true")); + } InputStreamPipe isPipe = struct.image; if (isPipe != null) { diff --git a/app/src/main/java/com/hippo/nimingban/client/ac/data/ACPostStruct.java b/app/src/main/java/com/hippo/nimingban/client/ac/data/ACPostStruct.java index 4df43806..63f964e4 100644 --- a/app/src/main/java/com/hippo/nimingban/client/ac/data/ACPostStruct.java +++ b/app/src/main/java/com/hippo/nimingban/client/ac/data/ACPostStruct.java @@ -27,4 +27,5 @@ public class ACPostStruct { public String fid; public InputStreamPipe image; public String imageType; + public boolean water; } diff --git a/app/src/main/java/com/hippo/nimingban/client/ac/data/ACReplyStruct.java b/app/src/main/java/com/hippo/nimingban/client/ac/data/ACReplyStruct.java index 8e604876..02bf581d 100644 --- a/app/src/main/java/com/hippo/nimingban/client/ac/data/ACReplyStruct.java +++ b/app/src/main/java/com/hippo/nimingban/client/ac/data/ACReplyStruct.java @@ -27,4 +27,5 @@ public class ACReplyStruct { public String resto; public InputStreamPipe image; public String imageType; + public boolean water; } diff --git a/app/src/main/java/com/hippo/nimingban/ui/TypeSendActivity.java b/app/src/main/java/com/hippo/nimingban/ui/TypeSendActivity.java index 60c28280..1346ecde 100644 --- a/app/src/main/java/com/hippo/nimingban/ui/TypeSendActivity.java +++ b/app/src/main/java/com/hippo/nimingban/ui/TypeSendActivity.java @@ -42,8 +42,10 @@ import android.view.ViewGroup; import android.webkit.MimeTypeMap; import android.widget.Button; +import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -139,6 +141,7 @@ public final class TypeSendActivity extends TranslucentActivity implements View. private EditText mName; private EditText mEmail; private EditText mTitle; + private CheckBox mWatermark; private TextView mMoreWritableItemsText; private View mSelectForum; private TextView mForumText; @@ -255,6 +258,7 @@ protected void onCreate(Bundle savedInstanceState) { mName = (EditText) findViewById(R.id.name); mEmail = (EditText) findViewById(R.id.email); mTitle = (EditText) findViewById(R.id.title); + mWatermark = (CheckBox) findViewById(R.id.watermark); mMoreWritableItemsText = (TextView) findViewById(R.id.more_writable_items_text); mSelectForum = findViewById(R.id.select_forum); mForumText = (TextView) mSelectForum.findViewById(R.id.forum_text); @@ -281,6 +285,13 @@ protected void onCreate(Bundle savedInstanceState) { drawable.addState(new int[]{}, VectorDrawable.create(this, R.drawable.ic_chevron_down)); mIndicator.setDrawable(drawable); + mWatermark.setChecked(Settings.getWatermark()); + LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) mWatermark.getLayoutParams(); + lp.leftMargin = mTitle.getPaddingLeft() - LayoutUtils.dp2pix(this, 5); + mWatermark.setLayoutParams(lp); + mWatermark.setPadding(mWatermark.getPaddingLeft() + LayoutUtils.dp2pix(this, 4), + mWatermark.getPaddingTop(), mWatermark.getPaddingRight(), mWatermark.getPaddingBottom()); + mWritableItem.setVisibility(View.GONE); if (mShare) { @@ -505,6 +516,7 @@ private void doReply() { struct.resto = mId; struct.image = mSeletedImageUri != null ? new UriInputStreamPipe(getApplicationContext(), mSeletedImageUri) : null; struct.imageType = mSeletedImageType; + struct.water = mWatermark.isChecked(); NMBRequest request = new NMBRequest(); request.setSite(mSite); @@ -525,6 +537,7 @@ private void doCreatePost() { struct.fid = mId; struct.image = mSeletedImageUri != null ? new UriInputStreamPipe(getApplicationContext(), mSeletedImageUri) : null; struct.imageType = mSeletedImageType; + struct.water = mWatermark.isChecked(); NMBRequest request = new NMBRequest(); request.setSite(mSite); diff --git a/app/src/main/java/com/hippo/nimingban/util/Settings.java b/app/src/main/java/com/hippo/nimingban/util/Settings.java index 289549ad..4ff9a03b 100644 --- a/app/src/main/java/com/hippo/nimingban/util/Settings.java +++ b/app/src/main/java/com/hippo/nimingban/util/Settings.java @@ -158,6 +158,9 @@ public static void putIntToStr(String key, int value) { public static final String KEY_COLOR_STATUS_BAR = "color_status_bar"; public static final boolean DEFAULT_COLOR_STATUS_BAR = true; + public static final String KEY_WATERMARK = "watermark"; + public static final boolean DEFAULT_WATERMARKD = true; + public static final String KEY_FEED_ID = "feed_id"; public static final String DEFAULT_FEED_ID = null; @@ -222,6 +225,10 @@ public static boolean getColorStatusBar() { return getBoolean(KEY_COLOR_STATUS_BAR, DEFAULT_COLOR_STATUS_BAR); } + public static boolean getWatermark() { + return getBoolean(KEY_WATERMARK, DEFAULT_WATERMARKD); + } + public static String getFeedId() { if (sExtendFeedId != null) { return sExtendFeedId; diff --git a/app/src/main/res/layout/activity_type_send_content_layout.xml b/app/src/main/res/layout/activity_type_send_content_layout.xml index bed3e44a..5132267d 100644 --- a/app/src/main/res/layout/activity_type_send_content_layout.xml +++ b/app/src/main/res/layout/activity_type_send_content_layout.xml @@ -153,6 +153,19 @@ android:layout_height="1dp" android:background="?attr/colorDivider"/> + + + + 名称 E-mail 标题 + 水印 涂鸦 保存涂鸦? @@ -225,6 +226,9 @@ 保存饼干至外置存储器 恢复饼干 从外置存储器的饼干文件中恢复饼干 + 水印 + 在你上传的图片中显示水印 + 不在你上传的图片中显示水印 订阅 ID 你的订阅 ID 是 %s 自动存图 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 31f69938..8d65d8bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -190,6 +190,7 @@ Name E-mail Title + Watermark Doodle Save doodle? @@ -232,6 +233,9 @@ Save cookies to external storage Restore cookies Restore cookies from a file in external storage + Watermark + Show watermark in the image you upload + Don\'t show watermark in the image you upload Feed id You feed id is %s Save image when loaded diff --git a/app/src/main/res/xml/config_settings.xml b/app/src/main/res/xml/config_settings.xml index 63bc0e47..cc90012f 100644 --- a/app/src/main/res/xml/config_settings.xml +++ b/app/src/main/res/xml/config_settings.xml @@ -33,6 +33,15 @@ android:title="@string/main_restore_cookies" android:summary="@string/main_restore_cookies_summary"/> + +