About page

This commit is contained in:
Thomas 2020-09-16 14:07:44 +02:00
parent 2d32aa9a9b
commit ea810fd61b
16 changed files with 511 additions and 15 deletions

View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorAccent" />
<item
android:color="@color/colorAccent"
android:state_checked="true" />
<item android:color="@android:color/tab_indicator_text" />
</selector>

View File

@ -56,7 +56,7 @@
<string name="bookmark_add_peertube">La vidéo est rajoutée aux favoris !</string>
<string name="bookmark_remove_peertube">La vidéo a été retirée de vos favoris !</string>
<string name="shared_via">Partagé via Fedilab Tube</string>
<string name="shared_via">Partagé via TubeLab</string>
<string name="share_with">Partager avec</string>
<string name="pickup_resolution">Choisissez une résolution</string>
@ -213,4 +213,11 @@
<string name="edit">Modifier</string>
<string name="not_valide_instance">Cette instance ne semble pas être valide !</string>
<string name="developer">Développeur</string>
<string name="about_vesrion">Version %1$s</string>
<string name="about_the_app">À propos de lapplication</string>
<string name="Donate">Faire un don</string>
<string name="source_code">Code source</string>
<string name="issue_tracker">Suivi des tickets</string>
</resources>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorAccent_full" />
<item android:color="@color/colorAccent_full" android:state_checked="true" />
<item android:color="@android:color/tab_indicator_text" />
</selector>

View File

@ -61,7 +61,7 @@
<string name="validate">Validate</string>
<string name="share_with">Share with</string>
<string name="shared_via">Shared via Fedilab</string>
<string name="shared_via">Shared via TubeLab</string>
<string name="username">User name</string>
<string name="settings">Settings</string>
@ -231,4 +231,11 @@
<string name="create_an_account">Create an account</string>
<string name="followers_count">%1$s Subscribers</string>
<string name="developer">Developer</string>
<string name="about_vesrion">Release %1$s</string>
<string name="about_the_app">About the app</string>
<string name="Donate">Donate</string>
<string name="source_code">Source code</string>
<string name="issue_tracker">Issue tracker</string>
</resources>

View File

@ -87,13 +87,13 @@
android:name=".LoginActivity"
android:configChanges="orientation|screenSize"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysHidden"></activity>
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".SettingsActivity"
android:configChanges="orientation|screenSize"
android:label="@string/settings"
android:windowSoftInputMode="stateAlwaysHidden"></activity>
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".PeertubeRegisterActivity"
android:configChanges="orientation|screenSize"
@ -104,6 +104,11 @@
android:configChanges="orientation|screenSize"
android:label="@string/upload_video"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name=".AboutActivity"
android:configChanges="orientation|screenSize"
android:label="@string/about_the_app"
android:windowSoftInputMode="stateAlwaysHidden" />
<receiver
android:name=".services.PeertubeUploadReceiver"

View File

