From fae777c14c7a29039beadb00ada813b24c71b9d6 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Fri, 30 Mar 2018 18:41:11 +0200 Subject: [PATCH] make service items in drawer be dynamicly generated --- .../main/java/org/schabi/newpipe/MainActivity.java | 14 ++++++++++---- .../org/schabi/newpipe/util/ServiceHelper.java | 7 +++++++ app/src/main/res/layout/drawer_layout.xml | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 4a02d66ed..8285a445e 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -44,7 +44,6 @@ import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; -import android.widget.Toast; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; @@ -94,7 +93,15 @@ public class MainActivity extends AppCompatActivity { drawer = findViewById(R.id.drawer_layout); drawerItems = findViewById(R.id.navigation); - //drawerItems.setItemIconTintList(null); // Set null to use the original icon + for(StreamingService s : NewPipe.getServices()) { + String title = + s.getServiceInfo().getName() + + (ServiceHelper.isBeta(s) ? " (beta)" : ""); + MenuItem item = drawerItems.getMenu() + .add(R.id.menu_services_group, s.getServiceId(), 0, title); + item.setIcon(ServiceHelper.getIcon(s.getServiceId())); + } + drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(true); toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.drawer_open, R.string.drawer_close); @@ -126,9 +133,8 @@ public class MainActivity extends AppCompatActivity { private boolean changeService(MenuItem item) { if (item.getGroupId() == R.id.menu_services_group) { drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(false); - ServiceHelper.setSelectedServiceId(this, item.getTitle().toString()); + ServiceHelper.setSelectedServiceId(this, item.getItemId()); drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(true); - headerServiceView.setText("gurken"); } else { return false; } diff --git a/app/src/main/java/org/schabi/newpipe/util/ServiceHelper.java b/app/src/main/java/org/schabi/newpipe/util/ServiceHelper.java index 3bf509d08..d86f27f2f 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ServiceHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ServiceHelper.java @@ -109,4 +109,11 @@ public class ServiceHelper { return TimeUnit.MILLISECONDS.convert(1, TimeUnit.HOURS); } } + + public static boolean isBeta(final StreamingService s) { + switch(s.getServiceInfo().getName()) { + case "YouTube": return false; + default: return true; + } + } } diff --git a/app/src/main/res/layout/drawer_layout.xml b/app/src/main/res/layout/drawer_layout.xml index aba90430c..c0186a02c 100644 --- a/app/src/main/res/layout/drawer_layout.xml +++ b/app/src/main/res/layout/drawer_layout.xml @@ -75,8 +75,8 @@ android:layout_below="@id/drawer_header" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:menu="@menu/drawer_items" app:elevation="0dp"/> +