Skip to content

Commit b3774d0

Browse files
committed
Add setting to hide credit points
1 parent 8633fe2 commit b3774d0

8 files changed

Lines changed: 103 additions & 26 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- Allow scraping of universities which provide multiple grade entry tables for each semester
66
- Improve redirect handling
77
- Add new weekly scraping interval
8+
- Add setting to hide credit points
89

910
# 1.1.2
1011

app/src/main/java/de/mygrades/view/activity/FragmentOverview.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ private void showInfoBox() {
219219
return;
220220
}
221221
} else {
222-
prefs.edit().putBoolean(Constants.PREF_KEY_DISMISSED_RATING_INFO, false);
222+
prefs.edit().putBoolean(Constants.PREF_KEY_DISMISSED_RATING_INFO, false).apply();
223223
}
224224

225225
// show edit mode info

app/src/main/java/de/mygrades/view/activity/FragmentStatistics.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import android.view.LayoutInflater;
1010
import android.view.View;
1111
import android.view.ViewGroup;
12+
import android.widget.LinearLayout;
13+
import android.widget.RelativeLayout;
1214
import android.widget.TextView;
1315

1416
import com.github.mikephil.charting.charts.BarChart;
@@ -53,6 +55,12 @@ public class FragmentStatistics extends Fragment implements SharedPreferences.On
5355
private LineChart chartAverageGradePerSemester;
5456
private BarChart chartGradeDistribution;
5557

58+
private LinearLayout llCreditPointsWrapper;
59+
private LinearLayout llCreditPointsPerSemesterWrapper;
60+
private RelativeLayout rlCreditPointsSummaryWrapper;
61+
private RelativeLayout rlCreditPointsPerSemesterSummaryWrapper;
62+
private RelativeLayout rlStudyProgressSummaryWrapper;
63+
5664
private MainServiceHelper mainServiceHelper;
5765
private Map<String, Integer> semesterNumberMap;
5866
private String actualFirstSemester;
@@ -76,6 +84,15 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
7684
chartAverageGradePerSemester = (LineChart) view.findViewById(R.id.chart_average_grade_per_semester);
7785
chartGradeDistribution = (BarChart) view.findViewById(R.id.chart_grade_distribution);
7886

87+
llCreditPointsWrapper = (LinearLayout) view.findViewById(R.id.ll_chart_credit_points_wrapper);
88+
llCreditPointsPerSemesterWrapper = (LinearLayout) view.findViewById(R.id.ll_chart_credit_points_per_semester_wrapper);
89+
rlCreditPointsSummaryWrapper = (RelativeLayout) view.findViewById(R.id.rl_credit_points_summary_wrapper);
90+
rlCreditPointsPerSemesterSummaryWrapper = (RelativeLayout) view.findViewById(R.id.rl_credit_points_per_semester_summary_wrapper);
91+
rlStudyProgressSummaryWrapper = (RelativeLayout) view.findViewById(R.id.rl_study_progress_summary_wrapper);
92+
93+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
94+
hideCreditPoints(prefs.getBoolean(getString(R.string.pref_key_hide_credit_points), false));
95+
7996
EventBus.getDefault().register(this);
8097

8198
mainServiceHelper = new MainServiceHelper(getContext());
@@ -315,6 +332,18 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
315332
if (key.equals(getContext().getString(R.string.pref_key_simple_weighting))) {
316333
mainServiceHelper.getStatistics();
317334
}
335+
336+
if (key.equals(getContext().getString(R.string.pref_key_hide_credit_points))) {
337+
hideCreditPoints(sharedPreferences.getBoolean(key, false));
338+
}
339+
}
340+
341+
private void hideCreditPoints(boolean hide) {
342+
llCreditPointsPerSemesterWrapper.setVisibility(hide ? View.GONE : View.VISIBLE);
343+
llCreditPointsWrapper.setVisibility(hide ? View.GONE : View.VISIBLE);
344+
rlCreditPointsSummaryWrapper.setVisibility(hide ? View.GONE : View.VISIBLE);
345+
rlCreditPointsPerSemesterSummaryWrapper.setVisibility(hide ? View.GONE : View.VISIBLE);
346+
rlStudyProgressSummaryWrapper.setVisibility(hide ? View.GONE : View.VISIBLE);
318347
}
319348