@ -0,0 +1,141 @@
package app.fedilab.fedilabtube;
/* Copyright 2020 Thomas Schneider
*
* This file is a part of TubeLab
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
* License, or (at your option) any later version.
*
* TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
* see <http://www.gnu.org/licenses>. */
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import app.fedilab.fedilabtube.helper.Helper;
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
TextView about_version = findViewById(R.id.about_version);
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;
about_version.setText(getResources().getString(R.string.about_vesrion, version));
} catch (PackageManager.NameNotFoundException ignored) {
}
setTitle(R.string.about_the_app);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
//Developer click for Mastodon account
TextView developer_mastodon = findViewById(R.id.developer_mastodon);
SpannableString content = new SpannableString(developer_mastodon.getText().toString());
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, Helper.getColorAccent())), 0, content.length(), 0);
developer_mastodon.setText(content);
developer_mastodon.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://toot.fedilab.app/@Tubelab"));
startActivity(browserIntent);
});
//App Name:
TextView app_name = findViewById(R.id.app_name);
app_name.setText(R.string.app_name);
//Developer Github
TextView github = findViewById(R.id.github);
content = new SpannableString(github.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
github.setText(content);
github.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/stom79"));
startActivity(browserIntent);
});
//Developer Framagit
TextView framagit = findViewById(R.id.framagit);
content = new SpannableString(framagit.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
framagit.setText(content);
framagit.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://framagit.org/tom79"));
startActivity(browserIntent);
});
//Developer Codeberg
TextView codeberg = findViewById(R.id.codeberg);
content = new SpannableString(codeberg.getText().toString());
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
codeberg.setText(content);
codeberg.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://codeberg.org/tom79"));
startActivity(browserIntent);
});
LinearLayout donation_container = findViewById(R.id.donation_container);
if (BuildConfig.google_restriction) {
donation_container.setVisibility(View.GONE);
}
//Developer donation
Button donatePaypal = findViewById(R.id.donate_paypal);
donatePaypal.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.paypal.me/Mastalab"));
startActivity(browserIntent);
});
Button donateLiberapay = findViewById(R.id.donate_liberapay);
donateLiberapay.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://liberapay.com/tom79"));
startActivity(browserIntent);
});
TextView license = findViewById(R.id.license);
content = new SpannableString(license.getText().toString());
content.setSpan(new ForegroundColorSpan(ContextCompat.getColor(AboutActivity.this, Helper.getColorAccent())), 0, content.length(), 0);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
license.setText(content);
license.setOnClickListener(v -> {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.gnu.org/licenses/quick-guide-gplv3.fr.html"));
startActivity(browserIntent);
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}

View File

@ -215,6 +215,10 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(MainActivity.this, AllPlaylistsActivity.class);
startActivity(intent);
return true;
} else if (item.getItemId() == R.id.action_about) {
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z" />
</vector>

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="80"
android:viewportHeight="80">
<path
android:fillColor="#FFFFFF"
android:pathData="m25.91,63.04c-3.571,0 -6.373,-0.466 -8.41,-1.396 -2.037,-0.93 -3.495,-2.199 -4.375,-3.809 -0.88,-1.609 -1.308,-3.457 -1.282,-5.544 0.025,-2.086 0.313,-4.311 0.868,-6.675l9.579,-40.05 11.69,-1.81 -10.484,43.44c-0.202,0.905 -0.314,1.735 -0.339,2.489 -0.026,0.754 0.113,1.421 0.415,1.999 0.302,0.579 0.817,1.044 1.546,1.395 0.729,0.353 1.747,0.579 3.055,0.679l-2.263,9.278" />
<path
android:fillColor="#FFFFFF"
android:pathData="m68.15,38.08c0,3.671 -0.604,7.03 -1.811,10.07 -1.207,3.043 -2.879,5.669 -5.01,7.881 -2.138,2.213 -4.702,3.935 -7.693,5.167 -2.992,1.231 -6.248,1.848 -9.767,1.848 -1.71,0 -3.42,-0.151 -5.129,-0.453l-3.394,13.651h-11.162l12.52,-52.19c2.01,-0.603 4.311,-1.143 6.901,-1.622 2.589,-0.477 5.393,-0.716 8.41,-0.716 2.815,0 5.242,0.428 7.278,1.282 2.037,0.855 3.708,2.024 5.02,3.507 1.307,1.484 2.274,3.219 2.904,5.205 0.627,1.987 0.942,4.11 0.942,6.373m-27.378,15.461c0.854,0.202 1.91,0.302 3.167,0.302 1.961,0 3.746,-0.364 5.355,-1.094 1.609,-0.728 2.979,-1.747 4.111,-3.055 1.131,-1.307 2.01,-2.877 2.64,-4.714 0.628,-1.835 0.943,-3.858 0.943,-6.071 0,-2.161 -0.479,-3.998 -1.433,-5.506 -0.956,-1.508 -2.615,-2.263 -4.978,-2.263 -1.61,0 -3.118,0.151 -4.525,0.453l-5.28,21.948" />
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1000"
android:viewportHeight="1000">
<path
android:fillColor="#FFFFFF"
android:pathData="M540.8,370.4c8.3,-5.3 16.3,-11.3 23.4,-18.1c20.1,-18.9 35.3,-43.1 41.6,-69.6c11.2,-39.8 -1.8,-74.4 -28.4,-93.5c-14,-10.1 -31.7,-16 -51.9,-16H408.7l-3.7,16l-47.4,203h112C494.3,392.2 519,384 540.8,370.4z" />
<path
android:fillColor="#FFFFFF"
android:pathData="M265,810.9l58.4,-265.3h170.4c2,0 4,-0.2 6,-0.3c96.9,-1.4 183.9,-37.4 245.6,-101.9c40.4,-42.1 70,-96.1 84.2,-160.8c6.3,-28.4 8.4,-54.5 7,-78.2c-1.9,-34.1 -10.9,-63.5 -24.8,-88.4C771.4,44.1 688.4,10 613.2,10H206.6L26.5,810.9h95.7H203H265zM404.9,189.2l3.7,-16h116.8c20.2,0 37.9,5.9 51.9,16c26.6,19.1 39.6,53.7 28.4,93.5c-6.4,26.5 -21.5,50.7 -41.6,69.6c-7.2,6.8 -15.2,12.8 -23.4,18.1c-21.7,13.6 -46.5,21.8 -71.3,21.8h-112L404.9,189.2z" />
<path
android:fillColor="#FFFFFF"
android:pathData="M914.4,251.8c-1.5,15.3 -4,31.2 -7.6,47.9C863.3,497 701.2,624.5 493.9,624.5h-107l-44.8,203.4l-13.6,61.9H265h-79.7L162.8,990h238.5l58.4,-265.3h170.4c163.1,0 299.5,-97.4 335.9,-263C987.3,365.6 961.1,296.5 914.4,251.8z" />
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -0,0 +1,288 @@
<?xml version="1.0" encoding="utf-8"?><!--
<!-
Copyright 2020 Thomas Schneider
This file is a part of TubeLab
This program is free software; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation; either version 3 of the
License, or (at your option) any later version.
TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along with TubeLab; if not,
see <http://www.gnu.org/licenses>.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/fab_margin"
android:scrollbars="none"
tools:context=".AboutActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/app_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:text="@string/app_name"
android:textSize="20sp" />
<TextView
android:id="@+id/about_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:textSize="16sp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="@string/developer"
android:textStyle="bold" />
<!-- Developer info -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal"
android:padding="5dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="tom79"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:src="@drawable/tom79_avatar"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:orientation="vertical">
<TextView
android:id="@+id/developer_mastodon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="\@TubeLab@toot.fedilab.org"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/framagit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Framagit"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/github"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Github"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/codeberg"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Codeberg"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Idea from info -->
<LinearLayout
android:id="@+id/donation_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="@string/Donate" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/donate_liberapay"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:drawableStart="@drawable/ic_liberapay"
android:text="Liberapay"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
<Button
android:id="@+id/donate_paypal"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:drawableStart="@drawable/ic_paypal"
android:text="Paypal"
android:textColor="@android:color/white"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
<!-- About the app -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:text="@string/about_the_app"
android:textSize="16sp"
android:textStyle="bold" />
<!-- Code info -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/source_code" />
<TextView
android:id="@+id/source_code"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="3"
android:autoLink="web"
android:text="https://framagit.org/tom79/fedilab-tube"
tools:ignore="HardcodedText" />
</LinearLayout>
<!-- Support info -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/issue_tracker" />
<TextView
android:id="@+id/issue_tracker"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="3"
android:autoLink="web"
android:text="https://framagit.org/tom79/fedilab-tube/-/issues"
tools:ignore="HardcodedText" />
</LinearLayout>
<!-- License info -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/license" />
<TextView
android:id="@+id/license"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="3"
android:text="GPL3"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -27,11 +27,11 @@
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:background="?android:attr/windowBackground"
app:itemIconTint="@color/bottom_nav_color"
app:itemTextColor="@color/bottom_nav_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:itemTextColor="@color/bottom_nav_color"
app:itemIconTint="@color/bottom_nav_color"/>
app:layout_constraintRight_toRightOf="parent" />
<fragment
android:id="@+id/nav_host_fragment"

View File

@ -40,4 +40,9 @@
android:icon="@drawable/ic_baseline_history_24"
android:title="@string/my_history"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_about"
android:icon="@drawable/ic_baseline_info_24"
android:title="@string/about_the_app"
app:showAsAction="ifRoom" />
</menu>