From 8e324d8f2b56db22a1b5d598ae638c0da195c34c Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Sun, 6 Nov 2016 20:36:43 +0100 Subject: [PATCH] Added reports navdrawer entry and divided visibility options into subcategories as suggested by gsantner Merge PR #110 from DfA/divide-visibility-options Reports Navdrawer Item reworked set context of webview in onAttach method of BrowserFragment Merge branch 'master' of github.com:Diaspora-for-Android/diaspora-android --- .../activity/MainActivity.java | 16 ++- .../diaspora_android/util/AppSettings.java | 4 + .../util/DiasporaUrlHelper.java | 11 ++ .../diaspora_android/web/BrowserFragment.java | 9 ++ .../web/ContextMenuWebView.java | 1 + .../res/drawable/ic_report_black_48px.xml | 15 +++ app/src/main/res/menu/main__navdrawer.xml | 5 + .../main/res/values/strings-preferences.xml | 4 + app/src/main/res/values/strings.xml | 1 + .../xml/preferences__sub_navslider_vis.xml | 115 ++++++++++-------- 10 files changed, 130 insertions(+), 51 deletions(-) create mode 100644 app/src/main/res/drawable/ic_report_black_48px.xml diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index fbc15087..c47f6b5c 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -399,6 +399,7 @@ public class MainActivity extends ThemedActivity navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile()); navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities()); navMenu.findItem(R.id.nav_stream).setVisible(true); + navMenu.findItem(R.id.nav_reports).setVisible(appSettings.isVisibleInNavReports()); // Hide whole group (for logged in use) if no pod was selected @@ -1029,8 +1030,8 @@ public class MainActivity extends ThemedActivity } else { snackbarNoInternet.show(); } - break; } + break; case R.id.nav_public: { if (WebHelper.isOnline(MainActivity.this)) { @@ -1038,14 +1039,23 @@ public class MainActivity extends ThemedActivity } else { snackbarNoInternet.show(); } - break; } + break; + + case R.id.nav_reports: { + if(WebHelper.isOnline(MainActivity.this)) { + openDiasporaUrl(urls.getReportsUrl()); + } else { + snackbarNoInternet.show(); + } + } + break; case R.id.nav_exit: { moveTaskToBack(true); finish(); - break; } + break; case R.id.nav_settings: { startActivity(new Intent(this, SettingsActivity.class)); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java index 35a88b19..d1442a46 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java @@ -394,6 +394,10 @@ public class AppSettings { return getBoolean(prefApp, R.string.pref_key__visibility_nav__contacts, false); } + public boolean isVisibleInNavReports() { + return getBoolean(prefApp, R.string.pref_key__visibility_nav__reports, false); + } + public void setPrimaryColorSettings(int base, int shade) { setInt(prefApp, R.string.pref_key__primary_color_base, base); setInt(prefApp, R.string.pref_key__primary_color_shade, shade); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java b/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java index 7eea373a..1e0dc582 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java @@ -53,6 +53,7 @@ public class DiasporaUrlHelper { public static final String SUBURL_MANAGE_TAGS = "/tag_followings/manage"; public static final String SUBURL_SIGN_IN = "/users/sign_in"; public static final String SUBURL_MANAGE_CONTACTS = "/contacts"; + public static final String SUBURL_REPORTS = "/reports"; public static final String URL_BLANK = "about:blank"; public static final String SUBURL_NOTIFICATIONS_ALSO_COMMENTED = "/notifications?type=also_commented"; public static final String SUBURL_NOTIFICATIONS_COMMENT_ON_POST = "/notifications?type=comment_on_post"; @@ -237,6 +238,16 @@ public class DiasporaUrlHelper { return getPodUrl() + SUBURL_STATISTICS; } + /** + * Return an Url that points to the reports page of a the configured pod. + * Note: This url is only useful/visible for podmins and moderators. + * + * @return https://(pod-domain.tld)/reports + */ + public String getReportsUrl() { + return getPodUrl() + SUBURL_REPORTS; + } + /** * Return a url that points to the sign in page of the pod. * diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java index cc42ef7c..3ce1a338 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java @@ -19,6 +19,7 @@ package com.github.dfa.diaspora_android.web; import android.Manifest; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.MutableContextWrapper; @@ -256,6 +257,14 @@ public class BrowserFragment extends ThemedFragment { /* Nothing to do here */ } + @Override + public void onAttach(Context context) { + super.onAttach(context); + if(webView != null && webView.getContext() instanceof MutableContextWrapper) { + ((MutableContextWrapper) webView.getContext()).setBaseContext(context); + } + } + public boolean onBackPressed() { if (webView.canGoBack()) { getActivity().runOnUiThread(new Runnable() { diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java index 39f3d4bc..f9fc22fb 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java @@ -114,6 +114,7 @@ public class ContextMenuWebView extends NestedWebView { + System.currentTimeMillis() + ".png"); request.setDestinationUri(Uri.fromFile(destinationFile)); ((DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request); + Toast.makeText(context, context.getText(R.string.share__toast_saved_image_to_location) + " " + destinationFile.getAbsolutePath(), Toast.LENGTH_LONG).show(); } diff --git a/app/src/main/res/drawable/ic_report_black_48px.xml b/app/src/main/res/drawable/ic_report_black_48px.xml new file mode 100644 index 00000000..7777c6b4 --- /dev/null +++ b/app/src/main/res/drawable/ic_report_black_48px.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/main__navdrawer.xml b/app/src/main/res/menu/main__navdrawer.xml index 7e863176..c57c38ee 100644 --- a/app/src/main/res/menu/main__navdrawer.xml +++ b/app/src/main/res/menu/main__navdrawer.xml @@ -53,6 +53,11 @@ android:icon="@drawable/ic_public_black_48px" android:title="@string/nav_public_activities" /> + + pref_key__visibility_nav__followed_tags pref_key__visibility_nav__profile pref_key__visibility_nav__contacts + pref_key__visibility_nav__reports podUserProfile_avatar @@ -74,6 +75,9 @@ Navigation Slider Control visibility of entries in the navigation drawer Item visibility + User + General + Admin Theme and Colors diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 25119cba..46d3b243 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -70,6 +70,7 @@ Followed Tags Public activities @string/contacts + Reports Share link as text Share screenshot of webpage diff --git a/app/src/main/res/xml/preferences__sub_navslider_vis.xml b/app/src/main/res/xml/preferences__sub_navslider_vis.xml index 0579a6be..d4e8da4b 100644 --- a/app/src/main/res/xml/preferences__sub_navslider_vis.xml +++ b/app/src/main/res/xml/preferences__sub_navslider_vis.xml @@ -1,54 +1,73 @@ - + + + + + + + + + + + - - - - - - - - - - - + - + + + + + + + + + + + + + + + + \ No newline at end of file