320349
/**

app/src/main/java/de/mygrades/view/adapter/GradesRecyclerViewAdapter.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public class GradesRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView
5656
private String actualFirstSemester;
5757

5858
private boolean editModeEnabled;
59+
private boolean hideCreditPoints;
5960

6061
public GradesRecyclerViewAdapter(Context context) {
6162
super();
@@ -70,6 +71,7 @@ public GradesRecyclerViewAdapter(Context context) {
7071

7172
this.context = context;
7273
prefs = PreferenceManager.getDefaultSharedPreferences(this.context);
74+
hideCreditPoints = prefs.getBoolean(context.getString(R.string.pref_key_hide_credit_points), false);
7375

7476
// register for preference changes
7577
prefsListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@@ -81,6 +83,8 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
8183
updateSimpleWeighting();
8284
updateSummary();
8385
updateSemesterSummaries();
86+
} else if (key.equals(GradesRecyclerViewAdapter.this.context.getString(R.string.pref_key_hide_credit_points))) {
87+
hideCreditPoints(prefs.getBoolean(key, false));
8488
}
8589
}
8690
};
@@ -434,6 +438,11 @@ public void clear() {
434438
items.clear();
435439
}
436440

441+
public void hideCreditPoints(boolean hide) {
442+
this.hideCreditPoints = hide;
443+
notifyItemRangeChanged(0, items.size() - 1);
444+
}
445+
437446
@Override
438447
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
439448
if (viewType == VIEW_TYPE_SEMESTER) {
@@ -480,6 +489,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
480489
} else {
481490
viewHolder.hide(semesterItem.getVisibleGradesCount() == 0);
482491
}
492+
493+
// hide credit points if setting is set
494+
viewHolder.tvCreditPoints.setVisibility(hideCreditPoints ? View.GONE : View.VISIBLE);
483495
} else if (holder instanceof GradeViewHolder) {
484496
GradeViewHolder viewHolder = (GradeViewHolder) holder;
485497
GradeItem gradeItem = (GradeItem) items.get(position);
@@ -534,6 +546,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
534546
}
535547

536548
viewHolder.enableClickListener(!editModeEnabled);
549+
550+
// hide credit points if setting is set
551+
viewHolder.tvCreditPoints.setVisibility(hideCreditPoints ? View.GONE : View.VISIBLE);
537552
} else if (holder instanceof GradesSummaryViewHolder) {
538553
GradesSummaryViewHolder viewHolder = (GradesSummaryViewHolder) holder;
539554
GradesSummaryItem summaryItem = (GradesSummaryItem) items.get(position);
@@ -559,6 +574,9 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
559574
} else {
560575
viewHolder.llNoGradesInfo.setVisibility(View.GONE);
561576
}
577+
578+
// hide credit points if setting is set
579+
viewHolder.llCreditPointsWrapper.setVisibility(hideCreditPoints ? View.GONE : View.VISIBLE);
562580
} else if (holder instanceof FooterViewHolder) {
563581
FooterViewHolder footerViewHolder = (FooterViewHolder) holder;
564582
GradesFooterItem footerItem = (GradesFooterItem) items.get(position);
@@ -820,6 +838,7 @@ public static class GradesSummaryViewHolder extends RecyclerView.ViewHolder {
820838
public ImageView dismissInfoBox;
821839
public LinearLayout llNoGradesInfo;
822840
public Button btnLogout;
841+
public LinearLayout llCreditPointsWrapper;
823842

824843
public GradesSummaryViewHolder(final View itemView) {
825844
super(itemView);
@@ -834,6 +853,7 @@ public GradesSummaryViewHolder(final View itemView) {
834853
dismissInfoBox = (ImageView) itemView.findViewById(R.id.iv_dismiss_info);
835854
llNoGradesInfo = (LinearLayout) itemView.findViewById(R.id.ll_no_grades_wrapper);
836855
btnLogout = (Button) itemView.findViewById(R.id.btn_logout);
856+
llCreditPointsWrapper = (LinearLayout) itemView.findViewById(R.id.ll_credit_points_wrapper);
837857
}
838858
}
839859

app/src/main/res/layout/fragment_statistics.xml

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
</RelativeLayout>
2323

2424
<RelativeLayout
25+
android:id="@+id/rl_credit_points_summary_wrapper"
2526
style="@style/StatisticsRow">
2627

2728
<TextView
@@ -35,6 +36,7 @@
3536
</RelativeLayout>
3637

3738
<RelativeLayout
39+
android:id="@+id/rl_credit_points_per_semester_summary_wrapper"
3840
style="@style/StatisticsRow">
3941

4042
<TextView
@@ -48,6 +50,7 @@
4850
</RelativeLayout>
4951

5052
<RelativeLayout
53+
android:id="@+id/rl_study_progress_summary_wrapper"
5154
style="@style/StatisticsRow">
5255

5356
<TextView
@@ -60,8 +63,7 @@
6063
<View style="@style/Divider"/>
6164
</RelativeLayout>
6265

63-
<RelativeLayout
64-
style="@style/StatisticsRow">
66+
<RelativeLayout style="@style/StatisticsRow">
6567

6668
<TextView
6769
style="@style/GradeDetailTextViewLeft"
@@ -73,35 +75,49 @@
7375
<View style="@style/Divider"/>
7476
</RelativeLayout>
7577

76-
<TextView
78+
<LinearLayout
79+
android:id="@+id/ll_chart_credit_points_wrapper"
7780
android:layout_width="match_parent"
7881
android:layout_height="wrap_content"
79-
android:text="@string/chart_credit_points"
80-
android:paddingLeft="16dp"
81-
android:layout_marginTop="32dp"
82-
android:textSize="16sp"
83-
android:fontFamily="sans-serif-medium"/>
82+
android:orientation="vertical">
8483

85-
<com.github.mikephil.charting.charts.LineChart
86-
android:id="@+id/chart_credit_points"
87-
android:layout_width="match_parent"
88-
android:layout_height="240dp"
89-
android:layout_margin="8dp" />
90-
91-
<TextView
84+
<TextView
85+
android:layout_width="match_parent"
86+
android:layout_height="wrap_content"
87+
android:text="@string/chart_credit_points"
88+
android:paddingLeft="16dp"
89+
android:layout_marginTop="32dp"
90+
android:textSize="16sp"
91+
android:fontFamily="sans-serif-medium"/>
92+
93+
<com.github.mikephil.charting.charts.LineChart
94+
android:id="@+id/chart_credit_points"
95+
android:layout_width="match_parent"
96+
android:layout_height="240dp"
97+
android:layout_margin="8dp" />
98+
</LinearLayout>
99+
100+
<LinearLayout
101+
android:id="@+id/ll_chart_credit_points_per_semester_wrapper"
92102
android:layout_width="match_parent"
93103
android:layout_height="wrap_content"
94-
android:text="@string/chart_credit_points_per_semester"
95-
android:paddingLeft="16dp"
96-
android:layout_marginTop="32dp"
97-
android:textSize="16sp"
98-
android:fontFamily="sans-serif-medium" />
104+
android:orientation="vertical">
99105

100-
<com.github.mikephil.charting.charts.LineChart
101-
android:id="@+id/chart_credit_points_per_semester"
102-
android:layout_width="match_parent"
103-
android:layout_height="240dp"
104-
android:layout_margin="8dp"/>
106+
<TextView
107+
android:layout_width="match_parent"
108+
android:layout_height="wrap_content"
109+
android:text="@string/chart_credit_points_per_semester"
110+
android:paddingLeft="16dp"
111+
android:layout_marginTop="32dp"
112+
android:textSize="16sp"
113+
android:fontFamily="sans-serif-medium" />
114+
115+
<com.github.mikephil.charting.charts.LineChart
116+
android:id="@+id/chart_credit_points_per_semester"
117+
android:layout_width="match_parent"
118+
android:layout_height="240dp"
119+
android:layout_margin="8dp"/>
120+
</LinearLayout>
105121

106122
<TextView
107123
android:layout_width="match_parent"

app/src/main/res/layout/item_grades_summary.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@
9292

9393
<!-- Credit points -->
9494
<LinearLayout
95+
android:id="@+id/ll_credit_points_wrapper"
9596
android:layout_width="match_parent"
9697
android:layout_height="wrap_content"
9798
android:orientation="horizontal"

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,8 @@
6060
<string name="pref_key_simple_weighting">pref_key_simple_weighting</string>
6161
<string name="pref_simple_weighting_title">Einfache Gewichtung</string>
6262
<string name="pref_simple_weighting_summary">Bestandene Leistungen werden bei Berechnung des Durchschnitts einfach gewichtet und CPs dabei ignoriert</string>
63+
64+
<string name="pref_key_hide_credit_points">pref_key_hide_credit_points</string>
65+
<string name="pref_hide_credit_points_title">Credit-Points ausblenden</string>
66+
<string name="pref_hide_credit_points_summary">CPs werden in der Übersicht und den Statistiken ausgeblendet</string>
6367
</resources>

app/src/main/res/xml/settings.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
android:title="@string/pref_simple_weighting_title"
2121
android:summary="@string/pref_simple_weighting_summary" />
2222

23+
<SwitchPreference
24+
android:defaultValue="false"
25+
android:key="@string/pref_key_hide_credit_points"
26+
android:title="@string/pref_hide_credit_points_title"
27+
android:summary="@string/pref_hide_credit_points_summary" />
28+
2329
<Preference
2430
android:key="@string/pref_key_logout"
2531
android:title="@string/pref_logout_title"

0 commit comments

Comments
 (0)