aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/Settings/AboutPreferenceFragment.java62
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SettingsActivity.java11
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java4
3 files changed, 73 insertions, 4 deletions
diff --git a/app/src/main/java/Settings/AboutPreferenceFragment.java b/app/src/main/java/Settings/AboutPreferenceFragment.java
index 40873284..8d93bd6c 100644
--- a/app/src/main/java/Settings/AboutPreferenceFragment.java
+++ b/app/src/main/java/Settings/AboutPreferenceFragment.java
@@ -1,11 +1,18 @@
package Settings;
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
+import android.widget.Toast;
+import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
+import ml.docilealligator.infinityforreddit.LinkResolverActivity;
import ml.docilealligator.infinityforreddit.R;
+import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
/**
* A simple {@link PreferenceFragmentCompat} subclass.
@@ -15,5 +22,60 @@ public class AboutPreferenceFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.about_preferences, rootKey);
+
+ Preference openSourcePreference = findPreference(SharedPreferencesUtils.OPEN_SOURCE_KEY);
+ Preference reviewPreference = findPreference(SharedPreferencesUtils.RATE_KEY);
+ Preference emailPreference = findPreference(SharedPreferencesUtils.EMAIL_KEY);
+ Preference redditAccountPreference = findPreference(SharedPreferencesUtils.REDDIT_ACCOUNT_KEY);
+
+ Activity activity = getActivity();
+
+ if(activity != null) {
+ if(openSourcePreference != null) {
+ openSourcePreference.setOnPreferenceClickListener(preference -> {
+ Intent intent = new Intent(activity, LinkResolverActivity.class);
+ intent.setData(Uri.parse("https://github.com/Docile-Alligator/Infinity-For-Reddit"));
+ startActivity(intent);
+ return true;
+ });
+ }
+
+ if(reviewPreference != null) {
+ reviewPreference.setOnPreferenceClickListener(preference -> {
+ Intent playStoreIntent = new Intent(Intent.ACTION_VIEW);
+ playStoreIntent.setData(Uri.parse("market://details?id=ml.docilealligator.infinityforreddit"));
+ if(playStoreIntent.resolveActivity(activity.getPackageManager()) != null) {
+ activity.startActivity(playStoreIntent);
+ } else {
+ Intent intent = new Intent(activity, LinkResolverActivity.class);
+ intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=ml.docilealligator.infinityforreddit"));
+ startActivity(intent);
+ }
+ return true;
+ });
+ }
+
+ if(emailPreference != null) {
+ emailPreference.setOnPreferenceClickListener(preference -> {
+ Intent intent = new Intent(Intent.ACTION_SENDTO);
+ intent.setData(Uri.parse("mailto:docilealligator.app@gmail.com"));
+ if(intent.resolveActivity(activity.getPackageManager()) != null) {
+ startActivity(intent);
+ } else {
+ Toast.makeText(activity, R.string.no_email_client, Toast.LENGTH_SHORT).show();
+ }
+ return true;
+ });
+ }
+
+ if(redditAccountPreference != null) {
+ redditAccountPreference.setOnPreferenceClickListener(preference -> {
+ Intent intent = new Intent(activity, LinkResolverActivity.class);
+ intent.setData(Uri.parse("https://www.reddit.com/user/Hostilenemy"));
+ startActivity(intent);
+ return true;
+ });
+ }
+ }
}
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SettingsActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SettingsActivity.java
index 41c82e41..f963b0a4 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SettingsActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SettingsActivity.java
@@ -19,6 +19,7 @@ import androidx.preference.PreferenceFragmentCompat;
import javax.inject.Inject;
+import Settings.AboutPreferenceFragment;
import Settings.MainPreferenceFragment;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -84,10 +85,12 @@ public class SettingsActivity extends AppCompatActivity implements
setTitle(savedInstanceState.getCharSequence(TITLE_STATE));
}
getSupportFragmentManager().addOnBackStackChangedListener(() -> {
- if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
- setTitle(R.string.settings_activity_label);
- }
- });
+ if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
+ setTitle(R.string.settings_activity_label);
+ } else if (getSupportFragmentManager().findFragmentById(R.id.frame_layout_settings_activity) instanceof AboutPreferenceFragment) {
+ setTitle(R.string.settings_about_master_title);
+ }
+ });
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java
index fd7dc27f..6c4ca027 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java
@@ -17,4 +17,8 @@ public class SharedPreferencesUtils {
public static final String CROSSPOST_ICON_KEY = "crosspost_icon";
public static final String THUMBTACK_ICON_KEY = "thumbtack_icon";
public static final String MATERIAL_ICONS_KEY = "material_icons";
+ public static final String OPEN_SOURCE_KEY = "open_source";
+ public static final String RATE_KEY = "rate";
+ public static final String EMAIL_KEY = "email";
+ public static final String REDDIT_ACCOUNT_KEY = "reddit_account";
}