Buckets:
NaTo1000/termux-app-bucket / termux-shared /src /main /java /com /termux /shared /activity /ActivityUtils.java
| package com.termux.shared.activity; | |
| import android.app.Activity; | |
| import android.content.Context; | |
| import android.content.Intent; | |
| import androidx.activity.result.ActivityResultLauncher; | |
| import androidx.annotation.NonNull; | |
| import androidx.annotation.Nullable; | |
| import androidx.appcompat.app.AppCompatActivity; | |
| import com.termux.shared.errors.Error; | |
| import com.termux.shared.errors.FunctionErrno; | |
| public class ActivityUtils { | |
| private static final String LOG_TAG = "ActivityUtils"; | |
| /** | |
| * Wrapper for {@link #startActivity(Context, Intent, boolean, boolean)}. | |
| */ | |
| public static Error startActivity( Context context, Intent intent) { | |
| return startActivity(context, intent, true, true); | |
| } | |
| /** | |
| * Start an {@link Activity}. | |
| * | |
| * @param context The context for operations. | |
| * @param intent The {@link Intent} to send to start the activity. | |
| * @param logErrorMessage If an error message should be logged if failed to start activity. | |
| * @param showErrorMessage If an error message toast should be shown if failed to start activity | |
| * in addition to logging a message. The {@code context} must not be | |
| * {@code null}. | |
| * @return Returns the {@code error} if starting activity was not successful, otherwise {@code null}. | |
| */ | |
| public static Error startActivity(Context context, Intent intent, | |
| boolean logErrorMessage, boolean showErrorMessage) { | |
| Error error; | |
| String activityName = intent.getComponent() != null ? intent.getComponent().getClassName() : "Unknown"; | |
| if (context == null) { | |
| error = ActivityErrno.ERRNO_STARTING_ACTIVITY_WITH_NULL_CONTEXT.getError(activityName); | |
| if (logErrorMessage) | |
| error.logErrorAndShowToast(null, LOG_TAG); | |
| return error; | |
| } | |
| try { | |
| context.startActivity(intent); | |
| } catch (Exception e) { | |
| error = ActivityErrno.ERRNO_START_ACTIVITY_FAILED_WITH_EXCEPTION.getError(e, activityName, e.getMessage()); | |
| if (logErrorMessage) | |
| error.logErrorAndShowToast(showErrorMessage ? context : null, LOG_TAG); | |
| return error; | |
| } | |
| return null; | |
| } | |
| /** | |
| * Wrapper for {@link #startActivityForResult(Context, int, Intent, boolean, boolean, ActivityResultLauncher)}. | |
| */ | |
| public static Error startActivityForResult(Context context, int requestCode, Intent intent) { | |
| return startActivityForResult(context, requestCode, intent, true, true, null); | |
| } | |
| /** | |
| * Wrapper for {@link #startActivityForResult(Context, int, Intent, boolean, boolean, ActivityResultLauncher)}. | |
| */ | |
| public static Error startActivityForResult(Context context, int requestCode, Intent intent, | |
| boolean logErrorMessage, boolean showErrorMessage) { | |
| return startActivityForResult(context, requestCode, intent, logErrorMessage, showErrorMessage, null); | |
| } | |
| /** | |
| * Start an {@link Activity} for result. | |
| * | |
| * @param context The context for operations. It must be an instance of {@link Activity} or | |
| * {@link AppCompatActivity}. It is ignored if {@code activityResultLauncher} | |
| * is not {@code null}. | |
| * @param requestCode The request code to use while sending intent. This must be >= 0, otherwise | |
| * exception will be raised. This is ignored if {@code activityResultLauncher} | |
| * is {@code null}. | |
| * @param intent The {@link Intent} to send to start the activity. | |
| * @param logErrorMessage If an error message should be logged if failed to start activity. | |
| * @param showErrorMessage If an error message toast should be shown if failed to start activity | |
| * in addition to logging a message. The {@code context} must not be | |
| * {@code null}. | |
| * @param activityResultLauncher The {@link ActivityResultLauncher<Intent>} to use for start the | |
| * activity. If this is {@code null}, then | |
| * {@link Activity#startActivityForResult(Intent, int)} will be | |
| * used instead. | |
| * Note that later is deprecated. | |
| * @return Returns the {@code error} if starting activity was not successful, otherwise {@code null}. | |
| */ | |
| public static Error startActivityForResult(Context context, int requestCode, Intent intent, | |
| boolean logErrorMessage, boolean showErrorMessage, | |
| ActivityResultLauncher<Intent> activityResultLauncher) { | |
| Error error; | |
| String activityName = intent.getComponent() != null ? intent.getComponent().getClassName() : "Unknown"; | |
| try { | |
| if (activityResultLauncher != null) { | |
| activityResultLauncher.launch(intent); | |
| } else { | |
| if (context == null) { | |
| error = ActivityErrno.ERRNO_STARTING_ACTIVITY_WITH_NULL_CONTEXT.getError(activityName); | |
| if (logErrorMessage) | |
| error.logErrorAndShowToast(null, LOG_TAG); | |
| return error; | |
| } | |
| if (context instanceof AppCompatActivity) | |
| ((AppCompatActivity) context).startActivityForResult(intent, requestCode); | |
| else if (context instanceof Activity) | |
| ((Activity) context).startActivityForResult(intent, requestCode); | |
| else { | |
| error = FunctionErrno.ERRNO_PARAMETER_NOT_INSTANCE_OF.getError("context", "startActivityForResult", "Activity or AppCompatActivity"); | |
| if (logErrorMessage) | |
| error.logErrorAndShowToast(showErrorMessage ? context : null, LOG_TAG); | |
| return error; | |
| } | |
| } | |
| } catch (Exception e) { | |
| error = ActivityErrno.ERRNO_START_ACTIVITY_FOR_RESULT_FAILED_WITH_EXCEPTION.getError(e, activityName, e.getMessage()); | |
| if (logErrorMessage) | |
| error.logErrorAndShowToast(showErrorMessage ? context : null, LOG_TAG); | |
| return error; | |
| } | |
| return null; | |
| } | |
| } | |
Xet Storage Details
- Size:
- 6.49 kB
- Xet hash:
- cf5f4ee8584862c529cd19d3c0f7c1bb3177eea26231c855aaad76c0d981fa73
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.