From 3283541c9a254177bb712a125ed8c631ced4b7bc Mon Sep 17 00:00:00 2001 From: Docile-Alligator Date: Sun, 10 Apr 2022 22:50:35 +0800 Subject: Show post karma, comment karma, awarder karma and awardee karma in ViewUserDetailActivity by clicking the karma info text. --- .../activities/ViewUserDetailActivity.java | 11 +++ .../KarmaInfoBottomSheetFragment.java | 63 +++++++++++++ .../infinityforreddit/user/UserData.java | 2 +- .../layout/fragment_karma_info_bottom_sheet.xml | 105 +++++++++++++++++++++ app/src/main/res/values/strings.xml | 7 +- 5 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/KarmaInfoBottomSheetFragment.java create mode 100644 app/src/main/res/layout/fragment_karma_info_bottom_sheet.xml diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java index 977bf742..d2b636c2 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java @@ -99,6 +99,7 @@ import ml.docilealligator.infinityforreddit.asynctasks.CheckIsFollowingUser; import ml.docilealligator.infinityforreddit.asynctasks.SwitchAccount; import ml.docilealligator.infinityforreddit.bottomsheetfragments.CopyTextBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.FABMoreOptionsBottomSheetFragment; +import ml.docilealligator.infinityforreddit.bottomsheetfragments.KarmaInfoBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.PostLayoutBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.PostTypeBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.RandomBottomSheetFragment; @@ -599,6 +600,16 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele userThingSortTypeBottomSheetFragment = new UserThingSortTypeBottomSheetFragment(); sortTimeBottomSheetFragment = new SortTimeBottomSheetFragment(); postLayoutBottomSheetFragment = new PostLayoutBottomSheetFragment(); + + karmaTextView.setOnClickListener(view -> { + UserData userData = userViewModel.getUserLiveData().getValue(); + if (userData != null) { + KarmaInfoBottomSheetFragment karmaInfoBottomSheetFragment = KarmaInfoBottomSheetFragment.newInstance( + userData.getLinkKarma(), userData.getCommentKarma(), userData.getAwarderKarma(), userData.getAwardeeKarma() + ); + karmaInfoBottomSheetFragment.show(getSupportFragmentManager(), karmaInfoBottomSheetFragment.getTag()); + } + }); } @Override diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/KarmaInfoBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/KarmaInfoBottomSheetFragment.java new file mode 100644 index 00000000..c0dbbb10 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/KarmaInfoBottomSheetFragment.java @@ -0,0 +1,63 @@ +package ml.docilealligator.infinityforreddit.bottomsheetfragments; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.deishelon.roundedbottomsheet.RoundedBottomSheetDialogFragment; + +import ml.docilealligator.infinityforreddit.R; + +public class KarmaInfoBottomSheetFragment extends RoundedBottomSheetDialogFragment { + public static final String EXTRA_POST_KARMA = "EPK"; + public static final String EXTRA_COMMENT_KARMA = "ECK"; + public static final String EXTRA_AWARDER_KARMA = "EARK"; + public static final String EXTRA_AWARDEE_KARMA = "EAEK"; + + private int postKarma; + private int commentKarma; + private int awarderKarma; + private int awardeeKarma; + + public KarmaInfoBottomSheetFragment() { + // Required empty public constructor + } + + + public static KarmaInfoBottomSheetFragment newInstance(int postKarma, int commentKarma, int awarderKarma, int awardeeKarma) { + KarmaInfoBottomSheetFragment fragment = new KarmaInfoBottomSheetFragment(); + Bundle args = new Bundle(); + args.putInt(EXTRA_POST_KARMA, postKarma); + args.putInt(EXTRA_COMMENT_KARMA, commentKarma); + args.putInt(EXTRA_AWARDER_KARMA, awarderKarma); + args.putInt(EXTRA_AWARDEE_KARMA, awardeeKarma); + fragment.setArguments(args); + return fragment; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View rootView = inflater.inflate(R.layout.fragment_karma_info_bottom_sheet, container, false); + + postKarma = getArguments().getInt(EXTRA_POST_KARMA, 0); + commentKarma = getArguments().getInt(EXTRA_COMMENT_KARMA, 0); + awarderKarma = getArguments().getInt(EXTRA_AWARDER_KARMA, 0); + awardeeKarma = getArguments().getInt(EXTRA_AWARDEE_KARMA, 0); + + TextView postKarmaTextView = rootView.findViewById(R.id.post_karma_karma_info_bottom_sheet_fragment); + TextView commentKarmaTextView = rootView.findViewById(R.id.comment_karma_karma_info_bottom_sheet_fragment); + TextView awarderKarmaTextView = rootView.findViewById(R.id.awarder_karma_karma_info_bottom_sheet_fragment); + TextView awardeeKarmaTextView = rootView.findViewById(R.id.awardee_karma_karma_info_bottom_sheet_fragment); + + postKarmaTextView.setText(Integer.toString(postKarma)); + commentKarmaTextView.setText(Integer.toString(commentKarma)); + awarderKarmaTextView.setText(Integer.toString(awarderKarma)); + awardeeKarmaTextView.setText(Integer.toString(awardeeKarma)); + + return rootView; + } +} \ No newline at end of file diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserData.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserData.java index 4512ca86..9f0d0075 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserData.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserData.java @@ -52,7 +52,7 @@ public class UserData { this.commentKarma = commentKarma; this.linkKarma = linkKarma; this.awarderKarma = awarderKarma; - this.awarderKarma = awardeeKarma; + this.awardeeKarma = awardeeKarma; this.totalKarma = totalKarma; this.cakeday = cakeday; this.isGold = isGold; diff --git a/app/src/main/res/layout/fragment_karma_info_bottom_sheet.xml b/app/src/main/res/layout/fragment_karma_info_bottom_sheet.xml new file mode 100644 index 00000000..2e3f5871 --- /dev/null +++ b/app/src/main/res/layout/fragment_karma_info_bottom_sheet.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + \ 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 ef3a4ede..9bbe06c9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1277,7 +1277,7 @@ You need to agree to Reddit User Agreement (%1$s) and Infinity for Reddit\'s Privacy Policy (%2$s) before logging in. Agree Don\'t Agree - + Option 1 (Required) Option 2 (Required) Option 3 @@ -1287,4 +1287,9 @@ Not a valid number + Post Karma: + Comment Karma: + Awarder Karma: + Awardee Karma: + -- cgit v1.2.3