diff --git a/build.gradle b/build.gradle index 90076707ca309468217aca780b08a4e6c058a1fb..beaf585e8129ac8fd357462795f21da0c3e908d4 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,7 @@ allprojects { repositories { jcenter() mavenLocal() + maven { url 'https://jitpack.io' } google() } } diff --git a/mailbox-android/build.gradle b/mailbox-android/build.gradle index f2ba02c0b3ed66172e8a56e9d41e05d233864e55..9484df25e818642306667c69928429b2e71a13f3 100644 --- a/mailbox-android/build.gradle +++ b/mailbox-android/build.gradle @@ -12,6 +12,7 @@ dependencies { // alternately - if using Java8, use the following instead of compiler implementation "android.arch.lifecycle:common-java8:$lifecycle_version" + implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3' def supportVersion = '27.1.1' implementation "com.android.support:support-v4:$supportVersion" implementation("com.android.support:appcompat-v7:$supportVersion") { diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/overview/OverviewFragment.java b/mailbox-android/src/main/java/org/briarproject/mailbox/android/overview/OverviewFragment.java index 73a1570f4d5af4b35de82baac1a28077e72a5450..a0b8f2d73507b8af8a30fadd162aedf44a325ef0 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/overview/OverviewFragment.java +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/overview/OverviewFragment.java @@ -12,6 +12,13 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import com.github.mikephil.charting.charts.PieChart; +import com.github.mikephil.charting.data.PieData; +import com.github.mikephil.charting.data.PieDataSet; +import com.github.mikephil.charting.data.PieEntry; +import com.github.mikephil.charting.formatter.PercentFormatter; +import com.github.mikephil.charting.utils.ColorTemplate; + import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.mailbox.R; @@ -20,6 +27,8 @@ import org.briarproject.mailbox.android.fragment.BaseEventFragment; import org.briarproject.mailbox.android.keyagreement.MailboxExchangeActivity; import org.briarproject.mailbox.android.viewmodels.MailboxOwnerStatusViewModel; +import java.util.ArrayList; +import java.util.List; import java.util.logging.Logger; import javax.annotation.Nullable; @@ -38,7 +47,8 @@ public class OverviewFragment extends BaseEventFragment { private static final Logger LOG = Logger.getLogger(TAG); private ImageView ownerStatus; - private TextView ownerName; + private TextView ownerName, diskSpace; + private PieChart pieChart; public static OverviewFragment newInstance() { OverviewFragment f = new OverviewFragment(); @@ -72,6 +82,21 @@ public class OverviewFragment extends BaseEventFragment { super.onViewCreated(view, savedInstanceState); ownerStatus = view.findViewById(R.id.ownerStatus); ownerName = view.findViewById(R.id.ownerName); + diskSpace = view.findViewById(R.id.diskSpace); + pieChart = view.findViewById(R.id.piechart); + pieChart.setUsePercentValues(true); + List<PieEntry> yvalues = new ArrayList<>(); + + + yvalues.add(new PieEntry(50f, "Free")); + yvalues.add(new PieEntry(25f, "Used by Mailbox")); + yvalues.add(new PieEntry(25f, "Used by other apps")); + PieDataSet dataSet = new PieDataSet(yvalues, "Disk Usage"); + dataSet.setColors(ColorTemplate.LIBERTY_COLORS); + PieData data = new PieData(dataSet); + data.setValueFormatter(new PercentFormatter()); + pieChart.setData(data); + pieChart.invalidate(); TextView ownerText = view.findViewById(R.id.ownerText); TextView emptyText = view.findViewById(R.id.emptyText); final MailboxOwnerStatusViewModel @@ -83,12 +108,16 @@ public class OverviewFragment extends BaseEventFragment { ownerName.setVisibility(GONE); ownerStatus.setVisibility(GONE); ownerText.setVisibility(GONE); + diskSpace.setVisibility(GONE); + pieChart.setVisibility(GONE); emptyText.setVisibility(VISIBLE); } else { emptyText.setVisibility(GONE); ownerText.setVisibility(VISIBLE); ownerName.setVisibility(VISIBLE); ownerName.setText(mailboxOwnerStatus.getName()); + diskSpace.setVisibility(VISIBLE); + pieChart.setVisibility(VISIBLE); ownerStatus.setVisibility(VISIBLE); if (mailboxOwnerStatus.isOnline()) ownerStatus.setImageResource(contact_online); diff --git a/mailbox-android/src/main/res/layout/fragment_overview.xml b/mailbox-android/src/main/res/layout/fragment_overview.xml index 964a7e5ffdc79f4a1ca33d3cbf14b8dc9dde9416..54334f37fb7ecf1f7e41cbe57c227e812daaec61 100644 --- a/mailbox-android/src/main/res/layout/fragment_overview.xml +++ b/mailbox-android/src/main/res/layout/fragment_overview.xml @@ -57,34 +57,32 @@ tools:ignore="ContentDescription" tools:src="@drawable/contact_offline"/> - <Switch - android:id="@+id/btToggle" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="8dp" - android:text="@string/transport_bt" - android:visibility="gone" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/ownerText"/> - <Switch - android:id="@+id/wifiToggle" - android:layout_width="match_parent" + <TextView + android:id="@+id/diskSpace" + android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="8dp" - android:text="@string/transport_lan" + android:layout_marginTop="25dp" + android:gravity="center" + android:padding="@dimen/margin_large" + android:text="Disk usage" + android:textColor="@color/briar_text_primary" + android:textSize="@dimen/text_size_large" android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/btToggle"/> + app:layout_constraintTop_toBottomOf="@id/ownerText"/> - <Switch - android:id="@+id/torToggle" + <com.github.mikephil.charting.charts.PieChart + android:id="@+id/piechart" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="8dp" - android:text="@string/transport_tor" + android:layout_height="0dp" + android:layout_margin="10dp" android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/wifiToggle"/> + app:layout_constraintTop_toBottomOf="@+id/diskSpace"/> </android.support.constraint.ConstraintLayout>