2022-10-02 23:06:56 +02:00
|
|
|
package android.content;
|
|
|
|
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Parcelable;
|
|
|
|
import java.io.Serializable;
|
2024-06-12 22:59:01 +02:00
|
|
|
import java.util.ArrayList;
|
2022-10-02 23:06:56 +02:00
|
|
|
|
|
|
|
public class Intent {
|
2023-08-10 11:07:03 +02:00
|
|
|
private ComponentName component;
|
2023-08-22 13:23:34 +02:00
|
|
|
private Bundle extras = new Bundle();
|
2023-09-01 16:03:31 +02:00
|
|
|
private String action;
|
|
|
|
private Uri data;
|
2023-09-19 23:22:21 +02:00
|
|
|
private int flags;
|
2024-02-10 20:37:28 +01:00
|
|
|
private String type;
|
2023-08-10 11:07:03 +02:00
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public Intent() {}
|
2023-09-01 16:03:31 +02:00
|
|
|
public Intent(Intent o) {
|
|
|
|
this.action = o.action;
|
|
|
|
this.data = o.data;
|
|
|
|
this.extras = o.extras;
|
|
|
|
this.component = o.component;
|
|
|
|
}
|
|
|
|
public Intent(String action) {
|
|
|
|
this.action = action;
|
|
|
|
}
|
|
|
|
public Intent(String action, Uri uri) {
|
|
|
|
this.action = action;
|
|
|
|
this.data = uri;
|
|
|
|
}
|
2023-08-10 11:07:03 +02:00
|
|
|
public Intent(Context packageContext, Class<?> cls) {
|
|
|
|
setClass(packageContext, cls);
|
|
|
|
}
|
2023-09-01 16:03:31 +02:00
|
|
|
public Intent(String action, Uri uri, Context packageContext, Class<?> cls) {
|
|
|
|
this(action, uri);
|
|
|
|
setClass(packageContext, cls);
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
|
2023-08-12 13:09:33 +02:00
|
|
|
public Intent addFlags(int flags) {
|
2023-09-19 23:22:21 +02:00
|
|
|
this.flags |= flags;
|
|
|
|
return this;
|
2023-08-12 13:09:33 +02:00
|
|
|
}
|
|
|
|
|
2023-01-14 14:32:37 +01:00
|
|
|
public Intent setFlags(int flags) {
|
2023-09-19 23:22:21 +02:00
|
|
|
this.flags = flags;
|
|
|
|
return this;
|
2023-01-14 14:32:37 +01:00
|
|
|
}
|
2024-02-10 20:37:28 +01:00
|
|
|
|
|
|
|
public int getFlags() {
|
|
|
|
return flags;
|
|
|
|
}
|
|
|
|
|
2022-10-02 23:06:56 +02:00
|
|
|
public Intent setPackage(String packageName) {
|
|
|
|
return this; //??
|
|
|
|
}
|
|
|
|
|
2024-02-10 20:37:28 +01:00
|
|
|
public Intent setType(String type) {
|
|
|
|
this.type = type;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2023-06-22 11:45:46 +02:00
|
|
|
public Intent putExtra(String name, Parcelable value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putParcelable(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, long[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putLongArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, byte value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putByte(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, double[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putDoubleArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, CharSequence value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putCharSequence(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, boolean[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putBooleanArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, int value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putInt(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, char[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putCharArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, byte[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putByteArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, Parcelable[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putParcelableArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, Bundle value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putBundle(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, CharSequence[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putCharSequenceArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, float[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putFloatArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, double value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putDouble(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, int[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putIntArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, String[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putStringArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, short[] value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putShortArray(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, boolean value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putBoolean(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, String value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putString(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, long value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putLong(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, char value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putChar(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, Serializable value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putSerializable(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, float value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putFloat(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Intent putExtra(String name, short value) {
|
2023-08-22 13:23:34 +02:00
|
|
|
extras.putShort(name, value);
|
2023-08-10 11:07:03 +02:00
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
2024-04-12 18:32:30 +02:00
|
|
|
public Intent putExtras(Intent src) {
|
2023-09-19 17:37:14 +05:00
|
|
|
// FIXME HACK
|
|
|
|
this.extras = src.getExtras();
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2024-04-12 18:32:30 +02:00
|
|
|
public Intent putExtras(Bundle extras) {
|
2023-09-19 17:37:14 +05:00
|
|
|
// FIXME HACK
|
|
|
|
this.extras = extras;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2024-04-12 18:32:30 +02:00
|
|
|
public Intent replaceExtras(Bundle extras) {
|
|
|
|
this.extras = extras;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2022-11-24 23:10:27 +01:00
|
|
|
public Intent setClass(Context packageContext, Class<?> cls) {
|
2023-08-10 11:07:03 +02:00
|
|
|
setComponent(new ComponentName(packageContext, cls));
|
|
|
|
return this;
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|
|
|
|
|
2024-04-12 18:32:30 +02:00
|
|
|
public Intent setClassName(String packageName, String className) {
|
|
|
|
setComponent(new ComponentName(packageName, className));
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2022-11-24 23:10:27 +01:00
|
|
|
public String getStringExtra(String name) {
|
2023-08-10 11:07:03 +02:00
|
|
|
return (String)extras.get(name);
|
2022-11-24 23:10:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public Uri getData() {
|
2023-09-01 16:03:31 +02:00
|
|
|
return data;
|
2022-11-24 23:10:27 +01:00
|
|
|
}
|
|
|
|
|
2023-09-19 17:37:14 +05:00
|
|
|
public String getDataString () {
|
|
|
|
if (data == null)
|
|
|
|
return "";
|
|
|
|
|
|
|
|
return data.toString();
|
|
|
|
}
|
|
|
|
|
2022-11-24 23:10:27 +01:00
|
|
|
public boolean getBooleanExtra(String name, boolean defaultValue) {
|
|
|
|
return defaultValue;
|
|
|
|
}
|
2023-08-10 11:07:03 +02:00
|
|
|
|
2023-10-08 22:33:47 +02:00
|
|
|
public Intent setAction(String action) {
|
2023-09-12 23:18:47 +02:00
|
|
|
this.action = action;
|
|
|
|
return this;
|
2023-10-08 22:33:47 +02:00
|
|
|
}
|
|
|
|
|
2023-08-10 11:07:03 +02:00
|
|
|
public String getAction() {
|
2023-09-19 23:22:21 +02:00
|
|
|
return action;
|
2023-08-10 11:07:03 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public Bundle getBundleExtra(String name) {
|
|
|
|
return (Bundle)extras.get(name);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Intent setComponent(ComponentName component) {
|
|
|
|
this.component = component;
|
|
|
|
return this;
|
|
|
|
}
|
2024-02-10 20:37:28 +01:00
|
|
|
|
2023-08-10 11:07:03 +02:00
|
|
|
public ComponentName getComponent() {
|
|
|
|
return component;
|
|
|
|
}
|
|
|
|
|
2023-08-17 10:46:24 +02:00
|
|
|
public boolean hasExtra(String name) {
|
|
|
|
return extras.containsKey(name);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Serializable getSerializableExtra(String name) {
|
|
|
|
return (Serializable)extras.get(name);
|
|
|
|
}
|
|
|
|
|
2023-09-01 12:55:04 +02:00
|
|
|
public Parcelable getParcelableExtra(String name) {
|
|
|
|
return extras.getParcelable(name);
|
|
|
|
}
|
|
|
|
|
|
|
|
public String[] getStringArrayExtra(String name) {
|
|
|
|
return extras.getStringArray(name);
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getIntExtra(String name, int def) {
|
|
|
|
return extras.getInt(name, def);
|
|
|
|
}
|
|
|
|
|
2023-08-22 13:23:34 +02:00
|
|
|
public Bundle getExtras() {
|
|
|
|
return extras;
|
|
|
|
}
|
|
|
|
|
2023-10-08 22:33:47 +02:00
|
|
|
public Intent addCategory(String action) {
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
2023-08-10 11:07:03 +02:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
2024-02-10 20:37:28 +01:00
|
|
|
return "Intent [component=" + component + ", extras=" + extras + ", action=" + action + ", type=" + type + ", uri=" + data + "]";
|
2023-09-01 16:03:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public static Intent createChooser(Intent target, CharSequence title) {
|
|
|
|
return target;
|
2023-08-10 11:07:03 +02:00
|
|
|
}
|
2024-02-16 11:30:34 +01:00
|
|
|
|
|
|
|
public Intent setDataAndType(Uri uri, String type) {
|
|
|
|
this.data = uri;
|
|
|
|
this.type = type;
|
|
|
|
return this;
|
|
|
|
}
|
2024-03-16 12:49:28 +01:00
|
|
|
|
|
|
|
public long getLongExtra(String name, long def) {
|
|
|
|
return extras.getLong(name, def);
|
|
|
|
}
|
|
|
|
|
|
|
|
public char getCharExtra(String name, char def) {
|
|
|
|
return extras.getChar(name, def);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Parcelable[] getParcelableArrayExtra(String name) {
|
|
|
|
return extras.getParcelableArray(name);
|
|
|
|
}
|
2024-03-16 18:14:46 +01:00
|
|
|
|
|
|
|
public String getType() {
|
|
|
|
return type;
|
|
|
|
}
|
2024-03-20 23:05:17 +01:00
|
|
|
|
|
|
|
public Intent setData(Uri uri) {
|
|
|
|
this.data = uri;
|
|
|
|
return this;
|
|
|
|
}
|
2024-06-12 22:59:01 +02:00
|
|
|
|
|
|
|
public ArrayList<Parcelable> getParcelableArrayListExtra(String name) {
|
|
|
|
return extras.getParcelableArrayList(name);
|
|
|
|
}
|
2024-06-15 22:32:01 +02:00
|
|
|
|
|
|
|
public String getPackage() {
|
|
|
|
return component.getPackageName();
|
|
|
|
}
|
2022-10-02 23:06:56 +02:00
|
|
|
}
|