summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-26 12:38:21 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-26 12:38:21 +0100
commit6a359bbbf8d4d1fcefe46c63db23c25f4f2c118e (patch)
treeffda4174be679198208df7b9507866db7aac59d1
parent42bdcaf6b60b086959e269ff6155623713f3613e (diff)
Redo upload
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java16
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/Helper.java23
-rw-r--r--app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml230
3 files changed, 151 insertions, 118 deletions
diff --git a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java
index 559bc9878..31f8cd6ca 100644
--- a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java
+++ b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java
@@ -19,11 +19,9 @@ import static app.fedilab.android.peertube.activities.PeertubeMainActivity.userM
import static app.fedilab.android.peertube.client.RetrofitPeertubeAPI.DataType.MY_CHANNELS;
import static app.fedilab.android.peertube.helper.Helper.peertubeInformation;
-import android.Manifest;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
@@ -34,8 +32,6 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
import androidx.documentfile.provider.DocumentFile;
import androidx.lifecycle.ViewModelProvider;
@@ -269,22 +265,14 @@ public class PeertubeUploadActivity extends BaseBarActivity {
});
binding.setUploadFile.setEnabled(true);
- binding.setUploadFile.setOnClickListener(v -> {
- if (ContextCompat.checkSelfPermission(PeertubeUploadActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) !=
- PackageManager.PERMISSION_GRANTED) {
- ActivityCompat.requestPermissions(PeertubeUploadActivity.this,
- new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
- MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
- return;
- }
+ binding.setUploadFile.setOnClickListener(v -> Helper.requestPermissionAndProceed(this, () -> {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
String[] mimetypes = {"video/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(intent, PICK_IVDEO);
-
- });
+ }));
//Manage languages
binding.setUploadChannel.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
diff --git a/app/src/main/java/app/fedilab/android/peertube/helper/Helper.java b/app/src/main/java/app/fedilab/android/peertube/helper/Helper.java
index ee4dcda21..e5d0e465b 100644
--- a/app/src/main/java/app/fedilab/android/peertube/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/peertube/helper/Helper.java
@@ -21,6 +21,7 @@ import static app.fedilab.android.mastodon.helper.Helper.PREF_USER_TOKEN;
import static app.fedilab.android.mastodon.helper.Helper.dialogStyle;
import static app.fedilab.android.peertube.activities.PeertubeMainActivity.typeOfConnection;
+import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DownloadManager;
@@ -28,6 +29,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -52,6 +54,7 @@ import android.widget.ImageView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
+import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.preference.PreferenceManager;
@@ -766,6 +769,26 @@ public class Helper {
}
}
+ public static void requestPermissionAndProceed(Activity activity, PermissionGranted permissionGranted) {
+ if (Build.VERSION.SDK_INT >= 23) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
+ if (ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
+ ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, app.fedilab.android.mastodon.helper.Helper.EXTERNAL_STORAGE_REQUEST_CODE_MEDIA_SAVE);
+ } else {
+ permissionGranted.proceed();
+ }
+ } else {
+ permissionGranted.proceed();
+ }
+ } else {
+ permissionGranted.proceed();
+ }
+ }
+
+ public interface PermissionGranted {
+ void proceed();
+ }
+
public static String readFileFromAssets(Context context, String filename) {
String json;
diff --git a/app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml b/app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml
index 5d4baecd7..afe72dacd 100644
--- a/app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml
+++ b/app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml
@@ -18,79 +18,95 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".peertube.activities.PeertubeUploadActivity">
- <LinearLayout
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="50dp"
android:orientation="vertical">
-
- <LinearLayout
+ <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="10dp"
- android:orientation="horizontal">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:labelFor="@+id/total_quota"
- android:text="@string/total_video_quota" />
-
- <TextView
- android:id="@+id/total_quota_value"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="20dp" />
- </LinearLayout>
-
- <ProgressBar
- android:id="@+id/total_quota"
- style="@style/Widget.AppCompat.ProgressBar.Horizontal"
- android:layout_width="300dp"
- android:layout_height="20dp"
- android:layout_gravity="center"
- android:layout_marginTop="10dp"
- android:indeterminate="false"
- android:max="100"
- android:progressDrawable="@drawable/progress_bar" />
+ android:layout_margin="12dp"
+ app:cardElevation="2dp">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="10dp"
- android:layout_marginTop="20dp"
- android:orientation="horizontal">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:labelFor="@+id/daily_quota"
- android:text="@string/daily_video_quota" />
-
- <TextView
- android:id="@+id/daily_quota_value"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="20dp" />
- </LinearLayout>
-
- <ProgressBar
- android:id="@+id/daily_quota"
- style="@style/Widget.AppCompat.ProgressBar.Horizontal"
- android:layout_width="300dp"
- android:layout_height="20dp"
- android:layout_gravity="center"
- android:layout_marginTop="10dp"
- android:indeterminate="false"
- android:max="100"
- android:progressDrawable="@drawable/progress_bar" />
-
- <Button
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_margin="12dp"
+ android:orientation="vertical">
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:labelFor="@+id/total_quota"
+ android:text="@string/total_video_quota" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/total_quota_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="20dp" />
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+ <ProgressBar
+ android:id="@+id/total_quota"
+ style="@style/Widget.AppCompat.ProgressBar.Horizontal"
+ android:layout_width="300dp"
+ android:layout_height="20dp"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:indeterminate="false"
+ android:max="100"
+ android:progressDrawable="@drawable/progress_bar" />
+
+ <androidx.appcompat.widget.LinearLayoutCompat
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:orientation="horizontal">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:labelFor="@+id/daily_quota"
+ android:text="@string/daily_video_quota" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/daily_quota_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="20dp" />
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+ <ProgressBar
+ android:id="@+id/daily_quota"
+ style="@style/Widget.AppCompat.ProgressBar.Horizontal"
+ android:layout_width="300dp"
+ android:layout_height="20dp"
+ android:layout_gravity="center"
+ android:layout_margin="12dp"
+ android:layout_marginTop="10dp"
+ android:indeterminate="false"
+ android:max="100"
+ android:progressDrawable="@drawable/progress_bar" />
+
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+ </com.google.android.material.card.MaterialCardView>
+
+
+ <com.google.android.material.button.MaterialButton
android:id="@+id/set_upload_file"
- style="@style/Base.Widget.AppCompat.Button.Colored"
+ style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
@@ -100,7 +116,7 @@
android:text="@string/file_to_upload"
android:textSize="16sp" />
- <TextView
+ <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/set_upload_file_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -109,52 +125,58 @@
android:gravity="center"
android:visibility="gone" />
- <!-- Videos channels -->
- <LinearLayout
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
- android:gravity="center_horizontal"
- android:orientation="vertical">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:text="@string/channel"
- android:textSize="16sp" />
-
- <Spinner
- android:id="@+id/set_upload_channel"
+ android:orientation="horizontal">
+ <!-- Videos channels -->
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="16sp" />
- </LinearLayout>
-
-
- <!-- Videos Privacy -->
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="20dp"
- android:gravity="center_horizontal"
- android:orientation="vertical">
-
- <TextView
+ android:layout_gravity="center_horizontal"
+ android:layout_weight="1"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:text="@string/channel"
+ android:textSize="16sp" />
+
+ <Spinner
+ android:id="@+id/set_upload_channel"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="16sp" />
+ </androidx.appcompat.widget.LinearLayoutCompat>
+
+ <!-- Videos Privacy -->
+ <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="center"
- android:text="@string/action_privacy"
- android:textSize="16sp" />
+ android:layout_gravity="center_horizontal"
+ android:layout_weight="1"
+ android:gravity="center_horizontal"
+ android:orientation="vertical">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:text="@string/action_privacy"
+ android:textSize="16sp" />
+
+ <Spinner
+ android:id="@+id/set_upload_privacy"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="16sp" />
+ </androidx.appcompat.widget.LinearLayoutCompat>
+ </androidx.appcompat.widget.LinearLayoutCompat>
- <Spinner
- android:id="@+id/set_upload_privacy"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="16sp" />
- </LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="300dp"
@@ -175,9 +197,9 @@
<!-- Videos upload submit -->
- <Button
+ <com.google.android.material.button.MaterialButton
android:id="@+id/set_upload_submit"
- style="@style/Base.Widget.AppCompat.Button.Colored"
+ style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
@@ -186,5 +208,5 @@
android:gravity="center"
android:text="@string/upload_video"
android:textSize="18sp" />
- </LinearLayout>
+ </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView>