diff --git a/app/src/main/java/com/fastaccess/helper/AppHelper.java b/app/src/main/java/com/fastaccess/helper/AppHelper.java index 854e8fdd..1f34b381 100644 --- a/app/src/main/java/com/fastaccess/helper/AppHelper.java +++ b/app/src/main/java/com/fastaccess/helper/AppHelper.java @@ -27,6 +27,7 @@ import es.dmoral.toasty.Toasty; public class AppHelper { + public static void hideKeyboard(@NonNull View view) { InputMethodManager inputManager = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), 0); diff --git a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java index 6fe9d7eb..76337f3e 100644 --- a/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java +++ b/app/src/main/java/com/fastaccess/provider/timeline/CommentsHelper.java @@ -4,10 +4,17 @@ import android.content.Context; import android.support.annotation.IdRes; import android.support.annotation.NonNull; +import com.annimon.stream.Collectors; +import com.annimon.stream.Stream; import com.fastaccess.R; +import com.fastaccess.data.dao.TimelineModel; +import com.fastaccess.data.dao.model.Comment; import com.fastaccess.data.dao.types.ReactionTypes; import com.fastaccess.provider.tasks.git.ReactionService; +import java.util.ArrayList; +import java.util.List; + /** * Created by Kosh on 30 Mar 2017, 6:44 PM */ @@ -101,4 +108,19 @@ public class CommentsHelper { return getEmojiByUnicode(HEART); } + @NonNull public static ArrayList getUsers(@NonNull List comments) { + return Stream.of(comments) + .map(comment -> comment.getUser().getLogin()) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + } + + @NonNull public static ArrayList getUsersByTimeline(@NonNull List comments) { + return Stream.of(comments) + .filter(timelineModel -> timelineModel.getComment() != null && timelineModel.getComment().getUser() != null) + .map(comment -> comment.getComment().getUser().getLogin()) + .distinct() + .collect(Collectors.toCollection(ArrayList::new)); + } + } diff --git a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/comments/GistCommentsFragment.java b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/comments/GistCommentsFragment.java index 545bcc32..ef3138a1 100644 --- a/app/src/main/java/com/fastaccess/ui/modules/gists/gist/comments/GistCommentsFragment.java +++ b/app/src/main/java/com/fastaccess/ui/modules/gists/gist/comments/GistCommentsFragment.java @@ -2,7 +2,6 @@ package com.fastaccess.ui.modules.gists.gist.comments; import android.app.Activity; import android.content.Intent; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -10,17 +9,15 @@ import android.support.annotation.StringRes; import android.support.v4.widget.SwipeRefreshLayout; import android.view.View; -import com.annimon.stream.Collectors; -import com.annimon.stream.Stream; import com.fastaccess.R; import com.fastaccess.data.dao.SparseBooleanArrayParcelable; -import com.fastaccess.data.dao.TimelineModel; import com.fastaccess.data.dao.model.Comment; import com.fastaccess.data.dao.model.User; import com.fastaccess.helper.ActivityHelper; import com.fastaccess.helper.BundleConstant; import com.fastaccess.helper.Bundler; import com.fastaccess.provider.rest.loadmore.OnLoadMore; +import com.fastaccess.provider.timeline.CommentsHelper; import com.fastaccess.ui.adapter.CommentsAdapter; import com.fastaccess.ui.base.BaseFragment; import com.fastaccess.ui.modules.editor.EditorActivity; @@ -28,9 +25,6 @@ import com.fastaccess.ui.widgets.StateLayout; import com.fastaccess.ui.widgets.dialog.MessageDialogView; import com.fastaccess.ui.widgets.recyclerview.DynamicRecyclerView; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import butterknife.BindView; @@ -53,8 +47,6 @@ public class GistCommentsFragment extends BaseFragment onLoadMore; - private ArrayList participants; - public static GistCommentsFragment newInstance(@NonNull String gistId) { GistCommentsFragment view = new GistCommentsFragment(); view.setArguments(Bundler.start().put("gistId", gistId).end()); @@ -92,16 +84,6 @@ public class GistCommentsFragment extends BaseFragment items, int page) { hideProgress(); - - participants = null; - participants = (ArrayList) Stream.of(items) - .map(comment -> comment.getUser().getLogin()) - .collect(Collectors.toList()); - HashSet hashSet = new HashSet(); - hashSet.addAll(participants); - participants.clear(); - participants.addAll(hashSet); - if (items == null || items.isEmpty()) { adapter.clear(); return; @@ -160,7 +142,7 @@ public class GistCommentsFragment extends BaseFragment participants; - public static CommitCommentsFragments newInstance(@NonNull String login, @NonNull String repoId, @NonNull String sha) { CommitCommentsFragments view = new CommitCommentsFragments(); view.setArguments(Bundler.start() @@ -95,17 +88,6 @@ public class CommitCommentsFragments extends BaseFragment items, int page) { hideProgress(); - - participants = null; - participants = (ArrayList) Stream.of(items) - .filter(value -> value.getType() == TimelineModel.COMMENT) - .map(value -> value.getComment()).map(comment-> comment.getUser().getLogin()) - .collect(Collectors.toList()); - HashSet hashSet = new HashSet(); - hashSet.addAll(participants); - participants.clear(); - participants.addAll(hashSet); - if (items == null || items.isEmpty()) { adapter.clear(); return; @@ -130,7 +112,7 @@ public class CommitCommentsFragments extends BaseFragment participants; + private IssuePullsTimelineAdapter adapter; public static IssueTimelineFragment newInstance(@NonNull Issue issueModel) { IssueTimelineFragment view = new IssueTimelineFragment(); @@ -68,17 +61,6 @@ public class IssueTimelineFragment extends BaseFragment items) { hideProgress(); - - participants = null; - participants = (ArrayList) Stream.of(items) - .filter(value -> value.getType() == TimelineModel.COMMENT) - .map(value -> value.getComment()).map(comment-> comment.getUser().getLogin()) - .collect(Collectors.toList()); - HashSet hashSet = new HashSet(); - hashSet.addAll(participants); - participants.clear(); - participants.addAll(hashSet); - if (items == null || items.isEmpty()) { adapter.clear(); return; @@ -145,7 +127,7 @@ public class IssueTimelineFragment extends BaseFragment participants; - public static PullRequestTimelineFragment newInstance(@NonNull PullRequest pullRequest) { PullRequestTimelineFragment view = new PullRequestTimelineFragment(); view.setArguments(Bundler.start().put(BundleConstant.ITEM, pullRequest).end());//TODO fix this @@ -69,17 +62,6 @@ public class PullRequestTimelineFragment extends BaseFragment items) { hideProgress(); - - participants = null; - participants = (ArrayList) Stream.of(items) - .filter(value -> value.getType() == TimelineModel.COMMENT) - .map(value -> value.getComment()).map(comment-> comment.getUser().getLogin()) - .collect(Collectors.toList()); - HashSet hashSet = new HashSet(); - hashSet.addAll(participants); - participants.clear(); - participants.addAll(hashSet); - if (items == null || items.isEmpty()) { adapter.clear(); return; @@ -118,7 +100,7 @@ public class PullRequestTimelineFragment extends BaseFragment { - int index = radioGroup.indexOfChild(radioGroup.findViewById(radioGroup.getCheckedRadioButtonId())); + radioGroup.setOnCheckedChangeListener((group, checkedId) -> { + int index = radioGroup.indexOfChild(radioGroup.findViewById(radioGroup.getCheckedRadioButtonId())); - PrefHelper.set("app_language", values[index]); - if (language != values[index]) - getActivity().setResult(RESULT_OK); - }); + PrefHelper.set("app_language", values[index]); + if (language != values[index]) + getActivity().setResult(RESULT_OK); + }); - } + } - @Override protected void onHidden() { - if (listener != null) listener.onDismissed(); - super.onHidden(); - } + @Override protected void onHidden() { + if (listener != null) listener.onDismissed(); + super.onHidden(); + } - @Override protected void onDismissedByScrolling() { - if (listener != null) listener.onDismissed(); - super.onDismissedByScrolling(); - } + @Override protected void onDismissedByScrolling() { + if (listener != null) listener.onDismissed(); + super.onDismissedByScrolling(); + } } diff --git a/app/src/main/java/com/fastaccess/ui/widgets/MentionsFontEditText.java b/app/src/main/java/com/fastaccess/ui/widgets/MentionsFontEditText.java index 14f9fdc4..4d4306d9 100644 --- a/app/src/main/java/com/fastaccess/ui/widgets/MentionsFontEditText.java +++ b/app/src/main/java/com/fastaccess/ui/widgets/MentionsFontEditText.java @@ -6,36 +6,34 @@ import android.util.AttributeSet; import android.view.inputmethod.EditorInfo; import com.fastaccess.helper.TypeFaceHelper; -import com.linkedin.android.spyglass.tokenization.impl.WordTokenizer; import com.linkedin.android.spyglass.ui.MentionsEditText; -import com.linkedin.android.spyglass.ui.RichEditorView; /** * Created by JediB on 5/15/2017. */ -public class MentionsFontEditText extends MentionsEditText{ +public class MentionsFontEditText extends MentionsEditText { - public MentionsFontEditText(@NonNull Context context) { - super(context); - init(); - } + public MentionsFontEditText(@NonNull Context context) { + super(context); + init(); + } - public MentionsFontEditText(@NonNull Context context, AttributeSet attrs) { - super(context, attrs); - init(); + public MentionsFontEditText(@NonNull Context context, AttributeSet attrs) { + super(context, attrs); + init(); - } + } - public MentionsFontEditText(@NonNull Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } + public MentionsFontEditText(@NonNull Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(); + } - private void init() { - if (isInEditMode()) return; - setInputType(getInputType() | EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN); - setImeOptions(getImeOptions() | EditorInfo.IME_FLAG_NO_FULLSCREEN); - TypeFaceHelper.applyTypeface(this); - } + private void init() { + if (isInEditMode()) return; + setInputType(getInputType() | EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN); + setImeOptions(getImeOptions() | EditorInfo.IME_FLAG_NO_FULLSCREEN); + TypeFaceHelper.applyTypeface(this); + } } diff --git a/app/src/main/res/drawable/ic_ring_sound.xml b/app/src/main/res/drawable/ic_ring_sound.xml index 9c5a291f..193c98c2 100644 --- a/app/src/main/res/drawable/ic_ring_sound.xml +++ b/app/src/main/res/drawable/ic_ring_sound.xml @@ -1,9 +1,9 @@ + android:viewportHeight="24.0" + android:viewportWidth="24.0"> - + android:fillColor="?icon_color" + android:pathData="M7.58,4.08L6.15,2.65C3.75,4.48 2.17,7.3 2.03,10.5h2c0.15,-2.65 1.51,-4.97 3.55,-6.42zM19.97,10.5h2c-0.15,-3.2 -1.73,-6.02 -4.12,-7.85l-1.42,1.43c2.02,1.45 3.39,3.77 3.54,6.42zM18,11c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2v-5zM12,22c0.14,0 0.27,-0.01 0.4,-0.04 0.65,-0.14 1.18,-0.58 1.44,-1.18 0.1,-0.24 0.15,-0.5 0.15,-0.78h-4c0.01,1.1 0.9,2 2.01,2z"/> + \ No newline at end of file