From 97ba6219c718feeae144183cf258b40bfb8e56c1 Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Tue, 4 Sep 2018 11:25:55 +0300 Subject: [PATCH 01/10] create content activity layout init --- app/src/main/AndroidManifest.xml | 3 + .../activities/CreateContentActivity.java | 56 +++++++++++++++++++ .../activities/board/BoardActivity.java | 50 ++++++++--------- .../res/layout/activity_create_content.xml | 33 +++++++++++ 4 files changed, 114 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java create mode 100644 app/src/main/res/layout/activity_create_content.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cd4582c4..decb9b42 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,6 +20,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java new file mode 100644 index 00000000..bcc0a334 --- /dev/null +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java @@ -0,0 +1,56 @@ +package gr.thmmy.mthmmy.activities; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.view.inputmethod.InputConnection; + +import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.editorview.EditorView; +import gr.thmmy.mthmmy.editorview.EmojiKeyboard; + +public class CreateContentActivity extends AppCompatActivity implements EmojiKeyboard.EmojiKeyboardOwner { + + EditorView contentEditor; + EmojiKeyboard emojiKeyboard; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_create_content); + + emojiKeyboard = findViewById(R.id.emoji_keyboard); + + contentEditor = findViewById(R.id.main_content_editorview); + setEmojiKeyboardInputConnection(contentEditor.getInputConnection()); + contentEditor.setEmojiKeyboardOwner(this); + contentEditor.setOnSubmitListener(v -> { + + }); + } + + @Override + public void setEmojiKeyboardVisible(boolean visible) { + emojiKeyboard.setVisibility(visible ? View.VISIBLE : View.GONE); + } + + @Override + public boolean isEmojiKeyboardVisible() { + return emojiKeyboard.getVisibility() == View.VISIBLE; + } + + @Override + public void setEmojiKeyboardInputConnection(InputConnection ic) { + emojiKeyboard.setInputConnection(ic); + } + + @Override + public void onBackPressed() { + if (emojiKeyboard.getVisibility() == View.VISIBLE) { + emojiKeyboard.setVisibility(View.GONE); + contentEditor.updateEmojiKeyboardVisibility(); + } else { + super.onBackPressed(); + } + } +} diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java index 75d0bea8..04a03503 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java @@ -1,9 +1,11 @@ package gr.thmmy.mthmmy.activities.board; +import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -20,6 +22,8 @@ import java.util.ArrayList; import java.util.Objects; import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.activities.CreateContentActivity; +import gr.thmmy.mthmmy.activities.LoginActivity; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.model.Board; import gr.thmmy.mthmmy.model.Bookmark; @@ -95,37 +99,27 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo progressBar = findViewById(R.id.progressBar); newTopicFAB = findViewById(R.id.board_fab); - newTopicFAB.setEnabled(false); - newTopicFAB.hide(); - /*if (!sessionManager.isLoggedIn()) newTopicFAB.hide(); + if (!sessionManager.isLoggedIn()) newTopicFAB.hide(); else { - newTopicFAB.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (sessionManager.isLoggedIn()) { - //TODO create topic - } else { - new AlertDialog.Builder(BoardActivity.this) - .setMessage("You need to be logged in to create a new topic!") - .setPositiveButton("Login", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - Intent intent = new Intent(BoardActivity.this, LoginActivity.class); - startActivity(intent); - finish(); - overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); - } - }) - .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - } - }) - .show(); - } + newTopicFAB.setOnClickListener(view -> { + if (sessionManager.isLoggedIn()) { + //TODO create topic + startActivity(new Intent(this, CreateContentActivity.class)); + } else { + new AlertDialog.Builder(BoardActivity.this) + .setMessage("You need to be logged in to create a new topic!") + .setPositiveButton("Login", (dialogInterface, i) -> { + Intent intent = new Intent(BoardActivity.this, LoginActivity.class); + startActivity(intent); + finish(); + overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); + }) + .setNegativeButton("Cancel", (dialogInterface, i) -> { + }) + .show(); } }); - }*/ + } boardAdapter = new BoardAdapter(getApplicationContext(), parsedSubBoards, parsedTopics); RecyclerView mainContent = findViewById(R.id.board_recycler_view); diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml new file mode 100644 index 00000000..35bb9143 --- /dev/null +++ b/app/src/main/res/layout/activity_create_content.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + \ No newline at end of file From 3ae5ca276bf014e569fed3e84253c24897aeeaf9 Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Tue, 4 Sep 2018 12:21:09 +0300 Subject: [PATCH 02/10] complete new topic task --- .../activities/CreateContentActivity.java | 53 ++++++++++- .../thmmy/mthmmy/activities/NewTopicTask.java | 95 +++++++++++++++++++ .../activities/board/BoardActivity.java | 14 ++- .../res/layout/activity_create_content.xml | 87 ++++++++++++----- app/src/main/res/values/strings.xml | 3 + 5 files changed, 224 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java index bcc0a334..48610cb7 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java @@ -1,31 +1,57 @@ package gr.thmmy.mthmmy.activities; +import android.content.Intent; import android.os.Bundle; +import android.support.design.widget.TextInputLayout; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.inputmethod.InputConnection; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.Toolbar; import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.base.BaseApplication; import gr.thmmy.mthmmy.editorview.EditorView; import gr.thmmy.mthmmy.editorview.EmojiKeyboard; +import me.zhanghai.android.materialprogressbar.MaterialProgressBar; +import timber.log.Timber; -public class CreateContentActivity extends AppCompatActivity implements EmojiKeyboard.EmojiKeyboardOwner { +public class CreateContentActivity extends AppCompatActivity implements EmojiKeyboard.EmojiKeyboardOwner, + NewTopicTask.NewTopicTaskCallbacks { - EditorView contentEditor; - EmojiKeyboard emojiKeyboard; + public final static String EXTRA_NEW_TOPIC_URL = "new-topic-extra"; + + private EditorView contentEditor; + private EmojiKeyboard emojiKeyboard; + private TextInputLayout subjectInput; + private MaterialProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_content); + TextView toolbarTitle = findViewById(R.id.toolbar_title); + toolbarTitle.setText(R.string.new_topic_toolbar); + + progressBar = findViewById(R.id.progressBar); + + Intent callingIntent = getIntent(); + String newTopicUrl = callingIntent.getStringExtra(EXTRA_NEW_TOPIC_URL); + emojiKeyboard = findViewById(R.id.emoji_keyboard); + subjectInput = findViewById(R.id.subject_input); + contentEditor = findViewById(R.id.main_content_editorview); setEmojiKeyboardInputConnection(contentEditor.getInputConnection()); contentEditor.setEmojiKeyboardOwner(this); contentEditor.setOnSubmitListener(v -> { - + if (newTopicUrl != null) { + new NewTopicTask(this).execute(newTopicUrl, subjectInput.getEditText().getText().toString(), + contentEditor.getText().toString()); + } }); } @@ -53,4 +79,23 @@ public class CreateContentActivity extends AppCompatActivity implements EmojiKey super.onBackPressed(); } } + + @Override + public void onNewTopicTaskStarted() { + Timber.i("New topic creation started"); + progressBar.setVisibility(View.VISIBLE); + } + + @Override + public void onNewTopicTaskFinished(boolean success) { + progressBar.setVisibility(View.INVISIBLE); + if (success) { + Timber.i("New topic created successfully"); + finish(); + } else { + Timber.w("New topic creation failed"); + Toast.makeText(getBaseContext(), "Failed to create new topic!", Toast.LENGTH_LONG).show(); + finish(); + } + } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java new file mode 100644 index 00000000..322cac43 --- /dev/null +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java @@ -0,0 +1,95 @@ +package gr.thmmy.mthmmy.activities; + +import android.os.AsyncTask; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; + +import java.io.IOException; + +import gr.thmmy.mthmmy.base.BaseApplication; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import timber.log.Timber; + +import static gr.thmmy.mthmmy.activities.topic.Posting.replyStatus; + +public class NewTopicTask extends AsyncTask { + + private NewTopicTaskCallbacks listener; + + public NewTopicTask(NewTopicTaskCallbacks listener){ + this.listener = listener; + } + + @Override + protected void onPreExecute() { + listener.onNewTopicTaskStarted(); + } + + @Override + protected Boolean doInBackground(String... strings) { + Request request = new Request.Builder() + .url(strings[0] + ";wap2") + .build(); + + OkHttpClient client = BaseApplication.getInstance().getClient(); + + Document document; + String seqnum, sc, topic, createTopicUrl; + try { + Response response = client.newCall(request).execute(); + document = Jsoup.parse(response.body().string()); + + seqnum = document.select("input[name=seqnum]").first().attr("value"); + sc = document.select("input[name=sc]").first().attr("value"); + topic = document.select("input[name=topic]").first().attr("value"); + createTopicUrl = document.select("form").first().attr("action"); + + RequestBody postBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("message", strings[2]) + .addFormDataPart("seqnum", seqnum) + .addFormDataPart("sc", sc) + .addFormDataPart("subject", strings[1]) + .addFormDataPart("topic", topic) + .build(); + + Request post = new Request.Builder() + .url(createTopicUrl) + .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36") + .post(postBody) + .build(); + + try { + client.newCall(post).execute(); + Response response2 = client.newCall(post).execute(); + switch (replyStatus(response2)) { + case SUCCESSFUL: + BaseApplication.getInstance().logFirebaseAnalyticsEvent("new_topic_creation", null); + return true; + default: + Timber.e("Malformed post. Request string: %s", post.toString()); + return false; + } + } catch (IOException e) { + return false; + } + } catch (IOException e) { + return false; + } + } + + @Override + protected void onPostExecute(Boolean success) { + listener.onNewTopicTaskFinished(success); + } + + public interface NewTopicTaskCallbacks { + void onNewTopicTaskStarted(); + void onNewTopicTaskFinished(boolean success); + } +} diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java index 04a03503..9b905fb1 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java @@ -55,6 +55,7 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo private String boardUrl; private String boardTitle; private String parsedTitle; + private String newTopicUrl; private int numberOfPages = -1; private int pagesLoaded = 0; @@ -104,7 +105,11 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo newTopicFAB.setOnClickListener(view -> { if (sessionManager.isLoggedIn()) { //TODO create topic - startActivity(new Intent(this, CreateContentActivity.class)); + if (newTopicUrl != null) { + Intent intent = new Intent(this, CreateContentActivity.class); + intent.putExtra(CreateContentActivity.EXTRA_NEW_TOPIC_URL, newTopicUrl); + startActivity(intent); + } } else { new AlertDialog.Builder(BoardActivity.this) .setMessage("You need to be logged in to create a new topic!") @@ -209,6 +214,13 @@ public class BoardActivity extends BaseActivity implements BoardAdapter.OnLoadMo //It just means this board has only one page of topics. } } + + //Finds the url needed to create a new topic + Element newTopicButton = boardPage.select("a:has(img[alt=Start new topic])").first(); + if (newTopicButton == null) + newTopicButton = boardPage.select("a:has(img[alt=Νέο θέμα])").first(); + if (newTopicButton != null) newTopicUrl = newTopicButton.attr("href"); + { //Finds sub boards Elements subBoardRows = boardPage.select("div.tborder>table>tbody>tr"); if (subBoardRows != null && !subBoardRows.isEmpty()) { diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 35bb9143..220de6e4 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -1,33 +1,74 @@ - - - - - + android:layout_width="match_parent"> - + android:layout_height="match_parent"> + + + + + + + + + + + + + + + + + + - + android:layout_height="@dimen/progress_bar_height" + android:indeterminate="true" + android:visibility="invisible" + app:layout_anchor="@id/appbar" + app:layout_anchorGravity="bottom|center" + app:mpb_indeterminateTint="@color/accent" + app:mpb_progressStyle="horizontal" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4b8013a4..a5308050 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,4 +180,7 @@ Link URL Link text Required + + + New topic From 5011fbf4ded8ac740f927969ddf28bc5b5560f1f Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Tue, 4 Sep 2018 12:35:50 +0300 Subject: [PATCH 03/10] appbar fixes --- app/src/main/AndroidManifest.xml | 6 +++++- app/src/main/res/layout/activity_create_content.xml | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index decb9b42..b9c48bf4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -149,7 +149,11 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 220de6e4..4e596664 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -5,7 +5,8 @@ xmlns:tools="http://schemas.android.com/tools" tools:context=".activities.CreateContentActivity" android:layout_height="match_parent" - android:layout_width="match_parent"> + android:layout_width="match_parent" + android:fitsSystemWindows="true"> Date: Tue, 4 Sep 2018 12:57:17 +0300 Subject: [PATCH 04/10] more appbar fixes --- .../mthmmy/activities/CreateContentActivity.java | 14 ++++++++++---- .../main/res/layout/activity_create_content.xml | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java index 48610cb7..9b1bcede 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java @@ -4,14 +4,13 @@ import android.content.Intent; import android.os.Bundle; import android.support.design.widget.TextInputLayout; import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; import android.view.View; import android.view.inputmethod.InputConnection; import android.widget.TextView; import android.widget.Toast; -import android.widget.Toolbar; import gr.thmmy.mthmmy.R; -import gr.thmmy.mthmmy.base.BaseApplication; import gr.thmmy.mthmmy.editorview.EditorView; import gr.thmmy.mthmmy.editorview.EmojiKeyboard; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; @@ -32,8 +31,15 @@ public class CreateContentActivity extends AppCompatActivity implements EmojiKey super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_content); - TextView toolbarTitle = findViewById(R.id.toolbar_title); - toolbarTitle.setText(R.string.new_topic_toolbar); + //Initialize toolbar + Toolbar toolbar = findViewById(R.id.toolbar); + toolbar.setTitle("Create topic"); + setSupportActionBar(toolbar); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + } + ((TextView) findViewById(R.id.toolbar_title)).setText("Create topic"); progressBar = findViewById(R.id.progressBar); diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 4e596664..9602df66 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -51,7 +51,8 @@ android:id="@+id/main_content_editorview" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@id/subject_input" /> + android:layout_below="@id/subject_input" + app:hint="topic message"/> Date: Wed, 5 Sep 2018 12:11:37 +0300 Subject: [PATCH 05/10] include app signature in new topic --- .../mthmmy/activities/CreateContentActivity.java | 14 +++++++++++++- .../gr/thmmy/mthmmy/activities/NewTopicTask.java | 9 +++++++-- .../mthmmy/activities/topic/tasks/ReplyTask.java | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java index 9b1bcede..b46d401a 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java @@ -1,7 +1,9 @@ package gr.thmmy.mthmmy.activities; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.design.widget.TextInputLayout; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; @@ -11,8 +13,11 @@ import android.widget.TextView; import android.widget.Toast; import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.activities.settings.SettingsActivity; +import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.editorview.EditorView; import gr.thmmy.mthmmy.editorview.EmojiKeyboard; +import gr.thmmy.mthmmy.session.SessionManager; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; import timber.log.Timber; @@ -55,7 +60,14 @@ public class CreateContentActivity extends AppCompatActivity implements EmojiKey contentEditor.setEmojiKeyboardOwner(this); contentEditor.setOnSubmitListener(v -> { if (newTopicUrl != null) { - new NewTopicTask(this).execute(newTopicUrl, subjectInput.getEditText().getText().toString(), + boolean includeAppSignature = true; + SessionManager sessionManager = BaseActivity.getSessionManager(); + if (sessionManager.isLoggedIn()) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + includeAppSignature = prefs.getBoolean(SettingsActivity.POSTING_APP_SIGNATURE_ENABLE_KEY, true); + } + + new NewTopicTask(this, includeAppSignature).execute(newTopicUrl, subjectInput.getEditText().getText().toString(), contentEditor.getText().toString()); } }); diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java index 322cac43..c8dc34d5 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java @@ -20,9 +20,11 @@ import static gr.thmmy.mthmmy.activities.topic.Posting.replyStatus; public class NewTopicTask extends AsyncTask { private NewTopicTaskCallbacks listener; + private boolean includeAppSignature; - public NewTopicTask(NewTopicTaskCallbacks listener){ + public NewTopicTask(NewTopicTaskCallbacks listener, boolean includeAppSignature){ this.listener = listener; + this.includeAppSignature = includeAppSignature; } @Override @@ -49,9 +51,12 @@ public class NewTopicTask extends AsyncTask { topic = document.select("input[name=topic]").first().attr("value"); createTopicUrl = document.select("form").first().attr("action"); + final String appSignature = "\n[right][size=7pt][i]sent from [url=https://play.google.com/store/apps/" + + "details?id=gr.thmmy.mthmmy]mTHMMY[/url][/i][/size][/right]"; + RequestBody postBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) - .addFormDataPart("message", strings[2]) + .addFormDataPart("message", strings[2] + (includeAppSignature ? appSignature : "")) .addFormDataPart("seqnum", seqnum) .addFormDataPart("sc", sc) .addFormDataPart("subject", strings[1]) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java index 63c2955b..033316d2 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java @@ -31,7 +31,7 @@ public class ReplyTask extends AsyncTask { @Override protected Boolean doInBackground(String... args) { final String sentFrommTHMMY = includeAppSignature - ? "\n[right][size=7pt][i]sent from [url=https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy]mTHMMY[/url][/i] [/size][/right]" + ? "\n[right][size=7pt][i]sent from [url=https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy]mTHMMY[/url][/i][/size][/right]" : ""; RequestBody postBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) From 98e62f07ee8b201ab79efd12de49adbefbbe630c Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Thu, 6 Sep 2018 13:30:54 +0300 Subject: [PATCH 06/10] minor UI adjustment --- app/src/main/res/layout/activity_create_content.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 9602df66..f3b77e09 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -40,6 +40,7 @@ android:layout_width="240dp" android:layout_height="wrap_content" android:layout_below="@id/appbar" + android:layout_margin="16dp" android:hint="@string/subject"> Date: Fri, 7 Sep 2018 14:11:35 +0300 Subject: [PATCH 07/10] project structure --- app/src/main/AndroidManifest.xml | 2 +- .../java/gr/thmmy/mthmmy/activities/board/BoardActivity.java | 2 +- .../activities/{ => create_content}/CreateContentActivity.java | 3 ++- .../mthmmy/activities/{ => create_content}/NewTopicTask.java | 2 +- app/src/main/res/layout/activity_create_content.xml | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) rename app/src/main/java/gr/thmmy/mthmmy/activities/{ => create_content}/CreateContentActivity.java (97%) rename app/src/main/java/gr/thmmy/mthmmy/activities/{ => create_content}/NewTopicTask.java (98%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b9c48bf4..3b37c299 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -150,7 +150,7 @@ diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java index 9b905fb1..556f23df 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardActivity.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Objects; import gr.thmmy.mthmmy.R; -import gr.thmmy.mthmmy.activities.CreateContentActivity; +import gr.thmmy.mthmmy.activities.create_content.CreateContentActivity; import gr.thmmy.mthmmy.activities.LoginActivity; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.model.Board; diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java similarity index 97% rename from app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java rename to app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java index b46d401a..44e025ed 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java @@ -1,4 +1,4 @@ -package gr.thmmy.mthmmy.activities; +package gr.thmmy.mthmmy.activities.create_content; import android.content.Intent; import android.content.SharedPreferences; @@ -13,6 +13,7 @@ import android.widget.TextView; import android.widget.Toast; import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.activities.create_content.NewTopicTask; import gr.thmmy.mthmmy.activities.settings.SettingsActivity; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.editorview.EditorView; diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/NewTopicTask.java similarity index 98% rename from app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java rename to app/src/main/java/gr/thmmy/mthmmy/activities/create_content/NewTopicTask.java index c8dc34d5..253280eb 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/NewTopicTask.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/NewTopicTask.java @@ -1,4 +1,4 @@ -package gr.thmmy.mthmmy.activities; +package gr.thmmy.mthmmy.activities.create_content; import android.os.AsyncTask; diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index f3b77e09..9578bd2d 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -3,7 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - tools:context=".activities.CreateContentActivity" + tools:context=".activities.create_content.CreateContentActivity" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> From f3bb24fd1f54a50997cc1b036e482656b40d1f4c Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Fri, 7 Sep 2018 14:14:46 +0300 Subject: [PATCH 08/10] minor stuff --- .../activities/create_content/CreateContentActivity.java | 3 +-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java index 44e025ed..524d022c 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java @@ -13,7 +13,6 @@ import android.widget.TextView; import android.widget.Toast; import gr.thmmy.mthmmy.R; -import gr.thmmy.mthmmy.activities.create_content.NewTopicTask; import gr.thmmy.mthmmy.activities.settings.SettingsActivity; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.editorview.EditorView; @@ -45,7 +44,7 @@ public class CreateContentActivity extends AppCompatActivity implements EmojiKey getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } - ((TextView) findViewById(R.id.toolbar_title)).setText("Create topic"); + ((TextView) findViewById(R.id.toolbar_title)).setText(R.string.create_topic); progressBar = findViewById(R.id.progressBar); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a5308050..53cbb9b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -183,4 +183,5 @@ New topic + Create topic From 5ad072e417dca84934e3f73481baf4ab6842ebae Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Fri, 7 Sep 2018 14:29:20 +0300 Subject: [PATCH 09/10] toolbar fix --- .../activities/create_content/CreateContentActivity.java | 8 ++------ app/src/main/res/layout/activity_create_content.xml | 8 +------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java index 524d022c..781bb9f3 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/create_content/CreateContentActivity.java @@ -5,11 +5,8 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.design.widget.TextInputLayout; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; import android.view.View; import android.view.inputmethod.InputConnection; -import android.widget.TextView; import android.widget.Toast; import gr.thmmy.mthmmy.R; @@ -21,7 +18,7 @@ import gr.thmmy.mthmmy.session.SessionManager; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; import timber.log.Timber; -public class CreateContentActivity extends AppCompatActivity implements EmojiKeyboard.EmojiKeyboardOwner, +public class CreateContentActivity extends BaseActivity implements EmojiKeyboard.EmojiKeyboardOwner, NewTopicTask.NewTopicTaskCallbacks { public final static String EXTRA_NEW_TOPIC_URL = "new-topic-extra"; @@ -37,14 +34,13 @@ public class CreateContentActivity extends AppCompatActivity implements EmojiKey setContentView(R.layout.activity_create_content); //Initialize toolbar - Toolbar toolbar = findViewById(R.id.toolbar); + toolbar = findViewById(R.id.toolbar); toolbar.setTitle("Create topic"); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } - ((TextView) findViewById(R.id.toolbar_title)).setText(R.string.create_topic); progressBar = findViewById(R.id.progressBar); diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 9578bd2d..04af0ea4 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -24,14 +24,8 @@ android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" - app:contentInsetStartWithNavigation="0dp" + android:gravity="center" app:popupTheme="@style/ToolbarTheme"> - - From b51cea6404d68eb4e8cb4c2521562a464cdcdc8a Mon Sep 17 00:00:00 2001 From: Thodoris1999 Date: Wed, 12 Sep 2018 16:27:00 +0300 Subject: [PATCH 10/10] fix dialog theme, make subject one line --- .../main/java/gr/thmmy/mthmmy/editorview/EditorView.java | 2 +- app/src/main/res/layout/activity_create_content.xml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/editorview/EditorView.java b/app/src/main/java/gr/thmmy/mthmmy/editorview/EditorView.java index a4ccc119..9eaac429 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/editorview/EditorView.java +++ b/app/src/main/java/gr/thmmy/mthmmy/editorview/EditorView.java @@ -201,7 +201,7 @@ public class EditorView extends LinearLayout { linkText.getEditText().setText( editText.getText().toString().substring(editText.getSelectionStart(), editText.getSelectionEnd())); } - new AlertDialog.Builder(context, R.style.AppCompatAlertDialogStyleAccent) + new AlertDialog.Builder(context, R.style.AppTheme_Dark_Dialog) .setTitle(R.string.dialog_create_link_title) .setView(dialogBody) .setPositiveButton(R.string.ok, (dialog, which) -> { diff --git a/app/src/main/res/layout/activity_create_content.xml b/app/src/main/res/layout/activity_create_content.xml index 04af0ea4..60028c0c 100644 --- a/app/src/main/res/layout/activity_create_content.xml +++ b/app/src/main/res/layout/activity_create_content.xml @@ -39,7 +39,11 @@ + android:layout_height="wrap_content" + android:lines="1" + android:maxLines="1" + android:ellipsize="end" + android:inputType="text"/>