Skip to content

Commit 8e324d8

Browse files
committed
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
1 parent e6f16fc commit 8e324d8

File tree

10 files changed

+132
-53
lines changed

10 files changed

+132
-53
lines changed

app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ protected void updateNavigationViewEntryVisibilities() {
399399
navMenu.findItem(R.id.nav_profile).setVisible(appSettings.isVisibleInNavProfile());
400400
navMenu.findItem(R.id.nav_public).setVisible(appSettings.isVisibleInNavPublic_activities());
401401
navMenu.findItem(R.id.nav_stream).setVisible(true);
402+
navMenu.findItem(R.id.nav_reports).setVisible(appSettings.isVisibleInNavReports());
402403

403404

404405
// Hide whole group (for logged in use) if no pod was selected
@@ -1029,23 +1030,32 @@ public boolean onNavigationItemSelected(MenuItem item) {
10291030
} else {
10301031
snackbarNoInternet.show();
10311032
}
1032-
break;
10331033
}
1034+
break;
10341035

10351036
case R.id.nav_public: {
10361037
if (WebHelper.isOnline(MainActivity.this)) {
10371038
openDiasporaUrl(urls.getPublicUrl());
10381039
} else {
10391040
snackbarNoInternet.show();
10401041
}
1041-
break;
10421042
}
1043+
break;
1044+
1045+
case R.id.nav_reports: {
1046+
if(WebHelper.isOnline(MainActivity.this)) {
1047+
openDiasporaUrl(urls.getReportsUrl());
1048+
} else {
1049+
snackbarNoInternet.show();
1050+
}
1051+
}
1052+
break;
10431053

10441054
case R.id.nav_exit: {
10451055
moveTaskToBack(true);
10461056
finish();
1047-
break;
10481057
}
1058+
break;
10491059

