mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2024-12-26 01:50:32 +00:00
Add simple drawer for selecting service
This commit is contained in:
parent
621a1909ec
commit
54aa40eac1
@ -28,8 +28,13 @@ import android.os.Looper;
|
|||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.view.GravityCompat;
|
||||||
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
|
import android.support.v7.app.ActionBarDrawerToggle;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -85,8 +90,50 @@ public class MainActivity extends AppCompatActivity implements HistoryListener {
|
|||||||
initFragments();
|
initFragments();
|
||||||
}
|
}
|
||||||
|
|
||||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
final Toolbar toolbar = findViewById(R.id.toolbar);
|
||||||
|
final DrawerLayout drawer = findViewById(R.id.drawer_layout);
|
||||||
|
final NavigationView drawerItems = findViewById(R.id.navigation);
|
||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
|
final ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.drawer_open, R.string.drawer_close);
|
||||||
|
toggle.syncState();
|
||||||
|
drawer.addDrawerListener(toggle);
|
||||||
|
|
||||||
|
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
|
||||||
|
@Override
|
||||||
|
public void onBackStackChanged() {
|
||||||
|
if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
|
||||||
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
onBackPressed();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
||||||
|
toggle.syncState();
|
||||||
|
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
drawer.openDrawer(GravityCompat.START);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
drawerItems.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
|
||||||
|
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
||||||
|
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
|
||||||
|
editor.putString("service", item.getTitle().toString());
|
||||||
|
editor.apply();
|
||||||
|
drawer.closeDrawers();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
|
||||||
initHistory();
|
initHistory();
|
||||||
|
@ -30,13 +30,10 @@ import org.schabi.newpipe.fragments.list.kiosk.KioskFragment;
|
|||||||
import org.schabi.newpipe.fragments.subscription.SubscriptionFragment;
|
import org.schabi.newpipe.fragments.subscription.SubscriptionFragment;
|
||||||
import org.schabi.newpipe.report.ErrorActivity;
|
import org.schabi.newpipe.report.ErrorActivity;
|
||||||
import org.schabi.newpipe.report.UserAction;
|
import org.schabi.newpipe.report.UserAction;
|
||||||
import org.schabi.newpipe.util.Constants;
|
|
||||||
import org.schabi.newpipe.util.KioskTranslator;
|
import org.schabi.newpipe.util.KioskTranslator;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
|
|
||||||
public class MainFragment extends BaseFragment implements TabLayout.OnTabSelectedListener {
|
public class MainFragment extends BaseFragment implements TabLayout.OnTabSelectedListener {
|
||||||
private ViewPager viewPager;
|
private ViewPager viewPager;
|
||||||
private boolean showBlankTab = false;
|
private boolean showBlankTab = false;
|
||||||
@ -139,7 +136,7 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte
|
|||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.action_search:
|
case R.id.action_search:
|
||||||
NavigationHelper.openSearchFragment(getFragmentManager(), Integer.parseInt(PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("service", "0")), "");
|
NavigationHelper.openSearchFragment(getFragmentManager(), NewPipe.getIdOfService(PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("service", "YouTube")), "");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
@ -1,18 +1,30 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merge
|
<android.support.v4.widget.DrawerLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/drawer_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:context="org.schabi.newpipe.MainActivity">
|
tools:context="org.schabi.newpipe.MainActivity">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/fragment_holder"
|
android:id="@+id/fragment_holder"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="?attr/actionBarSize"/>
|
android:layout_marginTop="?attr/actionBarSize" />
|
||||||
|
|
||||||
<include layout="@layout/toolbar_layout"/>
|
<include layout="@layout/toolbar_layout" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
</merge>
|
<android.support.design.widget.NavigationView
|
||||||
|
android:id="@+id/navigation"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="start"
|
||||||
|
app:menu="@menu/drawer_items" />
|
||||||
|
</android.support.v4.widget.DrawerLayout>
|
5
app/src/main/res/menu/drawer_items.xml
Normal file
5
app/src/main/res/menu/drawer_items.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:title="@string/youtube" />
|
||||||
|
<item android:title="@string/soundcloud" />
|
||||||
|
</menu>
|
@ -46,16 +46,12 @@
|
|||||||
<item>144p</item>
|
<item>144p</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="service_list_description" translatable="false">
|
<string-array name="service_list" translatable="false">
|
||||||
<item>YouTube</item>
|
<item>@string/youtube</item>
|
||||||
<item>SoundCloud</item>
|
<item>@string/soundcloud</item>
|
||||||
</string-array>
|
|
||||||
<string-array name="service_list_values" translatable="false">
|
|
||||||
<item>0</item>
|
|
||||||
<item>1</item>
|
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="service_key" translatable="false">service</string>
|
<string name="service_key" translatable="false">service</string>
|
||||||
<string name="default_service_value" translatable="false">0</string>
|
<string name="default_service_value" translatable="false">@string/youtube</string>
|
||||||
|
|
||||||
<string name="video_mp4_key" translatable="false">video_mp4</string>
|
<string name="video_mp4_key" translatable="false">video_mp4</string>
|
||||||
<string name="video_webm_key" translatable="false">video_webm</string>
|
<string name="video_webm_key" translatable="false">video_webm</string>
|
||||||
|
@ -309,4 +309,10 @@
|
|||||||
<string name="play_queue_stream_detail">Details</string>
|
<string name="play_queue_stream_detail">Details</string>
|
||||||
<string name="play_queue_audio_settings">Audio Settings</string>
|
<string name="play_queue_audio_settings">Audio Settings</string>
|
||||||
<string name="hold_to_append">Hold To Enqueue</string>
|
<string name="hold_to_append">Hold To Enqueue</string>
|
||||||
|
|
||||||
|
<!-- Drawer -->
|
||||||
|
<string name="drawer_open">Open Drawer</string>
|
||||||
|
<string name="drawer_close">Close Drawer</string>
|
||||||
|
<string name="youtube" translatable="false">YouTube</string>
|
||||||
|
<string name="soundcloud" translatable="false">SoundCloud</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="@string/default_service_value"
|
android:defaultValue="@string/default_service_value"
|
||||||
android:entries="@array/service_list_description"
|
android:entries="@array/service_list"
|
||||||
android:entryValues="@array/service_list_values"
|
android:entryValues="@array/service_list"
|
||||||
android:key="@string/service_key"
|
android:key="@string/service_key"
|
||||||
android:summary="%s"
|
android:summary="%s"
|
||||||
android:title="@string/service_title"/>
|
android:title="@string/service_title"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user