Loading app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java +2 −14 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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() { Loading app/src/main/java/app/fedilab/android/peertube/helper/Helper.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml +126 −104 Original line number Diff line number Diff line Loading @@ -18,33 +18,44 @@ 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"> <com.google.android.material.card.MaterialCardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="12dp" app:cardElevation="2dp"> <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="12dp" android:orientation="vertical"> <LinearLayout <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:orientation="horizontal"> <TextView <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" /> <TextView <androidx.appcompat.widget.AppCompatTextView 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> <ProgressBar android:id="@+id/total_quota" Loading @@ -57,25 +68,24 @@ android:max="100" android:progressDrawable="@drawable/progress_bar" /> <LinearLayout <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_marginTop="20dp" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView <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" /> <TextView <androidx.appcompat.widget.AppCompatTextView 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> <ProgressBar android:id="@+id/daily_quota" Loading @@ -83,14 +93,20 @@ 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" /> <Button </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" Loading @@ -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" Loading @@ -109,16 +125,21 @@ 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:orientation="horizontal"> <!-- Videos channels --> <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical"> <TextView <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" Loading @@ -130,19 +151,18 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> <!-- Videos Privacy --> <LinearLayout android:layout_width="match_parent" <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical"> <TextView <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" Loading @@ -154,7 +174,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat> <com.google.android.material.textfield.TextInputLayout android:layout_width="300dp" Loading @@ -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" Loading @@ -186,5 +208,5 @@ android:gravity="center" android:text="@string/upload_video" android:textSize="18sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> </androidx.core.widget.NestedScrollView> Loading
app/src/main/java/app/fedilab/android/peertube/activities/PeertubeUploadActivity.java +2 −14 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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() { Loading
app/src/main/java/app/fedilab/android/peertube/helper/Helper.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading
app/src/main/res/layouts/peertube/layout/activity_peertube_upload.xml +126 −104 Original line number Diff line number Diff line Loading @@ -18,33 +18,44 @@ 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"> <com.google.android.material.card.MaterialCardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="12dp" app:cardElevation="2dp"> <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="12dp" android:orientation="vertical"> <LinearLayout <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:orientation="horizontal"> <TextView <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" /> <TextView <androidx.appcompat.widget.AppCompatTextView 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> <ProgressBar android:id="@+id/total_quota" Loading @@ -57,25 +68,24 @@ android:max="100" android:progressDrawable="@drawable/progress_bar" /> <LinearLayout <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_marginTop="20dp" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView <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" /> <TextView <androidx.appcompat.widget.AppCompatTextView 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> <ProgressBar android:id="@+id/daily_quota" Loading @@ -83,14 +93,20 @@ 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" /> <Button </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" Loading @@ -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" Loading @@ -109,16 +125,21 @@ 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:orientation="horizontal"> <!-- Videos channels --> <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical"> <TextView <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" Loading @@ -130,19 +151,18 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> <!-- Videos Privacy --> <LinearLayout android:layout_width="match_parent" <androidx.appcompat.widget.LinearLayoutCompat android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp" android:layout_weight="1" android:gravity="center_horizontal" android:orientation="vertical"> <TextView <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" Loading @@ -154,7 +174,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="16sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat> <com.google.android.material.textfield.TextInputLayout android:layout_width="300dp" Loading @@ -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" Loading @@ -186,5 +208,5 @@ android:gravity="center" android:text="@string/upload_video" android:textSize="18sp" /> </LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat> </androidx.core.widget.NestedScrollView>