10501060
case R.id.nav_settings: {
10511061
startActivity(new Intent(this, SettingsActivity.class));

app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,10 @@ public boolean isVisibleInNavContacts() {
394394
return getBoolean(prefApp, R.string.pref_key__visibility_nav__contacts, false);
395395
}
396396

397+
public boolean isVisibleInNavReports() {
398+
return getBoolean(prefApp, R.string.pref_key__visibility_nav__reports, false);
399+
}
400+
397401
public void setPrimaryColorSettings(int base, int shade) {
398402
setInt(prefApp, R.string.pref_key__primary_color_base, base);
399403
setInt(prefApp, R.string.pref_key__primary_color_shade, shade);

app/src/main/java/com/github/dfa/diaspora_android/util/DiasporaUrlHelper.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class DiasporaUrlHelper {
5353
public static final String SUBURL_MANAGE_TAGS = "/tag_followings/manage";
5454
public static final String SUBURL_SIGN_IN = "/users/sign_in";
5555
public static final String SUBURL_MANAGE_CONTACTS = "/contacts";
56+
public static final String SUBURL_REPORTS = "/reports";
5657
public static final String URL_BLANK = "about:blank";
5758
public static final String SUBURL_NOTIFICATIONS_ALSO_COMMENTED = "/notifications?type=also_commented";
5859
public static final String SUBURL_NOTIFICATIONS_COMMENT_ON_POST = "/notifications?type=comment_on_post";
@@ -237,6 +238,16 @@ public String getStatisticsUrl() {
237238
return getPodUrl() + SUBURL_STATISTICS;
238239
}
239240

241+
/**
242+
* Return an Url that points to the reports page of a the configured pod.
243+
* Note: This url is only useful/visible for podmins and moderators.
244+
*
245+
* @return https://(pod-domain.tld)/reports
246+
*/
247+
public String getReportsUrl() {
248+
return getPodUrl() + SUBURL_REPORTS;
249+
}
250+
240251
/**
241252
* Return a url that points to the sign in page of the pod.
242253
*

app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package com.github.dfa.diaspora_android.web;
2020

2121
import android.Manifest;
22+
import android.content.Context;
2223
import android.content.DialogInterface;
2324
import android.content.Intent;
2425
import android.content.MutableContextWrapper;
@@ -256,6 +257,14 @@ public void onCreateBottomOptionsMenu(Menu menu, MenuInflater inflater) {
256257
/* Nothing to do here */
257258
}
258259

260+
@Override
261+
public void onAttach(Context context) {
262+
super.onAttach(context);
263+
if(webView != null && webView.getContext() instanceof MutableContextWrapper) {
264+
((MutableContextWrapper) webView.getContext()).setBaseContext(context);
265+
}
266+
}
267+
259268
public boolean onBackPressed() {
260269
if (webView.canGoBack()) {
261270
getActivity().runOnUiThread(new Runnable() {

app/src/main/java/com/github/dfa/diaspora_android/web/ContextMenuWebView.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ public void onClick(DialogInterface dialog, int which) {
114114
+ System.currentTimeMillis() + ".png");
115115
request.setDestinationUri(Uri.fromFile(destinationFile));
116116
((DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request);
117+
117118
Toast.makeText(context, context.getText(R.string.share__toast_saved_image_to_location) + " " +
118119
destinationFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
119120
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="24dp"
4+
android:height="24dp"
5+
android:viewportWidth="24"
6+
android:viewportHeight="24">
7+
8+
<path
9+
android:fillColor="#000000"
10+
android:pathData="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72
11+
0-1.3-.58-1.3-1.3 0-.72 .58 -1.3 1.3-1.3 .72 0 1.3 .58 1.3 1.3 0 .72-.58 1.3-1.3
12+
1.3zm1-4.3h-2V7h2v6z" />
13+
<path
14+
android:pathData="M0 0h24v24H0z" />
15+
</vector>

app/src/main/res/menu/main__navdrawer.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@
5353
android:icon="@drawable/ic_public_black_48px"
5454
android:title="@string/nav_public_activities" />
5555

56+
<item
57+
android:id="@+id/nav_reports"
58+
android:icon="@drawable/ic_report_black_48px"
59+
android:title="@string/nav_reports" />
60+
5661
<item
5762
android:id="@+id/nav_exit"
5863
android:icon="@drawable/ic_cancel_black_48px"

app/src/main/res/values/strings-preferences.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<string name="pref_key__visibility_nav__followed_tags" translatable="false">pref_key__visibility_nav__followed_tags</string>
4646
<string name="pref_key__visibility_nav__profile" translatable="false">pref_key__visibility_nav__profile</string>
4747
<string name="pref_key__visibility_nav__contacts" translatable="false">pref_key__visibility_nav__contacts</string>
48+
<string name="pref_key__visibility_nav__reports" translatable="false">pref_key__visibility_nav__reports</string>
4849

4950
<!-- PodProfile -->
5051
<string name="pref_key__podprofile_avatar_url" translatable="false">podUserProfile_avatar</string>
@@ -74,6 +75,9 @@
7475
<string name="pref_title__sub_nav_slider">Navigation Slider</string>
7576
<string name="pref_desc__sub_nav_slider">Control visibility of entries in the navigation drawer</string>
7677
<string name="pref_cat__visibility_nav_items">Item visibility</string>
78+
<string name="pref_cat__visibility_nav_items__user">User</string>
79+
<string name="pref_cat__visibility_nav_items__general">General</string>
80+
<string name="pref_cat__visibility_nav_items__admin">Admin</string>
7781

7882
<!-- Themes -->
7983
<string name="pref_title__themes">Theme and Colors</string>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
<string name="nav_followed_tags">Followed Tags</string>
7171
<string name="nav_public_activities">Public activities</string>
7272
<string name="nav_contacts" translatable="false">@string/contacts</string>
73+
<string name="nav_reports">Reports</string>
7374

7475
<string name="share__share_link_as_text">Share link as text</string>
7576
<string name="share__share_screenshot">Share screenshot of webpage</string>
Lines changed: 69 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,73 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
33

4-
<com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory
5-
android:key="@string/pref_key__title__visibility_nav"
6-
android:title="@string/pref_cat__visibility_nav_items">
7-
8-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
9-
android:defaultValue="true"
10-
android:key="@string/pref_key__visibility_nav__profile"
11-
android:title="@string/nav_profile"/>
12-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
13-
android:defaultValue="true"
14-
android:key="@string/pref_key__visibility_nav__followed_tags"
15-
android:title="@string/nav_followed_tags"/>
16-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
17-
android:defaultValue="true"
18-
android:key="@string/pref_key__visibility_nav__aspects"
19-
android:title="@string/nav_aspects"/>
20-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
21-
android:defaultValue="false"
22-
android:key="@string/pref_key__visibility_nav__contacts"
23-
android:title="@string/nav_contacts" />
24-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
25-
android:defaultValue="false"
26-
android:key="@string/pref_key__visibility_nav__activities"
27-
android:title="@string/nav_activities"/>
28-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
29-
android:defaultValue="true"
30-
android:key="@string/pref_key__visibility_nav__liked"
31-
android:title="@string/nav_liked"/>
32-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
33-
android:defaultValue="true"
34-
android:key="@string/pref_key__visibility_nav__commented"
35-
android:title="@string/nav_commented"/>
36-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
37-
android:defaultValue="false"
38-
android:key="@string/pref_key__visibility_nav__mentions"
39-
android:title="@string/nav_mentions"/>
40-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
41-
android:defaultValue="false"
42-
android:key="@string/pref_key__visibility_nav__public_activities"
43-
android:title="@string/nav_public_activities"/>
44-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
45-
android:defaultValue="false"
46-
android:key="@string/pref_key__visibility_nav__exit"
47-
android:title="@string/action_exit_app"/>
48-
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
49-
android:defaultValue="true"
50-
android:key="@string/pref_key__visibility_nav__help_license"
51-
android:title="@string/nav_help_license"/>
52-
53-
</com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory>
4+
<!-- User -->
5+
<com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory
6+
android:title="@string/pref_cat__visibility_nav_items__user">
7+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
8+
android:defaultValue="true"
9+
android:key="@string/pref_key__visibility_nav__profile"
10+
android:title="@string/nav_profile"/>
11+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
12+
android:defaultValue="true"
13+
android:key="@string/pref_key__visibility_nav__followed_tags"
14+
android:title="@string/nav_followed_tags"/>
15+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
16+
android:defaultValue="true"
17+
android:key="@string/pref_key__visibility_nav__aspects"
18+
android:title="@string/nav_aspects"/>
19+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
20+
android:defaultValue="false"
21+
android:key="@string/pref_key__visibility_nav__contacts"
22+
android:title="@string/nav_contacts" />
23+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
24+
android:defaultValue="false"
25+
android:key="@string/pref_key__visibility_nav__activities"
26+
android:title="@string/nav_activities"/>
27+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
28+
android:defaultValue="true"
29+
android:key="@string/pref_key__visibility_nav__liked"
30+
android:title="@string/nav_liked"/>
31+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
32+
android:defaultValue="true"
33+
android:key="@string/pref_key__visibility_nav__commented"
34+
android:title="@string/nav_commented"/>
35+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
36+
android:defaultValue="false"
37+
android:key="@string/pref_key__visibility_nav__mentions"
38+
android:title="@string/nav_mentions"/>
39+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
40+
android:defaultValue="false"
41+
android:key="@string/pref_key__visibility_nav__public_activities"
42+
android:title="@string/nav_public_activities"/>
43+
44+
</com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory>
45+
46+
47+
<!-- General -->
48+
<com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory
49+
android:title="@string/pref_cat__visibility_nav_items__general">
50+
51+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
52+
android:defaultValue="false"
53+
android:key="@string/pref_key__visibility_nav__exit"
54+
android:title="@string/action_exit_app"/>
55+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
56+
android:defaultValue="true"
57+
android:key="@string/pref_key__visibility_nav__help_license"
58+
android:title="@string/nav_help_license"/>
59+
60+
</com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory>
61+
62+
63+
<!-- Admin -->
64+
<com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory
65+
android:title="@string/pref_cat__visibility_nav_items__admin">
66+
67+
<com.github.dfa.diaspora_android.ui.theme.ThemedVisibilityPreference
68+
android:defaultValue="false"
69+
android:key="@string/pref_key__visibility_nav__reports"
70+
android:title="@string/nav_reports"/>
71+
72+
</com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceCategory>
5473
</PreferenceScreen>

0 commit comments

Comments
 (0)