Skip to content

Commit

Permalink
Showing info related to the Reddit API changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Docile-Alligator committed Jun 20, 2023
1 parent 2ae64f6 commit 6eb7f8e
Show file tree
Hide file tree
Showing 5 changed files with 156 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
Expand All @@ -34,9 +33,6 @@
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.OnApplyWindowInsetsListener;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
Expand Down Expand Up @@ -95,6 +91,7 @@
import ml.docilealligator.infinityforreddit.bottomsheetfragments.PostLayoutBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.PostTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.RandomBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.RedditAPIInfoBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.SortTimeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.SortTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
Expand Down Expand Up @@ -338,6 +335,13 @@ public void onDrawerClosed(View drawerView) {
mMessageFullname = getIntent().getStringExtra(EXTRA_MESSSAGE_FULLNAME);
mNewAccountName = getIntent().getStringExtra(EXTRA_NEW_ACCOUNT_NAME);
}

if (!mInternalSharedPreferences.getBoolean(SharedPreferencesUtils.DO_NOT_SHOW_REDDIT_API_INFO_AGAIN, false)) {
RedditAPIInfoBottomSheetFragment fragment = new RedditAPIInfoBottomSheetFragment();
fragment.setCancelable(false);
fragment.show(getSupportFragmentManager(), fragment.getTag());
}

initializeNotificationAndBindView();
}

Expand Down Expand Up @@ -1530,6 +1534,10 @@ public void markPostAsRead(Post post) {
InsertReadPost.insertReadPost(mRedditDataRoomDatabase, mExecutor, mAccountName, post.getId());
}

public void doNotShowRedditAPIInfoAgain() {
mInternalSharedPreferences.edit().putBoolean(SharedPreferencesUtils.DO_NOT_SHOW_REDDIT_API_INFO_AGAIN, true).apply();
}

private class SectionsPagerAdapter extends FragmentStateAdapter {
int tabCount;
boolean showFavoriteMultiReddits;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package ml.docilealligator.infinityforreddit.bottomsheetfragments;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;

import me.saket.bettermovementmethod.BetterLinkMovementMethod;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.activities.LinkResolverActivity;
import ml.docilealligator.infinityforreddit.activities.MainActivity;
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
import ml.docilealligator.infinityforreddit.databinding.FragmentRedditApiInfoBottomSheetBinding;
import ml.docilealligator.infinityforreddit.utils.Utils;

public class RedditAPIInfoBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment {

private MainActivity mainActivity;

public RedditAPIInfoBottomSheetFragment() {
// Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
FragmentRedditApiInfoBottomSheetBinding binding = FragmentRedditApiInfoBottomSheetBinding.inflate(inflater, container, false);

if (mainActivity != null && mainActivity.typeface != null) {
Utils.setFontToAllTextViews(binding.getRoot(), mainActivity.typeface);
}

SpannableString message = new SpannableString(getString(R.string.reddit_api_info, "https://www.reddit.com/r/reddit/comments/145bram/addressing_the_community_about_changes_to_our_api", "https://www.reddit.com/r/Infinity_For_Reddit/comments/147bhsg/the_future_of_infinity"));
Linkify.addLinks(message, Linkify.WEB_URLS);
binding.messageTextViewRedditApiInfoBottomSheetFragment.setText(message);
binding.messageTextViewRedditApiInfoBottomSheetFragment.setMovementMethod(BetterLinkMovementMethod.newInstance().setOnLinkClickListener((textView, url) -> {
Intent intent = new Intent(mainActivity, LinkResolverActivity.class);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}));
binding.messageTextViewRedditApiInfoBottomSheetFragment.setLinkTextColor(getResources().getColor(R.color.colorAccent));

binding.doNotShowThisAgainTextView.setOnClickListener(view -> {
binding.doNotShowThisAgainCheckBox.toggle();
});

binding.continueButtonRedditApiInfoBottomSheetFragment.setOnClickListener(view -> {
if (binding.doNotShowThisAgainCheckBox.isChecked()) {
mainActivity.doNotShowRedditAPIInfoAgain();
}
dismiss();
});

return binding.getRoot();
}

@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
mainActivity = (MainActivity) context;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ public class SharedPreferencesUtils {

public static final String INTERNAL_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.internal";
public static final String HAS_REQUESTED_NOTIFICATION_PERMISSION = "has_requested_notification_permission";
public static final String DO_NOT_SHOW_REDDIT_API_INFO_AGAIN = "do_not_show_reddit_api_info_again";

//Legacy Settings
public static final String MAIN_PAGE_TAB_1_TITLE_LEGACY = "main_page_tab_1_title";
Expand Down
68 changes: 68 additions & 0 deletions app/src/main/res/layout/fragment_reddit_api_info_bottom_sheet.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".bottomsheetfragments.RedditAPIInfoBottomSheetFragment">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="@string/reddit_api_info_title"
android:fontFamily="?attr/font_family"
android:textSize="?attr/font_20"
android:textColor="?attr/primaryTextColor"
android:textStyle="bold" />

<TextView
android:id="@+id/message_text_view_reddit_api_info_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/reddit_api_info"
android:fontFamily="?attr/font_family"
android:textSize="?attr/font_16"
android:textColor="?attr/primaryTextColor" />

<LinearLayout
android:id="@+id/linear_layout_check_box_wrapper_reddit_api_info_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp">

<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/do_not_show_this_again_check_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />

<TextView
android:id="@+id/do_not_show_this_again_text_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/do_not_show_this_again"
android:gravity="center_vertical"
android:fontFamily="?attr/font_family"
android:textSize="?attr/font_default"
android:textColor="?attr/primaryTextColor" />

<com.google.android.material.button.MaterialButton
android:id="@+id/continue_button_reddit_api_info_bottom_sheet_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:backgroundTint="@color/colorPrimary"
android:text="@string/i_understand" />

</LinearLayout>

</LinearLayout>
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1322,4 +1322,8 @@
<string name="denied_notification_permission">Notification permission is not granted</string>
<string name="go_to_settings">Settings</string>

<string name="reddit_api_info_title">Important Notice Regarding Reddit API Changes</string>
<string name="reddit_api_info">Starting from July 1st, 2023, Reddit API will be pay-per-use for 3rd-party clients, which include Infinity for Reddit. The announcement from Reddit can be found here: %1$s\n\nIn order to survive this change, Infinity will become a subscription-only app after July 1st. You can learn more about the changes in this post: %2$s\n\nIt\'s required for you to update Infinity after July 1st so that you will get the new version with subscription options. None of the previous versions (including this one) will work after July 1st. But due to a tight timeline Reddit gave, the update may not be available immediately on July 1st since it requires proper testing. Thank you for your understanding!</string>
<string name="i_understand">I understand</string>

</resources>

0 comments on commit 6eb7f8e

Please sign in to comment.