mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2025-12-08 19:05:54 +00:00
this commit adds issue/pr number to feeds comment, enhance signature by adding fasthub as a link, removed link underline and fixes commit comment update.
This commit is contained in:
parent
771d616bea
commit
eb80cfb5cd
@ -3,6 +3,7 @@ package com.fastaccess.provider.markdown;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.webkit.MimeTypeMap;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ import com.fastaccess.provider.scheme.SchemeParser;
|
||||
import com.fastaccess.provider.timeline.handler.BetterLinkMovementExtended;
|
||||
import com.fastaccess.provider.timeline.handler.DrawableHandler;
|
||||
import com.fastaccess.provider.timeline.handler.ItalicHandler;
|
||||
import com.fastaccess.provider.timeline.handler.LinkHandler;
|
||||
import com.fastaccess.provider.timeline.handler.ListsHandler;
|
||||
import com.fastaccess.provider.timeline.handler.MarginHandler;
|
||||
import com.fastaccess.provider.timeline.handler.PreTagHandler;
|
||||
@ -73,6 +74,7 @@ public class HtmlHelper {
|
||||
mySpanner.registerHandler("del", new StrikethroughHandler());
|
||||
mySpanner.registerHandler("sub", new SubScriptHandler());
|
||||
mySpanner.registerHandler("sup", new SuperScriptHandler());
|
||||
mySpanner.registerHandler("a", new LinkHandler());
|
||||
TableHandler tableHandler = new TableHandler();
|
||||
tableHandler.setTextColor(ViewHelper.generateTextColor(windowBackground));
|
||||
WindowManager windowManager = (WindowManager) textView.getContext().getSystemService(Context.WINDOW_SERVICE);
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
package com.fastaccess.provider.timeline.handler;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.text.SpannableStringBuilder;
|
||||
|
||||
import com.zzhoujay.markdown.style.LinkSpan;
|
||||
|
||||
import net.nightwhistler.htmlspanner.TagNodeHandler;
|
||||
|
||||
import org.htmlcleaner.TagNode;
|
||||
|
||||
/**
|
||||
* Created by Kosh on 10 May 2017, 8:46 PM
|
||||
*/
|
||||
|
||||
public class LinkHandler extends TagNodeHandler {
|
||||
private final static int linkColor = Color.parseColor("#4078C0");
|
||||
|
||||
@Override public void handleTagNode(TagNode node, SpannableStringBuilder spannableStringBuilder, int start, int end) {
|
||||
String href = node.getAttributeByName("href");
|
||||
spannableStringBuilder.setSpan(new LinkSpan(href, linkColor), start, end, 33);
|
||||
}
|
||||
}
|
||||
@ -56,7 +56,7 @@ public class FeedsViewHolder extends BaseViewHolder<Event> {
|
||||
EventsType type = eventsModel.getType();
|
||||
date.setGravity(Gravity.CENTER);
|
||||
date.setEventsIcon(type.getDrawableRes());
|
||||
String action = null;
|
||||
String action;
|
||||
if (type == EventsType.WatchEvent) {
|
||||
action = itemView.getResources().getString(type.getType()).toLowerCase();
|
||||
} else if (type == EventsType.PullRequestEvent) {
|
||||
@ -115,6 +115,11 @@ public class FeedsViewHolder extends BaseViewHolder<Event> {
|
||||
if (eventsModel.getPayload().getComment() != null) {
|
||||
description.setText(eventsModel.getPayload().getComment().getBody());
|
||||
description.setVisibility(View.VISIBLE);
|
||||
if (eventsModel.getPayload().getIssue() != null) {
|
||||
number = "#" + eventsModel.getPayload().getIssue().getNumber();
|
||||
} else if (eventsModel.getPayload().getPullRequest() != null) {
|
||||
number = "#" + eventsModel.getPayload().getPullRequest().getNumber();
|
||||
}
|
||||
} else if (eventsModel.getPayload().getIssue() != null) {
|
||||
number = "#" + eventsModel.getPayload().getIssue().getNumber();
|
||||
description.setText(eventsModel.getPayload().getIssue().getTitle());
|
||||
@ -131,7 +136,8 @@ public class FeedsViewHolder extends BaseViewHolder<Event> {
|
||||
description.setText("");
|
||||
description.setVisibility(View.GONE);
|
||||
}
|
||||
spannableBuilder.append(eventsModel.getRepo() != null ? eventsModel.getRepo().getName() : "").append(number);
|
||||
spannableBuilder.append(eventsModel.getRepo() != null ? eventsModel.getRepo().getName() : "")
|
||||
.append(number);
|
||||
title.setText(spannableBuilder);
|
||||
date.setText(ParseDateFormat.getTimeAgo(eventsModel.getCreatedAt()));
|
||||
}
|
||||
|
||||
@ -63,10 +63,23 @@ public class IssuesViewHolder extends BaseViewHolder<Issue> {
|
||||
.append(" ");
|
||||
}
|
||||
if (!showRepoName) {
|
||||
builder.append("#")
|
||||
.append(String.valueOf(issueModel.getNumber())).append(" ")
|
||||
.append(issueModel.getClosedBy() != null ? issueModel.getClosedBy().getLogin() : issueModel.getUser().getLogin())
|
||||
.append(" ");
|
||||
if (issueModel.getState() == IssueState.closed) {
|
||||
if (issueModel.getClosedBy() == null) {
|
||||
builder.append("#")
|
||||
.append(String.valueOf(issueModel.getNumber())).append(" ")
|
||||
.append(" ");
|
||||
} else {
|
||||
builder.append("#")
|
||||
.append(String.valueOf(issueModel.getNumber())).append(" ")
|
||||
.append(issueModel.getClosedBy().getLogin())
|
||||
.append(" ");
|
||||
}
|
||||
} else {
|
||||
builder.append("#")
|
||||
.append(String.valueOf(issueModel.getNumber())).append(" ")
|
||||
.append(issueModel.getUser().getLogin())
|
||||
.append(" ");
|
||||
}
|
||||
}
|
||||
details.setText(builder
|
||||
.append(itemView.getResources().getString(issueModel.getState().getStatus()).toLowerCase())
|
||||
@ -80,6 +93,13 @@ public class IssuesViewHolder extends BaseViewHolder<Issue> {
|
||||
}
|
||||
}
|
||||
if (withAvatar && avatarLayout != null) {
|
||||
if (issueModel.getState() != null) {
|
||||
if (issueModel.getState() == IssueState.open) {
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
avatarLayout.setUrl(issueModel.getUser().getAvatarUrl(), issueModel.getUser().getLogin());
|
||||
avatarLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@ -28,7 +28,6 @@ import com.fastaccess.ui.widgets.ForegroundImageView;
|
||||
import com.fastaccess.ui.widgets.dialog.MessageDialogView;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnCheckedChanged;
|
||||
import butterknife.OnClick;
|
||||
import butterknife.OnTextChanged;
|
||||
import icepick.State;
|
||||
@ -40,6 +39,8 @@ import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
|
||||
|
||||
public class EditorActivity extends BaseActivity<EditorMvp.View, EditorPresenter> implements EditorMvp.View {
|
||||
|
||||
private String sentFromFastHub;
|
||||
|
||||
private CharSequence savedText = "";
|
||||
@BindView(R.id.view) ForegroundImageView viewCode;
|
||||
@BindView(R.id.editText) FontEditText editText;
|
||||
@ -83,8 +84,7 @@ public class EditorActivity extends BaseActivity<EditorMvp.View, EditorPresenter
|
||||
if (editText.isEnabled() && !InputHelper.isEmpty(editText)) {
|
||||
editText.setEnabled(false);
|
||||
sentVia.setEnabled(false);
|
||||
MarkDownProvider.setMdText(editText, InputHelper.toString(editText) +
|
||||
(sentVia.isChecked() ? "\n\n_"+sentVia.getText().toString()+"_" : ""));
|
||||
MarkDownProvider.setMdText(editText, InputHelper.toString(editText));
|
||||
ViewHelper.hideKeyboard(editText);
|
||||
AnimHelper.animateVisibility(editorIconsHolder, false);
|
||||
} else {
|
||||
@ -115,8 +115,10 @@ public class EditorActivity extends BaseActivity<EditorMvp.View, EditorPresenter
|
||||
|
||||
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
sentFromFastHub = "\n\n_" + getString(R.string.sent_from_fasthub, AppHelper.getDeviceName(), "",
|
||||
"[" + getString(R.string.app_name) + "](https://play.google.com/store/apps/details?id=com.fastaccess.github)") + "_";
|
||||
sentVia.setChecked(PrefGetter.isSentViaEnabled());
|
||||
sentVia.setText(getString(R.string.sent_from_fasthub, AppHelper.getDeviceName(), getString(R.string.app_name)));
|
||||
MarkDownProvider.setMdText(sentVia, sentFromFastHub);
|
||||
if (savedInstanceState == null) {
|
||||
Intent intent = getIntent();
|
||||
if (intent != null && intent.getExtras() != null) {
|
||||
@ -154,9 +156,6 @@ public class EditorActivity extends BaseActivity<EditorMvp.View, EditorPresenter
|
||||
@Override public void onSendResultAndFinish(@NonNull Comment commentModel, boolean isNew) {
|
||||
hideProgress();
|
||||
Intent intent = new Intent();
|
||||
if(sentVia.isChecked())
|
||||
commentModel.setBodyHtml(commentModel.getBodyHtml()+"<br /><br /><i>"+sentVia.getText().toString()+"</i>");
|
||||
commentModel.save(commentModel);
|
||||
intent.putExtras(Bundler.start()
|
||||
.put(BundleConstant.ITEM, commentModel)
|
||||
.put(BundleConstant.EXTRA, isNew)
|
||||
@ -179,15 +178,13 @@ public class EditorActivity extends BaseActivity<EditorMvp.View, EditorPresenter
|
||||
|
||||
@Override public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == R.id.submit) {
|
||||
String sentFromFastHub = getString(R.string.sent_from_fasthub, AppHelper.getDeviceName(),
|
||||
"[" + getString(R.string.app_name_full) + "](https://play.google.com/store/apps/details?id=com.fastaccess.github)");
|
||||
item.setEnabled(false);
|
||||
getPresenter().onHandleSubmission(savedText +
|
||||
(
|
||||
savedText.toString().contains(sentVia.getText()) ? "" :
|
||||
sentVia.isChecked() ? "\n\n_" + sentFromFastHub + "_" : ""
|
||||
),
|
||||
extraType, itemId, commentId, login, issueNumber, sha);
|
||||
if (sentVia.isChecked()) {
|
||||
String temp = savedText.toString();
|
||||
if (!temp.contains(sentFromFastHub)) {
|
||||
savedText = savedText + sentFromFastHub;
|
||||
}
|
||||
}
|
||||
getPresenter().onHandleSubmission(savedText, extraType, itemId, commentId, login, issueNumber, sha);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
@ -143,7 +143,7 @@ public class CommitCommentsFragments extends BaseFragment<CommitCommentsMvp.View
|
||||
.put(BundleConstant.EXTRA_THREE, getPresenter().sha())
|
||||
.put(BundleConstant.EXTRA_FOUR, item.getId())
|
||||
.put(BundleConstant.EXTRA, item.getBody())
|
||||
.put(BundleConstant.EXTRA_TYPE, BundleConstant.ExtraTYpe.EDIT_ISSUE_COMMENT_EXTRA)
|
||||
.put(BundleConstant.EXTRA_TYPE, BundleConstant.ExtraTYpe.EDIT_COMMIT_COMMENT_EXTRA)
|
||||
.end());
|
||||
View view = getActivity() != null && getActivity().findViewById(R.id.fab) != null ? getActivity().findViewById(R.id.fab) : recycler;
|
||||
ActivityHelper.startReveal(this, intent, view, BundleConstant.REQUEST_CODE);
|
||||
@ -243,6 +243,14 @@ public class CommitCommentsFragments extends BaseFragment<CommitCommentsMvp.View
|
||||
return getSparseBooleanArray().get(position);
|
||||
}
|
||||
|
||||
@Override public boolean isPreviouslyReacted(long id, int vId) {
|
||||
return getPresenter().isPreviouslyReacted(id, vId);
|
||||
}
|
||||
|
||||
@Override public boolean isCallingApi(long id, int vId) {
|
||||
return getPresenter().isCallingApi(id, vId);
|
||||
}
|
||||
|
||||
private SparseBooleanArrayParcelable getSparseBooleanArray() {
|
||||
if (sparseBooleanArray == null) {
|
||||
sparseBooleanArray = new SparseBooleanArrayParcelable();
|
||||
@ -254,12 +262,4 @@ public class CommitCommentsFragments extends BaseFragment<CommitCommentsMvp.View
|
||||
hideProgress();
|
||||
stateLayout.showReload(adapter.getItemCount());
|
||||
}
|
||||
|
||||
@Override public boolean isPreviouslyReacted(long id, int vId) {
|
||||
return getPresenter().isPreviouslyReacted(id, vId);
|
||||
}
|
||||
|
||||
@Override public boolean isCallingApi(long id, int vId) {
|
||||
return getPresenter().isCallingApi(id, vId);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,32 +3,29 @@ package com.fastaccess.ui.modules.splash;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.fastaccess.BuildConfig;
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.helper.PrefGetter;
|
||||
import com.fastaccess.ui.modules.main.MainActivity;
|
||||
|
||||
public class SplashActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (PrefGetter.getThemeType(this) == PrefGetter.DARK) {
|
||||
PackageManager p = getPackageManager();
|
||||
ComponentName lightTheme = new ComponentName(BuildConfig.APPLICATION_ID, "com.fastaccess.ui.modules.splash.SplashActivity");
|
||||
ComponentName darkTheme = new ComponentName(BuildConfig.APPLICATION_ID, "com.fastaccess.ui.modules.splash.SplashActivityDark");
|
||||
p.setComponentEnabledSetting(lightTheme, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||
p.setComponentEnabledSetting(lightTheme, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED, PackageManager.DONT_KILL_APP);
|
||||
p.setComponentEnabledSetting(darkTheme, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
|
||||
}
|
||||
|
||||
if (PrefGetter.getThemeType(this)==PrefGetter.DARK) {
|
||||
PackageManager p = getPackageManager();
|
||||
ComponentName lightTheme = new ComponentName(BuildConfig.APPLICATION_ID, "com.fastaccess.ui.modules.splash.SplashActivity");
|
||||
ComponentName darkTheme = new ComponentName(BuildConfig.APPLICATION_ID, "com.fastaccess.ui.modules.splash.SplashActivityDark");
|
||||
|
||||
p.setComponentEnabledSetting(lightTheme, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||
p.setComponentEnabledSetting(lightTheme, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED, PackageManager.DONT_KILL_APP);
|
||||
p.setComponentEnabledSetting(darkTheme, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
|
||||
}
|
||||
|
||||
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,7 +95,6 @@ public class AvatarLayout extends FrameLayout implements ImageLoadingListener {
|
||||
}
|
||||
|
||||
@Override public void onLoadingCancelled(String imageUri, View view) {}
|
||||
|
||||
public void setUrl(@Nullable String url, @Nullable String login) {
|
||||
setUrl(url, login, false);
|
||||
}
|
||||
|
||||
@ -421,7 +421,7 @@
|
||||
<string name="watchers">Watchers</string>
|
||||
<string name="reviewers">Reviewers</string>
|
||||
<string name="no_reviewers">No reviewers</string>
|
||||
<string name="sent_from_fasthub">Sent from my %1$s using %2$s</string>
|
||||
<string name="sent_from_fasthub">Sent from my %1$s using %2$s%3$s</string>
|
||||
<string name="enable_signature">Enable Signature</string>
|
||||
<string name="enable_signature_summary">Enable sent via signature</string>
|
||||
</resources>
|
||||
Loading…
x
Reference in New Issue
Block a user