diff options
author | Thomas <tschneider.ac@gmail.com> | 2023-01-26 12:38:21 +0100 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2023-01-26 12:38:21 +0100 |
commit | 6a359bbbf8d4d1fcefe46c63db23c25f4f2c118e (patch) | |
tree | ffda4174be679198208df7b9507866db7aac59d1 | |
parent | 42bdcaf6b60b086959e269ff6155623713f3613e (diff) |
Redo upload
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> |