easily switch between multiple peertube instances
This commit is contained in:
parent
afef8d8d0b
commit
527c38adf9
14 changed files with 724 additions and 64 deletions
51
app/src/main/res/layout/fragment_instance_list.xml
Normal file
51
app/src/main/res/layout/fragment_instance_list.xml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout 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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/instanceHelpTV"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="15dp"
|
||||
android:autoLink="web"
|
||||
android:text="@string/peertube_instance_url_help"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/instances"
|
||||
android:layout_below="@id/instanceHelpTV"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:listitem="@layout/item_instance" />
|
||||
|
||||
<!-- LOADING INDICATOR-->
|
||||
<ProgressBar
|
||||
android:id="@+id/loading_progress_bar"
|
||||
style="@style/Widget.AppCompat.ProgressBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerInParent="true"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/addInstanceButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
app:backgroundTint="?attr/colorPrimary"
|
||||
app:fabSize="auto"
|
||||
app:srcCompat="?attr/ic_add" />
|
||||
|
||||
</RelativeLayout>
|
||||
6
app/src/main/res/layout/instance_spinner_item.xml
Normal file
6
app/src/main/res/layout/instance_spinner_item.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@android:id/text1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:maxLength="0" />
|
||||
9
app/src/main/res/layout/instance_spinner_layout.xml
Normal file
9
app/src/main/res/layout/instance_spinner_layout.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/spinner"
|
||||
tools:listitem="@layout/instance_spinner_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:prompt="@string/choose_instance_prompt" />
|
||||
83
app/src/main/res/layout/item_instance.xml
Normal file
83
app/src/main/res/layout/item_instance.xml
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView
|
||||
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"
|
||||
android:id="@+id/layoutCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:minHeight="?listPreferredItemHeightSmall"
|
||||
android:orientation="horizontal"
|
||||
app:cardCornerRadius="5dp"
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center_vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/instanceIcon"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_marginLeft="10dp"
|
||||
tools:ignore="ContentDescription,RtlHardcoded"
|
||||
tools:src="@drawable/place_holder_peertube"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/instanceName"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_toRightOf="@+id/instanceIcon"
|
||||
android:layout_toLeftOf="@id/selectInstanceRB"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="marquee"
|
||||
android:textAppearance="?textAppearanceListItem"
|
||||
tools:ignore="RtlHardcoded"
|
||||
tools:text="Framatube"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/instanceUrl"
|
||||
android:autoLink="web"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_toRightOf="@id/instanceIcon"
|
||||
android:layout_toLeftOf="@id/selectInstanceRB"
|
||||
android:layout_below="@id/instanceName"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="marquee"
|
||||
android:textAppearance="?textAppearanceListItemSecondary"
|
||||
tools:ignore="RtlHardcoded"
|
||||
tools:text="https://framatube.org"/>
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/selectInstanceRB"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toLeftOf="@id/handle"
|
||||
android:layout_centerVertical="true"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/handle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:paddingBottom="12dp"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingTop="12dp"
|
||||
android:src="?attr/drag_handle"
|
||||
tools:ignore="ContentDescription,RtlHardcoded"/>
|
||||
</RelativeLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
|
@ -144,8 +144,9 @@
|
|||
<string name="default_language_value">en</string>
|
||||
<string name="default_country_value">GB</string>
|
||||
<string name="content_language_key" translatable="false">content_language</string>
|
||||
<string name="peertube_instance_url_key" translatable="false">peertube_instance_url</string>
|
||||
<string name="peertube_instance_name_key" translatable="false">peertube_instance_name</string>
|
||||
<string name="peertube_instance_setup_key" translatable="false">peertube_instance_setup</string>
|
||||
<string name="peertube_selected_instance_key" translatable="false">peertube_selected_instance</string>
|
||||
<string name="peertube_instance_list_key" translatable="false">peertube_instance_list</string>
|
||||
<string name="content_country_key" translatable="false">content_country</string>
|
||||
<string name="show_age_restricted_content" translatable="false">show_age_restricted_content</string>
|
||||
<string name="use_tor_key" translatable="false">use_tor</string>
|
||||
|
|
|
|||
|
|
@ -109,8 +109,11 @@
|
|||
<string name="default_content_country_title">Default content country</string>
|
||||
<string name="service_title">Service</string>
|
||||
<string name="content_language_title">Default content language</string>
|
||||
<string name="peertube_instance_url_title">PeerTube instance</string>
|
||||
<string name="peertube_instance_url_title">PeerTube instances</string>
|
||||
<string name="peertube_instance_url_summary">Set your favorite peertube instances</string>
|
||||
<string name="peertube_instance_url_help">Find the instance that best suits you on https://instances.joinpeertube.org</string>
|
||||
<string name="peertube_instance_add_title">Add instance</string>
|
||||
<string name="peertube_instance_add_help">enter instance url</string>
|
||||
<string name="settings_category_player_title">Player</string>
|
||||
<string name="settings_category_player_behavior_title">Behavior</string>
|
||||
<string name="settings_category_video_audio_title">Video & audio</string>
|
||||
|
|
@ -578,4 +581,6 @@
|
|||
<string name="downloads_storage_ask_summary_kitkat">You will be asked where to save each download.\nChoose SAF if you want to download to an external SD card</string>
|
||||
<string name="downloads_storage_use_saf_title">Use SAF</string>
|
||||
<string name="downloads_storage_use_saf_summary">The Storage Access Framework allows downloads to an external SD card.\nNote: some devices are not compatible</string>
|
||||
<string name="choose_instance_prompt">Choose an instance</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -12,12 +12,12 @@
|
|||
android:summary="%s"
|
||||
android:title="@string/content_language_title"/>
|
||||
|
||||
<EditTextPreference
|
||||
<PreferenceScreen
|
||||
app:iconSpaceReserved="false"
|
||||
android:dialogMessage="@string/peertube_instance_url_help"
|
||||
android:key="@string/peertube_instance_url_key"
|
||||
android:fragment="org.schabi.newpipe.settings.PeertubeInstanceListFragment"
|
||||
android:key="@string/peertube_instance_setup_key"
|
||||
android:title="@string/peertube_instance_url_title"
|
||||
android:inputType="textUri" />
|
||||
android:summary="@string/peertube_instance_url_summary"/>
|
||||
|
||||
<ListPreference
|
||||
app:iconSpaceReserved="false"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue