Redo upload

This commit is contained in:
Thomas 2023-01-26 12:38:21 +01:00
parent 42bdcaf6b6
commit 6a359bbbf8
3 changed files with 141 additions and 108 deletions

View file

@ -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() {

View file

@ -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;

View file

@ -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">
android:layout_margin="12dp"
app:cardElevation="2dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@+id/total_quota"
android:text="@string/total_video_quota" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="12dp"
android:orientation="vertical">
<TextView
android:id="@+id/total_quota_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp" />
</LinearLayout>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<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.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@+id/total_quota"
android:text="@string/total_video_quota" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<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>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:labelFor="@+id/daily_quota"
android:text="@string/daily_video_quota" />
<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" />
<TextView
android:id="@+id/daily_quota_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp" />
</LinearLayout>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<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" />
<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" />
<Button
<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:orientation="horizontal">
<!-- Videos channels -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/channel"
android:textSize="16sp" />
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<Spinner
android:id="@+id/set_upload_channel"
<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:textSize="16sp" />
</LinearLayout>
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" />
<!-- 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">
<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>
<TextView
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" />
</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>